/* iDeliver – Main Stylesheet */
:root {
    --primary: #0d6efd;
    --warning: #ffc107;
    --success: #198754;
    --danger: #dc3545;
}

/* ── General ── */
body { font-family: 'Segoe UI', sans-serif; background: #f8f9fa; }
.main-content { min-height: calc(100vh - 56px - 300px); }
.object-fit-cover { object-fit: cover; }
.cursor-pointer { cursor: pointer; }

/* ── Auth ── */
.auth-page { background: linear-gradient(135deg, #0d6efd 0%, #0a58ca 100%); min-height: 100vh; }

/* ── Hero ── */
.hero-section { background: linear-gradient(135deg, #0d6efd 0%, #0a58ca 100%); }

/* ── Cards ── */
.vendor-card, .product-card, .category-card { transition: transform .2s, box-shadow .2s; }
.vendor-card:hover, .product-card:hover, .category-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(0,0,0,.12) !important;
}

/* ── Payment options ── */
.payment-option { cursor: pointer; transition: all .2s; }
.payment-option:hover { border-color: var(--primary) !important; }

/* ── Order tracker ── */
.order-tracker { padding: 0 10px; }
.tracker-line { position: absolute; top: 15px; left: 5%; right: 5%; height: 3px; background: #dee2e6; z-index: 0; }
.tracker-step { flex: 1; z-index: 1; }
.tracker-dot { width: 30px; height: 30px; border-radius: 50%; background: #dee2e6; border: 3px solid #fff; box-shadow: 0 0 0 2px #dee2e6; margin: 0 auto; }
.tracker-step.active .tracker-dot { background: #0d6efd; box-shadow: 0 0 0 2px #0d6efd; }
.tracker-step.active small { color: #0d6efd; font-weight: 600; }

/* ── Sidebar ── */
.list-group-item-action.active { background: var(--primary); border-color: var(--primary); color: #fff; }

/* ── Admin sidebar ── */
.admin-sidebar { min-height: 100vh; background: #1e2a3a; }
.admin-sidebar .nav-link { color: rgba(255,255,255,.75); padding: .6rem 1rem; border-radius: 6px; margin: 2px 8px; }
.admin-sidebar .nav-link:hover, .admin-sidebar .nav-link.active { background: rgba(255,255,255,.1); color: #fff; }
.admin-sidebar .nav-link i { width: 20px; }

/* ── Badges ── */
.badge { font-weight: 500; }

/* ── Tables ── */
.table th { font-weight: 600; font-size: .85rem; text-transform: uppercase; letter-spacing: .03em; }

/* ── Notifications dot ── */
.notif-dot { width: 8px; height: 8px; border-radius: 50%; background: #dc3545; display: inline-block; }

/* ── Cart floating button ── */
#floatingCart { position: fixed; bottom: 24px; right: 24px; z-index: 1050; }

/* ── Status pills ── */
.status-pill { display: inline-block; padding: 3px 10px; border-radius: 20px; font-size: .78rem; font-weight: 600; }

/* ── Mobile ── */
@media (max-width: 768px) {
    .hero-section h1 { font-size: 1.8rem; }
    .admin-sidebar { min-height: auto; }
    .table-responsive { font-size: .85rem; }
}

/* ── Rider status toggle ── */
.rider-status-toggle { width: 60px; height: 30px; }

/* ── Star rating ── */
.star-rating span { font-size: 1.5rem; cursor: pointer; color: #ccc; transition: color .1s; }
.star-rating span.active { color: #ffc107; }
