.spinner {
border:6px solid #e5e7eb;
border-top:6px solid #2563eb;
border-radius:50%;
width:40px;
height:40px;
animation: spin 1s linear infinite;
margin:auto;
}

@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}

#loading{
text-align:center;
margin:40px 0;
color:#4b5563;
font-size:14px;
}

mark{
background:#facc15;
padding:1px 2px;
border-radius:2px;
}

/* tabla tipo Excel moderna */

table.dataTable thead th{
background:linear-gradient(135deg,#f3f4f6,#e5e7eb);
color:#111827;
font-weight:600;
border-bottom:1px solid #d1d5db;
padding:8px 10px;
white-space:nowrap;
}

table.dataTable tbody td{
padding:6px 10px;
border-bottom:1px solid #e5e7eb;
background-color:#ffffff;
}

table.dataTable tbody tr:nth-child(even) td{
background-color:#f9fafb;
}

table.dataTable tbody tr:hover td{
background-color:#e0f2fe;
}

.dataTables_wrapper .dataTables_filter input{
border:1px solid #d1d5db;
border-radius:999px;
padding:6px 10px;
font-size:13px;
outline:none;
min-width:200px;
}

.dataTables_wrapper .dataTables_filter input:focus{
border-color:#2563eb;
box-shadow:0 0 0 1px rgba(37,99,235,0.25);
}

.dataTables_wrapper .dataTables_length select{
border-radius:999px;
padding:4px 8px;
font-size:12px;
border:1px solid #d1d5db;
}

.dataTables_wrapper .dataTables_info{
font-size:12px;
color:#6b7280;
padding-top:8px;
}

.dataTables_wrapper .dataTables_paginate .paginate_button{
border-radius:6px!important;
border:1px solid transparent!important;
padding:3px 8px!important;
margin:0 1px!important;
font-size:12px;
color:#4b5563!important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button:hover{
background:#2563eb!important;
border-color:#2563eb!important;
color:#ffffff!important;
}

/* botones de revisión */

.ok,
.error{
border:none;
padding:4px 8px;
cursor:pointer;
margin-right:4px;
border-radius:999px;
font-size:12px;
background:#e5e7eb;
color:#111827;
transition:background-color 0.15s ease, transform 0.05s ease, box-shadow 0.15s ease;
}

.ok:hover,
.error:hover{
background:#d1d5db;
transform:translateY(-1px);
box-shadow:0 2px 6px rgba(15,23,42,0.15);
}

.aviso{
background:rgba(255,243,205,0.9);
border:1px solid #facc15;
padding:16px 18px;
border-radius:12px;
margin:22px auto 0;
font-size:14px;
max-width:1200px;
color:#92400e;
box-shadow:0 8px 20px rgba(180,83,9,0.18);
}

.aviso strong{
color:#78350f;
}

.btnWhatsapp{
display:inline-block;
background:linear-gradient(135deg,#22c55e,#16a34a);
color:white;
padding:9px 15px;
border-radius:999px;
text-decoration:none;
font-weight:bold;
font-size:13px;
box-shadow:0 10px 20px rgba(21,128,61,0.4);
transition:transform 0.08s ease, box-shadow 0.12s ease, background 0.12s ease;
}

.btnWhatsapp:hover{
transform:translateY(-1px);
box-shadow:0 14px 28px rgba(21,128,61,0.45);
background:linear-gradient(135deg,#16a34a,#15803d);
}