/* ============================================================
   Clinica San Rafael — Estilos personalizados
   Complementa Tailwind CSS
   ============================================================ */

/* ── Variables de color ─────────────────────────────────────── */
:root {
    --clinica-primary:   #1d4ed8; /* blue-700 */
    --clinica-primary-d: #1e40af; /* blue-800 */
    --clinica-success:   #16a34a; /* green-600 */
    --clinica-warning:   #d97706; /* amber-600 */
    --clinica-danger:    #dc2626; /* red-600 */
    --clinica-sidebar:   #1e3a8a; /* blue-900 */
}

/* ── Scrollbar personalizado ─────────────────────────────────── */
::-webkit-scrollbar        { width: 6px; height: 6px; }
::-webkit-scrollbar-track  { background: #f1f5f9; }
::-webkit-scrollbar-thumb  { background: #94a3b8; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #64748b; }

/* ── Transición suave en links ───────────────────────────────── */
a { transition: color 0.15s ease; }

/* ── Tablas: filas alternadas ─────────────────────────────────── */
.table-striped tr:nth-child(even) { background-color: #f8fafc; }

/* ── Inputs enfocados con color primario ─────────────────────── */
input:focus,
select:focus,
textarea:focus {
    border-color: var(--clinica-primary) !important;
    box-shadow: 0 0 0 3px rgb(29 78 216 / 0.1);
}

/* ── Sidebar en tablet ───────────────────────────────────────── */
@media (max-width: 1023px) {
    #sidebar { transform: translateX(-100%); }
    #sidebar.open { transform: translateX(0); }
}

/* ── Animación del badge de estatus ─────────────────────────── */
.badge-pulso {
    animation: pulso 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes pulso {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.5; }
}

/* ── Tarjeta hover ───────────────────────────────────────────── */
.card-hover {
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.card-hover:hover {
    box-shadow: 0 8px 25px -5px rgb(0 0 0 / 0.1);
    transform: translateY(-1px);
}

/* ── Ticket de impresión ─────────────────────────────────────── */
@media print {
    body * { visibility: hidden !important; }
    .print-area, .print-area * { visibility: visible !important; }
    .print-area {
        position: fixed !important;
        top: 0 !important; left: 0 !important;
        width: 80mm !important;
        padding: 5mm !important;
    }
    .no-print { display: none !important; }
}

/* ── Spinner de carga ────────────────────────────────────────── */
.cargando::after {
    content: '';
    display: inline-block;
    width: 12px; height: 12px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 0.7s linear infinite;
    margin-left: 6px;
    vertical-align: middle;
}
@keyframes spin {
    to { transform: rotate(360deg); }
}

/* ── Tabla responsive en mobile ──────────────────────────────── */
@media (max-width: 640px) {
    .tabla-responsive th,
    .tabla-responsive td {
        padding: 0.5rem 0.75rem;
        font-size: 0.75rem;
    }
}

/* ── SweetAlert2 personalizado ───────────────────────────────── */
.swal2-popup { font-family: inherit !important; }
.swal2-title { font-size: 1.1rem !important; }
.swal2-confirm {
    background-color: var(--clinica-primary) !important;
}

/* ── has-[:checked] fallback para Safari < 15.4 ─────────────── */
input[type="radio"]:checked ~ .radio-label,
input[type="checkbox"]:checked ~ .check-label {
    border-color: var(--clinica-primary);
    background-color: #eff6ff;
}
