/* ============================================================
   4seat — Main Stylesheet
   Font: Nunito (loaded via header.php Google Fonts)
   Brand: Sky-blue #0ea5e9 (applied site-wide)
   ============================================================ */

/* ── ROOT TOKENS ── */
:root {
  /* Brand */
  --primary:      #0ea5e9;
  --primary-dark: #0284c7;
  --primary-light:#e0f2fe;
  --primary-xl:   #f0f9ff;
  /* Accent */
  --accent:       #f59e0b;
  /* Neutrals */
  --ink:          #0f172a;
  --ink2:         #1e2d4a;
  --muted:        #64748b;
  --chalk:        #f8fafc;
  --white:        #ffffff;
  /* Legacy aliases (kept so old references don't break) */
  --green:        #0ea5e9;
  --green-dark:   #0284c7;
  --green-light:  #e0f2fe;
  --green-xl:     #f0f9ff;
  --dark:         #0f172a;
  --gray:         #64748b;
  /* Borders / layout */
  --border:       #e2e8f0;
  --radius:       12px;
  --radius-lg:    16px;
  --shadow:       0 4px 20px rgba(0,0,0,0.08);
  --shadow-lg:    0 12px 40px rgba(0,0,0,0.14);
}

/* ── RESET / BASE ── */
*, *::before, *::after { box-sizing: border-box; }
body  { font-family: 'Nunito', sans-serif; background: var(--chalk); color: var(--ink); }
a     { text-decoration: none; color: inherit; }

