/* ============================================================
   ENVÍOS MTY — Estilos personalizados
   ============================================================ */

:root {
    --primary: #0d6efd;
    --success: #198754;
    --transition: all .2s ease;
}

/* General */
body { font-family: 'Segoe UI', system-ui, sans-serif; }

/* Tarjetas */
.card { border-radius: 12px !important; transition: var(--transition); }
.card:hover { transform: translateY(-2px); }
.card.no-hover:hover { transform: none; }

/* Badges */
.badge { font-weight: 500; letter-spacing: .4px; }

/* Navbar */
.navbar-brand { font-weight: 700; letter-spacing: -.5px; }

/* Botones */
.btn { border-radius: 8px; font-weight: 500; }
.btn-lg { border-radius: 10px; }

/* Tablas */
.table th { font-weight: 600; font-size: .85rem; text-transform: uppercase;
            letter-spacing: .5px; color: #6c757d; }
.table td { vertical-align: middle; }

/* Formularios */
.form-control, .form-select { border-radius: 8px; border-color: #dee2e6; }
.form-control:focus, .form-select:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 .2rem rgba(13,110,253,.15);
}

/* Alertas animadas */
.alert { border-radius: 10px; border-left: 4px solid currentColor; }

/* Spinner overlay */
.overlay-loading {
    position: fixed; inset: 0; background: rgba(0,0,0,.4);
    display: flex; align-items: center; justify-content: center;
    z-index: 9999;
}

/* Timeline rastreo */
.timeline-item { position: relative; padding-left: 2rem; }
.timeline-item::before {
    content: ''; position: absolute; left: .7rem; top: 1.5rem;
    bottom: -1rem; width: 2px; background: #dee2e6;
}
.timeline-item:last-child::before { display: none; }
.timeline-dot {
    position: absolute; left: 0; top: .3rem;
    width: 1.4rem; height: 1.4rem; border-radius: 50%;
    background: var(--primary); display: flex;
    align-items: center; justify-content: center;
    font-size: .65rem; color: white;
}

/* Responsive table */
@media (max-width: 768px) {
    .table-responsive { font-size: .85rem; }
    .d-mobile-none { display: none !important; }
}

/* Animaciones */
@keyframes fadeIn { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
.fade-in { animation: fadeIn .4s ease forwards; }

/* QR Image */
.qr-img { border: 3px solid #dee2e6; border-radius: 8px; padding: 5px; }

/* Status pills */
.pill-pendiente  { background: #6c757d; }
.pill-pagado     { background: #0dcaf0; color:#000; }
.pill-preparando { background: #ffc107; color:#000; }
.pill-en_ruta    { background: #0d6efd; }
.pill-entregado  { background: #198754; }
.pill-cancelado  { background: #dc3545; }