/* =============================================================================
   Tinuta Transport — V2 stylesheet
   Premium dark/light theme with image-layer compositions, real brand red.
   ============================================================================= */

/* ----- THEME TOKENS ------------------------------------------------------- */
:root, [data-theme="dark"] {
  --bg:        #07080c;
  --bg-2:      #0c0d12;
  --bg-3:      #14161e;
  --panel:     #11131b;
  --panel-2:   #181a24;
  --line:      #22253359;
  --line-2:    #2a2d3d;
  --text:      #ecedf3;
  --text-soft: #c4c6d2;
  --muted:     #8b8fa1;
  --brand:     #c1121f;
  --brand-2:   #e63946;
  --brand-3:   #780000;
  --gold:      #d4a373;
  --ok:        #43d39e;
  --nav-bg:    rgba(7,8,12,0.75);
  --card-shadow: 0 30px 80px rgba(0,0,0,0.50), 0 1px 0 rgba(255,255,255,0.04) inset;
  --hero-gradient: linear-gradient(180deg,
      rgba(7,8,12,0.55) 0%,
      rgba(7,8,12,0.45) 40%,
      rgba(7,8,12,0.90) 90%,
      rgba(7,8,12,1.00) 100%);
  --radius:    14px;
  --radius-sm: 10px;
  --max:       1240px;
  --font:      "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --serif:     Georgia, "Times New Roman", serif;
  --mono:      ui-monospace, SFMono-Regular, "JetBrains Mono", Menlo, Consolas, monospace;
}

[data-theme="light"] {
  --bg:        #f6f6f8;
  --bg-2:      #eef0f4;
  --bg-3:      #ffffff;
  --panel:     #ffffff;
  --panel-2:   #f8f9fc;
  --line:      #dde0e8;
  --line-2:    #cdd1dc;
  --text:      #14161e;
  --text-soft: #3a3f4e;
  --muted:     #6b7080;
  --brand:     #b00d18;
  --brand-2:   #c1121f;
  --brand-3:   #780000;
  --gold:      #a17b4f;
  --nav-bg:    rgba(255,255,255,0.82);
  --card-shadow: 0 18px 60px rgba(20,22,30,0.10);
  --hero-gradient: linear-gradient(180deg,
      rgba(7,8,12,0.50) 0%,
      rgba(7,8,12,0.40) 40%,
      rgba(246,246,248,0.85) 92%,
      rgba(246,246,248,1.00) 100%);
}

/* ----- RESET & BASE ------------------------------------------------------- */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  transition: background-color 0.2s ease, color 0.2s ease;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.container { max-width: var(--max); margin: 0 auto; padding: 0 24px; }
.muted { color: var(--muted); }

/* ----- NAV ---------------------------------------------------------------- */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  background: var(--nav-bg);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  border-bottom: 1px solid var(--line);
  transition: background 0.2s ease, border-color 0.2s ease;
}
.nav-inner {
  max-width: var(--max); margin: 0 auto;
  padding: 12px 24px;
  display: flex; align-items: center; gap: 24px;
}
.logo { display: flex; align-items: center; gap: 10px; }
.logo-img { height: 22px; width: auto; filter: brightness(0) invert(1); opacity: 0.95; transition: opacity 0.2s; }
[data-theme="light"] .logo-img { filter: brightness(0) invert(0); opacity: 0.85; }
.logo-img-sm { height: 18px; }
.logo-sub {
  color: var(--brand-2); font-size: 10px; letter-spacing: 3.5px;
  font-weight: 700;
  padding: 3px 7px;
  border: 1px solid var(--brand-2);
  border-radius: 4px;
}
.nav-links { display: flex; gap: 22px; }
.nav-links a {
  color: var(--text-soft); font-size: 13.5px;
  font-weight: 500; letter-spacing: 0.2px;
  position: relative; padding: 6px 0;
  transition: color 0.15s;
}
.nav-links a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0;
  height: 2px; background: var(--brand);
  transform: scaleX(0); transform-origin: center;
  transition: transform 0.2s ease;
}
.nav-links a:hover { color: var(--text); }
.nav-links a:hover::after { transform: scaleX(1); }
@media (max-width: 900px) { .nav-links, .nav-user-links { display: none; } }

.nav-toggles { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.toggle-btn {
  background: var(--bg-3); border: 1px solid var(--line-2);
  color: var(--text); cursor: pointer;
  width: 34px; height: 34px;
  border-radius: var(--radius-sm); font-size: 12.5px;
  font-family: var(--mono); font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center;
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
.toggle-btn:hover { border-color: var(--brand); color: var(--brand); }

/* ----- BUTTONS ------------------------------------------------------------ */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 11px 18px; border-radius: var(--radius-sm); font-weight: 600;
  font-size: 14px; border: 1px solid transparent; cursor: pointer;
  letter-spacing: 0.2px;
  transition: transform 0.05s ease, background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
.btn-primary {
  background: linear-gradient(180deg, var(--brand-2), var(--brand));
  color: white;
  box-shadow: 0 10px 26px -8px rgba(193,18,31,0.45), inset 0 1px 0 rgba(255,255,255,0.18);
}
.btn-primary:hover { transform: translateY(-1px); box-shadow: 0 16px 36px -10px rgba(193,18,31,0.55), inset 0 1px 0 rgba(255,255,255,0.22); }
.btn-outline {
  background: transparent; color: var(--text);
  border-color: var(--line-2);
}
.btn-outline:hover { border-color: var(--brand); color: var(--brand); }

/* ----- HERO --------------------------------------------------------------- */
.hero {
  position: relative; min-height: 100vh;
  display: flex; flex-direction: column; justify-content: center;
  padding: 140px 24px 80px; overflow: hidden;
}
.hero-bg { position: absolute; inset: 0; z-index: 0; }
.hero-img {
  position: absolute; inset: -10% 0 0 0;
  background-image: url("assets/hero-99.jpg");
  background-size: cover; background-position: center 30%;
  filter: saturate(0.85) brightness(0.8);
  transform: scale(1.08);
  animation: hero-pan 24s ease-in-out infinite alternate;
}
@keyframes hero-pan {
  0%   { transform: scale(1.08) translateY(0); }
  100% { transform: scale(1.14) translateY(-2%); }
}
.hero-overlay {
  position: absolute; inset: 0;
  background: var(--hero-gradient);
}
.hero-noise {
  position: absolute; inset: 0;
  background-image:
    radial-gradient(ellipse at 80% 0%, rgba(193,18,31,0.20), transparent 50%),
    radial-gradient(ellipse at 20% 100%, rgba(0,0,0,0.50), transparent 50%);
  mix-blend-mode: overlay; opacity: 0.9;
}

.hero-inner { position: relative; z-index: 2; max-width: 1180px; margin: 0 auto; width: 100%; text-align: center; }
.eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 11px; letter-spacing: 2.5px; text-transform: uppercase;
  color: #fff;
  border: 1px solid rgba(255,255,255,0.25);
  background: rgba(0,0,0,0.30);
  backdrop-filter: blur(6px);
  padding: 7px 14px; border-radius: 999px;
  margin-bottom: 24px;
  font-weight: 600;
}
.dot-pulse {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--brand-2);
  box-shadow: 0 0 0 0 rgba(230,57,70,0.7);
  animation: pulse 2s infinite;
}
@keyframes pulse {
  0%   { box-shadow: 0 0 0 0 rgba(230,57,70,0.7); }
  70%  { box-shadow: 0 0 0 10px rgba(230,57,70,0); }
  100% { box-shadow: 0 0 0 0 rgba(230,57,70,0); }
}

.hero-h1 {
  font-size: clamp(38px, 6vw, 78px);
  line-height: 1.0;
  margin: 0 0 22px;
  letter-spacing: -0.025em;
  font-weight: 800;
  color: #fff;
  text-shadow: 0 2px 30px rgba(0,0,0,0.4);
  display: flex; align-items: center; justify-content: center; gap: 0.4em;
  flex-wrap: wrap;
}
.hero-arrow {
  color: var(--brand-2);
  font-weight: 300;
  font-size: 0.7em;
  transform: translateY(-0.05em);
}
.hero-tagline {
  font-family: var(--serif);
  font-size: 17px;
  color: rgba(255,255,255,0.85);
  margin: 0 auto 38px;
  max-width: 600px;
}
.hero-tagline em {
  color: #fff; font-style: italic;
  font-size: 22px; display: block; margin-bottom: 6px;
}
.hero-tagline-sub { font-style: italic; }

/* Search card */
.search-card {
  background: rgba(7,8,12,0.65);
  backdrop-filter: blur(20px) saturate(140%);
  -webkit-backdrop-filter: blur(20px) saturate(140%);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--radius);
  padding: 14px;
  max-width: 1080px;
  margin: 0 auto;
  box-shadow: 0 30px 80px rgba(0,0,0,0.5);
}
.search-row {
  display: grid;
  grid-template-columns: 1.3fr auto 1.3fr 1fr 0.7fr auto;
  gap: 10px; align-items: stretch;
}
@media (max-width: 980px) {
  .search-row { grid-template-columns: 1fr 1fr; }
  .swap-btn { display: none; }
  .btn-search { grid-column: span 2; }
}
.search-cell {
  display: flex; flex-direction: column; gap: 4px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--radius-sm); padding: 8px 12px;
  text-align: left; min-width: 0;
  transition: border-color 0.15s, background 0.15s;
}
.search-cell:focus-within { border-color: var(--brand-2); background: rgba(255,255,255,0.10); }
.search-label {
  font-size: 10px; letter-spacing: 2px;
  text-transform: uppercase; color: rgba(255,255,255,0.65);
  font-weight: 600;
}
.search-cell select, .search-cell input {
  background: transparent; border: 0;
  color: #fff; font-size: 15px;
  font-family: var(--font); outline: none;
  padding: 2px 0; cursor: pointer;
}
.search-cell select { appearance: none; -webkit-appearance: none; }
.search-cell input::-webkit-calendar-picker-indicator { filter: invert(0.6); }
.swap-btn {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.15);
  color: #fff; border-radius: var(--radius-sm);
  padding: 0 16px; cursor: pointer; font-size: 18px;
  transition: all 0.15s;
}
.swap-btn:hover { background: var(--brand); border-color: var(--brand); }
.btn-search { padding: 0 28px; font-size: 15px; min-height: 48px; }

