/* ==========================================================================
   Bus Booking App — Global Theme
   --------------------------------------------------------------------------
   Single source of truth for brand colors, buttons and accents so every page
   looks consistent. Loaded AFTER Bootstrap (via navbar.php) so these
   rules override Bootstrap defaults.
   Brand color: #f4b400 (gold).
   ========================================================================== */

:root {
    /* Brand palette */
    --bus-primary: #f4b400;
    --bus-primary-dark: #dca000;
    --bus-primary-darker: #c99000;
    --bus-on-primary: #ffffff;

    /* Map Bootstrap's primary theme color to the brand (affects .text-primary,
       .bg-primary, .border-primary, form controls, etc.) */
    --bs-primary: #f4b400;
    --bs-primary-rgb: 244, 180, 0;

    /* Keep links readable but on-brand (darker gold instead of light gold) */
    --bs-link-color: #a87a00;
    --bs-link-color-rgb: 168, 122, 0;
    --bs-link-hover-color: #8a6400;
    --bs-link-hover-color-rgb: 138, 100, 0;
}

/* ---------- Navbar: consistent brand bar on every page ---------- */
.navbar {
    background-color: var(--bus-primary) !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.navbar .navbar-brand,
.navbar .nav-link {
    color: rgba(0, 0, 0, 0.72);
}
.navbar .nav-link:hover,
.navbar .nav-link:focus,
.navbar .nav-link.active,
.navbar .nav-link.fw-bold {
    color: #000;
}
.navbar .dropdown-menu {
    border: none;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* ---------- Buttons: consistent shape + brand primary ---------- */
.btn {
    border-radius: 0.5rem;
    font-weight: 500;
}
.btn-primary,
.btn-add {
    --bs-btn-bg: var(--bus-primary);
    --bs-btn-border-color: var(--bus-primary);
    --bs-btn-hover-bg: var(--bus-primary-dark);
    --bs-btn-hover-border-color: var(--bus-primary-dark);
    --bs-btn-active-bg: var(--bus-primary-darker);
    --bs-btn-active-border-color: var(--bus-primary-darker);
    --bs-btn-color: var(--bus-on-primary);
    --bs-btn-hover-color: var(--bus-on-primary);
    --bs-btn-active-color: var(--bus-on-primary);
    --bs-btn-disabled-bg: var(--bus-primary);
    --bs-btn-disabled-border-color: var(--bus-primary);
    --bs-btn-disabled-color: var(--bus-on-primary);
    color: var(--bus-on-primary);
}
.btn-outline-primary {
    --bs-btn-color: var(--bus-primary-darker);
    --bs-btn-border-color: var(--bus-primary);
    --bs-btn-hover-bg: var(--bus-primary);
    --bs-btn-hover-border-color: var(--bus-primary);
    --bs-btn-hover-color: var(--bus-on-primary);
    --bs-btn-active-bg: var(--bus-primary);
    --bs-btn-active-border-color: var(--bus-primary);
    --bs-btn-active-color: var(--bus-on-primary);
}

/* ---------- Tabs ---------- */
.nav-tabs .nav-link.active {
    background-color: var(--bus-primary);
    color: #fff;
    border-color: #dee2e6 #dee2e6 #fff;
}

/* ---------- Form controls: brand focus ring ---------- */
.form-control:focus,
.form-select:focus,
.form-check-input:focus {
    border-color: var(--bus-primary);
    box-shadow: 0 0 0 0.25rem rgba(244, 180, 0, 0.25);
}
.form-check-input:checked {
    background-color: var(--bus-primary);
    border-color: var(--bus-primary);
}

/* ---------- Cards ---------- */
.card {
    border-radius: 10px;
}

/* ---------- Reusable brand helpers + common page classes ---------- */
.text-brand,
.stat-icon {
    color: var(--bus-primary) !important;
}
.bg-brand {
    background-color: var(--bus-primary) !important;
    color: var(--bus-on-primary) !important;
}
.vendor-header {
    background-color: var(--bus-primary);
    color: #fff;
}

/* ---------- Icons: consistent baseline alignment/spacing ---------- */
.bi,
.fa,
.fas,
.far,
.fab {
    vertical-align: -0.125em;
    line-height: 1;
}

/* ---------- Page layout: stable scrollbar (prevents horizontal "shake"
   when navigating between short and tall pages) ---------- */
html {
    scrollbar-gutter: stable;
}

/* ---------- Fixed footer ----------
   Applied only to pages built with includes/header.php (which adds the
   .app-shell body class) so standalone pages (login, vendor area) are
   unaffected. The footer is pinned to the bottom of the viewport so it stays
   visible while scrolling; body padding-bottom reserves space so page content
   is never hidden behind it. */
body.app-shell {
    padding-bottom: 48px;
}

/* ---------- Shared site footer (rendered by includes/footer.php) ---------- */
.site-footer {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1020;
    background-color: #343a40;
    color: #fff;
    text-align: center;
    padding: 8px 0;
}
.site-footer p {
    margin: 0;
}

/* ---------- Page title heading: compact size (was h2 2rem/32px) ---------- */
body.app-shell h2 {
    font-size: 1.5rem;
}
