/* =============================================================================
   AnimauxFun Tools — CSS principal (frontend)
   Thème : vert nature AnimauxFun — mobile-first
   Couleurs en dur pour éviter les conflits de variables CSS avec les thèmes.
   ============================================================================= */

/* ── Variables (utilisées en interne, mais les valeurs critiques sont répétées en dur) ── */
:root {
    --af-green:      #3d8b2e;
    --af-green-d:    #2d6b22;
    --af-green-l:    #5ab02a;
    --af-orange:     #f97316;
    --af-orange-d:   #ea6c0a;
    --af-blue:       #0ea5e9;
    --af-blue-d:     #0284c7;
    --af-amber:      #f59e0b;
    --af-red:        #ef4444;
    --af-purple:     #8b5cf6;
    --af-pink:       #ec4899;

    --af-bg:         #fafafa;
    --af-bg-card:    #ffffff;
    --af-border:     #e5e7eb;
    --af-text:       #1f2937;
    --af-text-muted: #6b7280;
    --af-radius:     12px;
    --af-radius-sm:  8px;
    --af-shadow:     0 4px 20px rgba(0,0,0,.08);
    --af-shadow-lg:  0 8px 40px rgba(0,0,0,.12);
    --af-transition: .2s ease;
    --af-font:       -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}

/* ── Reset strict : tout à l'intérieur du wrapper ──────────────────────────── */
.af-simulator-wrap,
.af-simulator-wrap *,
.af-simulator-wrap *::before,
.af-simulator-wrap *::after {
    box-sizing: border-box;
}

/* ── Wrapper principal — 100% de la colonne de contenu, pas de débordement ── */
.af-simulator-wrap {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    color: #1f2937;
    line-height: 1.6;
    width: 100%;
    max-width: 100%;        /* CRITIQUE : s'adapte à la colonne du thème */
    margin: 0 0 2rem 0;     /* pas d'auto margins horizontaux */
    padding: 0;
    overflow-x: hidden;     /* empêche tout débordement horizontal */
    position: relative;
}

/* ── Carte ──────────────────────────────────────────────────────────────────── */
.af-card {
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0,0,0,.08);
    overflow: hidden;
    margin-bottom: 1.5rem;
    width: 100%;
}

.af-card-header {
    background: linear-gradient(135deg, #2d6b22 0%, #5ab02a 100%);
    color: #fff;
    padding: 1.5rem 1.25rem;
    text-align: center;
}

.af-card-header .af-icon {
    display: inline-flex;
    width: 52px;
    height: 52px;
    background: rgba(255,255,255,.2);
    border-radius: 50%;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    margin-bottom: .65rem;
}

.af-card-header h2 {
    font-size: 1.35rem;
    font-weight: 700;
    margin: 0 0 .3rem;
    line-height: 1.25;
    color: #fff;
}

.af-card-header p {
    font-size: .9rem;
    opacity: .92;
    margin: 0;
}

.af-card-body {
    padding: 1.25rem;
}

.af-card-charts {
    padding: 1.25rem;
}

.af-card-charts h4 {
    font-size: .95rem;
    font-weight: 600;
    color: #1f2937;
    margin: 0 0 .875rem;
}

.af-card-charts h4 i {
    color: #3d8b2e;
    margin-right: .35rem;
}

/* ── Formulaire ─────────────────────────────────────────────────────────────── */
.af-form {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}

/* Grille 2 colonnes — se plie en 1 colonne sous 700px (plus large que 600px) */
.af-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

@media (max-width: 700px) {
    .af-grid-2 { grid-template-columns: 1fr; }
}

/* Toutes les cartes : padding réduit sur mobile */
@media (max-width: 600px) {
    .af-card-body,
    .af-card-charts { padding: 1rem; }
    .af-card-header  { padding: 1.25rem 1rem; }
    .af-card-header h2 { font-size: 1.15rem; }
}

.af-field {
    display: flex;
    flex-direction: column;
    gap: .4rem;
}

.af-field label {
    font-size: .85rem;
    font-weight: 600;
    color: #1f2937;
    display: flex;
    align-items: center;
    gap: .4rem;
}

.af-field label i {
    color: #3d8b2e;
    font-size: .85rem;
}

.af-field select,
.af-field input[type="text"],
.af-field input[type="number"],
.af-field input[type="date"] {
    width: 100%;
    padding: .6rem .8rem;
    border: 2px solid #e5e7eb;
    border-radius: 8px;
    font-size: .9375rem;
    color: #1f2937;
    background: #fff;
    transition: border-color .2s ease, box-shadow .2s ease;
    font-family: inherit;
    appearance: auto;
    -webkit-appearance: auto;
}

.af-field select:focus,
.af-field input:focus {
    outline: none;
    border-color: #3d8b2e;
    box-shadow: 0 0 0 3px rgba(61,139,46,.15);
}

.af-field select.af-error,
.af-field input.af-error {
    border-color: #ef4444;
    box-shadow: 0 0 0 3px rgba(239,68,68,.12);
}

.af-field-inline {
    display: flex;
    align-items: center;
    gap: .6rem;
    font-size: .9rem;
}

.af-field-inline input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: #3d8b2e;
    cursor: pointer;
}