.hero-meta {
  display: flex; align-items: center; justify-content: center;
  flex-wrap: wrap; gap: 22px;
  margin-top: 40px;
  color: rgba(255,255,255,0.85);
  font-size: 13px;
}
.hero-meta strong {
  color: #fff; font-family: var(--mono);
  font-size: 24px; font-weight: 700;
  letter-spacing: -0.02em;
  margin-right: 8px; display: inline-block;
}
.sep { width: 1px; height: 28px; background: rgba(255,255,255,0.15); }
@media (max-width: 720px) { .sep { display: none; } .hero-meta { gap: 14px 28px; } }

.hero-scroll {
  position: absolute; bottom: 28px; left: 50%; transform: translateX(-50%);
  z-index: 2;
  width: 26px; height: 42px;
  border: 1.5px solid rgba(255,255,255,0.45);
  border-radius: 14px;
  display: flex; justify-content: center; padding-top: 8px;
}
.hero-scroll span {
  width: 3px; height: 8px; background: #fff; border-radius: 2px;
  animation: scroll-dot 1.6s ease-in-out infinite;
}
@keyframes scroll-dot {
  0%   { opacity: 0; transform: translateY(-6px); }
  40%  { opacity: 1; }
  80%  { opacity: 0; transform: translateY(10px); }
  100% { opacity: 0; }
}

/* ----- SECTION HEAD ------------------------------------------------------- */
.section-head { text-align: center; max-width: 760px; margin: 0 auto 48px; }
.kicker {
  display: inline-block; color: var(--brand-2);
  font-size: 11px; letter-spacing: 3px; text-transform: uppercase;
  margin-bottom: 14px; font-weight: 700;
}
.section-title, h2 {
  font-size: clamp(28px, 3.5vw, 44px);
  margin: 0 0 14px;
  letter-spacing: -0.02em;
  line-height: 1.1;
  font-weight: 700;
  color: var(--text);
}
.section-sub { color: var(--muted); font-size: 16.5px; }

/* ----- VALLEYS ------------------------------------------------------------ */
.valleys { padding: 96px 0 64px; background: var(--bg); }
.valley-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
@media (max-width: 900px) { .valley-grid { grid-template-columns: 1fr; } }
.valley {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  box-shadow: var(--card-shadow);
  display: flex; flex-direction: column;
}
.valley:hover { transform: translateY(-4px); }
.valley-photo {
  height: 260px; position: relative;
  background-size: cover; background-position: center;
}
.valley-photo::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.0) 0%, rgba(0,0,0,0.4) 70%, rgba(7,8,12,0.95) 100%);
}
.valley-tag {
  position: absolute; left: 22px; bottom: 18px; z-index: 2;
  font-family: var(--serif);
  font-size: 22px; color: #fff; font-style: italic;
  text-shadow: 0 2px 14px rgba(0,0,0,0.6);
}
.valley-body { padding: 26px; }
.valley-body h3 {
  margin: 0 0 8px; font-size: 22px; letter-spacing: -0.01em;
  color: var(--text);
}
.valley-body p { color: var(--text-soft); margin: 0 0 18px; }
.valley-stops {
  list-style: none; padding: 0; margin: 0 0 18px;
  display: flex; flex-wrap: wrap; gap: 6px;
}
.valley-stops li {
  font-size: 12px; color: var(--text-soft);
  padding: 4px 10px;
  background: var(--panel-2);
  border: 1px solid var(--line-2);
  border-radius: 999px;
  font-family: var(--mono);
}
.valley-times {
  display: flex; gap: 18px;
  padding-top: 18px;
  border-top: 1px dashed var(--line-2);
}
.valley-times div { display: flex; flex-direction: column; }
.valley-times strong {
  font-family: var(--mono); font-size: 22px; color: var(--brand-2);
  letter-spacing: -0.01em;
}
.valley-times span { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: 1.5px; }

/* ----- SCHEDULE ----------------------------------------------------------- */
.schedule {
  padding: 96px 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 60%, var(--bg) 100%);
  position: relative;
}
.sched-toolbar {
  display: flex; justify-content: center; gap: 14px;
  flex-wrap: wrap; margin-bottom: 28px;
}
.seg-control {
  display: inline-flex;
  background: var(--panel); border: 1px solid var(--line);
  border-radius: var(--radius-sm); padding: 4px;
}
.seg {
  border: 0; background: transparent;
  color: var(--text-soft);
  padding: 9px 18px;
  font-size: 13.5px; font-weight: 600;
  border-radius: 7px; cursor: pointer;
  transition: all 0.15s;
  font-family: var(--font);
}
.seg:hover { color: var(--text); }
.seg.active {
  background: var(--brand); color: #fff;
  box-shadow: 0 4px 14px rgba(193,18,31,0.35);
}

.sched-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--card-shadow);
}
.sched-table {
  width: 100%; border-collapse: collapse;
  font-family: var(--font);
}
.sched-table thead th {
  background: var(--panel-2);
  color: var(--muted);
  font-size: 11px; letter-spacing: 2px; text-transform: uppercase;
  text-align: left;
  padding: 16px 22px;
  font-weight: 600;
  border-bottom: 1px solid var(--line);
}
.sched-table thead th.time-col { text-align: center; }
.sched-table tbody td {
  padding: 13px 22px;
  border-bottom: 1px solid var(--line);
  color: var(--text);
  font-size: 14px;
  transition: background 0.12s;
}
.sched-table tbody tr:last-child td { border-bottom: 0; }
.sched-table tbody tr:hover td { background: rgba(193,18,31,0.06); }
.sched-table .station-name {
  font-weight: 600;
  display: flex; align-items: center; gap: 10px;
}
.station-num {
  display: inline-block; width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--panel-2);
  color: var(--muted);
  font-family: var(--mono); font-size: 11px;
  text-align: center; line-height: 22px;
  border: 1px solid var(--line-2);
}
.sched-table tr.is-major .station-name strong { color: var(--brand-2); }
.sched-table tr.is-major .station-num { background: var(--brand); color: #fff; border-color: var(--brand); }
.time-cell {
  text-align: center;
  font-family: var(--mono);
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: -0.01em;
}
.time-cell.muted { color: var(--muted); font-weight: 400; }
.sched-foot {
  padding: 16px 22px;
  font-size: 13px;
  color: var(--muted);
  background: var(--panel-2);
  border-top: 1px solid var(--line);
}

/* ----- PRICES ------------------------------------------------------------- */
.prices { position: relative; padding: 96px 0; overflow: hidden; }
.prices-bg {
  position: absolute; inset: 0; z-index: 0;
  background-image: url("assets/setra-319.jpg");
  background-size: cover; background-position: center;
  opacity: 0.10;
  filter: saturate(0.6);
}
.prices::before {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, var(--bg) 0%, transparent 30%, transparent 70%, var(--bg) 100%);
}
.prices > .container { position: relative; z-index: 2; }

.prc-grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: 22px; }
@media (max-width: 900px) { .prc-grid { grid-template-columns: 1fr; } }

