/* BUTTONS */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--kv-space-sm);
    padding: 12px 28px;
    border: none;
    border-radius: var(--kv-radius-pill);
    font-weight: var(--kv-font-weight-semibold);
    font-size: var(--kv-font-size-base);
    cursor: pointer;
    transition: all var(--kv-transition);
    text-decoration: none;
    line-height: 1.4;
    white-space: nowrap;
}
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }
.btn-primary { background: var(--kv-primary); color: var(--kv-white); box-shadow: var(--kv-shadow-md); }
.btn-primary:hover { background: var(--kv-primary-dark); color: var(--kv-white); box-shadow: var(--kv-shadow-lg); }
.btn-secondary { background: var(--kv-secondary); color: var(--kv-white); box-shadow: var(--kv-shadow-md); }
.btn-secondary:hover { background: var(--kv-secondary-dark); color: var(--kv-white); }
.btn-outline { background: transparent; color: var(--kv-primary); border: 2px solid var(--kv-primary); }
.btn-outline:hover { background: var(--kv-primary); color: var(--kv-white); }
.btn-ghost { background: transparent; color: var(--kv-text); }
.btn-ghost:hover { background: var(--kv-border-light); }
.btn-sm { padding: 8px 20px; font-size: var(--kv-font-size-sm); }
.btn-lg { padding: 16px 36px; font-size: var(--kv-font-size-md); }
.btn-block { width: 100%; }
.btn:disabled, .btn.disabled { opacity: 0.5; cursor: not-allowed; pointer-events: none; }

/* CARDS */
.card {
    background: var(--kv-bg-card);
    border-radius: var(--kv-radius-lg);
    padding: var(--kv-space-lg);
    box-shadow: var(--kv-shadow-sm);
    transition: all var(--kv-transition);
    border: 1px solid var(--kv-border-light);
}
.card:hover { box-shadow: var(--kv-shadow-md); transform: translateY(-4px); }
.card-image { border-radius: var(--kv-radius-md); overflow: hidden; margin-bottom: var(--kv-space-md); }
.card-image img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.card-title { font-size: var(--kv-font-size-lg); margin-bottom: var(--kv-space-sm); }
.card-text { color: var(--kv-text-light); font-size: var(--kv-font-size-sm); }

/* BADGES */
.badge { display: inline-flex; align-items: center; padding: 4px 12px; border-radius: var(--kv-radius-pill); font-size: var(--kv-font-size-xs); font-weight: var(--kv-font-weight-semibold); }
.badge-pending { background: #FFF3CD; color: #856404; }
.badge-confirmed { background: #D4EDDA; color: #155724; }
.badge-cancelled { background: #F8D7DA; color: #721C24; }
.badge-completed, .badge-attended { background: #D1ECF1; color: #0C5460; }
.badge-declined { background: #F8D7DA; color: #721C24; }
.badge-active, .badge-published { background: #D4EDDA; color: #155724; }
.badge-inactive, .badge-closed { background: #E2E3E5; color: #383D41; }

/* FLASH MESSAGES */
.flash { padding: var(--kv-space-md) var(--kv-space-lg); border-radius: var(--kv-radius-md); margin-bottom: var(--kv-space-lg); font-weight: var(--kv-font-weight-medium); }
.flash-success { background: #D4EDDA; color: #155724; border: 1px solid #C3E6CB; }
.flash-error { background: #F8D7DA; color: #721C24; border: 1px solid #F5C6CB; }