/* ── BOOTSTRAP COLOUR OVERRIDES (sky-blue brand) ── */
.btn-success                         { background-color: var(--primary)!important; border-color: var(--primary)!important; color:#fff!important; }
.btn-success:hover                   { background-color: var(--primary-dark)!important; border-color: var(--primary-dark)!important; }
.btn-outline-success                 { color: var(--primary)!important; border-color: var(--primary)!important; }
.btn-outline-success:hover           { background-color: var(--primary)!important; color:#fff!important; }
.bg-success                          { background-color: var(--primary)!important; }
.text-success                        { color: var(--primary)!important; }
.badge.bg-success, .badge-success    { background-color: var(--primary)!important; }
.alert-success                       { background: var(--primary-light)!important; color:#0c4a6e!important; border-color:#7dd3fc!important; }
.table-success>td,.table-success>th  { background-color: var(--primary-light)!important; }
.form-control:focus, .form-select:focus { border-color: var(--primary)!important; box-shadow: 0 0 0 3px rgba(14,165,233,.15)!important; }

/* ── NAVBAR ── */
.navbar { background: rgba(10,15,30,.95)!important; border-bottom: 1px solid rgba(255,255,255,.08)!important; backdrop-filter: blur(20px); }
.navbar .nav-link                    { color: rgba(255,255,255,.7)!important; }
.navbar .nav-link:hover,
.navbar .nav-link.text-success       { color: #38bdf8!important; }
.navbar-brand                        { color: white!important; }
.navbar-toggler-icon                 { filter: invert(1); }

/* ── PAGE HERO (inner pages) ── */
.page-hero { background: linear-gradient(135deg, #0f172a 0%, #1a3a5c 100%); padding: 2.5rem 0; color: white; }
.page-hero h1 { font-weight: 900; font-size: 1.8rem; }
.page-hero .breadcrumb-item a       { color: rgba(255,255,255,0.6); }
.page-hero .breadcrumb-item.active  { color: #38bdf8; }
.page-hero .breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,0.3); }

/* ── HOMEPAGE HERO ── */
.hero {
  min-height: 100vh; background: var(--ink);
  position: relative; overflow: hidden;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding-bottom: 5rem;
}
.hero::before {
  content: ''; position: absolute; inset: 0; z-index: 1;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  opacity: .35;
}
.hero-road { position: absolute; bottom: 0; left: 0; right: 0; height: 200px; z-index: 1; background: linear-gradient(to top, rgba(14,165,233,.04), transparent); }
.hero-glow { position: absolute; border-radius: 50%; pointer-events: none; z-index: 1; }
.g1 { width:700px;height:700px; background:radial-gradient(circle,rgba(14,165,233,.18) 0%,transparent 70%); top:-200px; right:-150px; }
.g2 { width:500px;height:500px; background:radial-gradient(circle,rgba(245,158,11,.08) 0%,transparent 70%); bottom:-100px; left:-100px; }
.g3 { width:300px;height:300px; background:radial-gradient(circle,rgba(14,165,233,.12) 0%,transparent 70%); top:40%; left:30%; }
.hero-content { position: relative; z-index: 2; padding-top: 120px; }

/* Hero pill */
.hero-pill {
  display: inline-flex; align-items: center; gap: 10px;
  border: 1px solid rgba(14,165,233,.4); background: rgba(14,165,233,.08);
  color: #38bdf8; border-radius: 50px;
  padding: 6px 18px; font-size: .78rem; font-weight: 700; letter-spacing: .4px;
  margin-bottom: 1.8rem;
}
.hero-pill-dot { width:7px;height:7px;border-radius:50%;background:#38bdf8;animation:hpPulse 2s infinite; }

/* Hero heading */
.hero-h1 {
  font-size: clamp(3rem, 7vw, 6rem);
  font-weight: 900; line-height: .95;
  color: white; letter-spacing: -2px; margin-bottom: 1.5rem;
}
.hero-h1 em    { font-style: normal; color: #38bdf8; }
.hero-h1 .stroke { -webkit-text-stroke: 2px rgba(255,255,255,.3); color: transparent; }
.hero-sub { color: rgba(255,255,255,.5); font-size: 1.1rem; line-height: 1.7; max-width: 480px; margin-bottom: 2.5rem; }

/* Search dock */
.search-dock {
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1);
  border-radius: 20px; padding: 1.75rem 2rem;
  backdrop-filter: blur(30px); max-width: 820px;
}
.search-dock .form-label { font-size:.7rem; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:rgba(255,255,255,.4); margin-bottom:.5rem; display:block; }
.search-dock .form-control,
.search-dock .form-select { background:rgba(255,255,255,.06); border:1.5px solid rgba(255,255,255,.1); color:white; border-radius:10px; height:50px; font-size:.9rem; transition:all .2s; }
.search-dock .form-control::placeholder { color: rgba(255,255,255,.3); }
.search-dock .form-control:focus,
.search-dock .form-select:focus { background:rgba(255,255,255,.1); border-color:#38bdf8; box-shadow:0 0 0 3px rgba(14,165,233,.15); color:white; outline:none; }
.search-dock select option            { background: #1a2035; }
.search-dock .divider                 { width:1px; background:rgba(255,255,255,.1); align-self:stretch; margin:0 .5rem; }

.btn-go {
  background: var(--primary); color: white; border: none; border-radius: var(--radius);
  font-weight: 800; font-size: 1rem; height: 50px;
  padding: 0 2rem; width: 100%; cursor: pointer; transition: all .25s;
  box-shadow: 0 6px 24px rgba(14,165,233,.4);
  display: flex; align-items: center; justify-content: center; gap: 10px;
}
.btn-go:hover  { background: var(--primary-dark); box-shadow: 0 10px 36px rgba(14,165,233,.5); transform: translateY(-1px); color: white; }
.btn-go svg    { width: 20px; height: 20px; }

.btn-swap {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1);
  border-radius: 10px; color: rgba(255,255,255,.5); height: 50px; width: 50px;
  display: flex; align-items: center; justify-content: center; cursor: pointer;
  transition: all .2s; flex-shrink: 0;
}
.btn-swap:hover { background: rgba(14,165,233,.15); border-color: #38bdf8; color: #38bdf8; }

/* Trust strip */
.trust-strip  { display: flex; flex-wrap: wrap; gap: 1.5rem; margin-top: 2rem; }
.trust-item   { display: flex; align-items: center; gap: 8px; color: rgba(255,255,255,.4); font-size: .8rem; }
.trust-item i { color: #38bdf8; }

/* ── STATS ROW ── */
.stats-row { background: white; border-bottom: 1px solid var(--border); }
.stat-cell  { padding: 1.5rem 2rem; border-right: 1px solid var(--border); display: flex; align-items: center; gap: 14px; }
.stat-cell:last-child { border-right: none; }
.stat-icon-wrap { width:44px;height:44px;border-radius:var(--radius);background:var(--primary-light);display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.stat-icon-wrap i { color: var(--primary); font-size: 1rem; }
.stat-num   { font-size: 1.5rem; font-weight: 900; color: var(--ink); line-height: 1; }
.stat-lbl   { font-size: .75rem; color: var(--muted); margin-top: 2px; }

/* ── SECTION HEADERS ── */
.sec-kicker {
  font-size: .7rem; font-weight: 800; letter-spacing: 2px; text-transform: uppercase;
  color: var(--primary); margin-bottom: .6rem;
  display: flex; align-items: center; gap: 8px;
}
.sec-kicker::before { content:''; width:24px; height:2px; background:var(--primary); border-radius:2px; }
.sec-title {
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  font-weight: 900; color: var(--ink); line-height: 1.1; letter-spacing: -1px;
}

/* ── ROUTE PILLS ── */
.route-pill {
  background: white; border: 1.5px solid var(--border);
  border-radius: var(--radius); padding: 1rem 1.2rem;
  display: flex; align-items: center; gap: 12px;
  transition: all .2s; cursor: pointer; text-decoration: none; color: inherit;
}
.route-pill:hover { border-color: var(--primary); color: inherit; box-shadow: 0 6px 24px rgba(14,165,233,.1); transform: translateY(-2px); }
.route-pill-icon  { width:40px;height:40px;border-radius:10px;background:var(--primary-light);display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0; }
.route-name       { font-weight: 800; font-size: .9rem; color: var(--ink); }
.route-meta       { font-size: .75rem; color: var(--muted); margin-top: 2px; }
.route-fare       { font-weight: 900; font-size: .95rem; color: var(--primary); margin-left: auto; white-space: nowrap; }

/* ── DESTINATION GRID ── */
.dest-hero         { border-radius: 20px; overflow: hidden; position: relative; cursor: pointer; transition: all .3s; background: var(--ink2); }
.dest-hero:hover   { transform: scale(1.015); box-shadow: 0 20px 60px rgba(0,0,0,.2); }
.dest-hero-inner   { padding: 2rem; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; background: linear-gradient(to top, rgba(10,15,30,.9) 0%, rgba(10,15,30,.3) 50%, transparent 100%); position: relative; z-index: 1; min-height: 280px; }
.dest-emoji        { font-size: 5rem; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-60%); opacity: .25; z-index: 0; pointer-events: none; }
.dest-city         { font-size: 1.5rem; font-weight: 900; color: white; }
.dest-fare         { color: #38bdf8; font-weight: 700; font-size: .85rem; margin-top: 4px; }
.dest-sm           { border-radius: var(--radius-lg); overflow: hidden; position: relative; cursor: pointer; transition: all .25s; background: var(--ink2); }
.dest-sm:hover     { transform: scale(1.02); box-shadow: 0 10px 30px rgba(0,0,0,.15); }
.dest-sm-inner     { padding: 1.2rem; min-height: 150px; display: flex; flex-direction: column; justify-content: flex-end; background: linear-gradient(to top, rgba(10,15,30,.9), transparent); position: relative; z-index: 1; }
.dest-sm-emoji     { font-size: 3rem; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-65%); opacity: .2; }
.dest-sm-city      { font-weight: 900; color: white; font-size: 1rem; }
.dest-sm-fare      { color: #38bdf8; font-size: .75rem; }

/* ── HOW IT WORKS ── */
.how-card { background: white; border-radius: 20px; padding: 2rem; border: 1.5px solid var(--border); position: relative; transition: all .25s; overflow: hidden; }
.how-card::before { content: attr(data-n); position: absolute; right: 1.5rem; top: 1rem; font-size: 5rem; font-weight: 900; color: var(--primary-light); line-height: 1; pointer-events: none; }
.how-card:hover   { border-color: var(--primary); box-shadow: 0 12px 40px rgba(14,165,233,.1); transform: translateY(-4px); }
.how-icon  { width:56px;height:56px;border-radius:var(--radius-lg);background:var(--ink);color:#38bdf8;display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin-bottom:1.5rem;position:relative;z-index:1; }
.how-title { font-weight: 800; font-size: 1.1rem; margin-bottom: .5rem; }
.how-desc  { color: var(--muted); font-size: .9rem; line-height: 1.6; }

/* ── OPERATOR CARDS ── */
.op-card { background: white; border: 1.5px solid var(--border); border-radius: var(--radius-lg); padding: 1.5rem 1rem; text-align: center; transition: all .25s; cursor: pointer; text-decoration: none; color: inherit; display: block; }
.op-card:hover { border-color: var(--primary); box-shadow: 0 8px 30px rgba(14,165,233,.1); transform: translateY(-3px); color: inherit; }
.op-av     { width:60px;height:60px;border-radius:var(--radius-lg);background:var(--ink);color:#38bdf8;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-weight:900;font-size:1rem;overflow:hidden; }
.op-name   { font-weight: 800; font-size: .85rem; }
.op-stars  { color: var(--accent); font-size: .75rem; margin-top: 4px; }
.op-routes { font-size: .72rem; color: var(--muted); margin-top: 3px; }

/* ── PAYMENT METHODS BAND ── */
.pm-band { background: white; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.pm-item { display: flex; align-items: center; gap: 10px; padding: 1rem 1.5rem; border-right: 1px solid var(--border); font-weight: 700; font-size: .85rem; }
.pm-item:last-child { border-right: none; }
.pm-dot  { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }

/* ── BLOG CARDS ── */
.blog-card { background: white; border-radius: 18px; overflow: hidden; border: 1.5px solid var(--border); transition: all .25s; text-decoration: none; color: inherit; display: block; height: 100%; }
.blog-card:hover { border-color: var(--primary); box-shadow: 0 10px 32px rgba(14,165,233,.1); transform: translateY(-4px); color: inherit; }
.blog-thumb { height: 200px; background: var(--ink2); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.blog-thumb img  { width: 100%; height: 100%; object-fit: cover; }
.blog-thumb .icon{ font-size: 3rem; opacity: .2; }
.blog-body { padding: 1.4rem; }
.blog-cat  { font-size: .7rem; font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase; color: var(--primary); margin-bottom: .5rem; }
.blog-title{ font-weight: 800; font-size: 1rem; line-height: 1.4; color: var(--ink); }
.blog-meta { font-size: .75rem; color: var(--muted); margin-top: .75rem; display: flex; align-items: center; gap: 8px; }

/* ── CTA BANNER ── */
.cta-banner { background: var(--ink); border-radius: 24px; overflow: hidden; position: relative; padding: 4rem; }
.cta-mesh   { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse 60% 80% at 80% 50%, rgba(14,165,233,.15), transparent), radial-gradient(ellipse 40% 60% at 10% 80%, rgba(245,158,11,.08), transparent); }
.cta-title  { font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 900; color: white; letter-spacing: -1.5px; line-height: 1.1; }
.cta-title em { font-style: normal; color: #38bdf8; }
.btn-cta-primary { background: var(--primary); color: white; border: none; border-radius: var(--radius); padding: .85rem 2rem; font-weight: 800; font-size: 1rem; transition: all .25s; box-shadow: 0 6px 24px rgba(14,165,233,.4); text-decoration: none; display: inline-block; }
.btn-cta-primary:hover { background: var(--primary-dark); box-shadow: 0 10px 36px rgba(14,165,233,.5); transform: translateY(-2px); color: white; }
.btn-cta-ghost { background: rgba(255,255,255,.08); color: rgba(255,255,255,.8); border: 1px solid rgba(255,255,255,.15); border-radius: var(--radius); padding: .85rem 2rem; font-weight: 700; transition: all .2s; text-decoration: none; display: inline-block; }
.btn-cta-ghost:hover { background: rgba(255,255,255,.14); color: white; }
.cta-stat { border-left: 1px solid rgba(255,255,255,.08); padding-left: 1.5rem; margin-left: 1.5rem; }
.cta-stat:first-child { border-left: none; padding-left: 0; margin-left: 0; }
.cta-stat-num { font-size: 1.8rem; font-weight: 900; color: #38bdf8; }
.cta-stat-lbl { font-size: .8rem; color: rgba(255,255,255,.4); margin-top: 2px; }

/* ── FOOTER ── */
footer { background: var(--ink)!important; }

/* ── UTILS / LAYOUT ── */
.sec-pad    { padding: 5rem 0; }
.sec-pad-sm { padding: 3rem 0; }
.link-arrow { font-size: .82rem; font-weight: 800; color: var(--primary); text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.link-arrow:hover { color: #38bdf8; gap: 10px; }
.link-arrow::after { content: '→'; transition: margin .2s; }

/* ── CARDS (generic) ── */
.card-hover { transition: all 0.25s; border: 2px solid var(--border)!important; }
.card-hover:hover { border-color: var(--primary)!important; box-shadow: 0 10px 32px rgba(14,165,233,.14)!important; transform: translateY(-3px); }

/* ── BUS RESULT CARD ── */
.bus-result-card { background: white; border: 2px solid var(--border); border-radius: var(--radius-lg); margin-bottom: 1rem; transition: all 0.2s; overflow: hidden; }
.bus-result-card:hover { border-color: var(--primary); box-shadow: var(--shadow-lg); }
.bus-result-card .brc-header { display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.3rem;border-bottom:1px solid #f1f5f9;flex-wrap:wrap;gap:.5rem; }
.bus-result-card .brc-body   { display:flex;align-items:center;justify-content:space-between;padding:1rem 1.3rem;flex-wrap:wrap;gap:1rem; }
.bus-result-card .brc-footer { background: var(--primary-xl); padding:.6rem 1.3rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem; }
.time-big  { font-size: 1.4rem; font-weight: 900; }
.fare-big  { font-size: 1.5rem; font-weight: 900; color: var(--primary); }
.route-arrow-line { display:flex;align-items:center;gap:0;flex-direction:column;text-align:center; }
.route-arrow-line .line { width:70px;height:2px;background:var(--border);position:relative;margin:6px 0; }
.route-arrow-line .line::before,
.route-arrow-line .line::after  { content:'';position:absolute;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--primary); }
.route-arrow-line .line::before { left: 0; }
.route-arrow-line .line::after  { right: 0; }

/* ── SEAT MAP ── */
.seat-map-outer  { background: white; border: 2px solid var(--border); border-radius: var(--radius-lg); padding: 1.4rem; }
.bus-cabin-top   { background: linear-gradient(#374151,#1f2937); border-radius: 28px 28px 0 0; padding: 12px; text-align: center; color: rgba(255,255,255,.4); font-size:.75rem; font-weight:700; letter-spacing:2px; }
.bus-cabin-body  { border:3px solid #374151; border-top:none; border-radius:0 0 18px 18px; padding:1rem 1.2rem; }
.seat-row        { display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:6px; }
.seat-aisle      { width: 22px; }
.seat            { width:36px;height:38px;border:2px solid;border-radius:6px 6px 5px 5px;display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;cursor:pointer;transition:all .15s;position:relative;user-select:none; }
.seat::before    { content:'';position:absolute;top:-5px;left:50%;transform:translateX(-50%);width:58%;height:5px;background:inherit;border:inherit;border-bottom:none;border-radius:4px 4px 0 0; }
.seat-available  { background: white; border-color: var(--primary); color: var(--primary); }
.seat-available:hover { background: var(--primary-light); transform: scale(1.1); }
.seat-selected   { background: var(--primary); border-color: var(--primary-dark); color: white; }
.seat-booked     { background: #e5e7eb; border-color: #9ca3af; color: #9ca3af; cursor: not-allowed; }
.seat-driver     { background: #374151; border-color: #1f2937; color: white; cursor: default; border-radius: 8px; }
.seat-legend     { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 1rem; }
.legend-item     { display: flex; align-items: center; gap: 6px; font-size: .78rem; color: var(--muted); }
.legend-box      { width: 20px; height: 20px; border-radius: 4px; border: 2px solid; }
.legend-available{ background: white; border-color: var(--primary); }
.legend-selected { background: var(--primary); border-color: var(--primary-dark); }
.legend-booked   { background: #e5e7eb; border-color: #9ca3af; }

/* ── BOOKING SUMMARY ── */
.booking-summary-card { background:white;border:2px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;position:sticky;top:80px; }
.booking-summary-card .bsc-header { background:linear-gradient(135deg,var(--primary),var(--primary-dark));padding:1rem 1.3rem;color:white; }
.price-row   { display:flex;justify-content:space-between;padding:.65rem 1.3rem;border-bottom:1px solid #f1f5f9;font-size:.9rem; }
.price-total { display:flex;justify-content:space-between;padding:.9rem 1.3rem;background:var(--primary-xl);font-weight:900;font-size:1.05rem;color:var(--primary-dark); }

/* ── TICKET ── */
.ticket-wrap   { background:white;border-radius:20px;overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.12);max-width:620px;margin:0 auto; }
.ticket-header { background:linear-gradient(135deg,var(--primary),var(--primary-dark));padding:1.4rem 2rem;color:white;display:flex;justify-content:space-between;align-items:center; }
.ticket-body   { padding: 1.5rem 2rem; }
.ticket-divider{ display:flex;align-items:center;margin:0 -2rem; }
.ticket-notch  { width:28px;height:28px;border-radius:50%;background:#f8fafc;border:2px solid var(--border);flex-shrink:0; }
.ticket-dashes { flex:1;border-top:2px dashed var(--border); }
.qr-box        { width:100px;height:100px;background:#111;border-radius:8px;display:flex;align-items:center;justify-content:center;color:white;font-size:2.5rem;margin:0 auto; }

/* ── AUTH ── */
.auth-card { background:white;border-radius:20px;box-shadow:0 20px 50px rgba(0,0,0,.12);padding:2.5rem;max-width:460px;margin:3rem auto; }

/* ── AMENITY BADGE ── */
.amenity-badge { display:inline-flex;align-items:center;gap:4px;background:white;border:1px solid var(--primary-light);color:var(--primary-dark);padding:2px 8px;border-radius:20px;font-size:.75rem;font-weight:700; }

/* ── BOOKING TIMER ── */
.booking-timer-bar { background:#fef9c3;border-bottom:2px solid #fde68a;padding:7px 0; }

/* ── ADMIN LAYOUT ── */
.admin-body    { background: #f1f5f9; }
.admin-wrapper { display: flex; min-height: 100vh; }
.admin-sidebar { width:250px;background:#0f172a;color:white;flex-shrink:0;display:flex;flex-direction:column;height:100vh;position:sticky;top:0;overflow-y:auto; }
.admin-sidebar .sidebar-brand { padding:1.3rem 1.2rem;border-bottom:1px solid rgba(255,255,255,.08);font-weight:900;font-size:1.1rem; }
.admin-sidebar .sidebar-brand span { color: #38bdf8; }
.admin-nav     { padding: .8rem 0; flex: 1; }
.admin-nav .nav-section { padding:6px 1.2rem 2px;font-size:.68rem;text-transform:uppercase;letter-spacing:1px;color:rgba(255,255,255,.3);font-weight:700; }
.admin-nav a   { display:flex;align-items:center;gap:10px;padding:9px 1.2rem;color:rgba(255,255,255,.6);font-size:.88rem;font-weight:700;border-left:3px solid transparent;transition:all .18s; }
.admin-nav a:hover,
.admin-nav a.active { background:rgba(14,165,233,.12);color:#38bdf8;border-left-color:var(--primary); }
.admin-nav a i { width: 16px; text-align: center; flex-shrink: 0; }
.admin-main    { flex:1;display:flex;flex-direction:column;overflow:hidden; }
.admin-topbar  { background:white;border-bottom:1px solid var(--border);padding:0 1.4rem;height:60px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0; }
.admin-content { padding: 1.4rem; overflow-y: auto; flex: 1; }

/* ── STAT CARDS (admin) ── */
.stat-card       { background:white;border-radius:var(--radius);border:1px solid var(--border);padding:1.3rem;display:flex;align-items:center;gap:1rem; }
.stat-icon       { width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0; }
.stat-icon-green { background: var(--primary-light); color: var(--primary); }
.stat-icon-blue  { background: #dbeafe; color: #1d4ed8; }
.stat-icon-amber { background: #fef9c3; color: #92400e; }
.stat-icon-red   { background: #fee2e2; color: #dc2626; }

/* ── TABLE ── */
.table-card         { background:white;border-radius:var(--radius);border:1px solid var(--border);overflow:hidden; }
.table-card table   { margin: 0; }
.table-card thead th{ background:#f8fafc;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);border-bottom:1px solid var(--border); }
.table-card tbody tr:hover td { background: var(--primary-xl); }

/* ── MISC UTILITIES ── */
.text-green       { color: var(--primary)!important; }
.bg-green         { background: var(--primary)!important; }
.bg-green-xl      { background: var(--primary-xl)!important; }
.hover-green:hover{ color: #38bdf8!important; }
.section-title    { font-size:1.55rem;font-weight:900;color:var(--ink);position:relative;padding-bottom:.5rem;display:inline-block; }
.section-title::after { content:'';position:absolute;bottom:0;left:0;width:46px;height:4px;background:var(--primary);border-radius:2px; }
.empty-state      { text-align:center;padding:4rem 2rem;color:var(--muted); }
.empty-state i    { font-size:3.5rem;color:#d1d5db;display:block;margin-bottom:1rem; }

/* ── ANIMATIONS ── */
@keyframes hpPulse  { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(1.4)} }
@keyframes slideUp  { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }
.animate-up  { animation: slideUp .7s ease forwards; opacity: 0; }
.delay-1     { animation-delay: .1s; }
.delay-2     { animation-delay: .2s; }
.delay-3     { animation-delay: .3s; }
.delay-4     { animation-delay: .4s; }

/* ── RESPONSIVE ── */
@media (max-width: 768px) {
  .admin-sidebar          { display: none; }
  .admin-sidebar.mobile-open { display:flex;position:fixed;inset:0;right:auto;width:260px;z-index:1050; }
  .hero-h1                { letter-spacing: -1px; }
  .search-dock            { padding: 1.25rem; }
  .stat-cell              { border-right: none; border-bottom: 1px solid var(--border); }
  .cta-banner             { padding: 2rem; }
  .cta-stat               { border-left: none; padding-left: 0; margin-left: 0; }
  .bus-result-card .brc-body { flex-direction: column; }
  .ticket-body            { padding: 1rem; }
  .auth-card              { padding: 1.5rem; margin: 1.5rem auto; }
}

@media print {
  .navbar, footer, .btn, .admin-sidebar, .booking-timer-bar { display: none!important; }
  .ticket-wrap { box-shadow: none!important; }
}