.prc-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 30px;
  box-shadow: var(--card-shadow);
}
.prc-hero {
  background: linear-gradient(160deg, var(--brand-3) 0%, var(--brand) 100%);
  border-color: var(--brand);
  color: #fff;
  display: flex; flex-direction: column; justify-content: space-between;
  position: relative; overflow: hidden;
}
.prc-hero::before {
  content: ""; position: absolute;
  top: -50%; right: -20%;
  width: 320px; height: 320px;
  background: radial-gradient(circle, rgba(255,255,255,0.10), transparent 60%);
}
.prc-title {
  display: flex; align-items: center; gap: 12px;
  font-size: 17px; font-weight: 600;
  margin-bottom: 26px; flex-wrap: wrap;
}
.prc-arrow { color: rgba(255,255,255,0.7); font-size: 22px; }
.prc-tier { display: flex; flex-direction: column; gap: 14px; margin-bottom: 22px; position: relative; }
.prc-tier-row {
  display: flex; justify-content: space-between; align-items: baseline;
  padding-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,0.20);
}
.prc-tier-row:last-child { border-bottom: 0; }
.prc-tier-label { color: rgba(255,255,255,0.85); font-size: 14px; font-weight: 500; }
.prc-amount {
  font-family: var(--mono); font-size: 38px; font-weight: 700;
  color: #fff; letter-spacing: -0.02em;
}
.prc-amount small {
  font-size: 13px; font-weight: 500;
  color: rgba(255,255,255,0.7);
  letter-spacing: 0.5px; margin-left: 4px;
}
.prc-discount { color: #ffd28a; }
.prc-discount small { color: rgba(255,210,138,0.7); }
.prc-note {
  font-size: 12.5px; color: rgba(255,255,255,0.75);
  border-top: 1px dashed rgba(255,255,255,0.20);
  padding-top: 14px;
  font-style: italic;
}

.prc-stations { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 26px; }
.prc-stations h3 { margin: 0 0 18px; font-size: 18px; color: var(--text); }
.prc-table { width: 100%; border-collapse: collapse; }
.prc-table thead th {
  font-size: 10.5px; letter-spacing: 1.8px; text-transform: uppercase;
  color: var(--muted); font-weight: 600;
  padding: 10px 8px; text-align: right;
  border-bottom: 1px solid var(--line);
}
.prc-table thead th.station { text-align: left; }
.prc-table tbody td {
  padding: 11px 8px;
  font-size: 14px;
  border-bottom: 1px solid var(--line);
  text-align: right;
  font-family: var(--mono);
  color: var(--text);
}
.prc-table tbody td.station { text-align: left; font-family: var(--font); color: var(--text); font-weight: 500; }
.prc-table tbody tr:last-child td { border-bottom: 0; }
.prc-table .student { color: var(--gold); }

/* ----- FLEET -------------------------------------------------------------- */
.fleet { padding: 96px 0; background: var(--bg-2); }
.fleet-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  grid-template-rows: auto auto;
  gap: 18px;
}
@media (max-width: 900px) { .fleet-grid { grid-template-columns: 1fr; } }
.fleet-card {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  min-height: 280px;
  box-shadow: var(--card-shadow);
  border: 1px solid var(--line);
  isolation: isolate;
}
.fleet-card-big {
  grid-row: span 2;
  min-height: 580px;
}
@media (max-width: 900px) { .fleet-card-big { min-height: 420px; grid-row: auto; } }
.fleet-img {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  transition: transform 0.6s ease;
  z-index: 0;
}
.fleet-card:hover .fleet-img { transform: scale(1.06); }
.fleet-card::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(0,0,0,0.0) 0%, rgba(0,0,0,0.4) 55%, rgba(7,8,12,0.95) 100%);
}
.fleet-overlay {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  padding: 26px;
  color: #fff;
}
.fleet-overlay h3 { margin: 0 0 10px; font-size: 20px; letter-spacing: -0.01em; color: #fff; }
.fleet-card-big .fleet-overlay h3 { font-size: 28px; }
.fleet-overlay p { color: rgba(255,255,255,0.85); margin: 0; font-size: 14px; }
.fleet-overlay ul {
  list-style: none; padding: 0; margin: 14px 0 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px 18px;
}
.fleet-overlay ul li {
  display: flex; justify-content: space-between;
  font-size: 13px;
  padding: 6px 0;
  border-bottom: 1px solid rgba(255,255,255,0.12);
}
.fleet-overlay ul li span { color: rgba(255,255,255,0.65); }
.fleet-overlay ul li strong { color: #fff; font-family: var(--mono); }
.fleet-badge {
  display: inline-block;
  font-size: 10px; letter-spacing: 2px; text-transform: uppercase;
  background: var(--brand);
  color: #fff; padding: 4px 9px;
  border-radius: 4px;
  margin-bottom: 12px;
  font-weight: 700;
}

/* ----- TEAM --------------------------------------------------------------- */
.team { padding: 96px 0; }
.team-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px;
}
@media (max-width: 900px) { .team-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .team-grid { grid-template-columns: 1fr; } }
.team-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 26px 22px;
  text-align: center;
  transition: transform 0.2s ease, border-color 0.2s ease;
}
.team-card:hover { transform: translateY(-3px); border-color: var(--brand); }
.team-initial {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--brand-3), var(--brand));
  color: #fff;
  font-family: var(--serif); font-style: italic;
  font-size: 30px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 16px;
  box-shadow: 0 8px 24px -4px rgba(193,18,31,0.5);
}
.team-card h3 { margin: 0 0 10px; font-size: 17px; color: var(--text); }
.team-phone {
  display: inline-block;
  font-family: var(--mono); font-size: 15px;
  color: var(--brand-2);
  letter-spacing: 0.5px;
  padding: 6px 12px;
  border: 1px solid var(--brand-2);
  border-radius: 999px;
  transition: all 0.15s;
}
.team-phone:hover { background: var(--brand); color: #fff; border-color: var(--brand); }
.team-role {
  display: block; margin-top: 12px;
  color: var(--muted);
  font-size: 11px; letter-spacing: 2px; text-transform: uppercase;
}

/* ----- ABOUT -------------------------------------------------------------- */
.about { padding: 96px 0; background: var(--bg-2); position: relative; overflow: hidden; }
.about-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 60px; align-items: center; }
@media (max-width: 900px) { .about-grid { grid-template-columns: 1fr; gap: 40px; } }
.about-photo {
  position: relative; aspect-ratio: 4 / 5;
  min-height: 420px;
}
.about-photo-main, .about-photo-accent {
  position: absolute; border-radius: var(--radius);
  background-size: cover; background-position: center;
  box-shadow: var(--card-shadow);
}
.about-photo-main {
  inset: 0;
  width: 80%; height: 75%;
  border: 4px solid var(--panel);
}
.about-photo-accent {
  right: 0; bottom: 0;
  width: 55%; height: 45%;
  border: 4px solid var(--panel);
}
.about-badge {
  position: absolute; left: 60%; top: 6%; z-index: 3;
  background: linear-gradient(135deg, var(--brand-3), var(--brand));
  color: #fff;
  width: 110px; height: 110px;
  border-radius: 50%;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  box-shadow: 0 14px 40px -6px rgba(193,18,31,0.6);
}
.about-badge strong { font-family: var(--mono); font-size: 38px; font-weight: 800; line-height: 1; }
.about-badge span { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; margin-top: 4px; }

.about-text h2 { margin: 12px 0 18px; font-size: clamp(28px, 3.0vw, 38px); }
.about-text p { color: var(--text-soft); font-size: 16.5px; margin: 0 0 14px; line-height: 1.7; }
.about-quote {
  margin: 28px 0 0;
  padding: 22px 26px;
  border-left: 4px solid var(--brand);
  background: var(--panel);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-family: var(--serif);
}
.about-quote span { font-style: italic; font-size: 22px; color: var(--text); display: block; }
.about-quote cite { display: block; margin-top: 8px; color: var(--muted); font-style: normal; font-size: 13px; letter-spacing: 0.5px; }

/* ----- CONTACT ------------------------------------------------------------ */
.contact {
  padding: 96px 0;
  background:
    radial-gradient(800px 400px at 20% 30%, rgba(193,18,31,0.10), transparent 60%),
    var(--bg);
  position: relative;
}
.contact-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 22px; }
@media (max-width: 900px) { .contact-grid { grid-template-columns: 1fr; } }
.contact-block {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 32px;
  box-shadow: var(--card-shadow);
}
.contact-block-hero {
  background: linear-gradient(160deg, var(--brand-3) 0%, var(--brand) 100%);
  color: #fff; position: relative; overflow: hidden;
}
.contact-block-hero .contact-label,
.contact-block-hero .contact-hours strong { color: rgba(255,255,255,0.85); }
.contact-icon {
  font-size: 18px; color: rgba(255,255,255,0.7);
  margin-bottom: 18px;
  animation: pulse-icon 2s infinite;
}
@keyframes pulse-icon { 0%, 100% { opacity: 0.5; } 50% { opacity: 1; } }
.contact-label {
  font-size: 11px; letter-spacing: 2.5px; text-transform: uppercase;
  font-weight: 700; color: var(--muted);
  margin-bottom: 8px;
}
.contact-value {
  display: block;
  font-family: var(--mono);
  font-size: 36px; font-weight: 700;
  color: #fff;
  letter-spacing: -0.01em;
  margin-bottom: 22px;
}
.contact-block:not(.contact-block-hero) .contact-value { color: var(--text); }
.contact-value-sm { font-size: 17px; word-break: break-all; margin-bottom: 0; }
.contact-hours {
  border-top: 1px solid rgba(255,255,255,0.25);
  padding-top: 16px; display: flex; gap: 8px; align-items: baseline;
  flex-wrap: wrap;
}
.contact-hours strong { font-weight: 600; letter-spacing: 0.5px; }
.contact-hours span { font-family: var(--mono); font-size: 18px; font-weight: 600; }
.contact-stack { display: flex; flex-direction: column; gap: 22px; }
.contact-line {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  transition: color 0.15s;
}
.contact-line:last-child { border-bottom: 0; }
.contact-line:hover { color: var(--brand-2); }
.contact-line strong { color: var(--text); font-weight: 600; }
.contact-line span { color: var(--muted); font-family: var(--mono); font-size: 14px; }

/* ----- FOOTER ------------------------------------------------------------- */
.footer {
  padding: 32px 0;
  background: var(--bg);
  border-top: 1px solid var(--line);
}
.footer-inner {
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 14px;
}
.footer-brand { display: flex; align-items: center; gap: 14px; }
.footer-meta { display: flex; gap: 22px; font-size: 13px; flex-wrap: wrap; }
.footer-meta strong { color: var(--text); font-weight: 600; }