/* Titre de section interne (ex: "Frais de production") */
.af-section-title {
    font-size: .95rem;
    font-weight: 700;
    color: #3d8b2e;
    margin: .5rem 0 -.25rem;
    padding-bottom: .5rem;
    border-bottom: 2px solid #e5e7eb;
    display: flex;
    align-items: center;
    gap: .45rem;
}

.af-hint {
    display: inline-flex;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #0ea5e9;
    color: #fff;
    font-size: .7rem;
    font-weight: 700;
    align-items: center;
    justify-content: center;
    cursor: help;
    font-style: normal;
}

/* ── Radio Cards ────────────────────────────────────────────────────────────── */
.af-radio-group {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .75rem;
}

@media (max-width: 550px) {
    .af-radio-group { grid-template-columns: 1fr; }
}

.af-radio-card {
    border: 2px solid #e5e7eb;
    border-radius: 8px;
    padding: .8rem .65rem;
    cursor: pointer;
    transition: border-color .2s, background .2s;
    text-align: center;
}

.af-radio-card:hover { border-color: #3d8b2e; background: rgba(61,139,46,.04); }
.af-radio-card.active { border-color: #3d8b2e; background: rgba(61,139,46,.08); }
.af-radio-card input[type="radio"] { display: none; }

.af-radio-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .3rem;
}

.af-radio-content i { font-size: 1.3rem; color: #3d8b2e; }
.af-radio-content strong { font-size: .875rem; color: #1f2937; }
.af-radio-content small { font-size: .75rem; color: #6b7280; }

/* ── Checkbox group ─────────────────────────────────────────────────────────── */
.af-checkbox-group {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .5rem .75rem;
}

@media (max-width: 500px) {
    .af-checkbox-group { grid-template-columns: 1fr; }
}

.af-checkbox-item {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: .875rem;
    cursor: pointer;
}

.af-checkbox-item input[type="checkbox"] {
    width: 17px;
    height: 17px;
    accent-color: #3d8b2e;
    cursor: pointer;
    flex-shrink: 0;
}

/* ── Slider ─────────────────────────────────────────────────────────────────── */
.af-slider {
    width: 100%;
    -webkit-appearance: none;
    appearance: none;
    height: 6px;
    border-radius: 3px;
    background: #e5e7eb;
    outline: none;
    cursor: pointer;
    margin: .25rem 0;
    accent-color: #3d8b2e;
}

.af-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #3d8b2e;
    border: 3px solid #fff;
    box-shadow: 0 2px 6px rgba(61,139,46,.4);
    cursor: pointer;
}

.af-slider::-moz-range-thumb {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #3d8b2e;
    border: 3px solid #fff;
    box-shadow: 0 2px 6px rgba(61,139,46,.4);
    cursor: pointer;
    border: none;
}

.af-slider::-webkit-slider-runnable-track {
    height: 6px;
    border-radius: 3px;
    background: #e5e7eb;
}

.af-slider-marks {
    display: flex;
    justify-content: space-between;
    font-size: .7rem;
    color: #6b7280;
    margin-top: .2rem;
}

/* ── Boutons ────────────────────────────────────────────────────────────────── */
.af-btn-primary,
.af-btn-secondary,
.af-btn-ghost,
.af-btn-delete,
.af-btn-share {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .75rem 1.25rem;
    border-radius: 8px;
    font-size: .9375rem;
    font-weight: 600;
    cursor: pointer;
    transition: all .2s ease;
    border: 2px solid transparent;
    text-decoration: none;
    font-family: inherit;
    line-height: 1.4;
}

.af-btn-primary {
    background: #3d8b2e;   /* vert — valeur en dur */
    color: #fff !important;
    width: 100%;
    font-size: 1rem;
    padding: .875rem 1.25rem;
}

.af-btn-primary:hover {
    background: #2d6b22;
    color: #fff !important;
    text-decoration: none;
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(61,139,46,.35);
}

.af-btn-secondary {
    background: #f97316;
    color: #fff !important;
}

.af-btn-secondary:hover {
    background: #ea6c0a;
    color: #fff !important;
    text-decoration: none;
}

.af-btn-ghost {
    background: transparent;
    color: #6b7280;
    border-color: #e5e7eb;
    font-size: .875rem;
    margin-top: .5rem;
    width: auto;
}

.af-btn-ghost:hover {
    border-color: #3d8b2e;
    color: #3d8b2e;
    text-decoration: none;
}

.af-btn-share {
    background: #1877f2;
    color: #fff !important;
}

.af-btn-share:hover { background: #1560c9; }

.af-btn-delete {
    background: transparent;
    color: #d1d5db;
    border: none;
    padding: .25rem .5rem;
    font-size: .85rem;
    cursor: pointer;
    transition: color .2s;
    width: auto;
}

.af-btn-delete:hover { color: #ef4444; }

.af-btn-sm { padding: .4rem .8rem !important; font-size: .82rem; width: auto !important; }

.af-btn-active {
    background: #3d8b2e !important;
    color: #fff !important;
    border-color: #3d8b2e !important;
}

.af-form-actions {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
}

/* ── Résultats (panneau) ────────────────────────────────────────────────────── */
.af-results-panel {
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0,0,0,.08);
    padding: 1.25rem;
    margin-bottom: 1.5rem;
    width: 100%;
    animation: af-slide-up .3s ease;
}

@keyframes af-slide-up {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
}

.af-results-header {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin-bottom: 1.1rem;
    flex-wrap: wrap;
}

.af-results-header i { font-size: 1.4rem; color: #3d8b2e; }
.af-results-header h3 { font-size: 1.1rem; font-weight: 700; margin: 0; flex: 1; color: #1f2937; }
.af-results-header p  { font-size: .875rem; color: #6b7280; margin: 0; width: 100%; }

/* ── KPI Row ────────────────────────────────────────────────────────────────── */
.af-kpi-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: .875rem;
    margin-bottom: 1.25rem;
}

.af-kpi {
    background: #fafafa;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: .875rem .75rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: .3rem;
    align-items: center;
}

.af-kpi i { font-size: 1.2rem; color: #3d8b2e; margin-bottom: .15rem; }

.af-kpi-primary { border-color: #3d8b2e; background: rgba(61,139,46,.05); }
.af-kpi-green   { border-color: #3d8b2e; background: rgba(61,139,46,.05); }
.af-kpi-orange  { border-color: #f97316; background: rgba(249,115,22,.05); }
.af-kpi-red     { border-color: #ef4444; background: rgba(239,68,68,.05); }

.af-kpi-label {
    font-size: .72rem;
    color: #6b7280;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .03em;
    line-height: 1.3;
}

.af-kpi-value {
    font-size: 1.3rem;
    font-weight: 800;
    color: #3d8b2e;
    line-height: 1;
}

/* ── Breakdown ──────────────────────────────────────────────────────────────── */
.af-breakdown { margin-bottom: 1.25rem; }

.af-breakdown h4 {
    font-size: .9rem;
    font-weight: 700;
    margin: 0 0 .75rem;
    display: flex;
    align-items: center;
    gap: .35rem;
    color: #1f2937;
}

.af-breakdown h4 i { color: #3d8b2e; }

.af-breakdown-row {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .45rem 0;
    border-bottom: 1px solid #e5e7eb;
    font-size: .835rem;
    flex-wrap: wrap;
}

.af-breakdown-row:last-child { border-bottom: none; }

.af-dot {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    flex-shrink: 0;
}

.af-breakdown-label { flex: 1; color: #1f2937; min-width: 0; }
.af-breakdown-pct   { font-size: .75rem; color: #6b7280; white-space: nowrap; }
.af-breakdown-val   { font-weight: 700; color: #1f2937; white-space: nowrap; }

.af-mini-bar-wrap {
    width: 60px;
    height: 5px;
    background: #e5e7eb;
    border-radius: 3px;
    overflow: hidden;
    flex-shrink: 0;
}

.af-mini-bar { height: 100%; border-radius: 3px; transition: width .5s ease; }

/* ── Graphique ──────────────────────────────────────────────────────────────── */
.af-chart-wrap {
    margin: 1.25rem auto;
    max-width: 320px;
}

/* ── Barre de progression ───────────────────────────────────────────────────── */
.af-progress-section { margin-bottom: 1.1rem; }

.af-progress-header {
    display: flex;
    justify-content: space-between;
    font-size: .875rem;
    margin-bottom: .35rem;
    font-weight: 500;
}

.af-progress-bar {
    height: 10px;
    background: #e5e7eb;
    border-radius: 5px;
    overflow: hidden;
}

.af-progress-tall { height: 14px; }

.af-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #3d8b2e, #5ab02a);
    border-radius: 5px;
    transition: width .6s ease;
}

.af-progress-green {
    background: linear-gradient(90deg, #3d8b2e, #5ab02a);
}

/* ── Assurance — offres ─────────────────────────────────────────────────────── */
.af-offer-card {
    border: 2px solid #e5e7eb;
    border-radius: 12px;
    padding: 1.1rem;
    margin-bottom: .875rem;
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: .875rem;
    align-items: start;
    transition: border-color .2s, box-shadow .2s;
}

.af-offer-card:hover { border-color: #3d8b2e; }
.af-offer-best { border-color: #3d8b2e; background: rgba(61,139,46,.04); }

@media (max-width: 600px) {
    .af-offer-card { grid-template-columns: 1fr; }
    .af-offer-details { text-align: left; }
    .af-offer-actions { justify-content: flex-start; }
}

.af-offer-logo {
    width: 44px;
    height: 44px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 800;
    font-size: .65rem;
    text-align: center;
    flex-shrink: 0;
}

.af-offer-logo-sm {
    display: inline-flex;
    width: 26px;
    height: 26px;
    border-radius: 6px;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 800;
    font-size: .6rem;
    vertical-align: middle;
    margin-right: .3rem;
}

.af-offer-title {
    font-weight: 700;
    font-size: .95rem;
    margin-bottom: .25rem;
    display: flex;
    align-items: center;
    gap: .45rem;
    flex-wrap: wrap;
}

.af-offer-stars { margin-bottom: .35rem; }
.af-star        { color: #f59e0b; font-size: .82rem; }
.af-star-empty  { color: #d1d5db; font-size: .82rem; }
.af-score-text  { font-size: .78rem; color: #6b7280; margin-left: .2rem; }

.af-badge-best {
    background: #3d8b2e;
    color: #fff;
    font-size: .65rem;
    font-weight: 700;
    padding: .12rem .45rem;
    border-radius: 999px;
}

.af-offer-strengths { display: flex; flex-wrap: wrap; gap: .3rem; }

.af-tag {
    background: #fafafa;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    padding: .12rem .55rem;
    font-size: .7rem;
    color: #6b7280;
    display: inline-flex;
    align-items: center;
    gap: .2rem;
}

.af-tag i { color: #3d8b2e; font-size: .62rem; }

/* Détail offre */
.af-offer-card > .af-offer-info { grid-column: 1 / -1; }

/* Layout 3 colonnes sur tablette/desktop pour les offres */
@media (min-width: 600px) {
    .af-offer-card {
        grid-template-columns: 48px 1fr auto;
    }
    .af-offer-card > .af-offer-info { grid-column: auto; }
}

.af-offer-details { text-align: right; }

.af-offer-price {
    font-size: 1.5rem;
    font-weight: 800;
    color: #3d8b2e;
    margin-bottom: .45rem;
}

.af-offer-price small { font-size: .72rem; font-weight: 400; color: #6b7280; }

.af-offer-table { font-size: .78rem; border-collapse: collapse; margin-bottom: .65rem; width: 100%; }
.af-offer-table th { color: #6b7280; font-weight: 500; text-align: left; padding: .18rem .35rem; }
.af-offer-table td { font-weight: 700; text-align: right; padding: .18rem .35rem; }

.af-offer-actions { display: flex; gap: .45rem; flex-wrap: wrap; justify-content: flex-end; }

/* Comparaison côte à côte */
.af-compare-section { margin-top: 1.25rem; padding-top: 1.1rem; border-top: 2px solid #e5e7eb; }
.af-compare-section h4 { font-size: .95rem; font-weight: 700; margin: 0 0 .875rem; display: flex; align-items: center; gap: .35rem; }
.af-compare-section h4 i { color: #0ea5e9; }

.af-compare-table { width: 100%; border-collapse: collapse; font-size: .82rem; overflow-x: auto; display: block; }
.af-compare-table th, .af-compare-table td { padding: .5rem .65rem; border: 1px solid #e5e7eb; text-align: center; }
.af-compare-table th { background: #fafafa; font-weight: 600; font-size: .77rem; }
.af-compare-table tr:nth-child(even) td { background: #fafafa; }

/* ── Budget — entrées ───────────────────────────────────────────────────────── */
.af-kpi-budget { margin-bottom: 0; }

.af-filter-bar { display: flex; gap: .45rem; flex-wrap: wrap; margin-left: auto; }

.af-select-sm {
    padding: .32rem .55rem;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    font-size: .78rem;
    cursor: pointer;
    background: #fff;
}

.af-entries-list { padding: .35rem 0; }

.af-entry-row {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .55rem 0;
    border-bottom: 1px solid #e5e7eb;
    font-size: .855rem;
    flex-wrap: nowrap;
}

.af-entry-row:last-child { border-bottom: none; }
.af-entry-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.af-entry-info { flex: 1; min-width: 0; overflow: hidden; }
.af-entry-info strong { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.af-entry-info small  { color: #6b7280; font-size: .77rem; }
.af-entry-info em     { color: #6b7280; font-size: .77rem; }
.af-entry-date   { color: #6b7280; font-size: .77rem; white-space: nowrap; flex-shrink: 0; }
.af-entry-amount { font-weight: 700; color: #1f2937; white-space: nowrap; min-width: 65px; text-align: right; flex-shrink: 0; }

.af-empty-state { text-align: center; color: #6b7280; padding: 1.75rem 0; font-size: .9rem; }
.af-empty-state i { font-size: 1.75rem; display: block; margin-bottom: .45rem; opacity: .35; }

/* ── Boîte de conseils ──────────────────────────────────────────────────────── */
.af-tips-box {
    background: rgba(61,139,46,.06);
    border: 1px solid rgba(61,139,46,.2);
    border-radius: 8px;
    padding: .875rem 1.1rem;
    margin-bottom: 1.1rem;
    display: none;
}

.af-tips-box h4 { font-size: .9rem; font-weight: 700; margin: 0 0 .55rem; color: #2d6b22; display: flex; align-items: center; gap: .35rem; }
.af-tips-box ul { margin: 0; padding-left: 1.1rem; }
.af-tips-box li { font-size: .85rem; color: #1f2937; margin-bottom: .3rem; line-height: 1.5; }

/* ── Rentabilité élevage ────────────────────────────────────────────────────── */
.af-rentability-box {
    background: rgba(61,139,46,.05);
    border: 1px solid rgba(61,139,46,.2);
    border-radius: 8px;
    padding: 1.1rem;
    margin-bottom: 1.25rem;
}

.af-rent-header { display: flex; align-items: center; gap: .45rem; font-size: .95rem; font-weight: 700; margin-bottom: .55rem; color: #3d8b2e; }
.af-rent-header i { font-size: 1.05rem; }
.af-rentability-box p { font-size: .88rem; margin: 0 0 .65rem; }
.af-rent-sub { font-size: .84rem !important; color: #6b7280 !important; margin-top: .45rem !important; }

.af-margin-section { background: #fafafa; border-radius: 8px; padding: 1.1rem; margin-bottom: 1.25rem; }
.af-margin-section h4 { font-size: .9rem; font-weight: 700; margin: 0 0 .75rem; color: #1f2937; }

/* ── Export PDF ─────────────────────────────────────────────────────────────── */
.af-export-section { text-align: center; margin-bottom: 1.1rem; }

/* ── CTA ────────────────────────────────────────────────────────────────────── */
.af-cta-box {
    background: linear-gradient(135deg, rgba(61,139,46,.07) 0%, rgba(90,176,42,.07) 100%);
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 1.25rem;
    text-align: center;
    margin-bottom: .875rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .65rem;
}

.af-cta-box p { margin: 0; font-size: .9rem; }
.af-cta-box .af-btn-secondary,
.af-cta-box .af-btn-share { min-width: 180px; }

/* ── Disclaimer ─────────────────────────────────────────────────────────────── */
.af-disclaimer {
    font-size: .79rem;
    color: #6b7280;
    background: #fafafa;
    border-radius: 8px;
    padding: .7rem .9rem;
    margin-bottom: .875rem;
    display: flex;
    align-items: flex-start;
    gap: .45rem;
    line-height: 1.5;
}

.af-disclaimer i { color: #0ea5e9; flex-shrink: 0; margin-top: .1rem; }

/* ── Toast ──────────────────────────────────────────────────────────────────── */
.af-toast {
    position: fixed;
    bottom: 1.25rem;
    right: 1.25rem;
    padding: .65rem 1.1rem;
    border-radius: 8px;
    font-size: .875rem;
    font-weight: 600;
    color: #fff;
    z-index: 99999;
    box-shadow: 0 8px 40px rgba(0,0,0,.12);
    opacity: 0;
    transform: translateY(8px);
    transition: all .25s ease;
    pointer-events: none;
}

.af-toast-show    { opacity: 1; transform: translateY(0); }
.af-toast-success { background: #3d8b2e; }
.af-toast-info    { background: #0ea5e9; }
.af-toast-error   { background: #ef4444; }
