/**
 * ASMendes Design System - componentes oficiais
 * Prefixo: .asm-*
 * Funciona com Tailwind CDN (preflight: false) + tema ASMendes
 *
 * Paleta:
 *   navy:    #0a2540 (700)  / #051937 (900) / #1a3556 (600)
 *   gold:    #c9a35c (500)  / #d8b97a (400) / #b08e4a (600)
 *   cream:   #f6f1e7 (50)   / #ebe3d2 (100)
 *   ink:     #0b1220 (texto principal)
 *
 * Princípio: nunca aplicar fundo dourado pleno em estado ATIVO de navegação.
 * Ativo = navy escuro + barra dourada lateral. Hover = leve cream/glass.
 */

/* ============================================================
 * Base tokens (re-declarados aqui pra independência)
 * ============================================================ */
:root {
    --asm-navy-900:#051937;
    --asm-navy-700:#0a2540;
    --asm-navy-600:#1a3556;
    --asm-gold-600:#b08e4a;
    --asm-gold-500:#c9a35c;
    --asm-gold-400:#d8b97a;
    --asm-cream-50:#f6f1e7;
    --asm-cream-100:#ebe3d2;
    --asm-ink:#0b1220;
    --asm-mute:#5b6478;
    --asm-line:rgba(11,18,32,0.08);
    --asm-line-strong:rgba(11,18,32,0.16);

    --asm-radius-sm:8px;
    --asm-radius:14px;
    --asm-radius-lg:22px;

    --asm-shadow-sm:0 2px 8px rgba(11,18,32,0.06);
    --asm-shadow:0 10px 30px -12px rgba(11,18,32,0.18), 0 4px 14px -8px rgba(11,18,32,0.08);
    --asm-shadow-lg:0 30px 60px -20px rgba(11,18,32,0.30), 0 12px 24px -10px rgba(11,18,32,0.12);
    --asm-shadow-gold:0 12px 28px -10px rgba(201,163,92,0.45);

    --asm-trans:200ms cubic-bezier(.2,.7,.2,1);
}

/* ============================================================
 * .asm-card - card base
 * ============================================================ */
.asm-card{
    background:#ffffff;
    border:1px solid var(--asm-line);
    border-radius:var(--asm-radius);
    padding:1.25rem;
    box-shadow:var(--asm-shadow-sm);
    transition:transform var(--asm-trans), box-shadow var(--asm-trans), border-color var(--asm-trans);
    position:relative;
}
.asm-card:hover{
    box-shadow:var(--asm-shadow);
    border-color:var(--asm-line-strong);
}
.asm-card--pad-lg{ padding:1.75rem; }
.asm-card--pad-sm{ padding:0.875rem; }

.asm-card--hover-lift:hover{ transform:translateY(-3px); }