/* ----- MODAL (auth + booking) -------------------------------------------- */
.modal {
  position: fixed; inset: 0; z-index: 200;
  display: none; align-items: center; justify-content: center;
  padding: 20px;
}
.modal.open { display: flex; animation: modal-in 0.18s ease-out; }
@keyframes modal-in { from { opacity: 0; } to { opacity: 1; } }
.modal-backdrop {
  position: absolute; inset: 0;
  background: rgba(0,0,0,0.65);
  backdrop-filter: blur(8px);
}
.modal-card {
  position: relative;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  width: 100%;
  box-shadow: 0 40px 100px rgba(0,0,0,0.6);
  max-height: 90vh;
  overflow: hidden;
  display: flex; flex-direction: column;
}
.modal-card-sm { max-width: 440px; }
.modal-card-lg { max-width: 880px; }
.modal-close {
  position: absolute; top: 14px; right: 14px;
  background: transparent; border: 1px solid var(--line-2);
  color: var(--text); width: 32px; height: 32px;
  border-radius: 50%; cursor: pointer; font-size: 14px;
  display: flex; align-items: center; justify-content: center;
  z-index: 2;
  transition: all 0.15s;
}
.modal-close:hover { background: var(--brand); border-color: var(--brand); color: #fff; }

/* ---- AUTH ---- */
.auth-view { }
.auth-header {
  text-align: center; padding: 32px 28px 6px;
}
.auth-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--panel-2); border: 1px solid var(--line-2);
  color: var(--muted); margin-bottom: 16px;
}
.auth-header h3 { margin: 0 0 6px; font-size: 20px; color: var(--text); }
.auth-header p { margin: 0; font-size: 14px; }
.auth-switch {
  text-align: center; padding: 0 28px 24px;
  font-size: 13.5px; color: var(--muted);
}
.auth-switch-link {
  background: none; border: none; cursor: pointer;
  color: var(--brand-2); font-weight: 600; font-size: 13.5px;
  font-family: var(--font);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color 0.15s;
}
.auth-switch-link:hover { color: var(--brand); }
.modal-form { padding: 18px 28px 18px; display: flex; flex-direction: column; gap: 14px; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field > span {
  font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase;
  color: var(--muted); font-weight: 700;
}
.field input {
  background: var(--bg-3);
  border: 1px solid var(--line-2);
  color: var(--text);
  border-radius: var(--radius-sm);
  padding: 11px 14px;
  font-size: 15px;
  font-family: var(--font);
  outline: none;
  transition: border-color 0.15s;
}
.field input:focus { border-color: var(--brand); }
.btn-block { width: 100%; padding: 14px 20px; font-size: 15px; }
.modal-err { color: var(--brand-2); font-size: 13px; text-align: center; min-height: 16px; }
.modal-err:empty::before { content: " "; }

/* ---- BOOKING steps ---- */
.steps {
  list-style: none; padding: 22px 28px 14px;
  margin: 0; display: flex; gap: 0;
  border-bottom: 1px solid var(--line);
  overflow-x: auto;
}
.steps li {
  display: flex; align-items: center; gap: 10px;
  font-size: 13px; color: var(--muted); font-weight: 600;
  padding: 0 18px 14px;
  position: relative; flex-shrink: 0;
}
.steps li::after {
  content: "→"; color: var(--muted); margin-left: 18px; font-size: 14px;
}
.steps li:last-child::after { content: ""; margin: 0; }
.steps li span {
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--bg-3); color: var(--muted);
  font-family: var(--mono); font-size: 12px; font-weight: 700;
  border: 1px solid var(--line-2);
}
.steps li.active { color: var(--text); }
.steps li.active span { background: var(--brand); color: #fff; border-color: var(--brand); }
.steps li.done span { background: var(--ok); color: #fff; border-color: var(--ok); }
.steps li.done { color: var(--text-soft); }

.step-body {
  padding: 22px 28px 28px;
  overflow-y: auto;
  flex: 1;
}
.step-title { margin: 0 0 18px; font-size: 18px; color: var(--text); }
.step-bar {
  display: flex; align-items: center; gap: 18px;
  margin-bottom: 18px;
}
.step-bar .btn { padding: 7px 14px; font-size: 13px; }
.step-bar-info { display: flex; flex-direction: column; gap: 4px; }
.step-bar-info strong { color: var(--text); font-size: 15px; }
.step-bar-info .muted { font-size: 12.5px; }

.trip-list-modal { display: flex; flex-direction: column; gap: 10px; }
.trip-list-modal .trip-card {
  display: grid; grid-template-columns: auto 1fr auto auto;
  align-items: center; gap: 18px;
  padding: 16px 20px;
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: border-color 0.15s, transform 0.05s;
}
.trip-list-modal .trip-card:hover { border-color: var(--brand); transform: translateY(-1px); }
.trip-card .t-time {
  font-family: var(--mono); font-size: 22px; font-weight: 700;
  color: var(--text); letter-spacing: -0.01em;
}
.trip-card .t-time small { display: block; font-size: 11px; color: var(--muted); font-weight: 400; margin-top: 2px; }
.trip-card .t-route { color: var(--text); }
.trip-card .t-route small { color: var(--muted); display: block; font-size: 12px; margin-top: 2px; }
.trip-card .t-seats { font-family: var(--mono); font-size: 13px; color: var(--ok); }
.trip-card .t-price { font-family: var(--mono); font-size: 18px; font-weight: 700; color: var(--brand-2); }
.trip-list-modal .empty {
  padding: 30px; text-align: center; color: var(--muted);
  background: var(--panel-2); border-radius: var(--radius-sm); border: 1px dashed var(--line-2);
}
.loading { padding: 24px; color: var(--muted); text-align: center; }

/* seats inside modal */
.seats-modal-card {
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px;
}
.seats-modal-card .seats-driver {
  font-family: var(--mono); font-size: 11px; color: var(--muted);
  letter-spacing: 1.5px; text-transform: uppercase;
  text-align: right; padding: 6px 12px;
  margin-bottom: 12px;
  border-bottom: 1px dashed var(--line-2);
}
.seats-modal-card .seats-grid {
  display: grid; grid-template-columns: repeat(5, 1fr);
  gap: 8px; padding: 10px;
}
.seats-modal-card .seat {
  aspect-ratio: 1 / 1; min-height: 38px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 7px; font-size: 12px; font-family: var(--mono); font-weight: 700;
  border: 1px solid transparent; cursor: pointer; user-select: none;
  transition: transform 0.05s, filter 0.15s;
}
.seats-modal-card .seat:hover { transform: scale(1.05); }
.seats-modal-card .seat-aisle { background: transparent; cursor: default; }
.seats-modal-card .seat-aisle:hover { transform: none; }
.seats-modal-card .seat-prem  { background: rgba(255,184,107,0.16); border-color: rgba(255,184,107,0.50); color: var(--brand-2); }
.seats-modal-card .seat-std   { background: rgba(79,140,255,0.12); border-color: rgba(79,140,255,0.35); color: #6e98ff; }
.seats-modal-card .seat-taken { background: rgba(255,255,255,0.04); border-color: var(--line-2); color: #4a4f64; cursor: not-allowed; }
.seats-modal-card .seat-taken:hover { transform: none; }
.seats-modal-card .seat-sel   { background: rgba(67,211,158,0.22); border-color: var(--ok); color: var(--ok); }
.seats-modal-card .seats-legend {
  display: flex; gap: 18px; flex-wrap: wrap; font-size: 12px;
  color: var(--muted); padding: 12px 6px 4px;
  border-top: 1px dashed var(--line-2);
  margin-top: 6px;
}

.modal-foot {
  display: flex; justify-content: space-between; align-items: center;
  gap: 14px;
  padding: 18px 28px; border-top: 1px solid var(--line);
  background: var(--panel-2);
  flex-wrap: wrap;
}
.modal-foot.single { justify-content: flex-end; }
.foot-info { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; font-size: 14px; }
.foot-info strong { font-family: var(--mono); font-size: 16px; }

/* passenger names */
.pax-list { display: flex; flex-direction: column; gap: 12px; }
.pax-row {
  display: grid; grid-template-columns: auto 1fr auto;
  gap: 12px; align-items: center;
  padding: 14px 18px;
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
}
.pax-row .seat-badge {
  font-family: var(--mono); font-size: 14px; font-weight: 700;
  width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: var(--bg-3); color: var(--text);
  border: 1px solid var(--line-2);
}
.pax-row.is-prem .seat-badge { background: rgba(255,184,107,0.16); border-color: rgba(255,184,107,0.50); color: var(--brand-2); }
.pax-row input {
  background: transparent; border: 0;
  color: var(--text); font-size: 15px;
  font-family: var(--font); outline: none;
  min-width: 0;
}

/* ticket + qr */
.ticket-success {
  text-align: center; padding: 12px 0 20px;
  border-bottom: 1px solid var(--line); margin-bottom: 22px;
}
.ticket-success-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--ok); color: #fff;
  font-size: 28px; font-weight: 700;
  margin-bottom: 14px;
  box-shadow: 0 8px 24px -6px rgba(67,211,158,0.55);
}
.ticket-success h3 { margin: 0 0 6px; font-size: 22px; color: var(--text); }
.ticket-success p { margin: 0; }

.ticket-list { display: flex; flex-direction: column; gap: 14px; }
.ticket-card {
  display: grid; grid-template-columns: auto 1fr;
  gap: 22px; align-items: center;
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px;
}
.ticket-qr {
  width: 144px; height: 144px;
  background: #fff;
  border-radius: var(--radius-sm);
  padding: 6px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.ticket-qr img { width: 100%; height: 100%; }
.ticket-info { display: flex; flex-direction: column; gap: 6px; }
.ticket-info .ticket-name { font-size: 18px; font-weight: 700; color: var(--text); margin-bottom: 8px; }
.ticket-info .ticket-row {
  display: flex; justify-content: space-between; align-items: baseline;
  padding: 6px 0;
  border-bottom: 1px dashed var(--line-2);
  font-size: 13.5px;
}
.ticket-info .ticket-row:last-child { border-bottom: 0; }
.ticket-info .ticket-row span:first-child { color: var(--muted); text-transform: uppercase; letter-spacing: 1.2px; font-size: 11px; }
.ticket-info .ticket-row strong { font-family: var(--mono); color: var(--text); }
.ticket-info .ticket-row .prem-badge {
  font-size: 10px; padding: 2px 8px; background: var(--brand); color: #fff;
  border-radius: 999px; letter-spacing: 1.5px; margin-left: 6px;
}
@media (max-width: 560px) {
  .ticket-card { grid-template-columns: 1fr; }
  .ticket-qr { width: 100%; height: auto; aspect-ratio: 1 / 1; max-width: 220px; margin: 0 auto; }
}

/* Nav user links (when logged in) */
.nav-user-links {
  display: flex; align-items: center; gap: 4px;
}
.nav-user-link {
  padding: 7px 12px;
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  border-radius: 8px;
  transition: background 0.15s, color 0.15s;
  white-space: nowrap;
}
.nav-user-link:hover { background: var(--panel-2); color: var(--brand-2); }
.nav-logout-link { color: var(--muted); }
.nav-logout-link:hover { color: var(--brand-2); }

/* ----- INLINE PAGES (tickets + settings) --------------------------------- */
.page-section {
  padding: 100px 0 60px;
  min-height: 70vh;
}
.page-container {
  max-width: 720px;
  margin: 0 auto;
}
.page-head {
  display: flex; align-items: center; gap: 16px;
  margin-bottom: 32px;
}
.page-head h2 {
  margin: 0; font-size: 24px;
}
.page-back {
  flex-shrink: 0;
}

/* ----- TICKET/BOOKING CARDS ---------------------------------------------- */
/* ticket groups */
.acct-ticket-group { margin-bottom: 22px; }
.acct-group-label {
  font-size: 11px; letter-spacing: 2.5px; text-transform: uppercase;
  color: var(--muted); font-weight: 700;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px dashed var(--line-2);
}

.acct-booking-card {
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  margin-bottom: 12px;
  overflow: hidden;
}
.acct-booking-head {
  display: flex; justify-content: space-between; align-items: center;
  padding: 16px 18px;
  gap: 12px; flex-wrap: wrap;
}
.acct-booking-route { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.acct-booking-route strong { font-size: 15px; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.acct-booking-route .muted { font-size: 12.5px; }
.acct-booking-meta { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }

.acct-status {
  font-size: 11px; letter-spacing: 1px; text-transform: uppercase;
  font-weight: 700; padding: 4px 10px; border-radius: 999px;
}
.st-ok { background: rgba(67,211,158,0.15); color: var(--ok); }
.st-pending { background: rgba(212,163,115,0.15); color: var(--gold); }
.st-bad { background: rgba(230,57,70,0.15); color: var(--brand-2); }
.st-used { background: rgba(136,136,221,0.15); color: #8888dd; }

.acct-total {
  font-family: var(--mono); font-size: 15px; font-weight: 700;
  color: var(--text);
}

.acct-tk-list {
  border-top: 1px solid var(--line);
  padding: 0 18px;
}
.acct-tk-row {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  font-size: 13.5px;
}
.acct-tk-row:last-of-type { border-bottom: 0; }
.acct-tk-seat { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; }
.seat-badge-sm {
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--mono); font-size: 12px; font-weight: 700;
  width: 36px; height: 28px; border-radius: 6px;
  background: var(--bg-3); border: 1px solid var(--line-2);
  color: var(--text); flex-shrink: 0;
}
.seat-badge-sm.is-prem { background: rgba(255,184,107,0.16); border-color: rgba(255,184,107,0.50); color: var(--brand-2); }
.prem-badge-sm {
  font-size: 9px; padding: 2px 6px; background: var(--brand); color: #fff;
  border-radius: 999px; letter-spacing: 1px; font-weight: 700;
}
.acct-tk-price { font-family: var(--mono); font-size: 13px; color: var(--brand-2); font-weight: 600; flex-shrink: 0; }

.btn-qr {
  background: var(--bg-3); border: 1px solid var(--line-2);
  color: var(--muted); width: 32px; height: 32px; flex-shrink: 0;
  border-radius: 7px; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: all 0.15s;
}
.btn-qr:hover { border-color: var(--brand); color: var(--brand); }

.acct-qr-slot {
  padding: 0 18px;
}
.acct-qr-wrap {
  display: flex; justify-content: center;
  padding: 12px 0 16px;
}
.acct-qr-wrap img {
  width: 180px; height: 180px;
  background: #fff; border-radius: var(--radius-sm);
  padding: 8px;
}

.acct-empty {
  text-align: center; padding: 48px 20px;
}
.acct-empty-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 80px; height: 80px; border-radius: 50%;
  background: var(--panel-2); border: 1px solid var(--line-2);
  margin-bottom: 18px;
}
.acct-empty p { color: var(--muted); margin: 0 0 20px; font-size: 15px; }

/* Settings forms */
.settings-section {
  margin-bottom: 28px;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--line);
}
.settings-section:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.settings-section h4 {
  margin: 0 0 16px; font-size: 16px; color: var(--text);
  letter-spacing: -0.01em;
}
.settings-form { display: flex; flex-direction: column; gap: 14px; }
.settings-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 4px; }
.settings-msg { font-size: 13px; min-height: 16px; }
.settings-msg-ok { color: var(--ok); }
.settings-msg-err { color: var(--brand-2); }
.settings-danger { text-align: center; padding-top: 18px; }

.btn-danger {
  color: var(--brand-2); border-color: var(--brand-2);
}
.btn-danger:hover { background: var(--brand); color: #fff; border-color: var(--brand); }

/* ----- MOBILE DRAWER + HAMBURGER ---------------------------------------- */
/* Hamburger button — hidden on desktop, shown on mobile via media query. */
.menu-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  padding: 0 8px;
}
.menu-toggle span {
  display: block;
  width: 18px; height: 2px;
  background: var(--text);
  border-radius: 2px;
  transition: transform 0.2s ease, opacity 0.2s ease;
}
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.drawer {
  position: fixed; inset: 0; z-index: 150;
  display: none;
}
.drawer.open { display: block; }
.drawer-backdrop {
  position: absolute; inset: 0;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(4px);
  animation: drawer-fade 0.2s ease-out;
}
@keyframes drawer-fade { from { opacity: 0; } to { opacity: 1; } }
.drawer-panel {
  position: absolute; top: 0; right: 0; bottom: 0;
  width: min(320px, 86vw);
  background: var(--panel);
  border-left: 1px solid var(--line);
  display: flex; flex-direction: column;
  box-shadow: -30px 0 60px rgba(0,0,0,0.45);
  animation: drawer-slide 0.22s ease-out;
}
@keyframes drawer-slide {
  from { transform: translateX(100%); }
  to   { transform: translateX(0); }
}
.drawer-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 22px;
  border-bottom: 1px solid var(--line);
}
.drawer-brand .logo-img { height: 20px; }
.drawer-close {
  background: transparent;
  border: 1px solid var(--line-2);
  color: var(--text);
  width: 34px; height: 34px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 14px;
  display: inline-flex; align-items: center; justify-content: center;
  transition: all 0.15s;
}
.drawer-close:hover { background: var(--brand); border-color: var(--brand); color: #fff; }
.drawer-links {
  flex: 1;
  padding: 14px 0;
  display: flex; flex-direction: column;
  overflow-y: auto;
}
.drawer-links a {
  display: flex; align-items: center;
  padding: 16px 22px;
  font-size: 16px;
  color: var(--text);
  font-weight: 500;
  border-bottom: 1px solid var(--line);
  transition: background 0.12s, color 0.12s, padding-left 0.15s;
}
.drawer-links a:hover, .drawer-links a:active {
  background: rgba(193,18,31,0.08);
  color: var(--brand-2);
  padding-left: 28px;
}
.drawer-sep {
  height: 0; border: 0; border-top: 1px solid var(--line);
  margin: 4px 22px;
}

/* Fare type selector in passenger step */
.fare-select {
  background: var(--panel-2);
  border: 1px solid var(--line-2);
  color: var(--text);
  font-family: var(--font);
  font-size: 13px;
  padding: 6px 10px;
  border-radius: 6px;
  cursor: pointer;
  width: 100%;
}
.fare-select:focus { outline: none; border-color: var(--brand); }
.pax-fare { flex-shrink: 0; min-width: 180px; }

.fare-badge-sm {
  display: inline-block;
  font-size: 10px;
  padding: 1px 6px;
  background: rgba(52,152,219,0.15);
  color: #3498db;
  border-radius: 4px;
  font-weight: 600;
  letter-spacing: 0.5px;
  margin-left: 4px;
}
/* Pensioner fare gets a warm amber tint to distinguish from student (blue). */
.fare-badge-pensioner {
  background: rgba(224,164,88,0.16);
  color: #e0a458;
}

/* Auth: channel toggle (phone/email) + verify/forgot/reset views */
.auth-channel { margin-bottom: 12px; }
.field-label { display: block; font-size: 12px; color: var(--muted); margin-bottom: 6px; }
.seg-toggle { display: flex; gap: 8px; }
.seg-toggle .seg { flex: 1; }
.cf-turnstile-slot:not(:empty) { margin: 4px 0 12px; }
.modal-ok { color: #43d39e; font-size: 13px; margin-top: 8px; text-align: center; }

.drawer-foot {
  padding: 18px 22px;
  border-top: 1px solid var(--line);
  background: var(--panel-2);
}
.drawer-phone {
  display: flex; flex-direction: column; gap: 4px;
  text-decoration: none;
}
.drawer-phone .muted {
  font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; font-weight: 600;
}
.drawer-phone strong {
  font-family: var(--mono);
  font-size: 22px;
  color: var(--brand-2);
  letter-spacing: -0.01em;
}

/* When drawer is open: hide the page scroll. Done in JS via body.style.overflow. */

/* ----- LIGHT THEME image-on-image adjustments ----------------------------- */
[data-theme="light"] .sched-table tbody tr:hover td { background: rgba(193,18,31,0.04); }
[data-theme="light"] .valley-photo::after { background: linear-gradient(180deg, rgba(0,0,0,0.0) 0%, rgba(0,0,0,0.3) 70%, rgba(255,255,255,0.9) 100%); }
[data-theme="light"] .valley-tag { color: #fff; }
[data-theme="light"] .fleet-card::after { background: linear-gradient(180deg, rgba(0,0,0,0.0) 0%, rgba(0,0,0,0.4) 55%, rgba(0,0,0,0.85) 100%); }
[data-theme="light"] .station-num { background: var(--bg-2); }

/* =============================================================================
   RESPONSIVE — tablet ≤ 900px, phone ≤ 640px, small phone ≤ 420px
   ============================================================================= */

/* ----- TABLET (≤ 900px) -------------------------------------------------- */
@media (max-width: 900px) {
  .container { padding: 0 18px; }

  /* tighter section spacing */
  .valleys, .schedule, .prices, .fleet, .team, .about, .contact { padding: 64px 0; }
  .section-head { margin-bottom: 32px; }

  /* nav: show hamburger, link list already hidden via .nav-links rule above */
  .nav-inner { gap: 14px; padding: 10px 16px; }
  .nav-toggles { gap: 6px; }
  .nav-cta { padding: 8px 14px; font-size: 13px; }
  .menu-toggle { display: inline-flex; }

  /* hero */
  .hero { padding: 110px 16px 60px; min-height: auto; }
  .hero-h1 { gap: 0.2em; }
  .hero-tagline { font-size: 16px; margin-bottom: 28px; }
  .hero-tagline em { font-size: 19px; }

  /* schedule toolbar wraps */
  .sched-toolbar { gap: 10px; }
  .seg { padding: 8px 14px; font-size: 12.5px; }

  /* schedule table: wider rows would overflow → enable horizontal scroll */
  .sched-card { overflow-x: auto; }
  .sched-table { min-width: 540px; }
  .sched-table thead th, .sched-table tbody td { padding: 12px 14px; }

  /* prices */
  .prc-card, .prc-stations { padding: 22px; }
  .prc-amount { font-size: 32px; }

  /* fleet — let big card shrink */
  .fleet-card-big { min-height: 380px; grid-row: auto; }

  /* about photo collage smaller */
  .about-photo { min-height: 360px; }
  .about-badge { width: 88px; height: 88px; top: 4%; left: 58%; }
  .about-badge strong { font-size: 30px; }
  .about-quote span { font-size: 18px; }

  /* contact: hero number smaller */
  .contact-value { font-size: 28px; }
}

/* ----- PHONE (≤ 640px) --------------------------------------------------- */
@media (max-width: 640px) {
  .container { padding: 0 14px; }

  /* sections tighter still */
  .valleys, .schedule, .prices, .fleet, .team, .about, .contact { padding: 48px 0; }
  .section-head { margin-bottom: 24px; }
  .kicker { font-size: 10px; letter-spacing: 2.5px; }

  /* NAV */
  .nav-inner { padding: 10px 14px; gap: 10px; }
  .logo-img { height: 18px; }
  .logo-sub { font-size: 9px; letter-spacing: 2.5px; padding: 2px 5px; }
  .toggle-btn { width: 32px; height: 32px; font-size: 11px; }
  .nav-cta { padding: 7px 10px; font-size: 12px; }

  /* HERO */
  .hero { padding: 100px 14px 48px; }
  .eyebrow { font-size: 10px; padding: 6px 12px; margin-bottom: 18px; letter-spacing: 2px; }
  .hero-h1 { font-size: clamp(28px, 8.5vw, 42px); line-height: 1.05; gap: 6px 12px; }
  .hero-arrow { font-size: 0.55em; }
  .hero-tagline { font-size: 14px; margin-bottom: 22px; }
  .hero-tagline em { font-size: 16px; }

  /* search card → single column */
  .search-card { padding: 10px; max-width: 100%; }
  .search-row { grid-template-columns: 1fr; gap: 8px; }
  .swap-btn { display: none; }
  .btn-search { width: 100%; padding: 14px; min-height: 46px; }
  .search-cell { padding: 8px 12px; }
  .search-cell select, .search-cell input { font-size: 14px; }

  /* hero meta — two-column compact */
  .hero-meta { gap: 14px; margin-top: 24px; font-size: 12px; }
  .hero-meta strong { font-size: 20px; margin-right: 6px; }
  .sep { display: none; }
  .hero-meta > span { flex: 0 0 calc(50% - 7px); display: flex; flex-direction: column; align-items: center; text-align: center; }
  .hero-meta > span strong { display: block; margin: 0 0 2px 0; }

  /* hide animated scroll indicator on phone — not enough vertical real estate */
  .hero-scroll { display: none; }

  /* SECTION HEAD typography */
  .section-title, h2 { font-size: clamp(24px, 6.5vw, 32px); }
  .section-sub { font-size: 14.5px; }

  /* VALLEYS */
  .valley-photo { height: 200px; }
  .valley-body { padding: 22px; }
  .valley-body h3 { font-size: 19px; }
  .valley-times strong { font-size: 19px; }

  /* SCHEDULE */
  .sched-toolbar { flex-direction: column; align-items: stretch; }
  .seg-control { justify-content: center; }
  .seg { flex: 1; padding: 9px 8px; }
  .sched-table thead th { font-size: 10px; letter-spacing: 1.2px; padding: 12px 10px; }
  .sched-table tbody td { padding: 11px 10px; font-size: 13px; }
  .time-cell { font-size: 14px; }
  .station-num { width: 20px; height: 20px; line-height: 20px; font-size: 10px; }

  /* PRICES */
  .prc-card { padding: 20px; }
  .prc-title { font-size: 15px; gap: 6px; flex-direction: column; align-items: flex-start; }
  .prc-arrow { display: none; }
  .prc-amount { font-size: 28px; }
  .prc-stations h3 { font-size: 16px; }
  .prc-table thead th, .prc-table tbody td { padding: 9px 6px; font-size: 13px; }

  /* FLEET */
  .fleet-card { min-height: 240px; }
  .fleet-card-big { min-height: 320px; }
  .fleet-overlay { padding: 20px; }
  .fleet-overlay h3 { font-size: 17px; }
  .fleet-card-big .fleet-overlay h3 { font-size: 22px; }
  .fleet-overlay ul { grid-template-columns: 1fr; gap: 4px 0; margin-top: 10px; }

  /* TEAM */
  .team-card { padding: 22px 18px; }
  .team-initial { width: 56px; height: 56px; font-size: 26px; }

  /* ABOUT */
  .about-grid { gap: 32px; }
  .about-photo { min-height: 320px; aspect-ratio: 5 / 4; }
  .about-photo-main { width: 78%; height: 78%; border-width: 3px; }
  .about-photo-accent { width: 50%; height: 42%; border-width: 3px; }
  .about-badge { width: 76px; height: 76px; top: 2%; left: 60%; }
  .about-badge strong { font-size: 24px; }
  .about-badge span { font-size: 9px; letter-spacing: 1.5px; }
  .about-text p { font-size: 15px; }
  .about-quote { padding: 18px 20px; }
  .about-quote span { font-size: 17px; }

  /* CONTACT */
  .contact-block { padding: 24px; }
  .contact-value { font-size: 26px; }
  .contact-line strong { font-size: 14px; }

  /* FOOTER */
  .footer { padding: 24px 0; }
  .footer-meta { gap: 12px; font-size: 12px; }

  /* MODALS */
  .modal { padding: 0; align-items: flex-end; }
  .modal-card { max-height: 95vh; border-radius: var(--radius) var(--radius) 0 0; }
  .modal-card-sm, .modal-card-lg { max-width: 100%; }
  .modal-close { top: 10px; right: 10px; }
  .auth-header { padding: 24px 22px 4px; }
  .auth-header h3 { font-size: 18px; }
  .auth-icon { width: 48px; height: 48px; margin-bottom: 12px; }
  .auth-switch { padding: 0 22px 20px; }
  .modal-form { padding: 14px 22px 14px; gap: 12px; }

  /* tickets page responsive */
  .acct-booking-head { padding: 14px; flex-direction: column; align-items: flex-start; }
  .acct-booking-meta { width: 100%; justify-content: space-between; }
  .acct-tk-list { padding: 0 14px; }
  .acct-tk-row { gap: 8px; }
  .acct-qr-wrap img { width: 160px; height: 160px; }

  /* booking steps: smaller text, ensure horizontal scroll */
  .steps { padding: 16px 18px 10px; gap: 0; }
  .steps li { padding: 0 12px 12px; font-size: 11.5px; gap: 6px; }
  .steps li::after { margin-left: 12px; }
  .steps li span { width: 20px; height: 20px; font-size: 10px; }
  .step-body { padding: 18px 18px 22px; }
  .step-bar { gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
  .step-bar .btn { font-size: 12px; padding: 6px 10px; }
  .step-bar-info strong { font-size: 14px; }

  /* trip cards in modal — stack info, hide aux columns */
  .trip-list-modal .trip-card {
    grid-template-columns: auto 1fr;
    grid-template-areas: "time route" "seats price";
    column-gap: 14px; row-gap: 8px;
    padding: 14px 16px;
  }
  .trip-card .t-time { grid-area: time; font-size: 19px; }
  .trip-card .t-route { grid-area: route; font-size: 13px; }
  .trip-card .t-seats { grid-area: seats; font-size: 12px; }
  .trip-card .t-price { grid-area: price; text-align: right; font-size: 16px; }

  /* seats inside modal */
  .seats-modal-card { padding: 12px; }
  .seats-modal-card .seats-grid { gap: 6px; padding: 6px; }
  .seats-modal-card .seat { min-height: 34px; font-size: 11px; }

  /* modal footer with action */
  .modal-foot { padding: 14px 18px; gap: 10px; }
  .modal-foot .btn { width: 100%; }
  .modal-foot.single .btn { width: auto; }
  .foot-info { width: 100%; justify-content: center; }

  /* passenger rows */
  .pax-row { grid-template-columns: auto 1fr; grid-template-areas: "seat name" "seat fare"; padding: 12px 14px; }
  .pax-row .seat-badge { grid-area: seat; }
  .pax-row input { grid-area: name; }
  .pax-fare { grid-area: fare; min-width: 0; }

  /* nav user links */
  .nav-user-links { display: none; }

  /* page sections */
  .page-section { padding: 80px 0 40px; }
  .page-head h2 { font-size: 20px; }

  /* ticket cards already stack via existing 560px rule, keep tighter */
  .ticket-card { padding: 14px; gap: 14px; }
  .ticket-info .ticket-name { font-size: 16px; }
}

/* ----- SMALL PHONE (≤ 420px) -------------------------------------------- */
@media (max-width: 420px) {
  .logo-sub { display: none; }            /* "TRANSPORT" — drop on tiny screens */
  .nav-cta { padding: 6px 8px; font-size: 11px; }
  .nav-toggles { gap: 4px; }
  .toggle-btn { width: 28px; height: 28px; }

  .hero { padding: 90px 12px 40px; }
  .hero-h1 { font-size: clamp(26px, 9vw, 36px); }
  .eyebrow { font-size: 9px; }

  .section-title, h2 { font-size: clamp(22px, 7vw, 28px); }

  .prc-amount { font-size: 24px; }
  .contact-value { font-size: 22px; }

  /* schedule: hide the number column on extra-tight screens */
  .sched-table thead th:first-child,
  .sched-table tbody td:first-child { display: none; }
  .sched-table { min-width: 460px; }

  /* steps: hide the labels, keep only the numbers */
  .steps li b { display: none; }
}

/* ----- TOUCH DEVICE: disable expensive hovers --------------------------- */
@media (hover: none) {
  .valley:hover { transform: none; }
  .fleet-card:hover .fleet-img { transform: none; }
  .team-card:hover { transform: none; }
  .trip-card:hover { transform: none; }
}

/* ============================== ADMIN PANEL ============================== */
.admin-route-list { display:flex; flex-direction:column; gap:16px; }
.admin-route-card {
  background:var(--panel); border:1px solid var(--line-2); border-radius:var(--radius);
  overflow:hidden;
}
.admin-route-head {
  display:flex; align-items:center; gap:12px; padding:16px 20px;
  cursor:pointer; user-select:none;
}
.admin-route-head:hover { background:var(--panel-2); }
.admin-route-name { flex:1; font-weight:600; font-size:15px; }
.admin-route-meta { display:flex; gap:8px; align-items:center; }
.admin-badge { font-size:11px; padding:2px 8px; border-radius:6px; font-weight:600; letter-spacing:0.5px; }
.admin-badge-active { background:rgba(67,211,158,0.15); color:var(--ok); }
.admin-badge-inactive { background:rgba(230,57,70,0.15); color:var(--brand-2); }
.admin-badge-dir { background:var(--panel-2); color:var(--muted); }
.admin-toggle { font-size:18px; color:var(--muted); transition:transform 0.2s; }
.admin-route-card.open .admin-toggle { transform:rotate(90deg); }

.admin-route-body { display:none; padding:0 20px 20px; }
.admin-route-card.open .admin-route-body { display:block; }

.admin-section { margin-top:16px; }
.admin-section-title {
  font-size:12px; text-transform:uppercase; letter-spacing:1.5px;
  color:var(--muted); margin-bottom:8px; font-weight:600;
}
.admin-table {
  width:100%; border-collapse:collapse; font-size:13px;
}
.admin-table th {
  text-align:left; padding:6px 10px; font-size:11px; text-transform:uppercase;
  letter-spacing:1px; color:var(--muted); border-bottom:1px solid var(--line);
}
.admin-table td { padding:6px 10px; border-bottom:1px solid var(--line); }
.admin-table input, .admin-table select {
  background:var(--bg-3); border:1px solid var(--line-2); border-radius:6px;
  color:var(--text); padding:4px 8px; font-size:13px; width:100%;
}
.admin-table input:focus, .admin-table select:focus {
  outline:none; border-color:var(--brand);
}
.admin-actions { display:flex; gap:6px; flex-shrink:0; }
.admin-btn {
  padding:4px 10px; border-radius:6px; border:1px solid var(--line-2);
  background:var(--panel-2); color:var(--text); cursor:pointer; font-size:12px;
}
.admin-btn:hover { background:var(--bg-3); }
.admin-btn-save { border-color:var(--ok); color:var(--ok); }
.admin-btn-del { border-color:var(--brand-2); color:var(--brand-2); }
.admin-btn-add {
  padding:6px 14px; border-radius:8px; border:1px dashed var(--line-2);
  background:transparent; color:var(--muted); cursor:pointer; font-size:13px;
  margin-top:8px;
}
.admin-btn-add:hover { border-color:var(--brand); color:var(--brand); }
.admin-btn-add-route {
  width:100%; padding:14px; font-size:15px; font-weight:600;
  border-style:dashed; border-width:2px; margin-top:0;
}

.admin-route-fields {
  display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
  gap:10px; margin-bottom:12px;
}
.admin-field label { display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--muted); }
.admin-field input, .admin-field select {
  background:var(--bg-3); border:1px solid var(--line-2); border-radius:6px;
  color:var(--text); padding:6px 10px; font-size:13px;
}
.admin-field input:focus { outline:none; border-color:var(--brand); }
.admin-msg { font-size:12px; color:var(--ok); margin-left:8px; }
.admin-err { font-size:12px; color:var(--brand-2); margin-left:8px; }

/* Admin tabs */
.admin-tabs {
  display:flex; gap:4px; margin-bottom:20px;
  border-bottom:1px solid var(--line-2); padding-bottom:0;
}
.admin-tab {
  padding:10px 20px; border:none; background:none; color:var(--muted);
  font-size:14px; font-weight:600; cursor:pointer; border-bottom:2px solid transparent;
  transition:color 0.2s, border-color 0.2s;
}
.admin-tab:hover { color:var(--text); }
.admin-tab.active { color:var(--brand); border-bottom-color:var(--brand); }

/* Occupancy calendar */
.occ-header {
  display:flex; align-items:center; justify-content:center; gap:16px; margin-bottom:20px;
}
.occ-month-label {
  min-width:200px; text-align:center; font-size:18px; font-weight:700;
}
.occ-nav { padding:6px 14px; font-size:16px; min-width:40px; }

.occ-calendar {
  display:grid; grid-template-columns:repeat(7, 1fr); gap:6px;
}
.occ-day-head {
  text-align:center; font-size:11px; text-transform:uppercase;
  letter-spacing:1.5px; color:var(--muted); padding:6px 0; font-weight:600;
}
.occ-day {
  background:var(--panel); border:1px solid var(--line-2); border-radius:var(--radius);
  padding:8px; min-height:90px; cursor:pointer; transition:border-color 0.2s, background 0.2s;
}
.occ-day:hover { border-color:var(--brand); background:var(--panel-2); }
.occ-day.occ-today { border-color:var(--brand); }
.occ-day.occ-selected { border-color:var(--brand); background:var(--brand-a10); }
.occ-day-empty {
  background:transparent; border:1px solid transparent; min-height:90px;
}
.occ-day-num {
  font-size:13px; font-weight:700; margin-bottom:6px; color:var(--text);
}
.occ-day.occ-today .occ-day-num {
  color:var(--brand);
}
.occ-day-bars { display:flex; flex-direction:column; gap:3px; }
.occ-bar-row {
  display:flex; align-items:center; gap:4px;
}
.occ-bar-label {
  font-size:9px; color:var(--muted); white-space:nowrap; overflow:hidden;
  text-overflow:ellipsis; max-width:50px; flex-shrink:0;
}
.occ-bar-wrap {
  flex:1; height:6px; background:var(--bg-3); border-radius:3px; overflow:hidden;
}
.occ-bar-fill { height:100%; border-radius:3px; transition:width 0.3s; }
.occ-bar-fill.occ-low  { background:var(--ok); }
.occ-bar-fill.occ-mid  { background:var(--gold); }
.occ-bar-fill.occ-high { background:var(--brand-2); }
.occ-bar-count {
  font-size:9px; color:var(--muted); font-family:ui-monospace,Menlo,monospace;
  min-width:24px; text-align:right;
}

/* Occupancy detail panel */
.occ-detail {
  margin-top:20px; background:var(--panel); border:1px solid var(--line-2);
  border-radius:var(--radius); padding:20px;
}
.occ-detail-head {
  display:flex; align-items:center; justify-content:space-between; margin-bottom:16px;
}
.occ-detail-date { font-size:16px; font-weight:700; }
.occ-detail-close {
  background:none; border:none; color:var(--muted); cursor:pointer;
  font-size:18px; padding:4px 8px;
}
.occ-detail-close:hover { color:var(--text); }
.occ-trip-card {
  background:var(--bg-3); border:1px solid var(--line); border-radius:10px;
  padding:16px; margin-bottom:12px;
}
.occ-trip-card:last-child { margin-bottom:0; }
.occ-trip-top {
  display:flex; align-items:center; justify-content:space-between; margin-bottom:10px;
}
.occ-trip-route { font-weight:700; font-size:14px; }
.occ-trip-time { font-size:13px; color:var(--muted); font-family:ui-monospace,Menlo,monospace; }
.occ-trip-vehicle { font-size:12px; color:var(--muted); margin-bottom:10px; }
.occ-trip-bar-wrap {
  height:10px; background:var(--panel); border-radius:5px; overflow:hidden; margin-bottom:6px;
}
.occ-trip-bar-fill { height:100%; border-radius:5px; }
.occ-trip-stats {
  display:flex; gap:16px; font-size:12px; color:var(--muted);
}
.occ-trip-stats strong { color:var(--text); }
.occ-trip-pct {
  font-size:20px; font-weight:800; font-family:ui-monospace,Menlo,monospace;
}
.occ-trip-pct.occ-low  { color:var(--ok); }
.occ-trip-pct.occ-mid  { color:var(--gold); }
.occ-trip-pct.occ-high { color:var(--brand-2); }

@media (max-width:768px) {
  .occ-calendar { grid-template-columns:repeat(7, 1fr); gap:3px; }
  .occ-day { padding:5px; min-height:70px; }
  .occ-bar-label { display:none; }
  .occ-bar-count { display:none; }
}

/* ---- Drivers management ---- */
.drivers-header { margin-bottom:20px; }
.drivers-header p { margin:0 0 14px; }
.drivers-add-form { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.drivers-add-form input {
  flex:1; min-width:220px; padding:10px 14px; border-radius:8px;
  border:1px solid var(--line); background:var(--panel2); color:var(--text); font-size:14px;
}
.drivers-add-form input:focus { border-color:var(--brand); outline:none; }
.drivers-msg { margin-top:10px; padding:8px 14px; border-radius:8px; font-size:13px; }
.drivers-msg-ok { background:rgba(67,211,158,0.12); color:#43d39e; }
.drivers-msg-err { background:rgba(230,57,70,0.12); color:#e63946; }
.drivers-list { display:flex; flex-direction:column; gap:8px; }
.driver-card {
  display:flex; justify-content:space-between; align-items:center;
  padding:14px 18px; border-radius:10px;
  background:var(--panel); border:1px solid var(--line);
}
.driver-inactive { opacity:0.5; }
.driver-name { font-weight:700; color:var(--text); }
.driver-meta { font-size:12px; color:var(--muted); margin-top:2px; }
.driver-actions { display:flex; align-items:center; gap:12px; }
.driver-status { font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; }
.driver-status-ok { color:#43d39e; }
.driver-status-off { color:var(--muted); }
.driver-remove { color:#e63946; border-color:#e63946; }
.driver-remove:hover { background:rgba(230,57,70,0.12); }
.btn-sm { padding:6px 12px; font-size:12px; }

/* ---- Luggage promo section ---- */
.luggage-promo {
  padding:80px 0;
  background:var(--bg-2);
  position:relative; overflow:hidden;
}
.luggage-promo-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;
}
@media (max-width:768px) {
  .luggage-promo-grid { grid-template-columns:1fr; gap:32px; }
  .luggage-promo-visual { order:-1; }
}
.luggage-promo-text .section-title { text-align:left; }
.luggage-promo-text .section-sub { text-align:left; }
.luggage-promo-text .kicker { text-align:left; }
.luggage-promo-feats {
  display:flex; flex-wrap:wrap; gap:16px; margin:24px 0 28px;
}
.luggage-promo-feat {
  display:flex; align-items:center; gap:8px;
  padding:8px 14px; border-radius:8px;
  background:var(--panel); border:1px solid var(--line);
  font-size:13px; color:var(--text); font-weight:600;
}
.luggage-promo-feat-icon {
  display:flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:8px;
  background:rgba(230,126,34,0.12);
}
.luggage-promo-feat-icon svg { stroke:var(--brand); }
.luggage-promo-cta { font-size:16px; padding:16px 28px; }

.luggage-promo-visual { display:flex; justify-content:center; }
.luggage-promo-box {
  background:var(--panel); border:1px solid var(--line); border-radius:16px;
  padding:32px 40px; text-align:center; width:280px;
  box-shadow:0 20px 60px rgba(0,0,0,0.3);
}
.luggage-promo-box-icon { margin-bottom:16px; }
.luggage-promo-box-icon svg { stroke:var(--brand); }
.luggage-promo-box-route {
  color:var(--text); font-weight:700; font-size:14px; margin-bottom:20px;
}
.luggage-promo-box-code {
  display:flex; flex-direction:column; gap:4px;
  padding:14px; border-radius:10px;
  background:rgba(255,183,77,0.08); border:1px solid rgba(212,163,115,0.3);
}
.luggage-promo-box-code .muted { font-size:10px; text-transform:uppercase; letter-spacing:1.5px; }
.luggage-promo-box-code strong {
  font-size:28px; letter-spacing:6px; color:var(--gold); font-weight:800;
}

/* ---- Luggage page ---- */
.lug-search-form {
  display:grid; grid-template-columns:1fr 1fr 1fr auto; gap:12px;
  align-items:end; margin-bottom:20px;
}
@media (max-width:600px) { .lug-search-form { grid-template-columns:1fr; } }
.lug-trip-list { margin-bottom:16px; }
.lug-trip-list .trip-card {
  display:grid; grid-template-columns:auto 1fr auto;
  align-items:center; gap:18px;
  padding:16px 20px; margin-bottom:8px;
  background:var(--panel); border:1px solid var(--line);
  border-radius:12px; cursor:pointer;
  transition:border-color .15s, transform .05s;
}
.lug-trip-list .trip-card:hover { border-color:var(--brand); transform:translateY(-1px); }
.lug-selected-trip {
  display:flex; align-items:center; gap:14px;
  padding-bottom:14px; border-bottom:1px solid var(--line); margin-bottom:4px;
}
.lug-trip-label { color:var(--text); font-weight:600; font-size:15px; }

/* ---- Luggage (shared) ---- */
.luggage-link-wrap { text-align:center; margin:24px 0 16px; }
.luggage-link {
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 20px; border:1px dashed var(--line); border-radius:10px;
  background:transparent; color:var(--brand); font-size:13px; font-weight:600;
  cursor:pointer; transition:border-color .2s, background .2s;
}
.luggage-link:hover { border-color:var(--brand); background:rgba(230,126,34,0.06); }
.luggage-link svg { stroke:var(--brand); flex-shrink:0; }

.luggage-form {
  margin:16px 0 20px; padding:20px; border-radius:14px;
  background:var(--panel); border:1px solid var(--line);
}
.luggage-form h4 { color:var(--text); margin:0 0 4px; font-size:16px; }
.luggage-hint { margin-bottom:16px !important; font-size:13px; }
.luggage-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:14px; }
@media (max-width:600px) { .luggage-fields { grid-template-columns:1fr; } }
.luggage-price-row {
  display:flex; align-items:center; gap:8px;
  padding:10px 0; margin-bottom:8px; font-size:15px;
}
.luggage-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:8px; }

.luggage-success { text-align:center; padding:40px 20px; }
.luggage-success h3 { color:var(--text); margin:12px 0 20px; }
.luggage-code-wrap { margin-bottom:24px; }
.luggage-code {
  font-size:32px; font-weight:800; letter-spacing:4px; color:var(--gold);
  background:rgba(255,183,77,0.10); border:2px solid var(--gold);
  border-radius:12px; padding:16px; margin:10px auto;
  display:inline-block; min-width:180px;
}

.handover-qr-wrap {
  text-align:center; margin:16px 0 8px; padding:16px;
  background:rgba(255,255,255,0.04); border-radius:12px;
}
.handover-qr-wrap .muted { display:block; font-size:11px; text-transform:uppercase; letter-spacing:1.5px; margin-bottom:12px; }
.handover-qr-img {
  display:inline-block; width:200px; height:200px; border-radius:12px;
  background:#fff; padding:8px;
}

/* Parcel cards in tickets page */
.parcel-card {
  background:var(--panel); border:1px solid var(--line); border-radius:12px;
  padding:16px; margin-bottom:10px;
}
.parcel-card-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:8px; }
.parcel-route { font-weight:700; color:var(--text); font-size:14px; }
.parcel-meta { color:var(--muted); font-size:12px; margin-top:2px; }
.parcel-status {
  font-size:10px; font-weight:700; letter-spacing:0.5px; text-transform:uppercase;
  padding:3px 8px; border-radius:6px; border:1px solid; white-space:nowrap;
}
.parcel-st-paid { color:#43d39e; border-color:#43d39e; }
.parcel-st-in_transit { color:var(--gold); border-color:var(--gold); }
.parcel-st-delivered { color:#8888dd; border-color:#8888dd; }
.parcel-st-cancelled { color:var(--muted); border-color:var(--line); }
.parcel-st-pending_payment { color:var(--muted); border-color:var(--line); }
.parcel-code-row {
  display:flex; align-items:center; gap:8px; margin-top:8px;
  padding:8px 12px; background:rgba(255,183,77,0.08); border-radius:8px;
}
.parcel-code-label { color:var(--muted); font-size:11px; }
.parcel-code-value { color:var(--gold); font-weight:800; font-size:16px; letter-spacing:2px; }
.parcel-cancel-btn {
  margin-top:8px; padding:6px 12px; font-size:12px; font-weight:600;
  border:1px solid #e63946; border-radius:6px; background:transparent;
  color:#e63946; cursor:pointer; transition:background .2s;
}
.parcel-cancel-btn:hover { background:rgba(230,57,70,0.1); }

.acct-booking-foot {
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  padding:12px 16px; border-top:1px solid var(--line);
}
.btn-cancel-booking {
  padding:6px 12px; font-size:12px; font-weight:600;
  border:1px solid #e63946; border-radius:6px; background:transparent;
  color:#e63946; cursor:pointer; transition:background .2s;
}
.btn-cancel-booking:hover { background:rgba(230,57,70,0.1); }
.acct-cancel-note { font-size:11px; }
