/* ClubRoute — globalt stylesheet (porteret fra mockup) */
:root {
  --bg: #0d0f12;
  --surface: #161a20;
  --surface2: #1e2530;
  --border: rgba(255,255,255,0.07);
  --border2: rgba(255,255,255,0.14);
  --accent: #e8521a;
  --accent2: #f0831f;
  --text: #f0ede8;
  --muted: #a5adbc;
  --green: #22c55e;
  --yellow: #eab308;
  --red: #ef4444;
  --font-display: 'Bebas Neue', sans-serif;
  --font-body: 'DM Sans', sans-serif;
  --font-mono: 'DM Mono', monospace;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scrollbar-gutter: stable; }

body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.5;
}
body.fixed { height: 100vh; overflow: hidden; display: flex; flex-direction: column; }

a { color: var(--accent2); text-decoration: none; }
a:hover { text-decoration: underline; }

/* TOP NAV */
nav {
  display: flex; align-items: center; gap: 0; height: 52px;
  background: var(--surface); border-bottom: 1px solid var(--border);
  padding: 0 16px; flex-shrink: 0; z-index: 100;
}
.logo { font-family: var(--font-display); font-size: 26px; letter-spacing: 2px; color: var(--text); margin-right: 24px; }
.logo a { color: var(--text); text-decoration: none; }
.logo span { color: var(--accent); }
.nav-tabs { display: flex; gap: 2px; flex: 1; }
.nav-tab {
  padding: 6px 14px; border-radius: 6px; cursor: pointer; font-size: 13px;
  font-weight: 500; color: var(--muted); border: 1px solid transparent; background: none;
  transition: all 0.15s; font-family: var(--font-body); text-decoration: none;
}
.nav-tab:hover { color: var(--text); background: var(--surface2); text-decoration: none; }
.nav-tab.active { color: var(--text); background: var(--surface2); border: 1px solid var(--border2); }
.nav-right { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.avatar {
  width: 32px; height: 32px; border-radius: 50%; background: var(--accent);
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 600; cursor: pointer; color: #fff;
}

/* BUTTONS */
.btn {
  padding: 7px 14px; border-radius: 6px; font-family: var(--font-body);
  font-size: 13px; font-weight: 500; cursor: pointer; border: none;
  transition: all 0.15s; display: inline-block; text-decoration: none;
}
.btn:hover { text-decoration: none; }
.btn-primary { background: var(--accent); color: #fff; }
.btn-primary:hover { background: var(--accent2); }
.btn-ghost { background: transparent; color: var(--muted); border: 1px solid var(--border2); }
.btn-ghost:hover { color: var(--text); border-color: var(--border2); background: var(--surface2); }
.btn-soft { background: rgba(232,82,26,0.12); color: var(--accent); border: 1px solid rgba(232,82,26,0.35); }
.btn-soft:hover { background: rgba(232,82,26,0.2); border-color: var(--accent); color: var(--accent); }
.btn-danger { background: transparent; color: var(--red); border: 1px solid rgba(239,68,68,0.3); }
.btn-danger:hover { background: rgba(239,68,68,0.1); }
.btn-block { display: block; width: 100%; text-align: center; }

/* FORMS */
input[type=text], input[type=email], input[type=password], input[type=number], select, textarea {
  background: var(--surface2); border: 1px solid var(--border2); border-radius: 6px;
  padding: 9px 12px; color: var(--text); font-family: var(--font-body);
  font-size: 14px; outline: none; transition: border-color 0.15s; width: 100%;
}
input:focus, select:focus, textarea:focus { border-color: var(--accent); }
select option { background: var(--surface2); }
label { display: block; font-size: 12px; color: var(--muted); margin-bottom: 5px; }
.field { margin-bottom: 14px; }

.country-picker { position: relative; width: 100%; }
.country-picker-button {
  background: var(--surface2); border: 1px solid var(--border2); border-radius: 6px;
  color: var(--text); cursor: pointer; display: flex; align-items: center; gap: 10px;
  font-family: var(--font-body); font-size: 14px; min-height: 40px; padding: 8px 12px;
  text-align: left; width: 100%;
}
.country-picker-button:hover { border-color: var(--border2); background: #232b37; }
.country-picker-button[aria-expanded="true"] { border-color: var(--accent); }
.country-picker-current { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.country-picker-caret { color: var(--muted); font-size: 10px; }
.country-picker-flag {
  align-items: center; background: rgba(255,255,255,0.06); border: 1px solid var(--border);
  border-radius: 3px; display: inline-flex; flex: 0 0 auto; height: 18px; justify-content: center;
  overflow: hidden; width: 24px;
}
.country-picker-flag img { display: block; height: 18px; object-fit: cover; width: 24px; }
.country-picker-flag span {
  color: var(--muted); display: none; font-family: var(--font-mono); font-size: 9px; line-height: 1;
}
.country-picker-flag[data-failed="1"] img { display: none; }
.country-picker-flag[data-failed="1"] span { display: inline-flex; }
.country-picker-menu {
  background: var(--surface); border: 1px solid var(--border2); border-radius: 8px;
  box-shadow: 0 10px 28px rgba(0,0,0,.55); left: 0; margin-top: 6px; overflow: hidden;
  position: absolute; right: 0; top: 100%; z-index: 2600;
}
.country-picker-search {
  border-radius: 0; border-width: 0 0 1px 0; margin: 0; min-height: 38px;
}
.country-picker-list { max-height: 270px; overflow-y: auto; padding: 5px; }
.country-picker-option {
  align-items: center; background: transparent; border: 0; border-radius: 6px; color: var(--text);
  cursor: pointer; display: flex; font-family: var(--font-body); font-size: 13px; gap: 10px;
  padding: 8px 9px; text-align: left; width: 100%;
}
.country-picker-option:hover,
.country-picker-option[aria-selected="true"] { background: var(--surface2); }
.country-picker-option[hidden] { display: none; }

/* LAYOUT HELPERS */
.container { max-width: 1080px; margin: 0 auto; padding: 32px 20px; }
.super-container { max-width: 1280px; }
.super-user-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.super-user-tabs .nav-tab {
  align-items: center;
  display: inline-flex;
  justify-content: center;
  min-height: 34px;
  min-width: 178px;
  text-align: center;
}
.card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 12px; padding: 24px;
}
.auth-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 20px; }
.auth-card { width: 100%; max-width: 380px; }
.auth-back-link {
  align-items: center;
  border: 1px solid var(--border2);
  border-radius: 6px;
  color: var(--muted);
  display: inline-flex;
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 18px;
  padding: 7px 10px;
  text-decoration: none;
}
.auth-back-link:hover {
  background: var(--surface2);
  color: var(--text);
  text-decoration: none;
}
.muted { color: var(--muted); }
.center { text-align: center; }
.logo.center { margin-right: 0; }
.mt { margin-top: 16px; }
.page-title { font-family: var(--font-display); font-size: 36px; letter-spacing: 2px; margin-bottom: 6px; }
.page-sub { color: var(--muted); font-size: 14px; margin-bottom: 24px; }
.legal-footer {
  display: flex; flex-wrap: wrap; gap: 12px; justify-content: center;
  border-top: 1px solid var(--border); margin-top: 32px; padding-top: 18px;
  color: var(--muted); font-size: 12px;
}
.legal-footer a { color: var(--muted); }
.legal-page { max-width: 820px; margin: 0 auto; }
.legal-card { display: flex; flex-direction: column; gap: 14px; }
.legal-card h2 { font-size: 16px; margin-top: 6px; }
.legal-card p { color: #d5d1ca; }
.legal-list { margin-left: 18px; color: var(--muted); }
.billing-page { max-width: 560px; margin: 0 auto; }
.billing-card { width: 100%; }
.company-legal-info {
  line-height: 1.65;
}
.payment-methods {
  align-items: center;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-left: 8px;
  vertical-align: middle;
}
.payment-card {
  align-items: center;
  background: #fff;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 5px;
  color: #111827;
  display: inline-flex;
  font-size: 11px;
  font-weight: 900;
  gap: 5px;
  letter-spacing: .02em;
  line-height: 1;
  min-height: 24px;
  padding: 4px 8px;
}
.payment-card-visa {
  color: #1434cb;
  font-family: Arial, sans-serif;
  font-style: italic;
  letter-spacing: .06em;
}
.payment-card-mastercard {
  color: #111827;
  font-family: Arial, sans-serif;
}
.mc-mark {
  display: inline-flex;
  height: 16px;
  position: relative;
  width: 25px;
}
.mc-mark span {
  border-radius: 999px;
  display: block;
  height: 16px;
  position: absolute;
  top: 0;
  width: 16px;
}
.mc-mark span:first-child {
  background: #eb001b;
  left: 0;
}
.mc-mark span:last-child {
  background: #f79e1b;
  left: 9px;
  mix-blend-mode: multiply;
}
.checkout-facts {
  background: rgba(255,255,255,.035);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: #d5d1ca;
  display: grid;
  gap: 8px;
  margin: 0 0 14px;
  padding: 12px;
}
.checkout-facts p {
  font-size: 12px;
  margin: 0;
}
.checkout-facts .payment-methods {
  margin-left: 4px;
  margin-right: 4px;
}

/* FLASH */
.flash { padding: 10px 14px; border-radius: 8px; margin-bottom: 14px; font-size: 13px; border-left: 3px solid; }
.flash-success { background: rgba(34,197,94,0.1); border-color: var(--green); }
.flash-error { background: rgba(239,68,68,0.1); border-color: var(--red); }

/* TABLES */
table { width: 100%; border-collapse: collapse; }
th { padding: 10px 16px; text-align: left; font-size: 11px; font-weight: 600; color: var(--muted); letter-spacing: 0.06em; text-transform: uppercase; border-bottom: 1px solid var(--border); }
td { padding: 12px 16px; font-size: 13px; border-bottom: 1px solid var(--border); }
tr:last-child td { border-bottom: none; }
tr:hover td { background: rgba(255,255,255,0.02); }
.badge { padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 600; font-family: var(--font-mono); }
.badge-active { background: rgba(34,197,94,0.12); color: #4ade80; }
.badge-pending { background: rgba(234,179,8,0.12); color: #facc15; }
.badge-expired { background: rgba(122,128,144,0.12); color: var(--muted); }
.super-users-table-wrap {
  overflow-x: visible;
  width: 100%;
}
.super-users-table {
  table-layout: fixed;
}
.super-users-table th {
  padding: 10px 12px;
}
.super-users-table td {
  line-height: 1.32;
  padding: 10px 12px;
  vertical-align: middle;
}
.super-users-table .super-users-col-user { width: 18%; }
.super-users-table .super-users-col-status { width: 6%; }
.super-users-table .super-users-col-clubs { width: 21%; }
.super-users-table .super-users-col-lang { width: 8%; }
.super-users-table .super-users-col-routes { width: 9%; }
.super-users-table .super-users-col-app { width: 18%; }
.super-users-table .super-users-col-web { width: 9%; }
.super-users-table .super-users-col-created { width: 7%; }
.super-users-table .super-users-col-actions { width: 4%; }
.super-users-main-line,
.super-users-meta-line {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.super-users-main-line {
  color: var(--text);
  font-weight: 700;
}
.super-users-meta-line {
  color: var(--muted);
  font-size: 12px;
  margin-top: 2px;
}
.user-status-icon {
  align-items: center;
  border-radius: 999px;
  display: inline-flex;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 800;
  height: 24px;
  justify-content: center;
  line-height: 1;
  width: 24px;
}
.user-status-icon-ok {
  background: rgba(34,197,94,0.14);
  border: 1px solid rgba(34,197,94,0.34);
  color: #4ade80;
}
.user-status-icon-wait {
  background: rgba(234,179,8,0.12);
  border: 1px solid rgba(234,179,8,0.32);
  color: #facc15;
}
.super-users-delete-btn {
  border-color: rgba(255,107,107,.45);
  color: #ff6b6b;
  padding: 5px 9px;
}

/* TAGS / DOTS */
.tag { padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 500; font-family: var(--font-mono); }
.tag-mc { background: rgba(232,82,26,0.15); color: var(--accent2); }
.tag-bil { background: rgba(34,197,94,0.12); color: #4ade80; }
.tag-cykel { background: rgba(59,130,246,0.15); color: #60a5fa; }
.tag-gaa { background: rgba(168,85,247,0.15); color: #c084fc; }
.tag-sub { background: rgba(122,128,144,0.15); color: var(--muted); }
.dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }
.dot-live { background: var(--green); box-shadow: 0 0 6px var(--green); animation: pulse 2s infinite; }
.dot-plan { background: var(--yellow); }
.dot-done { background: var(--muted); }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.5} }

/* GRID */
.kpi-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 24px; }
.kpi-card { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 16px; }
.kpi-val { font-family: var(--font-mono); font-size: 28px; font-weight: 500; }
.kpi-lbl { font-size: 12px; color: var(--muted); margin-top: 4px; }
.kpi-delta { font-size: 12px; color: var(--green); margin-top: 4px; }

/* PUBLIC HOME */
.home-page {
  margin: -32px auto 0;
  overflow: visible;
  width: 100%;
}
.home-hero {
  align-items: center;
  background: #090c10;
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: 0 24px 70px rgba(0,0,0,.42);
  display: flex;
  min-height: min(570px, calc(100vh - 112px));
  min-height: min(570px, calc(100dvh - 112px));
  overflow: hidden;
  padding: 62px 70px 54px;
  position: relative;
}
.home-hero-bg {
  height: 100%;
  inset: 0;
  object-fit: cover;
  object-position: center 48%;
  opacity: .72;
  position: absolute;
  transform: scale(1.04);
  width: 100%;
}
.home-hero-shade {
  background: linear-gradient(90deg, rgba(7,9,12,.82) 0%, rgba(7,9,12,.72) 48%, rgba(7,9,12,.44) 100%);
  inset: 0;
  position: absolute;
}
.home-hero-inner {
  max-width: 900px;
  position: relative;
  width: 100%;
  z-index: 1;
}
.sr-only {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}
.home-eyebrow,
.home-kicker {
  color: var(--green);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  margin-bottom: 10px;
  text-transform: uppercase;
}
.home-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(82px, 16vw, 176px);
  font-weight: 400;
  line-height: .86;
  margin: 0;
}
.home-title span { color: var(--accent); }
.home-brand-banner {
  background: #000;
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 20px 58px rgba(0,0,0,.48);
  display: block;
  height: auto;
  margin-top: 12px;
  max-width: min(100%, 720px);
  width: 100%;
}
.home-tagline {
  color: #f5f5f5;
  font-family: var(--font-display);
  font-size: clamp(30px, 4vw, 52px);
  line-height: .95;
  margin-top: 24px;
  max-width: 720px;
  text-shadow: 0 4px 20px rgba(0,0,0,.55);
  text-transform: uppercase;
}
.home-lead {
  color: #d8dee8;
  font-size: clamp(17px, 2vw, 22px);
  line-height: 1.35;
  margin-top: 18px;
  max-width: 690px;
}
.home-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}
.home-actions-center { justify-content: center; }
.home-cta {
  align-items: center;
  display: inline-flex;
  min-height: 44px;
  padding: 10px 18px;
}
.home-hero-bottom {
  align-items: end;
  display: grid;
  gap: 22px;
  grid-template-columns: minmax(0, 1fr) 204px;
  max-width: 860px;
}
.home-hero-controls { min-width: 0; }
.home-store-buttons {
  display: flex;
  flex-direction: column;
  gap: 8px;
  justify-self: end;
  margin-top: 24px;
  width: 204px;
}
.home-store-badge {
  align-items: center;
  background: #000;
  border: 2px solid rgba(255,255,255,.62);
  border-radius: 7px;
  box-shadow: 0 8px 18px rgba(0,0,0,.24);
  color: #fff;
  display: flex;
  flex: 0 0 52px;
  gap: 10px;
  line-height: 1;
  min-height: 52px;
  padding: 7px 14px;
  text-decoration: none;
  width: 204px;
}
.home-store-badge:hover {
  border-color: rgba(232,82,26,.8);
  box-shadow: 0 12px 32px rgba(232,82,26,.16);
  text-decoration: none;
}
.home-store-icon {
  align-items: center;
  display: inline-flex;
  flex: 0 0 34px;
  height: 34px;
  justify-content: center;
  width: 34px;
}
.home-store-icon svg {
  display: block;
  height: 34px;
  width: 34px;
}
.home-store-icon-apple svg {
  fill: #fff;
}
.home-store-copy {
  display: block;
  min-width: 0;
}
.home-store-label {
  color: #c7ceda;
  display: block;
  font-size: 9px;
  font-weight: 800;
  margin-bottom: 2px;
  white-space: nowrap;
}
.home-store-badge strong {
  color: #fff;
  display: block;
  font-size: 20px;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1;
  white-space: nowrap;
}
.home-language-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}
.home-language-pill {
  align-items: center;
  background: rgba(22,26,32,.82);
  border: 1px solid var(--border2);
  border-radius: 999px;
  color: #dce3ef;
  display: inline-flex;
  font-size: 12px;
  gap: 7px;
  min-height: 30px;
  padding: 5px 10px;
  text-decoration: none;
  transition: background .15s, border-color .15s, color .15s;
}
.home-language-pill:hover,
.home-language-pill:focus-visible {
  background: rgba(34,197,94,.14);
  border-color: rgba(34,197,94,.42);
  color: #fff;
  outline: none;
  text-decoration: none;
}
.home-language-pill.is-current {
  border-color: rgba(249,85,32,.72);
  color: #fff;
}
.home-flag {
  border-radius: 3px;
  display: inline-flex;
  height: 16px;
  overflow: hidden;
  width: 22px;
}
.home-flag svg { display: block; height: 16px; width: 22px; }
.home-login-strip {
  align-items: end;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(148,163,184,.32);
  border-radius: 8px;
  box-shadow: 0 24px 70px rgba(15,23,42,.12);
  color: #07111f;
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(210px, .7fr) minmax(0, 1.8fr);
  margin: 22px auto 0;
  max-width: 1080px;
  padding: 18px 20px;
}
.home-login-copy h2 {
  color: #07111f;
  font-size: 24px;
  font-weight: 900;
  line-height: 1.05;
  margin: 0 0 4px;
}
.home-login-copy p {
  color: #42526b;
  font-size: 15px;
  margin: 0;
}
.home-login-form {
  align-items: end;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) auto;
}
.home-login-form label {
  display: block;
  margin: 0;
}
.home-login-form label span {
  color: #07111f;
  display: block;
  font-size: 14px;
  font-weight: 800;
  margin-bottom: 4px;
}
.home-login-form input {
  background: #eaf1fb;
  border-color: #c8d5e8;
  color: #07111f;
  height: 40px;
}
.home-login-form .btn {
  min-height: 42px;
  white-space: nowrap;
}
.home-section,
.home-showcase,
.home-final {
  margin: 0 auto;
  max-width: 1080px;
  padding: 68px 0 0;
}
.home-intro { padding-top: 50px; }
.home-section-head {
  max-width: 760px;
  text-align: left;
}
.home-section h2,
.home-showcase h2,
.home-final h2 {
  color: var(--text);
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 800;
  line-height: 1.05;
}
.home-steps {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 28px;
}
.home-step {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 22px;
}
.home-step-number {
  color: var(--accent2);
  display: block;
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 800;
  margin-bottom: 18px;
}
.home-step h3 {
  color: var(--text);
  font-size: 18px;
  margin-bottom: 8px;
}
.home-step p,
.home-showcase p,
.home-final p {
  color: #c2cad7;
  font-size: 15px;
}
.home-showcase {
  align-items: center;
  display: grid;
  gap: 34px;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.35fr);
}
.home-showcase-app {
  grid-template-columns: minmax(250px, .55fr) minmax(0, 1fr);
}
.home-showcase-copy p {
  line-height: 1.55;
  margin-top: 16px;
  max-width: 620px;
}
.home-feature-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}
.home-feature-list span {
  background: rgba(34,197,94,.08);
  border: 1px solid rgba(34,197,94,.2);
  border-radius: 999px;
  color: #c8f5d8;
  font-size: 12px;
  font-weight: 700;
  padding: 6px 10px;
}
.home-browser-shot {
  background: var(--surface);
  border: 1px solid var(--border2);
  border-radius: 8px;
  box-shadow: 0 22px 60px rgba(0,0,0,.42);
  overflow: hidden;
}
.home-browser-shot img {
  display: block;
  width: 100%;
}
.home-phone-shot {
  background: #080a0d;
  border: 1px solid var(--border2);
  border-radius: 38px;
  box-shadow: 0 22px 60px rgba(0,0,0,.48);
  margin: 0 auto;
  max-width: 310px;
  overflow: hidden;
  padding: 10px;
}
.home-phone-shot img {
  border-radius: 28px;
  display: block;
  width: 100%;
}
.home-final {
  padding-bottom: 18px;
  text-align: center;
}
.home-final h2 {
  margin: 0 auto;
  max-width: 760px;
}
.home-final .home-kicker { margin-bottom: 12px; }