.asm-card--dark{
    background:linear-gradient(135deg, var(--asm-navy-900) 0%, var(--asm-navy-700) 100%);
    border-color:rgba(255,255,255,0.06);
    color:#fff;
}
.asm-card--dark .asm-card__title{ color:#fff; }
.asm-card--dark .asm-card__sub{ color:rgba(255,255,255,0.65); }

.asm-card--gold{
    background:linear-gradient(135deg, var(--asm-gold-500) 0%, var(--asm-gold-400) 100%);
    border-color:transparent;
    color:var(--asm-navy-900);
    box-shadow:var(--asm-shadow-gold);
}

.asm-card--glass{
    background:rgba(255,255,255,0.65);
    backdrop-filter:saturate(140%) blur(14px);
    -webkit-backdrop-filter:saturate(140%) blur(14px);
    border-color:rgba(255,255,255,0.6);
}
.asm-card--glass-dark{
    background:rgba(10,37,64,0.55);
    backdrop-filter:saturate(140%) blur(14px);
    -webkit-backdrop-filter:saturate(140%) blur(14px);
    border-color:rgba(255,255,255,0.08);
    color:#fff;
}

.asm-card__head{
    display:flex; align-items:center; gap:.75rem; margin-bottom:.75rem;
}
.asm-card__title{
    font-family:'Playfair Display', Georgia, serif;
    font-size:1.05rem;
    color:var(--asm-navy-900);
    margin:0;
    font-weight:600;
    letter-spacing:.01em;
}
.asm-card__sub{
    font-size:.78rem;
    color:var(--asm-mute);
    margin-top:.15rem;
}

/* topo dourado fino opcional */
.asm-card--top-gold::before{
    content:'';
    position:absolute; top:0; left:0; right:0; height:3px;
    background:linear-gradient(90deg, transparent, var(--asm-gold-500), transparent);
    border-radius:var(--asm-radius) var(--asm-radius) 0 0;
}

/* ============================================================
 * .asm-btn - botões
 * ============================================================ */
.asm-btn{
    display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
    padding:.7rem 1.15rem;
    border-radius:10px;
    font-weight:600;
    font-size:.9rem;
    line-height:1;
    border:1px solid transparent;
    cursor:pointer;
    transition:transform var(--asm-trans), box-shadow var(--asm-trans), background var(--asm-trans), color var(--asm-trans), border-color var(--asm-trans);
    text-decoration:none;
    white-space:nowrap;
    user-select:none;
}
.asm-btn:disabled,
.asm-btn[aria-disabled="true"]{
    opacity:.55; cursor:not-allowed; transform:none !important;
}
.asm-btn:focus-visible{
    outline:2px solid var(--asm-gold-500);
    outline-offset:2px;
}

.asm-btn--primary{
    background:linear-gradient(135deg, var(--asm-navy-900), var(--asm-navy-700));
    color:#fff;
    border-color:var(--asm-navy-700);
    box-shadow:var(--asm-shadow-sm);
}
.asm-btn--primary:hover{
    transform:translateY(-1px);
    box-shadow:var(--asm-shadow);
}

.asm-btn--gold{
    background:linear-gradient(135deg, var(--asm-gold-500), var(--asm-gold-400));
    color:var(--asm-navy-900);
    border-color:var(--asm-gold-600);
    box-shadow:var(--asm-shadow-gold);
}
.asm-btn--gold:hover{
    transform:translateY(-1px);
    filter:brightness(1.04);
}

.asm-btn--secondary{
    background:#fff;
    color:var(--asm-navy-900);
    border-color:var(--asm-line-strong);
}
.asm-btn--secondary:hover{
    border-color:var(--asm-gold-500);
    color:var(--asm-navy-700);
}

.asm-btn--ghost{
    background:transparent;
    color:var(--asm-navy-700);
    border-color:transparent;
}
.asm-btn--ghost:hover{
    background:var(--asm-cream-50);
    color:var(--asm-navy-900);
}

.asm-btn--danger{
    background:#fff;
    color:#b91c1c;
    border-color:rgba(185,28,28,0.3);
}
.asm-btn--danger:hover{
    background:#fef2f2;
    border-color:#b91c1c;
}

.asm-btn--sm{ padding:.5rem .85rem; font-size:.8rem; border-radius:8px; }
.asm-btn--lg{ padding:.95rem 1.5rem; font-size:1rem; border-radius:12px; }
.asm-btn--block{ display:flex; width:100%; }

.asm-btn--icon{ padding:.55rem; width:2.4rem; height:2.4rem; }
.asm-btn--icon.asm-btn--sm{ width:2rem; height:2rem; padding:.35rem; }

/* ============================================================
 * .asm-stat - KPI / estatística
 * ============================================================ */
.asm-stat{
    display:flex; flex-direction:column; gap:.35rem;
    padding:1.1rem 1.25rem;
    background:#fff;
    border:1px solid var(--asm-line);
    border-radius:var(--asm-radius);
    box-shadow:var(--asm-shadow-sm);
    position:relative;
    overflow:hidden;
    transition:transform var(--asm-trans), box-shadow var(--asm-trans);
}
.asm-stat:hover{ transform:translateY(-2px); box-shadow:var(--asm-shadow); }
.asm-stat__label{
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--asm-mute);
    font-weight:600;
}
.asm-stat__value{
    font-family:'Playfair Display', Georgia, serif;
    font-size:1.85rem;
    color:var(--asm-navy-900);
    line-height:1;
    font-weight:700;
    letter-spacing:-.01em;
}
.asm-stat__sub{
    font-size:.78rem;
    color:var(--asm-mute);
    display:flex; align-items:center; gap:.35rem;
}
.asm-stat__delta--up{ color:#15803d; font-weight:600; }
.asm-stat__delta--down{ color:#b91c1c; font-weight:600; }

.asm-stat--gold{
    background:linear-gradient(135deg, var(--asm-cream-50), #fff);
    border-color:rgba(201,163,92,0.25);
}
.asm-stat--gold .asm-stat__value{
    background:linear-gradient(135deg, var(--asm-gold-600), var(--asm-gold-500));
    -webkit-background-clip:text; background-clip:text; color:transparent;
}
.asm-stat--dark{
    background:linear-gradient(135deg, var(--asm-navy-900), var(--asm-navy-700));
    border-color:transparent; color:#fff;
}
.asm-stat--dark .asm-stat__label{ color:rgba(255,255,255,0.6); }
.asm-stat--dark .asm-stat__value{ color:#fff; }
.asm-stat--dark .asm-stat__sub{ color:rgba(255,255,255,0.55); }

.asm-stat__icon{
    position:absolute; top:.85rem; right:.85rem;
    width:36px; height:36px;
    display:flex; align-items:center; justify-content:center;
    border-radius:10px;
    background:linear-gradient(135deg, var(--asm-gold-500), var(--asm-gold-400));
    color:var(--asm-navy-900);
    box-shadow:0 6px 14px -6px rgba(201,163,92,0.5);
}
.asm-stat--dark .asm-stat__icon{
    background:rgba(255,255,255,0.1);
    color:var(--asm-gold-400);
    box-shadow:none;
}

/* ============================================================
 * .asm-pill - badge / pill
 * ============================================================ */
.asm-pill{
    display:inline-flex; align-items:center; gap:.35rem;
    padding:.25rem .65rem;
    font-size:.72rem;
    font-weight:600;
    letter-spacing:.02em;
    border-radius:999px;
    background:var(--asm-cream-50);
    color:var(--asm-navy-700);
    border:1px solid var(--asm-line);
    line-height:1.2;
    white-space:nowrap;
}
.asm-pill--gold{ background:linear-gradient(135deg, var(--asm-gold-500), var(--asm-gold-400)); color:var(--asm-navy-900); border-color:transparent; }
.asm-pill--navy{ background:var(--asm-navy-900); color:#fff; border-color:transparent; }
.asm-pill--green{ background:#dcfce7; color:#15803d; border-color:rgba(21,128,61,0.2); }
.asm-pill--red{ background:#fee2e2; color:#b91c1c; border-color:rgba(185,28,28,0.2); }
.asm-pill--blue{ background:#dbeafe; color:#1d4ed8; border-color:rgba(29,78,216,0.2); }
.asm-pill--amber{ background:#fef3c7; color:#92400e; border-color:rgba(146,64,14,0.2); }
.asm-pill--mute{ background:#f1f3f8; color:var(--asm-mute); border-color:transparent; }
.asm-pill--outline{ background:transparent; }

.asm-pill--dot::before{
    content:''; width:6px; height:6px; border-radius:50%;
    background:currentColor; opacity:.7;
}

/* ============================================================
 * .asm-input / textarea / select
 * ============================================================ */
.asm-input,
.asm-textarea,
.asm-select{
    width:100%;
    padding:.7rem .9rem;
    background:#fff;
    border:1px solid var(--asm-line-strong);
    border-radius:10px;
    font-size:.9rem;
    color:var(--asm-ink);
    transition:border-color var(--asm-trans), box-shadow var(--asm-trans), background var(--asm-trans);
    font-family:inherit;
}
.asm-input:hover,
.asm-textarea:hover,
.asm-select:hover{
    border-color:rgba(11,18,32,0.28);
}
.asm-input:focus,
.asm-textarea:focus,
.asm-select:focus{
    outline:none;
    border-color:var(--asm-gold-500);
    box-shadow:0 0 0 3px rgba(201,163,92,0.18);
}
.asm-input::placeholder,
.asm-textarea::placeholder{
    color:var(--asm-mute);
    opacity:.7;
}
.asm-textarea{ min-height:96px; resize:vertical; line-height:1.5; }

.asm-select{
    appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%230a2540' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right .85rem center;
    padding-right:2.25rem;
}

.asm-field{
    display:flex; flex-direction:column; gap:.35rem;
}
.asm-field__label{
    font-size:.78rem;
    font-weight:600;
    color:var(--asm-navy-700);
    letter-spacing:.01em;
}
.asm-field__hint{
    font-size:.72rem;
    color:var(--asm-mute);
}
.asm-field__error{
    font-size:.74rem;
    color:#b91c1c;
}
.asm-field--error .asm-input,
.asm-field--error .asm-textarea,
.asm-field--error .asm-select{
    border-color:#b91c1c;
    box-shadow:0 0 0 3px rgba(185,28,28,0.12);
}

/* ============================================================
 * .asm-table - tabela
 * ============================================================ */
.asm-table-wrap{
    background:#fff;
    border:1px solid var(--asm-line);
    border-radius:var(--asm-radius);
    overflow:hidden;
    box-shadow:var(--asm-shadow-sm);
}
.asm-table{
    width:100%;
    border-collapse:collapse;
    font-size:.88rem;
}
.asm-table thead{
    background:linear-gradient(135deg, var(--asm-navy-900), var(--asm-navy-700));
    color:#fff;
}
.asm-table thead th{
    padding:.85rem 1rem;
    text-align:left;
    font-weight:600;
    font-size:.74rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    border-bottom:2px solid var(--asm-gold-500);
}
.asm-table tbody td{
    padding:.85rem 1rem;
    border-bottom:1px solid var(--asm-line);
    color:var(--asm-ink);
    vertical-align:middle;
}
.asm-table tbody tr{
    transition:background var(--asm-trans);
}
.asm-table tbody tr:hover{
    background:var(--asm-cream-50);
}
.asm-table tbody tr:last-child td{ border-bottom:none; }
.asm-table--compact thead th{ padding:.6rem .85rem; }
.asm-table--compact tbody td{ padding:.6rem .85rem; }

/* ============================================================
 * .asm-section-head - cabecalho de secao com eyebrow + titulo + sub
 * ============================================================ */
.asm-section-head{
    display:flex; flex-direction:column; gap:.4rem;
    margin-bottom:1.25rem;
}
.asm-section-head__eyebrow{
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.16em;
    color:var(--asm-gold-600);
    font-weight:700;
    display:inline-flex; align-items:center; gap:.5rem;
}
.asm-section-head__eyebrow::before{
    content:''; width:18px; height:1px; background:var(--asm-gold-500);
}
.asm-section-head__title{
    font-family:'Playfair Display', Georgia, serif;
    font-size:1.65rem;
    color:var(--asm-navy-900);
    margin:0;
    font-weight:700;
    letter-spacing:-.005em;
    line-height:1.2;
}
.asm-section-head__sub{
    color:var(--asm-mute);
    font-size:.95rem;
    max-width:60ch;
    line-height:1.5;
}
.asm-section-head--center{ align-items:center; text-align:center; }
.asm-section-head--center .asm-section-head__sub{ margin:0 auto; }

/* ============================================================
 * .asm-empty - empty state
 * ============================================================ */
.asm-empty{
    text-align:center;
    padding:3rem 1.5rem;
    background:#fff;
    border:1.5px dashed var(--asm-line-strong);
    border-radius:var(--asm-radius);
}
.asm-empty__icon{
    width:60px; height:60px; margin:0 auto 1rem;
    border-radius:14px;
    background:var(--asm-cream-50);
    color:var(--asm-gold-600);
    display:flex; align-items:center; justify-content:center;
}
.asm-empty__title{
    font-family:'Playfair Display', Georgia, serif;
    color:var(--asm-navy-900);
    font-size:1.15rem;
    margin-bottom:.35rem;
    font-weight:600;
}
.asm-empty__sub{
    color:var(--asm-mute);
    font-size:.88rem;
    max-width:42ch;
    margin:0 auto .9rem;
}

/* ============================================================
 * .asm-divider
 * ============================================================ */
.asm-divider{
    height:1px;
    background:linear-gradient(90deg, transparent, var(--asm-line-strong), transparent);
    margin:1.5rem 0;
    border:0;
}
.asm-divider--gold{
    background:linear-gradient(90deg, transparent, var(--asm-gold-500), transparent);
}
.asm-divider--vertical{
    width:1px; height:auto; align-self:stretch;
    background:linear-gradient(180deg, transparent, var(--asm-line-strong), transparent);
    margin:0 1rem;
}

/* ============================================================
 * .asm-tooltip
 * ============================================================ */
.asm-tooltip{
    position:relative;
    display:inline-flex;
}
.asm-tooltip[data-tip]:hover::after,
.asm-tooltip[data-tip]:focus-visible::after{
    content:attr(data-tip);
    position:absolute;
    bottom:calc(100% + 8px); left:50%;
    transform:translateX(-50%);
    background:var(--asm-navy-900);
    color:#fff;
    padding:.4rem .6rem;
    border-radius:6px;
    font-size:.72rem;
    white-space:nowrap;
    box-shadow:var(--asm-shadow);
    pointer-events:none;
    z-index:60;
}
.asm-tooltip[data-tip]:hover::before,
.asm-tooltip[data-tip]:focus-visible::before{
    content:'';
    position:absolute;
    bottom:calc(100% + 2px); left:50%;
    transform:translateX(-50%) rotate(45deg);
    width:8px; height:8px;
    background:var(--asm-navy-900);
    pointer-events:none;
    z-index:60;
}

/* ============================================================
 * .asm-avatar
 * ============================================================ */
.asm-avatar{
    width:40px; height:40px;
    border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    font-weight:700;
    font-size:.85rem;
    color:var(--asm-navy-900);
    background:linear-gradient(135deg, var(--asm-gold-400), var(--asm-gold-500));
    border:2px solid #fff;
    box-shadow:var(--asm-shadow-sm);
    flex-shrink:0;
    text-transform:uppercase;
    letter-spacing:.02em;
    overflow:hidden;
}
.asm-avatar img{ width:100%; height:100%; object-fit:cover; }
.asm-avatar--sm{ width:30px; height:30px; font-size:.7rem; }
.asm-avatar--lg{ width:56px; height:56px; font-size:1.05rem; }
.asm-avatar--xl{ width:80px; height:80px; font-size:1.45rem; border-width:3px; }

.asm-avatar--navy{ background:linear-gradient(135deg, var(--asm-navy-700), var(--asm-navy-900)); color:#fff; }
.asm-avatar--cream{ background:var(--asm-cream-100); color:var(--asm-navy-900); }

.asm-avatar-stack{
    display:inline-flex; align-items:center;
}
.asm-avatar-stack > .asm-avatar:not(:first-child){
    margin-left:-.6rem;
}

/* ============================================================
 * .asm-icon-box - quadradinho com icone
 * ============================================================ */
.asm-icon-box{
    width:42px; height:42px;
    border-radius:12px;
    background:linear-gradient(135deg, var(--asm-gold-500), var(--asm-gold-400));
    color:var(--asm-navy-900);
    display:inline-flex; align-items:center; justify-content:center;
    flex-shrink:0;
    box-shadow:0 6px 14px -6px rgba(201,163,92,0.5);
}
.asm-icon-box--sm{ width:32px; height:32px; border-radius:9px; }
.asm-icon-box--lg{ width:56px; height:56px; border-radius:14px; }

.asm-icon-box--navy{
    background:linear-gradient(135deg, var(--asm-navy-700), var(--asm-navy-900));
    color:var(--asm-gold-400);
    box-shadow:0 6px 14px -6px rgba(10,37,64,0.5);
}
.asm-icon-box--ghost{
    background:var(--asm-cream-50);
    color:var(--asm-navy-700);
    box-shadow:none;
    border:1px solid var(--asm-line);
}
.asm-icon-box--green{ background:linear-gradient(135deg,#15803d,#22c55e); color:#fff; box-shadow:0 6px 14px -6px rgba(21,128,61,0.5); }
.asm-icon-box--red{ background:linear-gradient(135deg,#b91c1c,#ef4444); color:#fff; box-shadow:0 6px 14px -6px rgba(185,28,28,0.5); }
.asm-icon-box--blue{ background:linear-gradient(135deg,#1d4ed8,#3b82f6); color:#fff; box-shadow:0 6px 14px -6px rgba(29,78,216,0.5); }

/* ============================================================
 * Utilitarios
 * ============================================================ */
.asm-glass{
    background:rgba(255,255,255,0.55);
    backdrop-filter:saturate(140%) blur(14px);
    -webkit-backdrop-filter:saturate(140%) blur(14px);
    border:1px solid rgba(255,255,255,0.6);
    border-radius:var(--asm-radius);
}
.asm-glass--dark{
    background:rgba(10,37,64,0.55);
    backdrop-filter:saturate(140%) blur(14px);
    -webkit-backdrop-filter:saturate(140%) blur(14px);
    border-color:rgba(255,255,255,0.08);
    color:#fff;
}

.asm-gradient-text{
    background:linear-gradient(135deg, var(--asm-gold-600), var(--asm-gold-400));
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
}
.asm-gradient-text--navy{
    background:linear-gradient(135deg, var(--asm-navy-900), var(--asm-navy-600));
    -webkit-background-clip:text; background-clip:text; color:transparent;
}

.asm-link{
    color:var(--asm-navy-700);
    font-weight:600;
    text-decoration:none;
    border-bottom:1px solid var(--asm-gold-500);
    transition:color var(--asm-trans), border-color var(--asm-trans);
}
.asm-link:hover{
    color:var(--asm-navy-900);
    border-color:var(--asm-gold-600);
}

/* eyebrow standalone */
.asm-eyebrow{
    display:inline-flex; align-items:center; gap:.5rem;
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.16em;
    color:var(--asm-gold-600);
    font-weight:700;
}
.asm-eyebrow::before{
    content:''; width:18px; height:1px; background:var(--asm-gold-500);
}

/* kbd estilo */
.asm-kbd{
    display:inline-block;
    padding:.15rem .4rem;
    font-family:'JetBrains Mono', ui-monospace, monospace;
    font-size:.72rem;
    background:#fff;
    border:1px solid var(--asm-line-strong);
    border-bottom-width:2px;
    border-radius:5px;
    color:var(--asm-navy-700);
    line-height:1;
}

/* code chip inline */
.asm-code{
    font-family:'JetBrains Mono', ui-monospace, monospace;
    font-size:.78rem;
    background:var(--asm-cream-50);
    color:var(--asm-navy-900);
    padding:.12rem .4rem;
    border-radius:5px;
    border:1px solid var(--asm-line);
}

/* progress bar */
.asm-progress{
    width:100%;
    height:8px;
    background:var(--asm-cream-100);
    border-radius:999px;
    overflow:hidden;
    position:relative;
}
.asm-progress__bar{
    height:100%;
    background:linear-gradient(90deg, var(--asm-gold-500), var(--asm-gold-400));
    border-radius:999px;
    transition:width 600ms cubic-bezier(.2,.7,.2,1);
}
.asm-progress--navy .asm-progress__bar{
    background:linear-gradient(90deg, var(--asm-navy-700), var(--asm-navy-900));
}

/* toggle / switch */
.asm-switch{
    position:relative;
    display:inline-block;
    width:42px; height:24px;
}
.asm-switch input{ opacity:0; width:0; height:0; }
.asm-switch__slider{
    position:absolute; cursor:pointer;
    top:0; left:0; right:0; bottom:0;
    background:#cbd5e1;
    border-radius:999px;
    transition:background var(--asm-trans);
}
.asm-switch__slider::before{
    content:'';
    position:absolute;
    height:18px; width:18px;
    left:3px; bottom:3px;
    background:#fff;
    border-radius:50%;
    box-shadow:var(--asm-shadow-sm);
    transition:transform var(--asm-trans);
}
.asm-switch input:checked + .asm-switch__slider{
    background:linear-gradient(135deg, var(--asm-gold-500), var(--asm-gold-400));
}
.asm-switch input:checked + .asm-switch__slider::before{
    transform:translateX(18px);
}

/* alert / banner */
.asm-alert{
    display:flex; gap:.75rem;
    padding:.85rem 1.05rem;
    border-radius:12px;
    border:1px solid var(--asm-line);
    background:#fff;
    align-items:flex-start;
    font-size:.88rem;
    line-height:1.5;
}
.asm-alert__icon{ flex-shrink:0; margin-top:.1rem; }
.asm-alert__title{ font-weight:600; color:var(--asm-navy-900); margin-bottom:.15rem; }
.asm-alert__body{ color:var(--asm-mute); }

.asm-alert--info{ background:#eff6ff; border-color:rgba(29,78,216,0.2); }
.asm-alert--info .asm-alert__icon{ color:#1d4ed8; }
.asm-alert--success{ background:#f0fdf4; border-color:rgba(21,128,61,0.2); }
.asm-alert--success .asm-alert__icon{ color:#15803d; }
.asm-alert--warn{ background:#fffbeb; border-color:rgba(146,64,14,0.2); }
.asm-alert--warn .asm-alert__icon{ color:#b45309; }
.asm-alert--error{ background:#fef2f2; border-color:rgba(185,28,28,0.2); }
.asm-alert--error .asm-alert__icon{ color:#b91c1c; }
.asm-alert--gold{
    background:linear-gradient(135deg, var(--asm-cream-50), #fff);
    border-color:rgba(201,163,92,0.3);
}
.asm-alert--gold .asm-alert__icon{ color:var(--asm-gold-600); }

/* tab nav */
.asm-tabs{
    display:flex; gap:.25rem;
    border-bottom:1px solid var(--asm-line);
    overflow-x:auto;
}
.asm-tab{
    padding:.7rem 1.05rem;
    background:transparent;
    border:none;
    border-bottom:2px solid transparent;
    color:var(--asm-mute);
    font-size:.88rem;
    font-weight:500;
    cursor:pointer;
    transition:color var(--asm-trans), border-color var(--asm-trans);
    white-space:nowrap;
    text-decoration:none;
}
.asm-tab:hover{ color:var(--asm-navy-700); }
.asm-tab.is-active{
    color:var(--asm-navy-900);
    border-bottom-color:var(--asm-gold-500);
    font-weight:600;
}

/* lista timeline */
.asm-timeline{
    position:relative;
    padding-left:1.5rem;
}
.asm-timeline::before{
    content:'';
    position:absolute;
    left:.45rem; top:.4rem; bottom:.4rem;
    width:2px;
    background:linear-gradient(180deg, var(--asm-gold-500), transparent);
}
.asm-timeline__item{
    position:relative;
    padding-bottom:1.1rem;
}
.asm-timeline__item::before{
    content:'';
    position:absolute;
    left:-1.05rem; top:.35rem;
    width:10px; height:10px;
    border-radius:50%;
    background:var(--asm-gold-500);
    box-shadow:0 0 0 3px rgba(201,163,92,0.2);
}
.asm-timeline__time{
    font-size:.72rem;
    color:var(--asm-mute);
    text-transform:uppercase;
    letter-spacing:.06em;
    font-weight:600;
}
.asm-timeline__title{
    color:var(--asm-navy-900);
    font-weight:600;
    font-size:.92rem;
    margin:.1rem 0 .15rem;
}
.asm-timeline__body{
    color:var(--asm-mute);
    font-size:.85rem;
    line-height:1.5;
}

/* skeleton loader */
@keyframes asm-skeleton-shine{
    0%{ background-position:-200px 0; }
    100%{ background-position:calc(200px + 100%) 0; }
}
.asm-skeleton{
    background:linear-gradient(90deg, #eef2f7 0%, #f7f9fc 50%, #eef2f7 100%);
    background-size:200px 100%;
    background-repeat:no-repeat;
    border-radius:8px;
    animation:asm-skeleton-shine 1.4s linear infinite;
    color:transparent !important;
    pointer-events:none;
    user-select:none;
}

/* ============================================================
 * Reduce motion
 * ============================================================ */
@media (prefers-reduced-motion: reduce){
    .asm-card, .asm-stat, .asm-btn,
    .asm-input, .asm-textarea, .asm-select,
    .asm-progress__bar, .asm-switch__slider,
    .asm-switch__slider::before, .asm-tab{
        transition:none !important;
    }
    .asm-skeleton{ animation:none; }
}