/* TOAST */
.toast {
  position: fixed; bottom: 20px; right: 20px; background: var(--surface);
  border: 1px solid var(--border2); border-left: 3px solid var(--green);
  border-radius: 8px; padding: 12px 16px; font-size: 13px; z-index: 9999;
  transform: translateX(120%); transition: transform 0.3s ease;
}
.toast.show { transform: translateX(0); }

/* MAP */
#map { width: 100%; height: 100%; }
.route-routing-badge {
  position: absolute;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1001;
  display: none;
  align-items: center;
  gap: 10px;
  max-width: min(440px, calc(100% - 32px));
  padding: 10px 14px;
  color: var(--text);
  background: rgba(13, 17, 23, .94);
  border: 1px solid var(--border2);
  border-left: 3px solid var(--accent);
  border-radius: 9px;
  box-shadow: 0 16px 42px rgba(0,0,0,.38);
  pointer-events: none;
}
.route-routing-badge.is-visible { display: flex; }
.route-routing-badge.is-slow { border-left-color: #f59e0b; }
.route-routing-badge.is-error { border-left-color: #ef4444; }
.route-routing-title {
  display: block;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.2;
}
.route-routing-detail {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.3;
}
.route-routing-spinner {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  border: 2px solid rgba(255,255,255,.22);
  border-top-color: var(--accent);
  border-radius: 999px;
  animation: route-routing-spin .72s linear infinite;
}
.route-routing-badge.is-slow .route-routing-spinner { border-top-color: #f59e0b; }
.route-routing-badge.is-error .route-routing-spinner {
  animation: none;
  border-color: #ef4444;
}
@keyframes route-routing-spin {
  to { transform: rotate(360deg); }
}

@media (max-width: 720px) {
  .kpi-row { grid-template-columns: 1fr 1fr; }
  .home-hero {
    border-radius: 8px;
    min-height: auto;
    padding: 42px 18px 36px;
  }
  .home-hero-shade { background: rgba(7,9,12,.74); }
  .home-title { font-size: clamp(70px, 22vw, 108px); }
  .home-brand-banner { margin-top: 10px; }
  .home-tagline { font-size: 34px; line-height: .92; }
  .home-hero-bottom { grid-template-columns: 1fr; }
  .home-store-buttons {
    flex-direction: row;
    flex-wrap: wrap;
    justify-self: stretch;
    width: 100%;
  }
  .home-store-badge {
    flex: 1 1 160px;
    min-width: 0;
  }
  .home-language-row { gap: 6px; }
  .home-language-pill { font-size: 11px; padding: 5px 8px; }
  .home-login-strip,
  .home-login-form {
    grid-template-columns: 1fr;
  }
  .home-login-strip {
    align-items: stretch;
    margin-top: 16px;
    padding: 16px;
  }
  .home-login-form .btn {
    justify-content: center;
    width: 100%;
  }
  .home-section,
  .home-showcase,
  .home-final {
    padding-left: 0;
    padding-right: 0;
  }
  .home-steps,
  .home-showcase,
  .home-showcase-app {
    grid-template-columns: 1fr;
  }
  .home-showcase-app .home-phone-shot { order: 2; }
  .home-showcase-app .home-showcase-copy { order: 1; }
  .home-phone-shot { max-width: 280px; }
  .home-actions .btn { justify-content: center; width: 100%; }
  nav {
    height: auto; min-height: 52px; flex-wrap: wrap; gap: 8px;
    padding: 8px 12px;
  }
  .logo { margin-right: auto; }
  .nav-tabs {
    order: 3; flex: 0 0 100%; width: 100%; overflow-x: auto;
    padding-bottom: 2px; scrollbar-width: none;
  }
  .nav-tabs::-webkit-scrollbar { display: none; }
  .nav-tab { white-space: nowrap; padding: 6px 10px; }
  .nav-right {
    max-width: calc(100% - 118px); overflow-x: auto; margin-left: 0;
    justify-content: flex-end; scrollbar-width: none;
  }
  .nav-right::-webkit-scrollbar { display: none; }
  .nav-right > span:not(.avatar):not(.flag-img):not(.lang-caret) { display: none; }
  body.fixed nav .nav-tabs { display: none; }
}

/* ============ LIVE-TUR (mobil-først) ============ */
.live-body { margin: 0; overflow: hidden; }
.live-root {
  position: fixed; inset: 0; display: block;
  height: 100vh; height: 100dvh; background: var(--bg);
}
.live-top {
  display: flex; align-items: center; gap: 10px;
  background: rgba(13,15,18,.88); border-bottom: 1px solid var(--border);
  padding: 8px 12px; padding-top: calc(8px + env(safe-area-inset-top));
  position: relative; z-index: 1100; /* så sprog-dropdown ligger over kortet */
}
.live-top .live-logo { font-family: var(--font-display); font-size: 20px; letter-spacing: 1px; color: var(--text); }
.live-top .live-logo span { color: var(--accent); }
.live-titles { flex: 1; min-width: 0; line-height: 1.2; }
.live-trip { font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.live-club { font-size: 11px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.live-exit { color: var(--muted); font-size: 18px; text-decoration: none; padding: 4px 6px; }
.live-exit:hover { color: var(--text); text-decoration: none; }

.live-map-wrap { position: absolute; inset: 0; min-height: 0; }
.live-map-wrap #map { position: absolute; inset: 0; width: 100%; height: 100%; }
.live-map-wrap .leaflet-marker-icon { transition: transform .7s linear; }
.live-top {
  position: absolute; left: 0; right: 0; top: 0;
  backdrop-filter: blur(10px);
}

.live-geo {
  position: absolute; top: 10px; left: 50%; transform: translateX(-50%);
  z-index: 600; background: var(--surface); border: 1px solid var(--border2);
  border-radius: 999px; padding: 6px 14px; font-size: 12px; color: var(--muted);
  max-width: 86%; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  cursor: pointer; font-family: var(--font-body); line-height: 1.2;
}
.live-geo:hover { border-color: var(--accent); }
.geo-help-ic { color: var(--accent2); margin-left: 2px; }

.live-fab {
  width: 48px; height: 48px; border-radius: 50%; border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center; font-size: 20px;
  box-shadow: 0 2px 8px rgba(0,0,0,.4); position: relative;
}
.live-fab-plain { background: var(--surface); color: var(--text); border: 1px solid var(--border2);
  position: absolute; left: 12px; bottom: 12px; z-index: 600; }
.live-fab-accent { background: var(--accent); color: #fff; }
.live-fab-dark { background: var(--surface2); color: var(--text); border: 1px solid var(--border2); }
.live-actions { position: absolute; right: 12px; bottom: 12px; z-index: 600; display: flex; flex-direction: column; gap: 10px; }
.live-root.has-banner .live-fab-plain,
.live-root.has-banner .live-actions,
.live-root.has-banner .live-zoom { bottom: calc(92px + env(safe-area-inset-bottom)); }

.live-zoom {
  position: absolute; left: 70px; bottom: 12px; z-index: 600;
  display: flex; align-items: center; gap: 6px;
  background: rgba(13,15,18,.88); border: 1px solid var(--border2);
  border-radius: 999px; padding: 5px; box-shadow: 0 2px 8px rgba(0,0,0,.38);
}
.live-zoom-btn {
  width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--border2);
  background: var(--surface); color: var(--text); font-size: 18px; font-weight: 800;
  display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.live-zoom-level {
  min-width: 24px; text-align: center; color: var(--text); font-size: 12px;
  font-weight: 800; font-family: var(--font-mono);
}
.live-badge {
  position: absolute; top: -4px; right: -4px; background: var(--red); color: #fff;
  font-size: 11px; font-weight: 700; min-width: 18px; height: 18px; border-radius: 9px;
  display: flex; align-items: center; justify-content: center; padding: 0 4px;
}

.live-banner { position: absolute; left: 0; right: 0; bottom: 0; z-index: 700;
  background: rgba(13,15,18,.92); border-top: 1px solid var(--border); text-align: center;
  padding: 6px; padding-bottom: calc(6px + env(safe-area-inset-bottom)); }
.live-banner img { max-width: 100%; max-height: 72px; object-fit: contain; display: inline-block; }

/* "Mig"-prik */
.you-dot { width: 16px; height: 16px; border-radius: 50%; background: #2563eb; border: 3px solid #fff;
  box-shadow: 0 0 0 0 rgba(37,99,235,.5); animation: youpulse 2s infinite; }
@keyframes youpulse {
  0% { box-shadow: 0 0 0 0 rgba(37,99,235,.5); }
  70% { box-shadow: 0 0 0 14px rgba(37,99,235,0); }
  100% { box-shadow: 0 0 0 0 rgba(37,99,235,0); }
}

/* Bund-sheets (beskeder + turleder) */
.live-sheet[hidden] { display: none; }
.live-sheet {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1200;
  background: var(--surface); border-top: 1px solid var(--border2);
  border-radius: 16px 16px 0 0; display: flex; flex-direction: column;
  max-height: 70vh; max-height: 70dvh; box-shadow: 0 -4px 20px rgba(0,0,0,.5);
  padding-bottom: env(safe-area-inset-bottom);
}
.live-sheet-head { display: flex; align-items: center; justify-content: space-between;
  padding: 14px 16px; border-bottom: 1px solid var(--border); }
.live-sheet-close { background: none; border: none; color: var(--muted); font-size: 18px; cursor: pointer; }
.live-sheet-body { padding: 14px 16px; overflow-y: auto; }

.live-msgs { flex: 1; overflow-y: auto; padding: 12px 16px; display: flex; flex-direction: column; gap: 8px; min-height: 120px; }
.live-msg { background: var(--surface2); border: 1px solid var(--border); border-radius: 8px; padding: 8px 10px; font-size: 13px; }
.live-msg-leader { background: rgba(232,82,26,.12); }
.live-msg-meta { font-size: 11px; color: var(--muted); margin-bottom: 2px; }
.live-msg-form { display: flex; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--border); }
.live-msg-form input { flex: 1; }

/* Turleder-panel */
.live-leader-row { display: flex; gap: 8px; margin-bottom: 10px; }
.live-leader-row .btn { flex: 1; }
.live-leader-label { font-size: 11px; font-weight: 600; color: var(--muted); text-transform: uppercase; margin: 14px 0 8px; }
.live-leader-parts { display: flex; flex-direction: column; gap: 8px; max-height: 40vh; overflow-y: auto; }
.part-row { display: flex; align-items: center; gap: 10px; }
.part-av { width: 34px; height: 34px; border-radius: 8px; object-fit: cover; flex-shrink: 0; }
.part-av-none { width: 34px; height: 34px; border-radius: 8px; background: var(--surface2); border: 1px solid var(--border2);
  display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; color: var(--muted); }
.part-name { flex: 1; font-size: 14px; }
.part-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
.live-leader-share { display: flex; align-items: center; gap: 14px; }
.live-share-code { font-family: var(--font-mono); font-size: 22px; letter-spacing: 4px; color: var(--accent); }

/* Tablet/desktop: sheets som panel i højre side */
@media (min-width: 720px) {
  .live-sheet { left: auto; right: 16px; bottom: 16px; width: 380px; border-radius: 14px; }
}

/* ============ SPROGVÆLGER (kun aktivt flag + dropdown) ============ */
.langswitch { position: relative; flex-shrink: 0; }
.langswitch > summary {
  list-style: none; cursor: pointer; display: flex; align-items: center; gap: 4px;
  padding: 2px; border-radius: 4px;
}
.langswitch > summary::-webkit-details-marker { display: none; }
.langswitch > summary::marker { content: ''; }
.langswitch > summary:hover { background: var(--surface2); }
.flag-img { display: block; width: 26px; line-height: 0; border-radius: 3px; overflow: hidden; }
.flag-img svg { display: block; width: 100%; height: auto; }
.lang-caret { color: var(--muted); font-size: 9px; }
.lang-menu {
  position: absolute; right: 0; top: 100%; margin-top: 6px; z-index: 2000;
  background: var(--surface); border: 1px solid var(--border2); border-radius: 8px;
  padding: 6px; display: flex; flex-direction: column; gap: 2px;
  box-shadow: 0 6px 18px rgba(0,0,0,.5);
}
.lang-item { display: flex; align-items: center; gap: 10px; padding: 7px 10px; border-radius: 6px;
  color: var(--text); text-decoration: none; white-space: nowrap; font-size: 14px; }
.lang-item:hover { background: var(--surface2); text-decoration: none; }
.lang-item .flag-img { width: 26px; }

/* Topbjælken må ikke ombryde */
nav .nav-right { flex-wrap: nowrap; white-space: nowrap; }

/* Store download QR-sider (/ios og /android) */
.download-body {
  min-height: 100vh;
  background: #0d0f12;
}
.download-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 28px;
}
.download-card {
  width: min(920px, 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}
.download-banner {
  width: min(860px, 100%);
  height: auto;
  display: block;
  background: #000;
}
.download-qr-wrap {
  width: min(76vh, 720px, 92vw);
  aspect-ratio: 1;
  background: #fff;
  border-radius: 18px;
  padding: clamp(14px, 2.5vw, 28px);
  box-shadow: 0 24px 70px rgba(0,0,0,.45);
}
.download-qr {
  width: 100%;
  height: 100%;
  display: block;
}
.download-main-link {
  min-width: min(360px, 90vw);
  text-align: center;
  font-size: 18px;
  padding: 14px 22px;
}
.download-switch {
  color: var(--text);
  font-weight: 700;
  text-decoration: none;
  border: 1px solid var(--border2);
  border-radius: 999px;
  padding: 10px 16px;
  background: var(--surface);
}
.download-switch:hover {
  text-decoration: none;
  border-color: var(--accent);
}

/* Klubskift-dropdown (personale i flere klubber) */
.clubswitch { position: relative; }
.clubswitch > summary { list-style: none; cursor: pointer; font-size: 12px; color: var(--text);
  display: flex; align-items: center; gap: 4px; padding: 4px 8px; border: 1px solid var(--border2); border-radius: 6px; }
.clubswitch > summary::-webkit-details-marker { display: none; }
.clubswitch > summary::marker { content: ''; }
.clubswitch > summary:hover { background: var(--surface2); }

/* Større flag på mobil/touch */
@media (max-width: 720px) {
  .flag-img { width: 34px; }
  .lang-item .flag-img { width: 30px; }
  .lang-item { font-size: 15px; }

  /* Start-/login-skærm på mobil: kun app-navn + sprog i toppen (skjul tekst-links). */
  nav.minimal-top .nav-tab { display: none; }
  nav.minimal-top .nav-right .btn { display: none; }
  nav.minimal-top .nav-right form { display: none; }
}
