/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   bowlingscoring.se â€” design tokens + komposition
   2026-stack: oklch, light-dark, @starting-style, container queries,
   view transitions, native popover. Inga ramverk, inga build-steg.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

/* Self-hosted Inter (variable 400â€“900) â€” same-origin, no Google Fonts RTT.
   latin rÃ¤cker fÃ¶r SV-UI; latin-ext laddas on-demand via unicode-range. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url('/assets/fonts/inter/inter-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url('/assets/fonts/inter/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* A11Y-utilities â€” visuellt dolt men kvar fÃ¶r skÃ¤rmlÃ¤sare, samt
   skip-link som visas vid tangentbordsfokus (WCAG 2.4.1, EN 301 549). */
.bs-sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}
.bs-skip-link {
  position: fixed;
  top: 0; left: 50%;
  transform: translate(-50%, -120%);
  z-index: 9999;
  padding: 0.7rem 1.1rem;
  background: oklch(0.22 0.028 270);
  color: oklch(0.98 0 0);
  border-radius: 0 0 12px 12px;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 6px 18px oklch(0 0 0 / .35);
  transition: transform 180ms ease;
}
.bs-skip-link:focus,
.bs-skip-link:focus-visible {
  transform: translate(-50%, 0);
  outline: 2px solid oklch(0.78 0.18 195);
  outline-offset: 2px;
}

/* Global tangentbordsfokus â€” alltid synlig, lite generÃ¶s offset sÃ¥
   den syns pÃ¥ alla kontroller oavsett bakgrund. (WCAG 2.4.7) */
:focus-visible {
  outline: 2px solid oklch(0.78 0.18 195);
  outline-offset: 3px;
  border-radius: 4px;
}
/* Mus-klick dÃ¶ljer ringen (browsers gÃ¶r :focus-visible bara vid kbd) */
:focus:not(:focus-visible) { outline: none; }
/* Main-region fÃ¥r inte synlig outline trots tabindex="-1" */
main[tabindex="-1"]:focus { outline: none; }

/* Topbar â€” transparent â†’ solid vid scroll */
.bs-topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem max(1rem, env(safe-area-inset-right)) 0.65rem max(1rem, env(safe-area-inset-left));
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: background .25s ease, border-color .25s ease, backdrop-filter .25s ease, box-shadow .25s ease;
}
.bs-topbar.is-scrolled {
  background: light-dark(oklch(0.99 0 0 / .82), oklch(0.11 0.02 275 / .78));
  border-bottom-color: var(--bs-border, oklch(0.3 0.02 270 / .55));
  backdrop-filter: blur(16px) saturate(1.2);
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
  box-shadow: 0 8px 28px oklch(0 0 0 / .18);
}
.bs-topbar__brand {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  text-decoration: none;
  color: inherit;
  min-width: 0;
}
.bs-topbar__logo {
  display: block;
  height: 30px;
  width: auto;
  max-width: min(220px, 52vw);
  flex-shrink: 1;
}
.bs-topbar__logo--contrast {
  display: none;
}
html[data-a11y-contrast="1"] .bs-topbar__logo--default {
  display: none;
}
html[data-a11y-contrast="1"] .bs-topbar__logo--contrast {
  display: block;
}
.bs-topbar__nav {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  overflow: visible;
}
.bs-topbar__pages {
  display: flex;
  align-items: center;
  margin-right: auto;
  min-width: 0;
}
.bs-topbar__link {
  color: var(--bs-text-soft);
  text-decoration: none;
  font-weight: 600;
  font-size: 0.9rem;
  padding: 0.4rem 0.65rem;
  white-space: nowrap;
}
.bs-topbar__link:hover { color: var(--bs-text); }
.bs-topbar__cta {
  display: inline-flex;
  align-items: center;
  padding: 0.45rem 0.9rem;
  border-radius: 999px;
  background: var(--bs-accent-grad);
  color: oklch(0.98 0 0);
  font-weight: 700;
  font-size: 0.875rem;
  text-decoration: none;
  box-shadow: 0 6px 18px var(--bs-accent-soft);
  white-space: nowrap;
  flex-shrink: 0;
}
.bs-topbar__cta:hover { filter: brightness(1.05); }
.bs-topbar__icon-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 999px;
  color: var(--bs-text-soft);
  text-decoration: none;
  transition: background .15s ease, color .15s ease;
}
.bs-topbar__icon-link:hover {
  color: var(--bs-text);
  background: oklch(0.5 0.05 270 / .16);
}
.bs-topbar__icon-link--text {
  width: auto;
  padding: 0 0.7rem;
  font-size: 0.85rem;
  font-weight: 700;
  white-space: nowrap;
  flex-shrink: 0;
  position: relative;
}
.bs-topbar__account {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.2rem 0.55rem 0.2rem 0.2rem;
  border-radius: 999px;
  text-decoration: none;
  color: inherit;
  background: oklch(0.5 0.05 270 / .14);
  border: 1px solid var(--bs-border-soft, oklch(0.3 0.02 270 / .4));
  max-width: 11rem;
}
.bs-topbar__account:hover {
  background: oklch(0.5 0.05 270 / .22);
}
.bs-topbar__account-text {
  display: grid;
  line-height: 1.15;
  min-width: 0;
  padding-right: 0.25rem;
}
.bs-topbar__account-label {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--bs-live, oklch(0.78 0.2 150));
}
.bs-topbar__account-name {
  font-size: 0.85rem;
  font-weight: 750;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bs-avatar {
  display: inline-grid;
  place-items: center;
  width: 2.05rem;
  height: 2.05rem;
  border-radius: 999px;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--bs-accent-grad);
  color: oklch(0.98 0 0);
  font-weight: 800;
  font-size: 0.72rem;
  letter-spacing: -0.02em;
}
.bs-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.bs-avatar--lg {
  width: 4.5rem;
  height: 4.5rem;
  font-size: 1.35rem;
}
.bs-avatar__initials { line-height: 1; }
.bs-profile {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
  align-items: center;
  margin: 0.75rem 0 1.25rem;
}
.bs-profile__avatar-wrap {
  display: grid;
  justify-items: center;
  gap: 0.45rem;
}
.bs-profile__upload {
  cursor: pointer;
  font-size: 0.78rem;
  font-weight: 750;
  color: var(--bs-accent);
}
.bs-profile__clear { margin-top: 0.45rem; }
.bs-profile__name { margin: 0; }
.bs-notif-title-row {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  flex-wrap: wrap;
}
.bs-notif-title-row .bs-app__h1,
.bs-notif-title-row .bs-profile__name {
  margin: 0;
}
.bs-notif-page__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.35rem;
}
.bs-notif-page__head .bs-app__h1 { margin: 0; }
.bs-notif-bell {
  position: relative;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 12px;
  color: var(--bs-accent);
  text-decoration: none;
  background: color-mix(in oklch, var(--bs-accent) 14%, transparent);
  border: 1px solid color-mix(in oklch, var(--bs-accent) 28%, transparent);
  transition: border-color .18s ease, background .18s ease, color .18s ease;
  overflow: visible;
  cursor: pointer;
  appearance: none;
  font: inherit;
  padding: 0;
}
.bs-notif-bell:hover {
  border-color: color-mix(in oklch, var(--bs-accent) 45%, var(--bs-border-soft));
  background: color-mix(in oklch, var(--bs-accent) 22%, transparent);
}
.bs-notif-bell--topbar {
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 999px;
  color: var(--bs-text-soft);
  background: transparent;
  border-color: transparent;
}
.bs-notif-bell--topbar:hover {
  color: var(--bs-text);
  background: oklch(0.5 0.05 270 / .16);
  border-color: transparent;
}
.bs-notif-bell--static { pointer-events: none; }
.bs-notif-bell__badge {
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(28%, -28%);
  z-index: 2;
  min-width: 1.15rem;
  height: 1.15rem;
  padding: 0 0.28rem;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  font-size: 0.65rem;
  font-weight: 800;
  line-height: 1;
  color: #fff;
  background: var(--bs-accent);
  border: 2px solid light-dark(oklch(1 0 0), oklch(0.17 0.025 275));
  pointer-events: none;
}
.bs-notif-bell__badge[hidden] { display: none !important; }
.bs-notif-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
}
.bs-notif-item {
  border: 0;
  border-radius: 0;
  background: transparent;
  border-bottom: 1px solid var(--bs-border-soft);
}
.bs-notif-item:last-child { border-bottom: 0; }
.bs-notif-item.is-unread {
  background: transparent;
}
.bs-notif-item__link {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.85rem;
  align-items: start;
  padding: 0.95rem 0.15rem;
  text-decoration: none;
  color: inherit;
  border-radius: 12px;
  transition: background .15s ease;
}
.bs-notif-modal .bs-notif-item__link {
  padding: 0.9rem 1rem;
  margin: 0;
  border-radius: 0;
}
.bs-notif-item__link:hover {
  background: color-mix(in oklch, var(--bs-bg-card-hover, oklch(0.24 0.02 275)) 70%, transparent);
}
.bs-notif-item__avatar {
  position: relative;
  flex: 0 0 auto;
}
.bs-notif-item__dot {
  position: absolute;
  top: -0.1rem;
  left: -0.1rem;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 999px;
  background: var(--bs-accent);
  box-shadow: 0 0 0 2px var(--bs-bg-elev, oklch(0.17 0.025 275));
}
.bs-notif-item:not(.is-unread) .bs-notif-item__dot { display: none; }
.bs-notif-item__body {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
}
.bs-notif-item__title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.25;
  color: var(--bs-text);
}
.bs-notif-item.is-unread .bs-notif-item__title { font-weight: 800; }
.bs-notif-item__text {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.35;
  color: var(--bs-text-soft);
}
.bs-notif-item__time {
  margin: 0.1rem 0 0;
  font-size: 0.75rem;
  font-weight: 600;
  color: color-mix(in oklch, var(--bs-text-soft) 82%, transparent);
}
@media (max-width: 420px) {
  .bs-topbar__account-text { display: none; }
  .bs-topbar__account { padding: 0.2rem; }
  .bs-topbar__logo { height: 24px; max-width: min(132px, 36vw); }
  .bs-topbar {
    gap: 0.4rem;
    padding-block: 0.55rem;
  }
  .bs-topbar__nav {
    gap: 0.2rem;
    flex-shrink: 0;
  }
  /* Icon-only login â€” prevents "Logga in" wrapping under the logo */
  .bs-topbar__icon-link--text {
    width: 2.35rem;
    height: 2.35rem;
    padding: 0;
  }
  .bs-topbar__icon-link--text > span {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .bs-topbar__cta {
    padding: 0.4rem 0.7rem;
    font-size: 0.78rem;
    line-height: 1.2;
  }
  .bs-topbar__pages {
    display: none;
  }
}

@media (max-width: 640px) and (min-width: 421px) {
  .bs-topbar__logo { height: 26px; max-width: min(160px, 42vw); }
  .bs-topbar__cta {
    padding: 0.42rem 0.75rem;
    font-size: 0.8rem;
  }
  .bs-topbar__icon-link--text {
    padding: 0 0.55rem;
    font-size: 0.8rem;
  }
}

:root {
  color-scheme: dark light;

  /* Bas-palett i oklch â€” uppfattas mer enhetligt Ã¤n hsl */
  --bs-bg:           light-dark(oklch(0.985 0.005 250), oklch(0.14 0.022 270));
  --bs-bg-elev:      light-dark(oklch(1    0     0  ), oklch(0.19 0.025 270));
  --bs-bg-card:      light-dark(oklch(1    0     0  ), oklch(0.22 0.028 270));
  --bs-bg-card-hover:light-dark(oklch(0.98 0.005 250), oklch(0.26 0.030 270));
  --bs-bg-pill:      light-dark(oklch(0.96 0.008 250), oklch(0.28 0.030 270));

  --bs-border:       light-dark(oklch(0.92 0.010 250), oklch(0.30 0.020 270));
  --bs-border-soft:  light-dark(oklch(0.95 0.008 250), oklch(0.25 0.020 270));

  --bs-text:         light-dark(oklch(0.20 0.020 270), oklch(0.96 0.008 250));
  --bs-text-soft:    light-dark(oklch(0.42 0.020 270), oklch(0.78 0.018 250));
  --bs-text-muted:   light-dark(oklch(0.50 0.015 270), oklch(0.68 0.018 250));

  /* Bowlingpin-accent (varm orangeâ†’rÃ¶d) */
  --bs-accent:       oklch(0.72 0.20  40);
  --bs-accent-strong:oklch(0.66 0.22  30);
  --bs-accent-soft:  oklch(0.72 0.20  40 / 0.18);
  --bs-accent-grad:  linear-gradient(135deg, oklch(0.78 0.18 60), oklch(0.65 0.22 25));

  /* Status */
  --bs-live:         oklch(0.78 0.20 150);
  --bs-live-glow:    oklch(0.78 0.22 150 / 0.45);
  --bs-open:         oklch(0.80 0.18 150);
  --bs-closed:       light-dark(oklch(0.65 0.020 270), oklch(0.55 0.020 270));
  --bs-offline:      light-dark(oklch(0.70 0.020 270), oklch(0.50 0.020 270));

  /* MÃ¥tt */
  --bs-radius-sm: 10px;
  --bs-radius:    18px;
  --bs-radius-lg: 26px;
  --bs-radius-xl: 32px;

  --bs-shadow:        0 1px 2px oklch(0 0 0 / .04), 0 8px 24px oklch(0 0 0 / .06);
  --bs-shadow-hover:  0 4px 14px oklch(0 0 0 / .10), 0 24px 64px oklch(0 0 0 / .18);
  --bs-shadow-glow:   0 0 0 1px var(--bs-border), 0 0 60px var(--bs-accent-soft);

  --bs-step-1: clamp(.78rem, .76rem + .1vw, .85rem);
  --bs-step-2: clamp(.92rem, .9rem  + .15vw, 1rem);
  --bs-step-3: clamp(1.05rem,1rem    + .3vw, 1.18rem);
  --bs-step-4: clamp(1.5rem, 1.3rem  + .8vw, 2rem);
  --bs-step-5: clamp(2.3rem, 1.8rem  + 2.5vw, 3.6rem);
  --bs-step-hero: clamp(2.7rem, 2rem + 4.5vw, 5.6rem);

  --bs-font:      'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --bs-font-mono: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;

  --bs-page-pad: clamp(1rem, 3vw, 2.5rem);
}

/* Tema-override om body fÃ¥r data-theme satt (vi kÃ¶r dark som default men
   tillÃ¥ter system) */
[data-theme="dark"] { color-scheme: dark; }
[data-theme="light"] { color-scheme: light; }

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Reset + bas
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body.bs {
  font-family: var(--bs-font);
  color: var(--bs-text);
  background: var(--bs-bg);
  font-size: var(--bs-step-2);
  line-height: 1.55;
  min-height: 100dvh;
  position: relative;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* App-nav Ã¤r position:fixed. overflow-x:clip pÃ¥ body gÃ¶r att fixed
   knyts till dokumentsbotten i stÃ¤llet fÃ¶r viewport (menyn "flyter" vid scroll). */
html:has(body.bs-app) {
  overflow-x: clip;
  overscroll-behavior-y: none;
}
body.bs.bs-app {
  overflow-x: visible;
  overscroll-behavior-y: none;
}

a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
svg { display: block; }
[hidden] { display: none !important; }

::selection { background: var(--bs-accent); color: oklch(0.98 0 0); }

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Aurora (mjuk bakgrundsglÃ¶d, scroll-driven)
   PERFORMANCE: 80px blur + animering Ã¶ver hela viewporten Ã¤r extremt
   GPU-tungt pÃ¥ mobil (faller ofta till mjukvaru-rendering). Vi gÃ¶r
   dÃ¤rfÃ¶r en hÃ¥rd degradering pÃ¥ smÃ¥ skÃ¤rmar: en enda statisk orb,
   mindre blur, ingen animation. PÃ¥ desktop fÃ¥r full upplevelsen.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bs-aurora {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  /* Compositor-isolering â€” hÃ¥ller orbs ur huvud-renderingstrÃ¤det. */
  contain: strict;
}
.bs-aurora__orb {
  position: absolute;
  width: 60vmax;
  height: 60vmax;
  border-radius: 50%;
  filter: blur(80px);
  opacity: .45;
  mix-blend-mode: screen;
  will-change: transform;
  animation: bs-drift 28s ease-in-out infinite alternate;
  /* Tvinga compositor-layer, undvik re-layout vid animation. */
  transform: translateZ(0);
}
@media (prefers-color-scheme: light) {
  .bs-aurora__orb { opacity: .35; mix-blend-mode: multiply; }
}
.bs-aurora__orb--1 { top: -20vmax; left: -10vmax; background: radial-gradient(circle at 30% 30%, oklch(0.72 0.20 30 / .8), transparent 60%); }
.bs-aurora__orb--2 { top: 20vmax; right: -25vmax; background: radial-gradient(circle at 50% 50%, oklch(0.68 0.18 290 / .65), transparent 60%); animation-delay: -10s; }
.bs-aurora__orb--3 { bottom: -25vmax; left: 30vmax; background: radial-gradient(circle at 50% 50%, oklch(0.74 0.18 200 / .55), transparent 60%); animation-delay: -18s; }
@keyframes bs-drift {
  0%   { transform: translate3d(0, 0, 0) scale(1); }
  50%  { transform: translate3d(4vw, -3vh, 0) scale(1.08); }
  100% { transform: translate3d(-3vw, 4vh, 0) scale(.95); }
}

/* MOBIL: 80px blur dÃ¶dar GPU:n. BehÃ¥ll EN orb, mindre blur, statisk. */
@media (max-width: 768px) {
  .bs-aurora__orb {
    filter: blur(40px);
    animation: none;
    opacity: .35;
  }
  .bs-aurora__orb--2,
  .bs-aurora__orb--3 { display: none; }

  /* backdrop-filter Ã¤r notoriskt lÃ¥ngsam pÃ¥ iOS Safari + LowEnd Android.
     ErsÃ¤tt med opak bakgrund pÃ¥ dekorativa element. Modal/dialog behÃ¥ller
     blur (kritisk UI, sker sÃ¤llan). */
  .bs-nav {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: color-mix(in oklch, var(--bs-bg) 92%, transparent);
  }
  .bs-hall__live,
  .bs-hero__stat {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}

/* prefers-reduced-motion: ingen drift, mindre blur (fÃ¶rbÃ¤ttrar Ã¤ven
   accessibility + sparar batteri). */
@media (prefers-reduced-motion: reduce) {
  .bs-aurora__orb {
    animation: none;
    filter: blur(60px);
  }
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Nav
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bs-nav {
  position: sticky;
  top: 0;
  z-index: 30;
  backdrop-filter: blur(18px) saturate(180%);
  -webkit-backdrop-filter: blur(18px) saturate(180%);
  background: color-mix(in oklch, var(--bs-bg) 70%, transparent);
  border-bottom: 1px solid var(--bs-border-soft);
}
.bs-nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  max-width: 1320px;
  margin: 0 auto;
  padding: .9rem var(--bs-page-pad);
}
.bs-brand {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  font-weight: 700;
  letter-spacing: -.02em;
  font-size: var(--bs-step-3);
}
.bs-brand__mark { display: inline-flex; }
.bs-brand__wordmark { display: inline-flex; align-items: baseline; }
.bs-brand__accent {
  background: var(--bs-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.bs-brand__tld { color: var(--bs-text-muted); font-weight: 500; }

.bs-nav__meta { display: inline-flex; align-items: center; gap: .75rem; }
.bs-nav__pulse {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .45rem .85rem;
  border-radius: 999px;
  background: var(--bs-bg-pill);
  border: 1px solid var(--bs-border);
  font-size: var(--bs-step-1);
  color: var(--bs-text-soft);
  font-feature-settings: "tnum";
  transition: all .4s ease;
}
.bs-nav__pulse[data-state="live"] {
  background: color-mix(in oklch, var(--bs-live) 14%, transparent);
  border-color: color-mix(in oklch, var(--bs-live) 35%, transparent);
  color: var(--bs-text);
}
.bs-nav__pulse-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--bs-offline);
}
.bs-nav__pulse[data-state="live"] .bs-nav__pulse-dot {
  background: var(--bs-live);
  box-shadow: 0 0 0 0 var(--bs-live-glow);
  animation: bs-pulse 1.8s ease-out infinite;
}
@keyframes bs-pulse {
  0%   { box-shadow: 0 0 0 0 var(--bs-live-glow); }
  70%  { box-shadow: 0 0 0 10px transparent; }
  100% { box-shadow: 0 0 0 0 transparent; }
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Layout-shell
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bs-main {
  position: relative;
  z-index: 1;
  padding: 0 0 clamp(3rem, 6vw, 5rem);
}
/* Identisk bound-zon â€” exakt samma vÃ¤nsterkant fÃ¶r alla sektioner */
.bs-main > :not(.bs-hero) {
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--bs-page-pad);
  padding-right: var(--bs-page-pad);
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Hero â€” full-bleed bakgrund, content linjerat med Ã¶vrigt
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bs-hero {
  position: relative;
  width: 100%;
  margin: 0;
  padding-top: clamp(1.75rem, 4vw, 3.25rem);
  padding-bottom: clamp(1.75rem, 4vw, 3.25rem);
  padding-left: 0;
  padding-right: 0;
  border: 0;
  border-bottom: 1px solid var(--bs-border-soft);
  border-radius: 0;
  background:
    radial-gradient(ellipse at 80% 10%, var(--bs-accent-soft), transparent 55%),
    linear-gradient(180deg, var(--bs-bg-elev), color-mix(in oklch, var(--bs-bg) 92%, transparent));
  overflow: hidden;
  isolation: isolate;
}

.bs-hero__lanes {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: clamp(.5rem, 1.5vw, 1.2rem);
  padding: 0 clamp(1rem, 3vw, 2.5rem);
  z-index: -1;
  opacity: .25;
  pointer-events: none;
  mask-image: linear-gradient(180deg, transparent 0%, black 35%, black 75%, transparent 100%);
}
.bs-hero__lane {
  position: relative;
  background: linear-gradient(180deg,
    transparent 0%,
    color-mix(in oklch, var(--bs-accent) 35%, transparent) 70%,
    transparent 100%);
  border-radius: 999px;
  transform: translateY(20%);
  animation: bs-lane-rise 6s cubic-bezier(.4, 0, .2, 1) infinite;
  animation-delay: calc(var(--i, 0) * -.7s);
}
.bs-hero__lane:nth-child(1) { --i: 1; }
.bs-hero__lane:nth-child(2) { --i: 3; }
.bs-hero__lane:nth-child(3) { --i: 5; }
.bs-hero__lane:nth-child(4) { --i: 2; }
.bs-hero__lane:nth-child(5) { --i: 7; }
.bs-hero__lane:nth-child(6) { --i: 4; }
.bs-hero__lane:nth-child(7) { --i: 6; }
.bs-hero__lane:nth-child(8) { --i: 0; }
@keyframes bs-lane-rise {
  0%   { opacity: 0; transform: translateY(40%); }
  35%  { opacity: 1; }
  100% { opacity: 0; transform: translateY(-30%); }
}
@media (prefers-reduced-motion: reduce) {
  .bs-hero__lane { animation: none; opacity: .35; }
  .bs-aurora__orb { animation: none; }
}

.bs-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 1320px;
  margin: 0 auto;
  padding-left: var(--bs-page-pad);
  padding-right: var(--bs-page-pad);
}
.bs-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin: 0 0 .9rem;
  padding: .3rem .75rem;
  border-radius: 999px;
  background: var(--bs-bg-pill);
  border: 1px solid var(--bs-border);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--bs-text-soft);
}
.bs-hero__title {
  margin: 0 0 .85rem;
  font-size: clamp(2rem, 1.6rem + 2.5vw, 3.4rem);
  line-height: 1;
  letter-spacing: -.04em;
  font-weight: 800;
  max-width: 22ch;
}
.bs-hero__title-accent {
  background: var(--bs-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-style: italic;
  font-weight: 900;
}
.bs-hero__lede {
  margin: 0 0 1.5rem;
  font-size: var(--bs-step-2);
  color: var(--bs-text-soft);
  max-width: 52ch;
}

.bs-hero__stats {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem .9rem;
  margin: 0 0 1.25rem;
}
.bs-hero__stat {
  margin: 0;
  padding: .65rem 1rem;
  background: color-mix(in oklch, var(--bs-bg-card) 60%, transparent);
  border: 1px solid var(--bs-border-soft);
  border-radius: var(--bs-radius);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  min-width: 110px;
}
.bs-hero__stat dt {
  font-size: .68rem;
  color: var(--bs-text-muted);
  text-transform: uppercase;
  letter-spacing: .07em;
  font-weight: 600;
  margin: 0 0 .2rem;
}
.bs-hero__stat dd {
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: .3rem;
}
.bs-hero__stat-value {
  font-family: var(--bs-font-mono);
  font-size: 1.85rem;
  font-weight: 700;
  line-height: 1;
  color: var(--bs-text);
  font-variant-numeric: tabular-nums;
  letter-spacing: -.03em;
  transition: color .3s ease;
}
/* XL-variant fÃ¶r "headline-siffran" (Strikear sedan vi Ã¶ppnade) â€” den
   ska sticka ut visuellt sÃ¥ besÃ¶kare faktiskt vill stoppa och lÃ¤sa. */
.bs-hero__stat-value--xl {
  font-size: clamp(2.1rem, 1.5rem + 2.5vw, 3.2rem);
  background: var(--bs-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  letter-spacing: -.04em;
}
.bs-hero__stat:has([data-stat="halls_live"][data-target]:not([data-target="0"])) .bs-hero__stat-value,
.bs-hero__stat:has([data-stat="lanes_in_use"][data-target]:not([data-target="0"])) .bs-hero__stat-value {
  color: var(--bs-live);
}
/* Feature-stat: ger lite mer luft Ã¥t headline-kortet. */
.bs-hero__stat--feature {
  padding: .85rem 1.15rem .9rem;
  background: color-mix(in oklch, var(--bs-bg-card) 78%, transparent);
  border-color: color-mix(in oklch, var(--bs-accent) 25%, var(--bs-border));
}
/* Live-stat: subtil fÃ¤rgmarkering + pulserande prick. */
.bs-hero__stat--live {
  border-color: color-mix(in oklch, var(--bs-live) 40%, transparent);
  background: color-mix(in oklch, var(--bs-live) 6%, var(--bs-bg-card));
}
.bs-hero__stat--live dt {
  color: color-mix(in oklch, var(--bs-live) 70%, var(--bs-text));
  display: inline-flex;
  align-items: center;
  gap: .4rem;
}
.bs-hero__stat--live .bs-hero__stat-value {
  color: var(--bs-live);
}
.bs-hero__stat-pulse {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--bs-live);
  box-shadow: 0 0 0 0 var(--bs-live-glow);
  animation: bs-pulse 1.8s ease-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .bs-hero__stat-pulse { animation: none; }
}
.bs-hero__stat-of {
  font-size: .85rem;
  color: var(--bs-text-muted);
  font-feature-settings: "tnum";
}

.bs-hero__cta {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .7rem 1.2rem;
  border-radius: 999px;
  background: var(--bs-accent-grad);
  color: oklch(0.98 0 0);
  font-weight: 600;
  font-size: var(--bs-step-2);
  box-shadow: 0 10px 30px color-mix(in oklch, var(--bs-accent) 35%, transparent);
  transition: transform .2s ease, box-shadow .25s ease;
}
.bs-hero__cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 40px color-mix(in oklch, var(--bs-accent) 50%, transparent);
}
.bs-hero__cta svg {
  transition: transform .25s ease;
}
.bs-hero__cta:hover svg { transform: translateY(3px); }

.bs-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.1rem;
  margin-top: 0.25rem;
}
.bs-hero__cta-secondary {
  color: var(--bs-text-soft);
  font-weight: 600;
  font-size: var(--bs-step-2);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.bs-hero__cta-secondary:hover { color: var(--bs-accent); }

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Sticky filter
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bs-filters {
  position: relative;
  z-index: 5;
  margin: clamp(1.5rem, 3vw, 2.5rem) 0 1.25rem;
}
.bs-filters__inner {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
  padding: .75rem .9rem;
  background: color-mix(in oklch, var(--bs-bg) 78%, transparent);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid var(--bs-border-soft);
  border-radius: var(--bs-radius-lg);
  box-shadow: var(--bs-shadow);
}

.bs-search {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  flex: 1 1 240px;
  min-width: 0;
  padding: .55rem .85rem;
  background: var(--bs-bg-pill);
  border-radius: 999px;
  border: 1px solid transparent;
  color: var(--bs-text-soft);
  transition: border-color .2s ease, background .2s ease;
}
.bs-search:focus-within {
  border-color: var(--bs-accent);
  background: var(--bs-bg-card);
  color: var(--bs-text);
}
.bs-search input {
  flex: 1;
  min-width: 0;
  background: transparent;
  border: 0;
  outline: none;
  color: var(--bs-text);
  font-size: var(--bs-step-2);
  padding: .1rem;
}

.bs-filters__group {
  display: inline-flex;
  flex-wrap: wrap;
  gap: .4rem;
  /* NollstÃ¤lla default fieldset-styling â€” vi har egen layout */
  border: 0;
  margin: 0;
  padding: 0;
  min-inline-size: 0;
}

.bs-filters__cities {
  display: flex;
  gap: .4rem;
  flex: 1 1 100%;
  overflow-x: auto;
  scrollbar-width: thin;
  padding: .1rem 0 .35rem;
  scroll-snap-type: x proximity;
  /* NollstÃ¤lla default fieldset-styling */
  border: 0;
  margin: 0;
  min-inline-size: 0;
}
.bs-filters__cities::-webkit-scrollbar { height: 6px; }
.bs-filters__cities::-webkit-scrollbar-thumb { background: var(--bs-border); border-radius: 3px; }

.bs-chip {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .5rem .9rem;
  border-radius: 999px;
  background: var(--bs-bg-pill);
  border: 1px solid transparent;
  color: var(--bs-text-soft);
  font-size: var(--bs-step-1);
  font-weight: 600;
  white-space: nowrap;
  transition: all .18s ease;
  scroll-snap-align: start;
}
.bs-chip:hover {
  color: var(--bs-text);
  background: var(--bs-bg-card-hover);
}
.bs-chip[aria-pressed="true"], .bs-chip.is-active {
  background: var(--bs-text);
  color: var(--bs-bg);
  border-color: var(--bs-text);
}
.bs-chip__dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: currentColor;
  opacity: .6;
}
.bs-chip__dot--live   { background: var(--bs-live); opacity: 1; }
.bs-chip__dot--open   { background: var(--bs-open); opacity: 1; }
.bs-chip--toggle[aria-pressed="true"] .bs-chip__dot--live,
.bs-chip--toggle[aria-pressed="true"] .bs-chip__dot--open { box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 22%, transparent); }

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Bento-grid med hallar
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bs-grid-section { container-type: inline-size; }

.bs-grid {
  display: grid;
  gap: clamp(.9rem, 2vw, 1.4rem);
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
}
@container (min-width: 760px) {
  .bs-card--featured { grid-column: span 2; }
}

.bs-empty {
  margin: 3rem auto;
  text-align: center;
  color: var(--bs-text-soft);
  max-width: 48ch;
}
.bs-empty h2 {
  font-size: var(--bs-step-4);
  margin: 0 0 .5rem;
  color: var(--bs-text);
}
.bs-empty a { color: var(--bs-accent); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 3px; }

.bs-link {
  background: none;
  border: 0;
  color: var(--bs-accent);
  text-decoration: underline;
  font-weight: 600;
  padding: 0 .15rem;
}

/* Spelarkonto-statistik under hallkorten */
.bs-platform {
  margin: clamp(2rem, 5vw, 3.25rem) auto 0;
  padding: 0 clamp(1rem, 3vw, 1.5rem) clamp(2rem, 5vw, 3rem);
  max-width: 72rem;
}
.bs-platform__inner {
  padding: clamp(1.25rem, 3vw, 1.85rem);
  border-radius: 22px;
  border: 1px solid var(--bs-border, oklch(0.32 0.02 270));
  background:
    radial-gradient(90% 80% at 10% 0%, oklch(0.55 0.12 55 / .14), transparent 55%),
    light-dark(oklch(0.99 0.005 250), oklch(0.16 0.02 275));
}
.bs-platform__head { margin-bottom: 1.1rem; }
.bs-platform__title {
  margin: 0 0 0.3rem;
  font-size: clamp(1.15rem, 2.4vw, 1.45rem);
  font-weight: 800;
  letter-spacing: -0.02em;
}
.bs-platform__lede {
  margin: 0;
  color: var(--bs-text-soft);
  font-size: 0.95rem;
}
.bs-platform__stats {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}
.bs-platform__stat {
  display: grid;
  justify-items: start;
  gap: 0.25rem;
  padding: 0.85rem 0.9rem;
  border-radius: 16px;
  border: 1px solid var(--bs-border-soft, oklch(0.35 0.02 270 / .55));
  background: light-dark(oklch(1 0 0 / .55), oklch(0.2 0.02 275 / .75));
}
.bs-platform__ico {
  display: inline-grid;
  place-items: center;
  color: var(--bs-accent, oklch(0.78 0.16 55));
  margin-bottom: 0.15rem;
}
.bs-platform__value {
  font-size: clamp(1.35rem, 3vw, 1.85rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.1;
}
.bs-platform__label {
  font-size: 0.78rem;
  font-weight: 650;
  color: var(--bs-text-soft);
}
.bs-platform__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.85rem;
  margin: 1.15rem 0 0;
}
.bs-platform__link {
  color: var(--bs-text-soft);
  font-weight: 700;
  text-decoration: none;
}
.bs-platform__link:hover { color: var(--bs-accent); }
.bs-platform__stats--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bs-platform__community { margin-top: 1.35rem; }
.bs-platform__community .bs-platform__lede { margin-bottom: 0.75rem; }
@media (max-width: 640px) {
  .bs-platform__stats,
  .bs-platform__stats--2 { grid-template-columns: 1fr; }
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Hallkort
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bs-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.4rem 1.4rem 1.1rem;
  background: var(--bs-bg-card);
  border: 1px solid var(--bs-border-soft);
  border-radius: var(--bs-radius-lg);
  overflow: hidden;
  isolation: isolate;
  box-shadow: var(--bs-shadow);
  transition: transform .25s ease, box-shadow .3s ease, border-color .25s ease;
  container-type: inline-size;
}

/* Subtila glÃ¶d-kanter pÃ¥ live-kort */
.bs-card--live::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg,
    color-mix(in oklch, var(--bs-live) 60%, transparent),
    color-mix(in oklch, var(--bs-accent) 30%, transparent));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  pointer-events: none;
  z-index: 1;
}

.bs-card:hover {
  transform: translateY(-4px);
  border-color: color-mix(in oklch, var(--bs-accent) 30%, var(--bs-border));
  box-shadow: var(--bs-shadow-hover);
}
.bs-card:focus-within {
  outline: 2px solid var(--bs-accent);
  outline-offset: 2px;
}

/* Hela kortet klickbart: overlay-lÃ¤nk tÃ¤cker hela kortet, content
   ligger visuellt ovanpÃ¥ men lÃ¥ter klick passera igenom via
   pointer-events. Interaktiva element (a, button) fÃ¥r sin egen
   pointer-events tillbaka sÃ¥ de fungerar normalt. */
.bs-card__link {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
}
.bs-card__sr {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

.bs-card > :not(.bs-card__link) {
  position: relative;
  z-index: 2;
  pointer-events: none;
}
.bs-card a,
.bs-card button,
.bs-card input,
.bs-card [tabindex] {
  pointer-events: auto;
}

/* Head â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bs-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .9rem;
}
.bs-card__identity {
  display: flex;
  align-items: center;
  gap: .85rem;
  min-width: 0;
}
.bs-card__avatar {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  color: oklch(0.98 0 0);
  font-weight: 800;
  font-size: 1.4rem;
  letter-spacing: -.02em;
  text-shadow: 0 1px 2px oklch(0 0 0 / .25);
  box-shadow: inset 0 1px 0 oklch(1 0 0 / .25), 0 6px 16px oklch(0 0 0 / .15);
  overflow: hidden;
}
/* Logo-lÃ¤ge:
   - Auto-tuned bakgrund baserat pÃ¥ logotypens medel-luminans (berÃ¤knat
     vid upload av HallMediaService::computeDominantLuminance):
       - mÃ¶rk logo â†’ ljus bakgrund (--logo-light)
       - ljus logo â†’ mÃ¶rk bakgrund (--logo-dark)
   - Logon behÃ¥ller alla sina egna fÃ¤rger och detaljer â€” ingen filter. */
.bs-card__avatar--logo img {
  width: 84%;
  height: 84%;
  object-fit: contain;
  pointer-events: none;
}
.bs-card__avatar--logo-light {
  background: oklch(0.97 0.005 260) !important;
  box-shadow:
    inset 0 0 0 1px oklch(0 0 0 / .08),
    0 6px 16px oklch(0 0 0 / .22);
}
.bs-card__avatar--logo-dark {
  background: oklch(0.18 0.01 260) !important;
  box-shadow:
    inset 0 0 0 1px oklch(1 0 0 / .12),
    0 6px 16px oklch(0 0 0 / .35);
}
.bs-card__title-wrap { min-width: 0; }
.bs-card__title {
  margin: 0;
  font-size: var(--bs-step-4);
  font-weight: 700;
  letter-spacing: -.02em;
  line-height: 1.15;
  color: var(--bs-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bs-card__city {
  margin: .15rem 0 0;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  font-size: var(--bs-step-1);
  color: var(--bs-text-muted);
}

/* Status-badge â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bs-status {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .35rem .7rem;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 600;
  background: var(--bs-bg-pill);
  border: 1px solid var(--bs-border);
  color: var(--bs-text-muted);
  letter-spacing: .01em;
}
.bs-status[data-state="live"] {
  background: color-mix(in oklch, var(--bs-live) 18%, transparent);
  border-color: color-mix(in oklch, var(--bs-live) 40%, transparent);
  color: color-mix(in oklch, var(--bs-live) 75%, var(--bs-text));
}
.bs-status[data-state="offline"] { opacity: .7; }
.bs-status__dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--bs-offline);
}
.bs-status[data-state="idle"] .bs-status__dot { background: var(--bs-text-muted); }
.bs-status[data-state="live"] .bs-status__dot {
  background: var(--bs-live);
  box-shadow: 0 0 0 0 var(--bs-live-glow);
  animation: bs-pulse 1.6s ease-out infinite;
}

/* Live-sektion â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bs-card__live {
  padding: .9rem 1rem;
  background: color-mix(in oklch, var(--bs-live) 8%, var(--bs-bg-elev));
  border: 1px solid color-mix(in oklch, var(--bs-live) 25%, transparent);
  border-radius: var(--bs-radius);
}
.bs-card__live-row {
  display: flex;
  align-items: baseline;
  gap: .55rem;
  margin-bottom: .55rem;
}
.bs-card__live-num {
  font-family: var(--bs-font-mono);
  font-size: 1.85rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--bs-live);
  letter-spacing: -.03em;
  line-height: 1;
}
.bs-card__live-label {
  font-size: var(--bs-step-1);
  color: var(--bs-text-soft);
}
.bs-card__meter {
  position: relative;
  height: 6px;
  border-radius: 999px;
  background: color-mix(in oklch, var(--bs-live) 12%, transparent);
  overflow: hidden;
}
.bs-card__meter-fill {
  display: block;
  height: 100%;
  width: var(--bs-meter, 0%);
  background: linear-gradient(90deg, var(--bs-live), oklch(0.8 0.18 100));
  border-radius: inherit;
  transition: width .8s cubic-bezier(.4, 0, .2, 1);
  box-shadow: 0 0 12px var(--bs-live-glow);
}

/* Ã–ppen-status â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bs-card__open {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem .85rem;
  font-size: var(--bs-step-1);
}
.bs-card__open-pill {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .35rem .7rem;
  border-radius: 999px;
  background: var(--bs-bg-pill);
  font-weight: 600;
  color: var(--bs-text-soft);
  font-size: .82rem;
}
.bs-card__open-pill--open {
  background: color-mix(in oklch, var(--bs-open) 18%, transparent);
  color: color-mix(in oklch, var(--bs-open) 75%, var(--bs-text));
}
.bs-card__open-pill--closed {
  color: var(--bs-text-muted);
}
.bs-card__open-bullet {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--bs-text-muted);
}
.bs-card__open-pill--open .bs-card__open-bullet { background: var(--bs-open); box-shadow: 0 0 8px var(--bs-open); }
.bs-card__open-sub { font-weight: 500; color: inherit; opacity: .9; }
.bs-card__open-today {
  margin: 0;
  font-size: .8rem;
  color: var(--bs-text-muted);
  font-feature-settings: "tnum";
  font-family: var(--bs-font-mono);
}

/* Meta â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bs-card__meta {
  display: flex;
  flex-direction: column;
  gap: .4rem;
  padding-top: .15rem;
  font-size: var(--bs-step-1);
  color: var(--bs-text-soft);
}
.bs-card__meta-row {
  margin: 0;
  display: inline-flex;
  align-items: flex-start;
  gap: .45rem;
}
.bs-card__meta-row svg { flex: 0 0 auto; margin-top: 2px; color: var(--bs-text-muted); }

.bs-card__contact {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: .4rem .9rem;
  padding-top: .15rem;
}
.bs-card__contact-link {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  font-size: .82rem;
  color: var(--bs-text-soft);
  border-bottom: 1px dashed transparent;
  padding: .15rem 0;
  transition: color .15s ease, border-color .15s ease;
}
.bs-card__contact-link:hover {
  color: var(--bs-accent);
  border-color: color-mix(in oklch, var(--bs-accent) 50%, transparent);
}
.bs-card__contact-link svg { color: var(--bs-text-muted); }

/* Foot CTA â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bs-card__foot {
  margin-top: auto;
  padding-top: .85rem;
  border-top: 1px solid var(--bs-border-soft);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}
.bs-card__cta-text {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  font-size: var(--bs-step-2);
  font-weight: 600;
  color: var(--bs-text);
}
.bs-card__cta-arrow {
  margin-right: auto;
  margin-left: .15rem;
  color: var(--bs-text-muted);
  transition: transform .25s ease, color .25s ease;
}
.bs-card:hover .bs-card__cta-arrow {
  color: var(--bs-accent);
  transform: translateX(4px);
}
.bs-card__book {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .55rem 1rem;
  border-radius: 999px;
  background: var(--bs-text);
  color: var(--bs-bg);
  font-size: var(--bs-step-1);
  font-weight: 600;
  transition: background .2s ease, transform .2s ease;
}
.bs-card__book:hover {
  background: var(--bs-accent);
  color: oklch(0.98 0 0);
  transform: translateY(-1px);
}

/* Filter-state hiding */
.bs-card[hidden] { display: none !important; }

/* Container responsive: kompaktare kort nÃ¤r containern smal */
@container (max-width: 380px) {
  .bs-card { padding: 1.1rem 1.1rem .95rem; }
  .bs-card__title { font-size: var(--bs-step-3); }
  .bs-card__avatar { width: 42px; height: 42px; font-size: 1.2rem; }
  .bs-card__live-num { font-size: 1.55rem; }
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Entry-animations: @starting-style fÃ¶r smooth first paint
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
@supports (transition-behavior: allow-discrete) {
  .bs-card {
    transition: transform .25s ease, box-shadow .3s ease, border-color .25s ease,
                opacity .5s ease, translate .5s ease;
  }
  @starting-style {
    .bs-card { opacity: 0; translate: 0 16px; }
  }
  @starting-style {
    .bs-hero__title { opacity: 0; translate: 0 -20px; }
    .bs-hero__lede { opacity: 0; translate: 0 12px; }
    .bs-hero__stats { opacity: 0; translate: 0 12px; }
    .bs-hero__cta { opacity: 0; translate: 0 8px; }
  }
  .bs-hero__title, .bs-hero__lede, .bs-hero__stats, .bs-hero__cta {
    transition: opacity .6s ease, translate .6s cubic-bezier(.34,1.36,.64,1);
  }
  .bs-hero__lede  { transition-delay: .08s; }
  .bs-hero__stats { transition-delay: .14s; }
  .bs-hero__cta   { transition-delay: .2s; }
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   View-transitions fÃ¶r kort â†’ scoring
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) {
  animation-duration: .35s;
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   SubdomÃ¤n-scoring (<slug>.bowlingscoring.se)
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

/* Override: hall-scoring.css + tournament-public.css anvÃ¤nder ljusa
   --ko-tokens. Vi sÃ¤tter om dem pÃ¥ subdomÃ¤ner sÃ¥ all scoring-rendering
   fÃ¶ljer mÃ¶rkt tema utan att vi behÃ¶ver target:a varje regel. */
body.bs-scoring.hall-scoring {
  --ko-bg: transparent;
  --ko-surface: var(--bs-bg-card);
  --ko-text: oklch(0.96 0.008 250);
  --ko-muted: oklch(0.62 0.018 250);
  --ko-line: var(--bs-border-soft);
  background: var(--bs-bg) !important;
  color: var(--bs-text) !important;
  font-family: var(--bs-font) !important;
}

body.bs-scoring .hall-scoring__main {
  max-width: 1320px;
  margin: 0 auto;
  padding: clamp(1rem, 3vw, 2rem) var(--bs-page-pad) clamp(2.5rem, 5vw, 4rem);
  position: relative;
  z-index: 1;
}

body.bs-scoring .hall-scoring__stats-wrap {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 var(--bs-page-pad) clamp(2rem, 4vw, 3rem);
  position: relative;
  z-index: 1;
}

/* Ã…TERSTÃ„LL .ko-live-frames bakgrundsstilar â€” JS-koden lÃ¤gger denna
   klass pÃ¥ lanes-containern (jÃ¤mte .hall-scoring__lanes) fÃ¶r bakÃ¥t-
   kompatibilitet med tournament-public.css. Den filen sÃ¤tter
   `padding: 1rem 1.1rem; margin: 1.25rem 0 1.5rem; background; border;
   border-radius` pÃ¥ `.ko-live-frames` â€” vilket pÃ¥ subdomÃ¤nen gjorde att
   lane-griden skÃ¶ts in 17.6 px frÃ¥n toolbar-kanten OCH fick en osynlig
   ljus-tema-bakgrund. Nolla allt sÃ¥ lanes-containern blir transparent
   och flush med toolbar-rutan. */
body.bs-scoring .hall-scoring__lanes.ko-live-frames,
body.bs-scoring .hall-scoring__lanes {
  padding: 0;
  margin: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  gap: 1rem;
}

/* Bana-grupp: visuellt tydligt kort runt varje bana. Border-radius
   matchar POÃ„NGKORT-toolbarn (samma --bs-radius) sÃ¥ de tvÃ¥ primÃ¤ra
   ytorna pÃ¥ sidan kÃ¤nns visuellt konsekventa. */
body.bs-scoring .hall-scoring__lane {
  background: color-mix(in oklch, var(--bs-bg-elev) 80%, transparent);
  border: 1px solid var(--bs-border-soft);
  border-radius: var(--bs-radius);
  padding: 1rem 1.15rem 1.2rem;
}
body.bs-scoring .hall-scoring__lane--ad {
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}
body.bs-scoring .hall-scoring__lane--ad .hall-scoring__lane-ad {
  border-radius: var(--bs-radius);
  background: transparent;
}
body.bs-scoring .hall-scoring__lane-title {
  color: var(--bs-text);
  font-weight: 700;
  letter-spacing: -.01em;
}
body.bs-scoring .hall-scoring__lane-count {
  background: var(--bs-bg-pill);
  color: var(--bs-text-soft);
  border: 1px solid var(--bs-border-soft);
}

/* Layout/poÃ¤ngkort-kontrollbar â€” gÃ¶r matchande mÃ¶rk. Border-radius
   matchar lane-rutorna nedanfÃ¶r (samma --bs-radius) fÃ¶r visuell
   konsekvens. */
body.bs-scoring .hall-scoring__toolbar {
  background: var(--bs-bg-elev);
  border-color: var(--bs-border-soft);
  border-radius: var(--bs-radius);
  box-shadow: none;
}
body.bs-scoring .hall-scoring__toolbar-label {
  color: var(--bs-text-muted);
}
body.bs-scoring .hall-scoring__view-toggle {
  background: var(--bs-bg-pill);
}
body.bs-scoring .hall-scoring__view-btn {
  color: var(--bs-text-soft);
}
body.bs-scoring .hall-scoring__view-btn:hover {
  color: var(--bs-text);
}
body.bs-scoring .hall-scoring__view-btn.is-active {
  background: var(--bs-bg-card);
  color: var(--bs-text);
  box-shadow: 0 1px 4px oklch(0 0 0 / .25);
}
body.bs-scoring .hall-scoring__lane-ad-hide {
  border-color: var(--bs-border-soft);
  background: color-mix(in oklch, var(--bs-bg-elev) 82%, transparent);
  color: var(--bs-text);
}

/* BanpoÃ¤ng VS-boxar â€” samma kort-stil som lane-rutorna */
body.bs-scoring.hall-scoring .hall-scoring__banp-promo {
  background: color-mix(in oklch, var(--bs-bg-elev) 80%, transparent);
  border: 1px solid var(--bs-border-soft);
  border-radius: var(--bs-radius);
  box-shadow: 0 2px 8px oklch(0 0 0 / .25);
}
body.bs-scoring.hall-scoring .hall-scoring__banp-promo:hover {
  background: var(--bs-bg-card-hover);
  border-color: var(--bs-border);
  box-shadow: var(--bs-shadow-hover);
}
body.bs-scoring.hall-scoring .hall-scoring__banp-promo-team {
  color: var(--bs-text);
}
body.bs-scoring.hall-scoring .hall-scoring__banp-promo-vs {
  color: var(--bs-text-muted);
}
body.bs-scoring.hall-scoring .hall-scoring__banp-promo-score {
  color: var(--bs-accent);
}
body.bs-scoring.hall-scoring .hall-scoring__banp-promo-serie {
  color: var(--bs-text-soft);
}
body.bs-scoring.hall-scoring .hall-scoring__banp-promo-cta {
  color: oklch(0.78 0.12 195);
}
body.bs-scoring.hall-scoring .hall-scoring__banp-recent {
  background: color-mix(in oklch, var(--bs-bg-elev) 70%, transparent);
  border: 1px solid var(--bs-border-soft);
  border-radius: var(--bs-radius);
}
body.bs-scoring.hall-scoring .hall-scoring__banp-recent-title {
  color: var(--bs-text-muted);
}

/* BanpoÃ¤ngsmatch-sida pÃ¥ subdomÃ¤n â€” samma shell som scoring */
body.bs-scoring.hall-banp {
  background: var(--bs-bg) !important;
  color: var(--bs-text);
  font-family: var(--bs-font) !important;
}
body.bs-scoring.hall-banp .hall-banp__main {
  max-width: 1320px;
  margin: 0 auto;
  padding: clamp(1rem, 3vw, 2rem) var(--bs-page-pad) clamp(2.5rem, 5vw, 4rem);
}
body.bs-scoring.hall-banp .hall-banp__match-hero.hall-scoring__banp-promo,
body.bs-scoring.hall-banp .hall-banp__overview.hall-scoring__banp-promo {
  max-width: none;
  width: 100%;
}
body.bs-scoring.hall-banp .hall-banp__overview {
  background: color-mix(in oklch, var(--bs-bg-elev) 85%, transparent);
  border-color: var(--bs-border-soft);
}
body.bs-scoring.hall-banp .hall-banp__overview-pair {
  background: color-mix(in oklch, var(--bs-bg-pill) 55%, transparent);
  border-color: var(--bs-border-soft);
}
body.bs-scoring.hall-banp .hall-banp__overview-serierow-pins {
  color: var(--bs-text);
}
body.bs-scoring.hall-banp .hall-banp__live,
body.bs-scoring.hall-banp .hall-banp__pair-block--live,
body.bs-scoring.hall-banp .hall-banp__sbf {
  background: color-mix(in oklch, var(--bs-bg-elev) 80%, transparent);
  border: 1px solid var(--bs-border-soft);
  border-radius: var(--bs-radius);
  box-shadow: 0 2px 8px oklch(0 0 0 / .2);
}
body.bs-scoring.hall-banp .hall-banp__live-title,
body.bs-scoring.hall-banp .hall-banp__sbf-title {
  color: var(--bs-text);
}
body.bs-scoring.hall-banp .hall-banp__live-hint,
body.bs-scoring.hall-banp .hall-banp__sbf-hint {
  color: var(--bs-text-muted);
}
body.bs-scoring.hall-banp .hall-banp__pair-side-title,
body.bs-scoring.hall-banp .hall-banp__pair-label {
  color: var(--bs-text-soft);
}
body.bs-scoring.hall-banp .hall-banp__sbf-table th,
body.bs-scoring.hall-banp .hall-banp__sbf-table td {
  border-color: var(--bs-border-soft);
  color: var(--bs-text);
}
body.bs-scoring.hall-banp .hall-banp__sbf-table thead th {
  background: color-mix(in oklch, var(--bs-bg-pill) 70%, transparent);
  color: var(--bs-text-muted);
}
body.bs-scoring.hall-banp .hall-banp__sbf-row--current {
  background: color-mix(in oklch, var(--bs-accent) 12%, transparent);
}

/* Spelar-kort (en kassett per spelare) â€” vita som default â†’ mÃ¶rk */
body.bs-scoring .ko-live-frame-card,
body.bs-scoring .hall-scoring .ko-live-frame-card {
  background: var(--bs-bg-card);
  border: 1px solid var(--bs-border-soft);
  color: var(--bs-text);
  box-shadow: 0 2px 8px oklch(0 0 0 / .25);
}
body.bs-scoring .ko-live-frame-card.is-lane-active,
body.bs-scoring .hall-scoring .ko-live-frame-card.is-lane-active {
  border: 2px solid #22c55e;
  border-color: #22c55e;
  box-shadow:
    0 0 0 3px rgba(34, 197, 94, 0.35),
    0 6px 20px rgba(34, 197, 94, 0.25);
}

/* Lane placeholder ("Inget spel just nu") + lediga banor */
body.bs-scoring .hall-scoring__lane-placeholder {
  background: color-mix(in oklch, var(--bs-bg-card) 60%, transparent);
  border-color: var(--bs-border);
  color: var(--bs-text-muted);
}

/* Spelar-stats-bar (Strikes/SpÃ¤rrar/TotalpoÃ¤ng) â€” Ã¶versvÃ¤mmar mÃ¶rkt med ljusa pills */
body.bs-scoring .hall-scoring__player-stats {
  background: color-mix(in oklch, var(--bs-bg-elev) 70%, transparent);
  border-radius: var(--bs-radius);
}
body.bs-scoring .hall-scoring__player-stat-value {
  color: var(--bs-text);
}
body.bs-scoring .hall-scoring__player-stat-label {
  color: var(--bs-text-muted);
}

/* Topplistor & arkiv under live-grid */
body.bs-scoring .hall-scoring__stats {
  background: color-mix(in oklch, var(--bs-bg-elev) 88%, transparent);
  border: 1px solid var(--bs-border-soft);
  border-radius: var(--bs-radius);
  box-shadow: none;
}
body.bs-scoring .hall-scoring__stats-title {
  color: var(--bs-text);
}
body.bs-scoring .hall-scoring__stats-sub,
body.bs-scoring .hall-scoring__stats-board-title,
body.bs-scoring .hall-scoring__stats-archive-title,
body.bs-scoring .hall-scoring__stats-filters-label,
body.bs-scoring .hall-scoring__stats-filter-field-label,
body.bs-scoring .hall-scoring__stats-meta,
body.bs-scoring .hall-scoring__stats-archive-meta,
body.bs-scoring .hall-scoring__stats-empty {
  color: var(--bs-text-muted);
}
body.bs-scoring .hall-scoring__stats-archive {
  border-top-color: var(--bs-border-soft);
}

body.bs-scoring .hall-scoring__stats-archive-list {
  max-height: min(26rem, 52vh);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

body.bs-scoring .hall-scoring__stats-archive-row {
  background: color-mix(in oklch, var(--bs-bg-card) 65%, transparent);
  border: 1px solid var(--bs-border-soft);
}

body.bs-scoring .hall-scoring__stats-row {
  background: color-mix(in oklch, var(--bs-bg-card) 65%, transparent);
  border: 1px solid var(--bs-border-soft);
}
body.bs-scoring .hall-scoring__stats-archive-name--link {
  color: inherit;
  text-decoration-color: rgba(251, 146, 60, 0.45);
}

body.bs-scoring .hall-scoring__stats-archive-name--link:hover,
body.bs-scoring .hall-scoring__stats-archive-name--link:focus-visible {
  color: #fb923c;
}
body.bs-scoring .hall-scoring__stats-name,
body.bs-scoring .hall-scoring__stats-archive-name {
  color: var(--bs-text);
}
body.bs-scoring .hall-scoring__stats-value,
body.bs-scoring .hall-scoring__stats-archive-score {
  color: var(--bs-accent, #34d399);
}
body.bs-scoring .hall-scoring__stats-search-input {
  background: var(--bs-bg-pill);
  border-color: var(--bs-border-soft);
  color: var(--bs-text);
}
body.bs-scoring .hall-scoring__stats-filters {
  border-bottom-color: var(--bs-border-soft);
}
body.bs-scoring .hall-scoring__stats-filter-btn,
body.bs-scoring .hall-scoring__stats-filter-apply {
  background: var(--bs-bg-pill);
  border-color: var(--bs-border-soft);
  color: var(--bs-text-soft);
}
body.bs-scoring .hall-scoring__stats-filter-btn:hover,
body.bs-scoring .hall-scoring__stats-filter-apply:hover {
  color: var(--bs-text);
  border-color: var(--bs-border);
}
body.bs-scoring .hall-scoring__stats-filter-btn.is-active,
body.bs-scoring .hall-scoring__stats-filter-apply.is-active {
  background: color-mix(in oklch, var(--bs-accent) 22%, var(--bs-bg-card));
  border-color: color-mix(in oklch, var(--bs-accent) 45%, var(--bs-border));
  color: var(--bs-text);
}
body.bs-scoring .hall-scoring__stats-filter-toggle {
  background: var(--bs-bg-pill);
  border-color: var(--bs-border-soft);
  color: var(--bs-text-soft);
}
body.bs-scoring .hall-scoring__stats-filter-toggle:hover,
body.bs-scoring .hall-scoring__stats-filter-toggle:focus-visible {
  color: var(--bs-text);
  border-color: var(--bs-border);
}
body.bs-scoring .hall-scoring__stats-filter-input {
  background: var(--bs-bg-pill);
  border-color: var(--bs-border-soft);
  color: var(--bs-text);
}
body.bs-scoring .hall-scoring__stats-filter-time-sep {
  color: var(--bs-text-muted);
}
body.bs-scoring .hall-scoring__stats-archive {
  border-top-color: var(--bs-border-soft);
}

/* Ã–vriga ljusa pill/badge-bg:er som hÃ¥rdkodar #f1f5f9, #f8fafc, #fff */
body.bs-scoring [style*="background"],
body.bs-scoring .hall-scoring__player-head-row {
  /* lÃ¤mna inline-styles orÃ¶rda */
}
body.bs-scoring .hall-scoring [class*="badge"],
body.bs-scoring .hall-scoring [class*="chip"]:not(.bs-chip):not(.bs-card__open-pill) {
  color: inherit;
}

body.bs-scoring .hall-scoring__card-head-pills {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  flex-shrink: 0;
  margin-left: auto;
}

body.bs-scoring .hall-scoring__active-serie {
  display: inline-block;
  padding: 0.12rem 0.5rem;
  border-radius: 999px;
  font-size: var(--hall-head-text, 0.8125rem);
  font-weight: 600;
  line-height: 1.3;
  color: oklch(0.78 0.04 240);
  background: oklch(0.28 0.04 240 / 0.85);
  border: 1px solid oklch(0.42 0.04 240 / 0.7);
  white-space: nowrap;
}

body.bs-scoring .hall-scoring__active-serie.is-complete {
  opacity: 0.88;
  color: oklch(0.72 0.03 240);
}

body.bs-scoring .ko-live-frame-card__lane-pill {
  display: inline-block;
  margin-left: 0;
  padding: 0.05rem 0.38rem;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 600;
  line-height: 1.25;
  color: oklch(0.82 0.1 195);
  background: oklch(0.28 0.04 240 / 0.85);
  border: 1px solid oklch(0.55 0.08 195 / 0.55);
  vertical-align: middle;
  white-space: nowrap;
}

/* Slot-numret (t.ex. "1 Â· Johnny") fick Ã¤rva fÃ¤rg frÃ¥n nÃ¥gon fÃ¶rÃ¤lder
   och blev mÃ¶rk-pÃ¥-mÃ¶rk pÃ¥ det mÃ¶rka temat â€” sÃ¤tt explicit ljus fÃ¤rg
   med subtil cyan-accent sÃ¥ det syns men inte stjÃ¤l fokus frÃ¥n namnet. */
body.bs-scoring .ko-live-frame-card__slot {
  color: oklch(0.78 0.12 195);
  font-weight: 600;
  opacity: 0.95;
}

/* Mildare dimning av spelare som inte Ã¤r pÃ¥ tur â€” tidigare 0.55 i
   tournament-public.css kÃ¤ndes som "avgrÃ¥ad". RÃ¤cker att markera den
   aktiva spelaren med grÃ¶n ram. */
body.bs-scoring .ko-live-frame-card.is-lane-waiting {
  opacity: 0.92;
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Bowlingruta-grid (.ko-bowling-card__*) â€” 10 frame-boxar per serie
   Default i tournament-public.css Ã¤r vita; hÃ¤r i mÃ¶rkt tema vill vi
   ha mÃ¶rka rutor med subtil border och tydlig aktiv-state.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
body.bs-scoring .ko-bowling-card__frame {
  background: color-mix(in oklch, var(--bs-bg-elev) 78%, transparent);
  border: 1px solid var(--bs-border);
  color: var(--bs-text);
}
body.bs-scoring .ko-bowling-card__frame-label {
  background: color-mix(in oklch, var(--bs-bg) 60%, transparent);
  color: var(--bs-text-muted);
  border-bottom: 1px solid var(--bs-border-soft);
}
body.bs-scoring .ko-bowling-card__cell {
  color: var(--bs-text);
  border-right-color: var(--bs-border-soft);
}
body.bs-scoring .ko-bowling-card__frame .ko-bowling-card__cum {
  background: color-mix(in oklch, var(--bs-bg) 55%, transparent);
  color: var(--bs-text);
  border-top: 1px solid var(--bs-border-soft);
}

/* Aktiv ruta (dÃ¤r spelaren Ã¤r just nu) â€” accentgrÃ¶n i mÃ¶rk variant */
body.bs-scoring .ko-bowling-card__frame.is-active {
  background: color-mix(in oklch, var(--bs-live) 22%, var(--bs-bg-elev));
  border-color: color-mix(in oklch, var(--bs-live) 55%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--bs-live) 35%, transparent);
}

/* 10:e rutan: grÃ¶n markering bara pÃ¥ kastfÃ¤lten â€” Max-raden hÃ¥ller egen stil. */
body.bs-scoring .ko-bowling-card__frame--tenth.is-active {
  background: color-mix(in oklch, var(--bs-bg-elev) 92%, transparent);
  border-color: color-mix(in oklch, var(--bs-live) 55%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--bs-live) 35%, transparent);
}
body.bs-scoring .ko-bowling-card__frame--tenth.is-active .ko-bowling-card__cells {
  background: color-mix(in oklch, var(--bs-live) 22%, var(--bs-bg-elev));
}
body.bs-scoring .ko-bowling-card__frame--tenth.is-active .ko-bowling-card__cum.is-max-result {
  background: color-mix(in oklch, oklch(72% .14 180) 22%, var(--bs-bg-elev));
  color: color-mix(in oklch, oklch(82% .12 180) 80%, var(--bs-text));
  box-shadow: none;
}

body.bs-scoring .ko-bowling-card__cum.is-active {
  background: color-mix(in oklch, var(--bs-live) 32%, var(--bs-bg-elev));
  color: color-mix(in oklch, var(--bs-live) 78%, var(--bs-text));
}

/* "Max" i 10:e rutan / personbÃ¤sta-highlight */
body.bs-scoring .ko-bowling-card__cum.is-max-result {
  background: color-mix(in oklch, oklch(72% .14 180) 22%, var(--bs-bg-elev));
  color: color-mix(in oklch, oklch(82% .12 180) 80%, var(--bs-text));
}

/* Waiting/idle-spelare: rutorna i tournament-public.css lÃ¤ggs som
   "is-lane-waiting" â€” dÃ¤r har frame.is-active fortfarande grÃ¶n. Vi vill
   istÃ¤llet dÃ¤mpa hela kortet, men lÃ¥t aktiv-rutan dÃ¤mpas extra. */
body.bs-scoring .ko-live-frame-card.is-lane-waiting .ko-bowling-card__frame,
body.bs-scoring .ko-live-frame-card.is-lane-waiting .ko-bowling-card__cum {
  background: color-mix(in oklch, var(--bs-bg) 70%, transparent);
  border-color: var(--bs-border-soft);
  color: var(--bs-text-soft);
}
body.bs-scoring .ko-live-frame-card.is-lane-waiting .ko-bowling-card__frame.is-active,
body.bs-scoring .ko-live-frame-card.is-lane-waiting .ko-bowling-card__cum.is-active {
  background: color-mix(in oklch, var(--bs-bg) 70%, transparent);
  color: var(--bs-text-muted);
  box-shadow: none;
  border-color: var(--bs-border-soft);
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Modal ("Visa alla serier") â€” mÃ¶rkt tema fÃ¶r subdomÃ¤ner.
   Modalen lÃ¤ggs pÃ¥ <body> (utanfÃ¶r .hall-scoring-roten) sÃ¥ vi
   matchar via body.hall-scoring-modal-open som JS:en sÃ¤tter
   nÃ¤r modalen Ã¤r Ã¶ppen.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
body.bs-scoring .hall-scoring__modal-backdrop {
  background: oklch(0.08 0.015 250 / .72);
  backdrop-filter: blur(10px) saturate(140%);
}

body.bs-scoring .hall-scoring__modal-panel {
  background: var(--bs-bg-elev);
  color: var(--bs-text);
  border: 1px solid var(--bs-border);
  box-shadow:
    0 -10px 60px oklch(0 0 0 / .55),
    0 24px 80px oklch(0 0 0 / .55);
}

body.bs-scoring .hall-scoring__modal-close {
  background: var(--bs-bg-pill);
  color: var(--bs-text-soft);
  border: 1px solid var(--bs-border-soft);
  transition: color .18s ease, background .18s ease, border-color .18s ease;
}
body.bs-scoring .hall-scoring__modal-close:hover {
  color: var(--bs-text);
  background: var(--bs-bg-card-hover);
  border-color: var(--bs-border);
}

body.bs-scoring .hall-scoring__modal-title,
body.bs-scoring .hall-scoring__modal-player-name {
  color: var(--bs-text);
}

body.bs-scoring .hall-scoring__modal-lane,
body.bs-scoring .hall-scoring__modal-player-meta,
body.bs-scoring .hall-scoring__modal-session-summary,
body.bs-scoring .hall-scoring__modal-slot,
body.bs-scoring .hall-scoring__modal-serie-stats,
body.bs-scoring .hall-scoring__modal-serie-fallback {
  color: var(--bs-text-soft);
}
body.bs-scoring .hall-scoring__modal-session-summary strong,
body.bs-scoring .hall-scoring__modal-serie-stat-num {
  color: var(--bs-text);
}

body.bs-scoring .hall-scoring__modal-player-head {
  border-bottom-color: var(--bs-border-soft);
}

body.bs-scoring .hall-scoring__modal-lane-badge {
  background: var(--bs-bg-pill);
  color: var(--bs-text);
  border: 1px solid var(--bs-border-soft);
}

/* Varje serie-rad i listan: kort med subtil bakgrund */
body.bs-scoring .hall-scoring__modal-serie {
  background: color-mix(in oklch, var(--bs-bg-card) 75%, transparent);
  border-color: var(--bs-border-soft);
}

body.bs-scoring .hall-scoring__modal-serie--live {
  background: color-mix(in oklch, var(--bs-live) 8%, var(--bs-bg-card));
  border-color: color-mix(in oklch, var(--bs-live) 40%, transparent);
  box-shadow: 0 0 0 1px color-mix(in oklch, var(--bs-live) 22%, transparent);
}

body.bs-scoring .hall-scoring__modal-serie--missing {
  background: color-mix(in oklch, var(--bs-bg) 60%, transparent);
  opacity: 0.72;
}

body.bs-scoring .hall-scoring__modal-serie-label {
  color: var(--bs-text);
}

body.bs-scoring .hall-scoring__modal-serie-badge {
  background: color-mix(in oklch, var(--bs-live) 80%, oklch(0.18 0.05 60));
  color: oklch(0.98 0 0);
}
body.bs-scoring .hall-scoring__modal-serie-badge--missing {
  background: color-mix(in oklch, var(--bs-bg-pill) 80%, var(--bs-border));
  color: var(--bs-text-muted);
}

/* LÃ¥s kropps-scroll utan att Ã¤ndra body-bakgrunden */
body.bs-scoring.hall-scoring-modal-open {
  overflow: hidden;
}

/* Scorekort i modal â€” samma lÃ¤sbara stil som live-korten (tournament-public
   vit bakgrund + bs-scoring mÃ¶rk text ger dÃ¥lig kontrast i modalen). */
body.bs-scoring .hall-scoring__modal-serie-scorecard .ko-bowling-card__frame {
  background: color-mix(in oklch, var(--bs-bg-elev) 78%, transparent);
  border: 1px solid var(--bs-border);
  color: var(--bs-text);
}
body.bs-scoring .hall-scoring__modal-serie-scorecard .ko-bowling-card__frame-label {
  background: color-mix(in oklch, var(--bs-bg) 60%, transparent);
  color: var(--bs-text-muted);
  border-bottom: 1px solid var(--bs-border-soft);
}
body.bs-scoring .hall-scoring__modal-serie-scorecard .ko-bowling-card__cell {
  color: var(--bs-text);
  border-right-color: var(--bs-border-soft);
}
body.bs-scoring .hall-scoring__modal-serie-scorecard .ko-bowling-card__frame .ko-bowling-card__cum {
  background: color-mix(in oklch, var(--bs-bg) 55%, transparent);
  color: var(--bs-text);
  border-top: 1px solid var(--bs-border-soft);
}
body.bs-scoring .hall-scoring__modal-serie-scorecard .ko-bowling-card__frame.is-active {
  background: color-mix(in oklch, var(--bs-live) 22%, var(--bs-bg-elev));
  border-color: color-mix(in oklch, var(--bs-live) 55%, transparent);
}
body.bs-scoring .hall-scoring__modal-serie-scorecard .ko-bowling-card__cum.is-active {
  background: color-mix(in oklch, var(--bs-live) 32%, var(--bs-bg-elev));
  color: color-mix(in oklch, var(--bs-live) 78%, var(--bs-text));
}

/* Hero-variant fÃ¶r scoring: kortare, med tillbaka-lÃ¤nk och hall-info */
.bs-hero--scoring {
  padding-top: clamp(1rem, 3vw, 2rem);
  padding-bottom: clamp(1.25rem, 3vw, 2.25rem);
}
.bs-hero--scoring .bs-hero__inner {
  display: grid;
  gap: .75rem;
}

.bs-breadcrumb {
  margin: 0 0 .15rem;
}
.bs-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .25rem .45rem;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .01em;
}
.bs-breadcrumb__item {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-width: 0;
  color: var(--bs-text-muted);
}
.bs-breadcrumb__item:not(:last-child)::after {
  content: "/";
  color: var(--bs-text-muted);
  font-weight: 500;
  opacity: .55;
  pointer-events: none;
}
.bs-breadcrumb__item a {
  color: var(--bs-text-soft);
  text-decoration: none;
  transition: color .18s ease;
}
.bs-breadcrumb__item a:hover {
  color: var(--bs-accent);
}
.bs-breadcrumb__item[aria-current="page"] span {
  color: var(--bs-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: min(72vw, 28rem);
}

.bs-hero__back {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  width: fit-content;
  padding: .35rem .75rem .35rem .55rem;
  border-radius: 999px;
  background: var(--bs-bg-pill);
  border: 1px solid var(--bs-border-soft);
  color: var(--bs-text-soft);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .01em;
  transition: color .18s ease, border-color .18s ease, background .18s ease, transform .18s ease;
  margin-bottom: .35rem;
}
.bs-hero__back:hover {
  color: var(--bs-text);
  border-color: var(--bs-border);
  background: var(--bs-bg-card-hover);
  transform: translateX(-2px);
}
.bs-hero__back svg { transition: transform .2s ease; }
.bs-hero__back:hover svg { transform: translateX(-2px); }

/* Hall-identitet */
.bs-hall {
  display: flex;
  align-items: center;
  gap: .9rem;
  flex-wrap: wrap;
}
.bs-hall__avatar {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: clamp(48px, 8vw, 64px);
  height: clamp(48px, 8vw, 64px);
  border-radius: 16px;
  color: oklch(0.98 0 0);
  font-weight: 800;
  font-size: clamp(1.4rem, 3vw, 1.85rem);
  letter-spacing: -.02em;
  text-shadow: 0 1px 2px oklch(0 0 0 / .25);
  box-shadow: inset 0 1px 0 oklch(1 0 0 / .25), 0 8px 22px oklch(0 0 0 / .2);
  overflow: hidden;
}
.bs-hall__avatar--logo img {
  width: 84%;
  height: 84%;
  object-fit: contain;
  pointer-events: none;
}
.bs-hall__avatar--logo-light {
  background: oklch(0.97 0.005 260) !important;
  box-shadow:
    inset 0 0 0 1px oklch(0 0 0 / .08),
    0 8px 22px oklch(0 0 0 / .25);
}
.bs-hall__avatar--logo-dark {
  background: oklch(0.18 0.01 260) !important;
  box-shadow:
    inset 0 0 0 1px oklch(1 0 0 / .12),
    0 8px 22px oklch(0 0 0 / .35);
}
.bs-hall__title-wrap { min-width: 0; flex: 1 1 auto; }
.bs-hall__title {
  margin: 0;
  font-size: clamp(1.6rem, 1.3rem + 2vw, 2.6rem);
  font-weight: 800;
  letter-spacing: -.035em;
  line-height: 1.05;
  color: var(--bs-text);
}
.bs-hall__city {
  margin: .2rem 0 0;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  color: var(--bs-text-soft);
  font-size: var(--bs-step-2);
}
.bs-hall__status {
  flex: 0 0 auto;
  align-self: flex-start;
}

/* Ã–ppet-block: pill + ranges pÃ¥ en rad */
.bs-hall__open {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem .85rem;
}

/* Live-banor: stor mono-siffra + meter */
.bs-hall__live {
  display: grid;
  gap: .45rem;
  padding: .85rem 1.1rem;
  background: color-mix(in oklch, var(--bs-live) 8%, var(--bs-bg-elev));
  border: 1px solid color-mix(in oklch, var(--bs-live) 25%, transparent);
  border-radius: var(--bs-radius);
  max-width: 32rem;
}
.bs-hall__live-row {
  display: flex;
  align-items: baseline;
  gap: .5rem;
}
.bs-hall__live-num {
  font-family: var(--bs-font-mono);
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--bs-live);
  letter-spacing: -.03em;
  line-height: 1;
}
.bs-hall__live-label { color: var(--bs-text-soft); font-size: var(--bs-step-1); }
.bs-hall__meter {
  position: relative;
  height: 6px;
  border-radius: 999px;
  background: color-mix(in oklch, var(--bs-live) 12%, transparent);
  overflow: hidden;
}
.bs-hall__meter-fill {
  display: block;
  height: 100%;
  width: var(--bs-meter, 0%);
  background: linear-gradient(90deg, var(--bs-live), oklch(0.8 0.18 100));
  border-radius: inherit;
  transition: width .8s cubic-bezier(.4, 0, .2, 1);
  box-shadow: 0 0 12px var(--bs-live-glow);
}

/* Actions: boka-CTA + sekundÃ¤ra lÃ¤nkar */
.bs-hall__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem .65rem;
  margin-top: .35rem;
}
.bs-hall__cta {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .65rem 1.1rem;
  border: 0;
  border-radius: 999px;
  background: var(--bs-accent-grad);
  color: oklch(0.98 0 0);
  font-weight: 600;
  font-size: var(--bs-step-2);
  cursor: pointer;
  box-shadow: 0 10px 26px color-mix(in oklch, var(--bs-accent) 35%, transparent);
  transition: transform .2s ease, box-shadow .25s ease;
}
.bs-hall__cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 34px color-mix(in oklch, var(--bs-accent) 50%, transparent);
}
.bs-hall__action {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .5rem .9rem;
  border-radius: 999px;
  background: var(--bs-bg-pill);
  border: 1px solid var(--bs-border-soft);
  color: var(--bs-text-soft);
  font-size: var(--bs-step-1);
  font-weight: 500;
  transition: color .18s ease, border-color .18s ease, background .18s ease;
}
.bs-hall__action:hover {
  color: var(--bs-text);
  border-color: var(--bs-border);
  background: var(--bs-bg-card-hover);
}
.bs-hall__action--static {
  cursor: default;
}
.bs-hall__action--static:hover {
  color: var(--bs-text-soft);
  border-color: var(--bs-border-soft);
  background: var(--bs-bg-pill);
}
.bs-hall__action svg { color: var(--bs-text-muted); }

/* Scoring-footer: tona ner ovanfÃ¶r footern, brand-lÃ¤nk klickbar */
.bs-footer--scoring { margin-top: clamp(2rem, 4vw, 3rem); }
.bs-footer__brand a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px dashed transparent;
  transition: color .15s ease, border-color .15s ease;
}
.bs-footer__brand a:hover {
  color: var(--bs-accent);
  border-color: color-mix(in oklch, var(--bs-accent) 50%, transparent);
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Booking-modal (native <dialog>)
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bs-modal {
  width: min(960px, 96vw);
  height: min(820px, 92dvh);
  max-width: none;
  max-height: none;
  padding: 0;
  border: 1px solid var(--bs-border);
  border-radius: var(--bs-radius-xl);
  background: var(--bs-bg-elev);
  color: var(--bs-text);
  box-shadow: 0 30px 80px oklch(0 0 0 / .35), 0 0 0 1px var(--bs-border-soft);
  overflow: hidden;
}
.bs-modal::backdrop {
  background: color-mix(in oklch, oklch(0.08 0.02 270) 70%, transparent);
  backdrop-filter: blur(8px) saturate(140%);
  -webkit-backdrop-filter: blur(8px) saturate(140%);
}
.bs-modal[open] {
  display: flex;
  flex-direction: column;
}

/* Fade + scale-in animation */
@supports (transition-behavior: allow-discrete) {
  .bs-modal {
    transition: opacity .22s ease, scale .22s cubic-bezier(.34,1.36,.64,1),
                translate .22s cubic-bezier(.34,1.36,.64,1),
                overlay .22s allow-discrete, display .22s allow-discrete;
    opacity: 0;
    scale: .96;
    translate: 0 8px;
  }
  .bs-modal[open] { opacity: 1; scale: 1; translate: 0 0; }
  @starting-style {
    .bs-modal[open] { opacity: 0; scale: .96; translate: 0 8px; }
  }
  .bs-modal::backdrop {
    transition: opacity .22s ease, overlay .22s allow-discrete, display .22s allow-discrete;
    opacity: 0;
  }
  .bs-modal[open]::backdrop { opacity: 1; }
  @starting-style {
    .bs-modal[open]::backdrop { opacity: 0; }
  }
}

.bs-modal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 1rem .9rem 1.4rem;
  border-bottom: 1px solid var(--bs-border-soft);
  background: color-mix(in oklch, var(--bs-bg-card) 80%, transparent);
}
.bs-modal__title {
  font-weight: 700;
  font-size: var(--bs-step-3);
  letter-spacing: -.01em;
  color: var(--bs-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bs-modal__close {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 12px;
  background: var(--bs-bg-pill);
  border: 1px solid transparent;
  color: var(--bs-text-soft);
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.bs-modal__close:hover {
  background: var(--bs-bg-card-hover);
  color: var(--bs-text);
  border-color: var(--bs-border);
}
.bs-modal__close:focus-visible {
  outline: 2px solid var(--bs-accent);
  outline-offset: 2px;
}

.bs-modal__body {
  position: relative;
  flex: 1 1 auto;
  background: var(--bs-bg-elev);
  overflow-y: auto;
  overflow-x: hidden;
  min-height: 0;
  /* Stack iframen + kontakt-sektionen tÃ¤tt utan luft */
  display: flex;
  flex-direction: column;
}
.bs-modal__frame {
  display: block;
  width: 100%;
  /* JS sÃ¤tter exakt hÃ¶jd via postMessage frÃ¥n embed-shellet.
     Fallback medan hÃ¶jden Ã¤nnu inte rapporterats â€” vÃ¤ldigt liten sÃ¥
     vit yta blir minimal om postMessage av nÃ¥gon anledning inte nÃ¥r fram. */
  height: 320px;
  border: 0;
  background: transparent;
  color-scheme: light;
  flex: 0 0 auto;
}
.bs-modal__loader {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  gap: .75rem;
  color: var(--bs-text-muted);
  font-size: var(--bs-step-1);
  background: var(--bs-bg);
  transition: opacity .25s ease;
}
.bs-modal__loader[hidden] {
  display: grid !important;
  opacity: 0;
  pointer-events: none;
}
.bs-modal__loader-inner { display: inline-flex; align-items: center; gap: .55rem; }
.bs-modal__spinner {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2.5px solid var(--bs-border);
  border-top-color: var(--bs-accent);
  animation: bs-spin .9s linear infinite;
}
@keyframes bs-spin { to { transform: rotate(360deg); } }

/* â”€â”€â”€ Kontakt + plats + karta â€” limmar direkt under iframen â”€ */
.bs-modal__contact {
  display: grid;
  gap: 1.1rem;
  padding: 1.25rem clamp(1rem, 4vw, 1.75rem) 1.5rem;
  background: var(--bs-bg-elev);
  border-top: 1px solid var(--bs-border);
  flex: 0 0 auto;
  margin-top: 0;
}
.bs-modal__contact[hidden] { display: none; }

.bs-modal__contact-head {
  display: flex;
  flex-direction: column;
  gap: .15rem;
}
.bs-modal__contact-eyebrow {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--bs-text-muted);
}
.bs-modal__contact-title {
  margin: 0;
  font-size: var(--bs-step-1);
  font-weight: 700;
  color: var(--bs-text);
}

.bs-modal__contact-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: .6rem;
}

.bs-modal__contact-btn {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .75rem .9rem;
  border-radius: 14px;
  background: var(--bs-bg-card);
  border: 1px solid var(--bs-border);
  color: var(--bs-text);
  text-decoration: none;
  font-weight: 600;
  font-size: .92rem;
  line-height: 1.2;
  min-width: 0;
  transition: background .15s ease, border-color .15s ease, transform .15s ease, color .15s ease;
}
.bs-modal__contact-btn > svg {
  flex: 0 0 auto;
  color: var(--bs-accent);
}
.bs-modal__contact-btn > span {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bs-modal__contact-btn:hover {
  background: var(--bs-bg-card-hover);
  border-color: var(--bs-border-strong, var(--bs-accent));
  transform: translateY(-1px);
}
.bs-modal__contact-btn:focus-visible {
  outline: 2px solid var(--bs-accent);
  outline-offset: 2px;
}
.bs-modal__contact-btn--wide {
  grid-column: 1 / -1;
  background: linear-gradient(135deg, color-mix(in oklch, var(--bs-accent) 12%, var(--bs-bg-card)) 0%, var(--bs-bg-card) 70%);
}

.bs-modal__map {
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--bs-border);
  background: var(--bs-bg-card);
  aspect-ratio: 16 / 9;
  max-height: 260px;
}
.bs-modal__map[hidden] { display: none; }
.bs-modal__map-frame {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  /* FÃ¶rhindra ljus OSM-bakgrund att blixa innan den laddas */
  background: var(--bs-bg-card);
}

@media (max-width: 600px) {
  .bs-modal {
    width: 100vw;
    height: 100dvh;
    max-width: 100vw;
    max-height: 100dvh;
    border-radius: 0;
    border: 0;
    margin: 0;
  }
  .bs-modal__contact-actions {
    grid-template-columns: 1fr;
  }
}

/* NÃ¤r modalen Ã¤r Ã¶ppen â€” lÃ¥s page-scroll */
body:has(.bs-modal[open]) { overflow: hidden; }

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Footer
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bs-footer {
  position: relative;
  z-index: 1;
  border-top: 1px solid var(--bs-border-soft);
  margin-top: clamp(3rem, 6vw, 5rem);
  padding: 2rem var(--bs-page-pad);
  background: color-mix(in oklch, var(--bs-bg) 95%, transparent);
}
.bs-footer__inner {
  max-width: 1320px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: .35rem;
  font-size: var(--bs-step-1);
  color: var(--bs-text-muted);
}
.bs-footer__inner p { margin: 0; }
.bs-footer__copyright { color: var(--bs-text-muted); }
.bs-footer__copyright strong { color: var(--bs-text); font-weight: 700; }
.bs-footer__copyright a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px dashed transparent;
  transition: color .15s ease, border-color .15s ease;
}
.bs-footer__copyright a:hover {
  color: var(--bs-accent);
  border-color: color-mix(in oklch, var(--bs-accent) 50%, transparent);
}
.bs-footer__copyright a:hover strong { color: var(--bs-accent); }
.bs-footer__meta a { color: var(--bs-text-soft); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.bs-footer__meta a:hover { color: var(--bs-accent); }

/* Cookie-samtycke */
.bs-cookie-banner {
  position: fixed;
  inset: auto 0 0 0;
  z-index: 90;
  padding: clamp(.85rem, 2vw, 1.25rem) var(--bs-page-pad, 1.25rem);
  padding-bottom: max(clamp(.85rem, 2vw, 1.25rem), env(safe-area-inset-bottom));
  background: light-dark(oklch(1 0 0 / .94), oklch(0.15 0.026 275 / .94));
  border-top: 1px solid var(--bs-border);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 -12px 40px oklch(0 0 0 / .18);
}
.bs-cookie-banner__inner {
  max-width: 76rem;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.5rem;
}
.bs-cookie-banner__text {
  margin: 0;
  flex: 1 1 16rem;
  font-size: var(--bs-step-2);
  color: var(--bs-text-soft);
  line-height: 1.5;
}
.bs-cookie-banner__text a {
  color: var(--bs-accent-strong);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.bs-cookie-banner__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}
.bs-cookie-banner__btn {
  padding: .65rem 1.1rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: var(--bs-step-2);
  border: 1px solid transparent;
  white-space: nowrap;
  cursor: pointer;
}
.bs-cookie-banner__btn--ghost {
  border-color: var(--bs-border);
  background: transparent;
  color: var(--bs-text);
}
.bs-cookie-banner__btn--ghost:hover {
  background: var(--bs-bg-pill);
}
.bs-cookie-banner__btn--accept {
  background: var(--bs-accent-grad);
  color: oklch(0.98 0 0);
  box-shadow: 0 6px 18px var(--bs-accent-soft);
}
.bs-cookie-banner__btn--accept:hover {
  transform: translateY(-1px);
}

/* Tillfällig underhållsinfo (bs-modal, kompakt) */
.bs-modal.bs-modal--notice {
  width: min(28rem, 92vw);
  height: auto;
  max-height: min(90dvh, 34rem);
}
.bs-modal--notice__body {
  flex: 0 1 auto;
  padding: 1.05rem 1.35rem 0.35rem;
  overflow-y: auto;
}
.bs-modal--notice__text {
  margin: 0;
  font-size: var(--bs-step-2);
  line-height: 1.55;
  color: var(--bs-text-soft);
}
.bs-modal--notice__foot {
  display: flex;
  justify-content: flex-end;
  gap: 0.55rem;
  padding: 0.85rem 1.35rem 1.25rem;
  border-top: 0;
  background: transparent;
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Anpassa (a11y) â€” hÃ¶gkontrast + panel. Default ofÃ¶rÃ¤ndrat.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bs-a11y {
  position: fixed;
  left: max(0.85rem, env(safe-area-inset-left));
  bottom: max(0.85rem, env(safe-area-inset-bottom));
  z-index: 85;
  font-family: inherit;
}
body:has([data-cookie-banner]:not([hidden])) .bs-a11y {
  bottom: max(6.5rem, calc(env(safe-area-inset-bottom) + 5.5rem));
}
.bs-a11y__fab {
  appearance: none;
  border: 1px solid var(--bs-border, oklch(0.35 0.02 270));
  background: light-dark(oklch(1 0 0 / .92), oklch(0.18 0.02 275 / .92));
  color: var(--bs-text, oklch(0.95 0 0));
  font-weight: 700;
  font-size: 0.875rem;
  padding: 0.65rem 1rem;
  border-radius: 999px;
  cursor: pointer;
  box-shadow: 0 8px 24px oklch(0 0 0 / .28);
  backdrop-filter: blur(12px);
}
.bs-a11y__fab:hover {
  border-color: var(--bs-accent, oklch(0.7 0.15 195));
}
.bs-a11y__panel {
  position: absolute;
  left: 0;
  bottom: calc(100% + 0.55rem);
  width: min(22rem, calc(100vw - 1.7rem));
  padding: 0.9rem 1rem 1rem;
  border-radius: 14px;
  border: 1px solid var(--bs-border, oklch(0.35 0.02 270));
  background: light-dark(oklch(0.99 0 0), oklch(0.17 0.02 275));
  color: var(--bs-text, oklch(0.95 0 0));
  box-shadow: 0 16px 40px oklch(0 0 0 / .35);
}
.bs-a11y__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}
.bs-a11y__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
}
.bs-a11y__close {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0.25rem;
  cursor: pointer;
  border-radius: 8px;
}
.bs-a11y__close:hover {
  background: oklch(0.5 0 0 / .12);
}
.bs-a11y__hint {
  margin: 0 0 0.85rem;
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--bs-text-soft, oklch(0.72 0.02 270));
}
.bs-a11y__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 0;
  border-top: 1px solid var(--bs-border, oklch(0.35 0.02 270 / .55));
  cursor: pointer;
}
.bs-a11y__label {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}
.bs-a11y__label strong {
  font-size: 0.92rem;
}
.bs-a11y__desc {
  font-size: 0.78rem;
  color: var(--bs-text-soft, oklch(0.72 0.02 270));
}
.bs-a11y__row input[type="checkbox"] {
  width: 1.15rem;
  height: 1.15rem;
  accent-color: var(--bs-accent, #0ea5e9);
  flex: 0 0 auto;
}

/* HÃ¶gkontrast â€” polerad ljus spegel via color-scheme / light-dark tokens.
   MÃ¶rkt default (utan attribut) orÃ¶rt. Inga flat #fff/#000 !important. */
html[data-a11y-contrast="1"] {
  color-scheme: light;
}

/* Scoring hÃ¥rdkodar mÃ¶rka --ko-* trots --bs-tokens; mappa om endast i ljust. */
html[data-a11y-contrast="1"] body.bs-scoring.hall-scoring,
html[data-a11y-contrast="1"] body.bs-scoring.hall-banp {
  --ko-bg: transparent;
  --ko-surface: var(--bs-bg-card);
  --ko-text: var(--bs-text);
  --ko-muted: var(--bs-text-muted);
  --ko-line: var(--bs-border-soft);
}

/* Aurora: soft multiply pÃ¥ ljus yta (samma atmosfÃ¤r som mÃ¶rkt, inte avstÃ¤ngt). */
html[data-a11y-contrast="1"] .bs-aurora__orb {
  opacity: 0.32;
  mix-blend-mode: multiply;
}

/* Skuggor kalibrerade fÃ¶r ljus yta (mÃ¶rka 0.25â€“0.35 blir flÃ¤ckiga). */
html[data-a11y-contrast="1"] body.bs-scoring .ko-live-frame-card,
html[data-a11y-contrast="1"] body.bs-scoring .hall-scoring .ko-live-frame-card {
  box-shadow: 0 2px 10px oklch(0 0 0 / 0.08);
}
html[data-a11y-contrast="1"] body.bs-scoring .ko-live-frame-card.is-lane-active,
html[data-a11y-contrast="1"] body.bs-scoring .hall-scoring .ko-live-frame-card.is-lane-active {
  border: 2px solid #22c55e;
  border-color: #22c55e;
  box-shadow:
    0 0 0 3px rgba(34, 197, 94, 0.28),
    0 6px 18px rgba(34, 197, 94, 0.18);
}
html[data-a11y-contrast="1"] body.bs-scoring .hall-scoring__view-btn.is-active {
  box-shadow: 0 1px 4px oklch(0 0 0 / 0.12);
}
html[data-a11y-contrast="1"] body.bs-scoring.hall-scoring .hall-scoring__banp-promo {
  box-shadow: 0 2px 8px oklch(0 0 0 / 0.08);
}
html[data-a11y-contrast="1"] .bs-a11y__fab {
  box-shadow: 0 8px 22px oklch(0 0 0 / 0.12);
  border-color: var(--bs-border);
  background: color-mix(in oklch, var(--bs-bg-elev) 92%, transparent);
  color: var(--bs-text);
}
html[data-a11y-contrast="1"] .bs-a11y__panel {
  box-shadow: 0 16px 36px oklch(0 0 0 / 0.14);
  border-color: var(--bs-border);
  background: var(--bs-bg-elev);
  color: var(--bs-text);
}

/* Pills som Ã¤r hÃ¥rdkodade fÃ¶r mÃ¶rkt tema */
html[data-a11y-contrast="1"] body.bs-scoring .hall-scoring__active-serie {
  color: oklch(0.32 0.04 240);
  background: oklch(0.94 0.02 240);
  border-color: oklch(0.82 0.03 240);
}
html[data-a11y-contrast="1"] body.bs-scoring .hall-scoring__active-serie.is-complete {
  color: oklch(0.38 0.03 240);
}
html[data-a11y-contrast="1"] body.bs-scoring .ko-live-frame-card__lane-pill {
  color: oklch(0.35 0.08 195);
  background: oklch(0.94 0.02 195);
  border-color: oklch(0.78 0.06 195);
}
html[data-a11y-contrast="1"] body.bs-scoring .ko-live-frame-card__slot {
  color: oklch(0.42 0.1 195);
}

/* Status-prickar: mÃ¶rkare pÃ¥ vit yta fÃ¶r lÃ¤sbarhet */
html[data-a11y-contrast="1"] .bs-chip__dot--open,
html[data-a11y-contrast="1"] .bs-date-legend__dot--open,
html[data-a11y-contrast="1"] .vb-date-legend__dot--open {
  background: oklch(0.52 0.16 150);
}
html[data-a11y-contrast="1"] .bs-chip__dot--busy,
html[data-a11y-contrast="1"] .vb-date-legend__dot--busy {
  background: oklch(0.55 0.16 55);
}

/* â”€â”€â”€ /konto spelarkonto â”€â”€â”€ */
.bs-app {
  min-height: 100dvh;
  padding-bottom: calc(5.6rem + env(safe-area-inset-bottom));
}
/* Katalog (utan .bs-app): plats fÃ¶r fixed bottennav */
body.bs:not(.bs-app):has(.bs-app__nav) {
  padding-bottom: calc(5.6rem + env(safe-area-inset-bottom));
}
.bs-app__main {
  max-width: 44rem;
  margin: 0 auto;
  padding: 1rem max(1rem, env(safe-area-inset-right)) 1.5rem max(1rem, env(safe-area-inset-left));
}
.bs-app__card {
  background: light-dark(oklch(1 0 0), oklch(0.18 0.02 275));
  border: 1px solid var(--bs-border, oklch(0.3 0.02 270));
  border-radius: 16px;
  padding: 1.1rem 1.15rem;
  margin-bottom: 1rem;
}
.bs-app__h1 { margin: 0 0 0.35rem; font-size: 1.45rem; font-weight: 800; }
.bs-app__h2 { margin: 0 0 0.65rem; font-size: 1.1rem; font-weight: 750; }
.bs-app__muted { color: var(--bs-text-soft, oklch(0.72 0.02 270)); font-size: 0.9rem; }
.bs-app__statgrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
  margin: 1rem 0;
  text-align: center;
}
.bs-app__statgrid--wide { grid-template-columns: repeat(auto-fit, minmax(5.5rem, 1fr)); }
.bs-app__statgrid strong { display: block; font-size: 1.35rem; }
.bs-app__statgrid span { font-size: 0.75rem; color: var(--bs-text-soft); }
.bs-app__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  appearance: none;
  border: 0;
  border-radius: 999px;
  padding: 0.7rem 1.15rem;
  font-weight: 700;
  background: var(--bs-accent-grad, linear-gradient(135deg, #22d3ee, #6366f1));
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.bs-app__btn--ghost {
  background: transparent;
  border: 1px solid var(--bs-border);
  color: inherit;
}
.bs-app__form {
  display: grid;
  gap: 0.75rem;
  margin-top: 0.75rem;
}
.bs-app__form label { display: grid; gap: 0.3rem; font-weight: 600; font-size: 0.9rem; }
.bs-search-form {
  display: grid;
  gap: 0.75rem;
}
.bs-search-form select {
  width: 100%;
  appearance: none;
  border-radius: 12px;
  border: 1px solid var(--bs-border, oklch(0.3 0.02 270));
  background: light-dark(oklch(0.98 0 0), oklch(0.16 0.02 275));
  color: inherit;
  padding: 0.7rem 0.85rem;
  font: inherit;
}
.bs-app__form input[type="email"],
.bs-app__form input[type="password"],
.bs-app__form input[type="text"],
.bs-app__form input[type="search"] {
  appearance: none;
  border: 1px solid var(--bs-border);
  border-radius: 12px;
  padding: 0.7rem 0.8rem;
  background: light-dark(#fff, oklch(0.14 0.02 275));
  color: inherit;
  font: inherit;
}
.bs-app__check { display: flex !important; align-items: center; gap: 0.5rem; font-weight: 500 !important; }
.bs-app__error { color: #f87171; margin: 0; }
.bs-app__ok { color: #4ade80; margin: 0; }
.bs-app__links { margin-top: 1rem; font-size: 0.9rem; }
.bs-app__list { list-style: none; margin: 0; padding: 0; }
.bs-app__list li { border-top: 1px solid var(--bs-border); }
.bs-app__list a {
  display: grid;
  gap: 0.15rem;
  padding: 0.75rem 0;
  color: inherit;
  text-decoration: none;
}
.bs-app__search-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 0;
  border-top: 1px solid var(--bs-border);
}
.bs-session-list { list-style: none; margin: 0.35rem 0 0; padding: 0; }
.bs-session-panel__head {
  align-items: center;
}
.bs-session-panel__head .bs-app__h1,
.bs-session-panel__head .bs-app__h2 {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0;
}
.bs-session-panel__title-ico {
  display: inline-flex;
  color: var(--bs-accent);
  opacity: 0.95;
}
.bs-session-panel__stats {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--bs-text-soft);
  text-decoration: none;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  border: 1px solid var(--bs-border);
  transition: color .15s ease, border-color .15s ease, background .15s ease;
}
.bs-session-panel__stats:hover {
  color: var(--bs-text);
  border-color: oklch(0.55 0.08 40 / .45);
  background: oklch(0.5 0.05 270 / .1);
}
.bs-lucide {
  display: block;
  flex: 0 0 auto;
}
.bs-session-empty {
  display: grid;
  gap: 0.75rem;
  justify-items: start;
  padding: 1.1rem 0.15rem 0.35rem;
}
.bs-session-empty__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 14px;
  color: var(--bs-accent);
  background: oklch(0.35 0.06 40 / .18);
  border: 1px solid oklch(0.55 0.08 40 / .28);
}
.bs-session-card {
  display: block;
  padding: 0;
  border-top: 1px solid var(--bs-border);
}
.bs-session-card:first-child { border-top: 0; }
.bs-session-card__link {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.75rem;
  align-items: center;
  padding: 0.95rem 0.35rem;
  margin: 0 -0.2rem;
  text-decoration: none;
  color: inherit;
  border-radius: 16px;
  transition: background .15s ease;
}
.bs-session-card__link:hover {
  background: oklch(0.5 0.05 270 / .12);
}
.bs-session-card__link:focus-visible {
  outline: 2px solid var(--bs-accent);
  outline-offset: 2px;
}
.bs-session-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.55rem;
  height: 2.55rem;
  border-radius: 14px;
  color: var(--bs-accent);
  background:
    linear-gradient(160deg, oklch(0.38 0.08 40 / .35), oklch(0.28 0.04 270 / .45));
  border: 1px solid oklch(0.6 0.1 40 / .35);
  box-shadow: inset 0 1px 0 oklch(1 0 0 / .06);
}
.bs-session-card__body {
  display: grid;
  gap: 0.35rem;
  min-width: 0;
}
.bs-session-card__scores {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.15rem 0.2rem;
  font-variant-numeric: tabular-nums;
  line-height: 1.15;
}
.bs-session-chip {
  font-size: 1.12rem;
  font-weight: 850;
  letter-spacing: -0.03em;
  color: var(--bs-text);
}
.bs-session-chip.is-best {
  color: var(--bs-accent);
}
.bs-session-chip-dot {
  color: var(--bs-text-soft);
  opacity: 0.55;
  font-weight: 700;
  margin-inline: 0.05rem;
}
.bs-session-card__meta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 0.9rem;
  min-width: 0;
}
.bs-session-card__meta-row--soft {
  color: var(--bs-text-soft);
  font-size: 0.86rem;
  font-weight: 600;
}
.bs-session-meta {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  min-width: 0;
}
.bs-session-meta__ico {
  display: inline-flex;
  color: var(--bs-accent);
  opacity: 0.85;
}
.bs-session-card__hall {
  font-weight: 750;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bs-session-card__chevron {
  display: inline-flex;
  color: var(--bs-text-soft);
  opacity: 0.55;
  transition: transform .15s ease, color .15s ease, opacity .15s ease;
}
.bs-session-card__link:hover .bs-session-card__chevron {
  color: var(--bs-accent);
  opacity: 1;
  transform: translateX(2px);
}
.bs-session-card__name {
  font-size: 1.02rem;
  font-weight: 800;
}
/* SÃ¶kresultat: namn + HÃ¤mta-knapp i samma rad */
.bs-session-card:has(> .bs-app__btn),
.bs-session-card:has(> button) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  padding: 0.9rem 0;
}
.bs-session-card:has(> .bs-app__btn) > .bs-session-card__body,
.bs-session-card:has(> button) > .bs-session-card__body {
  flex: 1;
  min-width: 0;
  padding: 0.1rem 0;
}
.bs-session-card:has(> .bs-app__btn) .bs-session-card__scores,
.bs-session-card:has(> button) .bs-session-card__scores {
  display: block;
  font-size: 1.05rem;
  font-weight: 850;
  letter-spacing: -0.02em;
}

.bs-session-more {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.85rem;
  padding: 0.55rem 0.15rem;
  font-weight: 750;
  color: var(--bs-accent);
  text-decoration: none;
}
.bs-session-more:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.bs-search-loading {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  margin-top: 1rem;
  padding: 0.85rem 0.2rem;
  color: var(--bs-text-soft);
  font-size: 0.92rem;
  font-weight: 650;
}
.bs-search-loading[hidden] { display: none; }
.bs-search-loading__spinner {
  width: 1.15rem;
  height: 1.15rem;
  flex: 0 0 auto;
  border-radius: 50%;
  border: 2.5px solid oklch(0.45 0.04 270 / .35);
  border-top-color: var(--bs-accent);
  animation: bs-spin 0.75s linear infinite;
}
.bs-app__form.is-searching .bs-app__btn {
  opacity: 0.72;
  cursor: wait;
}
.bs-app__btn.is-loading {
  opacity: 0.8;
  cursor: wait;
}
@media (prefers-reduced-motion: reduce) {
  .bs-search-loading__spinner { animation: none; border-top-color: var(--bs-accent); opacity: 0.85; }
}
.bs-session-serie__score {
  font-size: 1.35rem;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.03em;
}
.bs-app__frames {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.4rem;
  padding: 0;
  margin: 1rem 0;
  list-style: none;
  font-size: 0.8rem;
}
.bs-app__frames li {
  border: 1px solid var(--bs-border);
  border-radius: 8px;
  padding: 0.35rem;
  text-align: center;
}
.bs-app__nav {
  position: fixed !important;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  max-width: none;
  transform: none;
  z-index: 40;
  padding: 0 0.75rem calc(0.55rem + env(safe-area-inset-bottom));
  pointer-events: none;
  background: transparent;
  border: none;
}
.bs-app__nav-dock {
  pointer-events: auto;
  position: relative;
  max-width: 26rem;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.15rem;
  padding: 0.4rem;
  border-radius: 22px;
  border: 1px solid oklch(0.72 0.12 40 / .28);
  background:
    linear-gradient(180deg, oklch(0.28 0.04 275 / .55), oklch(0.14 0.025 275 / .82)),
    light-dark(oklch(0.99 0 0 / .92), oklch(0.16 0.025 275 / .88));
  backdrop-filter: blur(18px) saturate(1.25);
  -webkit-backdrop-filter: blur(18px) saturate(1.25);
  box-shadow:
    0 12px 40px oklch(0 0 0 / .45),
    0 0 0 1px oklch(1 0 0 / .04) inset,
    0 1px 0 oklch(1 0 0 / .08) inset;
}
.bs-app__nav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  min-height: 3.15rem;
  padding: 0.35rem 0.2rem;
  border-radius: 16px;
  text-decoration: none;
  color: var(--bs-text-soft);
  font-size: 0.62rem;
  font-weight: 750;
  letter-spacing: 0.01em;
  line-height: 1.1;
  transition: color .15s ease, background .15s ease, transform .15s ease, box-shadow .15s ease;
}
.bs-app__nav-icon-wrap {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 1.65rem;
}
.bs-app__nav-icon {
  display: block;
  opacity: 0.78;
  transition: opacity .15s ease, transform .15s ease;
}
.bs-app__nav-label { opacity: 0.9; }
.bs-app__nav-item:hover {
  color: var(--bs-text);
  background: oklch(0.55 0.06 270 / .14);
}
.bs-app__nav-item:hover .bs-app__nav-icon { opacity: 1; }
.bs-app__nav-item.is-active {
  color: oklch(0.98 0.01 70);
  background: linear-gradient(160deg, oklch(0.72 0.18 45 / .95), oklch(0.58 0.2 25 / .92));
  box-shadow: 0 8px 20px oklch(0.65 0.18 35 / .35);
  transform: translateY(-1px);
}
.bs-app__nav-item.is-active .bs-app__nav-icon {
  opacity: 1;
  transform: scale(1.06);
}
.bs-app__nav-item.is-active .bs-app__nav-label {
  opacity: 1;
  font-weight: 800;
}

.bs-app__nav-fab {
  appearance: none;
  justify-self: center;
  align-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.35rem;
  height: 3.35rem;
  margin-top: -1.15rem;
  border: 0;
  cursor: pointer;
  border-radius: 999px;
  color: #fff;
  background: #ff6b1a;
  box-shadow:
    0 10px 28px rgba(0, 0, 0, 0.4),
    0 0 0 1px color-mix(in srgb, #ff6b1a 40%, #fff 20%);
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.bs-app__nav-fab:hover,
.bs-app__nav-fab:focus-visible {
  background: #ff7f38;
  transform: translateY(-2px);
  box-shadow:
    0 14px 32px rgba(0, 0, 0, 0.45),
    0 0 0 1px color-mix(in srgb, #ff6b1a 50%, #fff 25%);
  outline: none;
}
.bs-app__nav-fab-icon {
  display: inline-flex;
  line-height: 0;
}
.bs-app__nav-fab-icon .bs-app__nav-icon {
  opacity: 1;
  stroke-width: 2.4;
  width: 26px;
  height: 26px;
}

.bs-series-fab-layer {
  position: fixed;
  inset: 0;
  z-index: 45;
  pointer-events: none;
}
.bs-series-fab-layer:not([hidden]) {
  pointer-events: auto;
}
.bs-series-fab-backdrop {
  position: absolute;
  inset: 0;
  background: oklch(0.12 0.02 275 / 0.55);
  border: 0;
}
.bs-series-fab-sheet {
  position: absolute;
  left: 1rem;
  right: 1rem;
  bottom: calc(5.2rem + env(safe-area-inset-bottom));
  z-index: 1;
  width: min(22rem, calc(100% - 0rem));
  max-width: 22rem;
  margin-inline: auto;
  padding: 1rem 1rem 0.85rem;
  border-radius: 1.1rem;
  background: light-dark(oklch(1 0 0), oklch(0.18 0.024 275));
  border: 1px solid var(--bs-border, oklch(0.3 0.02 275));
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
  display: grid;
  gap: 0.55rem;
}
.bs-series-fab-sheet__title {
  margin: 0 0 0.15rem;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--bs-text-soft, oklch(0.72 0.02 270));
}
.bs-series-fab-sheet__action {
  display: grid;
  gap: 0.15rem;
  padding: 0.85rem 0.9rem;
  border-radius: 0.85rem;
  text-decoration: none;
  color: inherit;
  background: light-dark(oklch(0.97 0.01 250), oklch(0.22 0.026 275));
  border: 1px solid var(--bs-border, oklch(0.3 0.02 275));
}
.bs-series-fab-sheet__action:hover,
.bs-series-fab-sheet__action:focus-visible {
  border-color: color-mix(in srgb, #ff6b1a 55%, transparent);
  outline: none;
}
.bs-series-fab-sheet__label {
  font-weight: 750;
  font-size: 1rem;
}
.bs-series-fab-sheet__hint {
  font-size: 0.82rem;
  color: var(--bs-text-soft, oklch(0.72 0.02 270));
}
.bs-series-fab-sheet__cancel {
  justify-self: stretch;
  text-align: center;
}

body:has(.bs-app__nav) .bs-a11y {
  bottom: calc(5.4rem + env(safe-area-inset-bottom));
}

/* â”€â”€â”€ Stats / pins / rings â”€â”€â”€ */
.bs-aurora--app {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0.55;
}
.bs-app > .bs-topbar,
.bs-app > .bs-app__main { position: relative; z-index: 1; }
.bs-app > .bs-app__nav { z-index: 40; }

.bs-app__card--lane {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, oklch(0.22 0.03 40 / .22), transparent 42%),
    light-dark(oklch(1 0 0), oklch(0.17 0.022 275));
}
.bs-app__card--lane::before {
  content: "";
  position: absolute;
  inset: auto 8% 0.55rem;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, transparent, oklch(0.85 0.08 70 / .35), transparent);
  pointer-events: none;
}

.bs-stat-hero__eyebrow,
.bs-serie-hero .bs-stat-hero__eyebrow {
  margin: 0 0 0.25rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--bs-accent);
}
.bs-stat-hero {
  position: relative;
  display: grid;
  gap: 1rem;
  margin-bottom: 1rem;
  padding: 1.25rem 1.2rem 1.35rem;
  border-radius: 22px;
  border: 1px solid oklch(0.72 0.16 40 / .28);
  overflow: hidden;
  background:
    radial-gradient(120% 90% at 100% 0%, oklch(0.72 0.2 40 / .28), transparent 55%),
    linear-gradient(165deg, oklch(0.24 0.04 275), oklch(0.14 0.025 275));
}
.bs-stat-hero__lanes {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12%;
  padding: 0 8%;
  opacity: 0.09;
  pointer-events: none;
}
.bs-stat-hero__lanes span {
  background: linear-gradient(180deg, transparent, #fff 30%, #fff 70%, transparent);
}
@media (min-width: 640px) {
  .bs-stat-hero { grid-template-columns: 1.05fr 0.95fr; align-items: center; }
}
.bs-stat-hero__copy { position: relative; z-index: 1; }
.bs-stat-hero .bs-home-hero__actions { margin-top: 0.85rem; }

.bs-stat-hero__deck-label {
  margin: 0.45rem 0 0;
  font-size: 0.82rem;
  font-weight: 600;
  color: oklch(0.86 0.03 70);
}
.bs-home-hero {
  display: grid;
  gap: 1rem;
  margin-bottom: 1rem;
  padding: 1.2rem 1.2rem;
  border-radius: 22px;
  border: 1px solid oklch(0.72 0.16 40 / .22);
  overflow: hidden;
  background:
    radial-gradient(90% 80% at 100% 0%, oklch(0.72 0.18 40 / .2), transparent 50%),
    light-dark(oklch(1 0 0), oklch(0.17 0.025 275));
}
@media (min-width: 560px) {
  .bs-home-hero { grid-template-columns: 1fr auto; align-items: center; }
}
.bs-home-hero__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.85rem; }
.bs-home-hero__viz {
  position: relative;
  justify-self: center;
  width: fit-content;
  min-height: 7.6rem;
}
.bs-home-hero__badge {
  position: absolute;
  right: -0.2rem;
  bottom: 0.2rem;
  z-index: 1;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 800;
  background: var(--bs-accent-grad);
  color: oklch(0.98 0 0);
  box-shadow: 0 6px 16px var(--bs-accent-soft);
  pointer-events: none;
  white-space: nowrap;
}
@media (max-width: 559px) {
  /* Carry finns redan i metrikraden. KÃ¤glor i hero tar plats utan nytta pÃ¥ mobil. */
  .bs-home-hero__viz { display: none; }
  .bs-home-hero__badge { display: none; }
}

.bs-pins {
  width: 8.8rem;
  height: 8.8rem;
  display: block;
  margin-inline: auto;
  overflow: hidden;
  color: oklch(0.78 0.04 70);
  border-radius: 16px;
  background:
    radial-gradient(90% 70% at 50% 18%, oklch(0.30 0.04 270 / .55), transparent 62%),
    linear-gradient(165deg, oklch(0.24 0.028 270), oklch(0.16 0.022 270));
  box-shadow:
    0 14px 28px oklch(0 0 0 / .35),
    inset 0 1px 0 oklch(1 0 0 / .06),
    0 0 0 1px oklch(0.55 0.06 40 / .28);
}
.bs-pins--sm { width: 4.6rem; height: 4.6rem; border-radius: 12px; }
.bs-pins--md { width: 7.6rem; height: 7.6rem; }
.bs-pins--lg { width: 11.5rem; height: 11.5rem; border-radius: 18px; }
.bs-pins--board {
  opacity: 0.72;
  box-shadow:
    0 8px 18px oklch(0 0 0 / .28),
    inset 0 1px 0 oklch(1 0 0 / .05),
    0 0 0 1px oklch(0.5 0.03 270 / .22);
}
.bs-pins--unknown {
  display: grid;
  place-items: center;
  opacity: 0.55;
  background:
    repeating-linear-gradient(
      -45deg,
      transparent,
      transparent 4px,
      oklch(0.55 0.02 270 / .12) 4px,
      oklch(0.55 0.02 270 / .12) 5px
    ),
    light-dark(oklch(0.96 0.01 80), oklch(0.2 0.02 275));
  box-shadow:
    inset 0 0 0 1px oklch(0.55 0.02 270 / .25);
}
.bs-pins__unknown-label {
  font-size: 0.85rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--bs-text-soft, oklch(0.72 0.02 270));
}
.bs-pins__unknown-label::after {
  content: ' kvar';
  font-size: 0.55rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  margin-left: 0.15em;
}
.bs-pins--animate .bs-pins__motion.is-up {
  transform-box: fill-box;
  transform-origin: center bottom;
  animation: bs-pin-rise 0.55s cubic-bezier(.2,.8,.2,1) both;
  animation-delay: calc(var(--bs-pin-i, 0) * 32ms);
}
.bs-pins--animate .bs-pins__motion.is-down {
  animation: bs-pin-fade 0.35s ease both;
  animation-delay: calc(var(--bs-pin-i, 0) * 18ms);
}
@keyframes bs-pin-rise {
  from { opacity: 0; transform: translateY(8px) scale(0.7); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes bs-pin-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}
/* Pin-deck behÃ¥ller egen yta (CSS pÃ¥ .bs-pins) â€” ingen transparent override. */

.bs-ring-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
  margin-bottom: 1rem;
}
.bs-ring {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 0.45rem;
  padding: 0.75rem 0.4rem 0.7rem;
  border-radius: 18px;
  border: 1px solid var(--bs-border);
  background:
    radial-gradient(80% 60% at 50% 0%, oklch(0.5 0.06 270 / .18), transparent 70%),
    light-dark(oklch(1 0 0), oklch(0.18 0.02 275));
}
.bs-ring__dial {
  position: relative;
  width: 4.8rem;
  height: 4.8rem;
  display: grid;
  place-items: center;
}
.bs-ring__svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}
.bs-ring__track {
  fill: none;
  stroke: oklch(0.55 0.02 270 / .28);
  stroke-width: 9;
}
.bs-ring__value {
  fill: none;
  stroke-width: 9;
  stroke-linecap: round;
  animation: bs-ring-draw 1.05s ease backwards;
}
.bs-ring--carry .bs-ring__value { stroke: oklch(0.82 0.2 150); }
.bs-ring--spare .bs-ring__value { stroke: oklch(0.78 0.2 40); }
.bs-ring--single .bs-ring__value { stroke: oklch(0.75 0.16 250); }
@keyframes bs-ring-draw {
  from { stroke-dasharray: 0 999; }
}
.bs-ring__pct {
  position: relative;
  z-index: 1;
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1;
}
.bs-ring__meta {
  text-align: center;
  display: grid;
  gap: 0.12rem;
  padding: 0 0.15rem;
}
.bs-ring__meta span {
  font-size: 0.78rem;
  font-weight: 750;
  line-height: 1.15;
}
.bs-ring__meta small {
  font-size: 0.62rem;
  color: var(--bs-text-soft);
  line-height: 1.25;
}

.bs-metric-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}
.bs-metric-grid--compact { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bs-metric-grid--stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 380px) {
  .bs-metric-grid--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.bs-metric {
  text-align: center;
  padding: 0.45rem 0.15rem;
  border-radius: 12px;
  background: oklch(0.5 0.04 270 / .1);
}
.bs-metric strong { display: block; font-size: 1.35rem; font-weight: 800; letter-spacing: -0.02em; }
.bs-metric span { font-size: 0.72rem; color: var(--bs-text-soft); font-weight: 600; }

.bs-record {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0.85rem 0 1.1rem;
  padding: 0.95rem 1.15rem;
  border-radius: 16px;
  border: 1px solid color-mix(in oklch, var(--bs-accent) 28%, var(--bs-border));
  background:
    linear-gradient(135deg,
      color-mix(in oklch, var(--bs-accent) 16%, transparent),
      color-mix(in oklch, var(--bs-accent) 4%, var(--bs-bg-card)) 55%,
      transparent);
  box-shadow: 0 10px 28px color-mix(in oklch, var(--bs-accent) 12%, transparent);
}
.bs-record__copy {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}
.bs-record__eyebrow {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: color-mix(in oklch, var(--bs-accent) 75%, var(--bs-text-soft));
}
.bs-record__title {
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--bs-text, oklch(0.96 0.01 90));
}
.bs-record__score {
  flex: 0 0 auto;
  font-size: 2rem;
  font-weight: 850;
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--bs-text, oklch(0.98 0.01 90));
  font-variant-numeric: tabular-nums;
}

.bs-spark {
  display: flex;
  align-items: flex-end;
  gap: 0.45rem;
  min-height: 9rem;
  padding: 0.85rem 0.25rem 0.15rem;
  overflow-x: auto;
}
.bs-spark__col {
  flex: 1 0 2.1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
  min-height: 8rem;
}
.bs-spark__bar {
  display: block;
  width: 100%;
  max-width: 1.35rem;
  min-height: 18px;
  border-radius: 10px 10px 5px 5px;
  background: var(--bs-accent-grad);
  box-shadow: 0 8px 18px var(--bs-accent-soft);
  transform-origin: bottom;
  animation: bs-spark-up 0.55s cubic-bezier(.2,.8,.2,1) both;
  animation-delay: calc(var(--bs-spark-i, 0) * 40ms);
}
@keyframes bs-spark-up {
  from { transform: scaleY(0.12); opacity: 0.35; }
  to { transform: scaleY(1); opacity: 1; }
}
.bs-spark__val {
  font-size: 0.72rem;
  font-weight: 750;
  color: var(--bs-text-soft);
  font-variant-numeric: tabular-nums;
}

.bs-leave-bars { list-style: none; margin: 0.85rem 0 0; padding: 0; display: grid; gap: 0.7rem; }
.bs-leave-bars__row {
  display: grid;
  grid-template-columns: 4.4rem 1fr auto;
  gap: 0.75rem;
  align-items: center;
  padding: 0.35rem 0.4rem;
  border-radius: 14px;
  background: oklch(0.5 0.04 270 / .08);
}
.bs-leave-bars__meta strong { font-size: 0.88rem; }
.bs-leave-bars__track {
  margin-top: 0.3rem;
  height: 0.55rem;
  border-radius: 999px;
  background: oklch(0.45 0.02 270 / .22);
  overflow: hidden;
}
.bs-leave-bars__fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, oklch(0.72 0.16 250), oklch(0.75 0.2 40));
  animation: bs-leave-fill 0.7s ease both;
}
@keyframes bs-leave-fill {
  from { transform: scaleX(0); transform-origin: left; }
}
.bs-leave-bars__count { font-weight: 800; font-variant-numeric: tabular-nums; font-size: 1.05rem; }

.bs-leave-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  gap: 0.85rem;
  margin-top: 0.85rem;
}
.bs-leave-card {
  display: grid;
  gap: 0.45rem;
  justify-items: center;
  text-align: center;
  padding: 0.9rem 0.55rem 1rem;
  border-radius: 16px;
  background:
    radial-gradient(80% 60% at 50% 0%, oklch(0.72 0.16 40 / .16), transparent 70%),
    light-dark(oklch(0.97 0.01 250), oklch(0.2 0.025 275));
  border: 1px solid var(--bs-border-soft);
}
.bs-leave-card__pct { margin: 0.2rem 0 0; font-weight: 850; font-size: 1.05rem; color: var(--bs-accent); }

.bs-app__card-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.35rem;
}
.bs-app__card-head .bs-app__h2 { margin: 0; }
.bs-series-list li {
  border-top: 1px solid var(--bs-border);
}
.bs-series-list li:first-child { border-top: 0; }
.bs-series-list__row {
  display: grid;
  grid-template-columns: 3.4rem 1fr auto;
  gap: 0.65rem;
  align-items: center;
  padding: 0.85rem 0.15rem;
  text-decoration: none;
  color: inherit;
  border-radius: 12px;
  transition: background .15s ease;
}
.bs-series-list__row:hover {
  background: oklch(0.5 0.05 270 / .12);
}
.bs-series-list__score {
  font-size: 1.35rem;
  font-weight: 850;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
}
.bs-series-list__meta {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
}
.bs-series-list__hall {
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bs-series-list__cta {
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 750;
  white-space: nowrap;
  color: oklch(0.98 0.01 70);
  background: var(--bs-accent-grad);
  box-shadow: 0 6px 14px var(--bs-accent-soft);
}
@media (max-width: 420px) {
  .bs-series-list__cta {
    padding: 0.35rem 0.55rem;
    font-size: 0.65rem;
  }
}
.bs-more-links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.55rem;
  margin: 1rem 0;
}
.bs-more-links__item,
.bs-more-links a,
.bs-more-links__btn {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
  min-height: 3.05rem;
  margin: 0;
  padding: 0.65rem 0.7rem;
  border-radius: 14px;
  text-decoration: none;
  color: inherit;
  font: inherit;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  background: light-dark(oklch(0.97 0.01 250), oklch(0.22 0.022 275));
  border: 1px solid var(--bs-border-soft);
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.bs-more-links__item:hover,
.bs-more-links a:hover,
.bs-more-links__btn:hover {
  border-color: color-mix(in oklch, var(--bs-accent) 35%, var(--bs-border-soft));
  background:
    linear-gradient(135deg, color-mix(in oklch, var(--bs-accent) 10%, transparent), transparent 70%),
    light-dark(oklch(1 0 0), oklch(0.24 0.025 275));
}
.bs-more-links__ico {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 10px;
  color: var(--bs-accent);
  background: color-mix(in oklch, var(--bs-accent) 14%, transparent);
  border: 1px solid color-mix(in oklch, var(--bs-accent) 28%, transparent);
}
.bs-more-links__label {
  min-width: 0;
  line-height: 1.2;
  font-size: 0.88rem;
  font-weight: 750;
}
.bs-a11y--embedded {
  /* Ingen FAB: behÃ¥ll fixed-yta sÃ¥ panelen positioneras korrekt. */
  width: 0;
  height: 0;
  overflow: visible;
}
.bs-serie-hero {
  position: relative;
  margin-bottom: 1rem;
  padding: 1.2rem 1.2rem;
  border-radius: 22px;
  border: 1px solid oklch(0.72 0.16 40 / .25);
  overflow: hidden;
  background:
    radial-gradient(90% 70% at 0% 0%, oklch(0.72 0.2 40 / .28), transparent 50%),
    light-dark(oklch(1 0 0), oklch(0.17 0.025 275));
}
.bs-serie-hero__score {
  font-size: clamp(2.4rem, 10vw, 3.4rem);
  letter-spacing: -0.04em;
  line-height: 1;
  margin: 0.15rem 0 0.35rem;
}
.bs-serie-hero__chips { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.65rem 0; }
.bs-chip-stat {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.3rem 0.65rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  background: oklch(0.5 0.05 270 / .16);
}
.bs-chip-stat__ico {
  display: inline-grid;
  place-items: center;
  color: var(--bs-accent, oklch(0.78 0.16 55));
  opacity: 0.95;
}
.bs-chip-stat__ico .bs-lucide { display: block; }
.bs-serie-card__ball-used {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0.25rem 0 0;
  font-size: 0.82rem;
  font-weight: 650;
  color: var(--bs-text-soft);
}
.bs-serie-card__ball-thumb {
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
.bs-serie-card__ball-ico {
  display: inline-grid;
  place-items: center;
  color: var(--bs-accent, oklch(0.78 0.16 55));
}
.bs-frame-grid {
  list-style: none;
  margin: 0.85rem 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(7rem, 1fr));
  gap: 0.65rem;
}
.bs-frame-cell {
  display: grid;
  gap: 0.3rem;
  justify-items: center;
  padding: 0.6rem 0.4rem 0.5rem;
  border-radius: 16px;
  border: 1px solid var(--bs-border);
  background: light-dark(oklch(0.985 0.005 250), oklch(0.2 0.022 275));
}
.bs-frame-cell.is-strike {
  border-color: oklch(0.78 0.18 150 / .55);
  background: oklch(0.78 0.18 150 / .12);
}
.bs-frame-cell.is-spare {
  border-color: oklch(0.72 0.2 40 / .55);
  background: oklch(0.72 0.2 40 / .12);
}
.bs-frame-cell header {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 0 0.15rem;
  font-size: 0.72rem;
  font-weight: 800;
}
.bs-frame-cell footer {
  font-size: 0.68rem;
  color: var(--bs-text-soft);
  font-weight: 600;
}
.bs-frame-cell.is-empty {
  opacity: 0.45;
}
.bs-frame-cell.is-empty footer {
  font-style: italic;
}

.bs-bag-search { display: grid; gap: 0.35rem; margin: 0.85rem 0 1rem; }
.bs-bag-search input,
.bs-equip-row input,
.bs-equip-row select,
.bs-ball-create input,
.bs-frame-ball select {
  width: 100%;
  margin-top: 0.2rem;
  padding: 0.55rem 0.7rem;
  border-radius: 10px;
  border: 1px solid var(--bs-border-soft);
  background: light-dark(oklch(1 0 0), oklch(0.2 0.02 275));
  color: inherit;
  font: inherit;
}
.bs-ladder {
  list-style: none;
  margin: 0.65rem 0 1.25rem;
  padding: 0;
  display: grid;
  gap: 0.65rem;
  counter-reset: none;
}
.bs-ladder__spot {
  display: grid;
  grid-template-columns: 2rem 1.5rem 56px 1fr;
  gap: 0.55rem 0.65rem;
  align-items: center;
  padding: 0.75rem 0.8rem;
  border-radius: 14px;
  border: 1px solid var(--bs-border-soft);
  background: light-dark(oklch(0.985 0.004 250), oklch(0.2 0.02 275));
  transition: border-color 0.15s ease, opacity 0.15s ease, transform 0.15s ease;
}
.bs-ladder__spot.is-dragging {
  opacity: 0.55;
  transform: scale(0.98);
}
.bs-ladder__spot.is-drop-target {
  border-color: var(--bs-accent, #e85d04);
}
.bs-ladder__pos {
  font-size: 1.15rem;
  font-weight: 750;
  letter-spacing: -0.02em;
  color: var(--bs-accent, #e85d04);
  text-align: center;
  line-height: 1;
}
.bs-ladder__handle {
  border: 0;
  background: transparent;
  color: light-dark(oklch(0.55 0.02 250), oklch(0.72 0.02 250));
  cursor: grab;
  padding: 0.2rem;
  font-size: 0.95rem;
  line-height: 1;
  touch-action: none;
}
.bs-ladder__handle:active { cursor: grabbing; }
.bs-ladder__img {
  width: 56px; height: 56px; border-radius: 50%; object-fit: cover;
  background: light-dark(oklch(0.93 0.01 250), oklch(0.28 0.02 275));
}
.bs-ladder__img--empty { display: block; }
.bs-ladder__meta {
  grid-column: 1 / -1;
  display: grid;
  gap: 0.2rem;
  min-width: 0;
}
@media (min-width: 640px) {
  .bs-ladder__spot {
    grid-template-columns: 2rem 1.5rem 56px 1fr auto;
  }
  .bs-ladder__meta { grid-column: auto; }
}
.bs-ladder__name {
  font-size: 1rem;
  line-height: 1.25;
}
.bs-ladder__specs {
  font-size: 0.92rem;
  font-weight: 650;
  letter-spacing: 0.01em;
  color: light-dark(oklch(0.28 0.02 250), oklch(0.92 0.01 80));
}
.bs-ladder__surface {
  font-size: 0.82rem;
  color: light-dark(oklch(0.45 0.02 250), oklch(0.72 0.02 250));
}
.bs-ladder__actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
}
@media (min-width: 640px) {
  .bs-ladder__actions {
    grid-column: auto;
    flex-direction: column;
    align-items: stretch;
  }
}
.bs-ladder__move {
  min-width: 2.25rem;
  padding: 0.35rem 0.55rem;
  border-radius: 8px;
  border: 1px solid var(--bs-border-soft);
  background: light-dark(oklch(1 0 0), oklch(0.24 0.02 275));
  color: inherit;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.bs-ladder__move:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
.bs-ball-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.55rem; }
.bs-ball-row {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  gap: 0.65rem;
  align-items: center;
  padding: 0.55rem 0.65rem;
  border-radius: 12px;
  border: 1px solid var(--bs-border-soft);
  background: light-dark(oklch(0.98 0.005 250), oklch(0.2 0.02 275));
}
.bs-ball-row__img {
  width: 48px; height: 48px; border-radius: 50%; object-fit: cover;
  background: light-dark(oklch(0.93 0.01 250), oklch(0.28 0.02 275));
}
.bs-ball-row__img--empty { display: block; }
.bs-ball-row__meta { display: grid; gap: 0.1rem; min-width: 0; }
.bs-ball-row__meta strong { font-size: 0.92rem; line-height: 1.25; }
.bs-ball-create { display: grid; gap: 0.55rem; }
.bs-ball-create label { display: grid; gap: 0.2rem; font-size: 0.85rem; font-weight: 600; }
.bs-equip-row {
  display: grid;
  gap: 0.65rem;
  margin: 0.75rem 0 0.35rem;
}
@media (min-width: 640px) {
  .bs-equip-row { grid-template-columns: 1fr 1fr auto; align-items: end; }
  .bs-equip-row--ball { grid-template-columns: 1fr auto; }
}
.bs-equip-row label { display: grid; gap: 0.2rem; font-size: 0.85rem; font-weight: 600; }
.bs-frame-ball { display: block; width: 100%; margin-top: 0.35rem; }
.bs-frame-ball select { font-size: 0.68rem; padding: 0.25rem 0.35rem; }

/* Spelarkort (arkiv-stil) */
.bs-serie-card {
  display: grid;
  gap: 0.45rem;
  padding: 0.7rem 0.8rem 0.55rem;
  margin-bottom: 0.7rem;
}
.bs-serie-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.bs-serie-card__head .bs-app__h2 {
  margin: 0;
  font-size: 1rem;
}
.bs-serie-card__ball-label { margin: 0.1rem 0 0; font-size: 0.75rem; }
.bs-serie-card__aside {
  display: grid;
  justify-items: end;
  gap: 0.2rem;
}
.bs-serie-card__score {
  font-size: clamp(1.35rem, 3.6vw, 1.75rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1;
}
.bs-serie-card__equip { display: flex; justify-content: flex-end; }
.bs-serie-card__aside .bs-ball-icon-select {
  width: 1.85rem;
  height: 1.85rem;
}
.bs-serie-card__bag-link {
  padding: 0.35rem 0.65rem;
  font-size: 0.75rem;
}
.bs-scorecard {
  width: 100%;
  overflow-x: auto;
  border-radius: 10px;
  border: 1px solid var(--bs-border-soft);
  background: light-dark(oklch(0.99 0.005 250), oklch(0.17 0.015 275));
  -webkit-overflow-scrolling: touch;
}
.bs-scorecard__throws {
  display: grid;
  grid-template-columns: repeat(9, minmax(2.2rem, 1fr)) minmax(3.1rem, 1.35fr);
  min-width: 26rem;
}
.bs-scorecard__frame {
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-height: 3.55rem;
  border-right: 1px solid var(--bs-border-soft);
}
.bs-scorecard__frame:last-child { border-right: 0; }
.bs-scorecard__label {
  padding: 0.1rem 0.2rem 0;
  font-size: 0.58rem;
  font-weight: 700;
  color: var(--bs-text-soft);
  text-align: center;
  line-height: 1.1;
}
.bs-scorecard__cells {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-content: start;
  gap: 1px;
  padding: 0.1rem;
  background: color-mix(in oklch, var(--bs-border-soft) 70%, transparent);
}
.bs-scorecard__frame--tenth .bs-scorecard__cells {
  grid-template-columns: 1fr 1fr 1fr;
}
.bs-scorecard__cell {
  display: grid;
  place-items: center;
  min-height: 1.15rem;
  background: light-dark(oklch(1 0 0), oklch(0.22 0.02 275));
  font-size: 0.72rem;
  font-weight: 700;
}
.bs-scorecard__cell.is-mark { color: var(--bs-accent); }
/* Split: ring markerar kastet som gav en split (USBC 2h). */
.bs-scorecard__cell.is-split {
  position: relative;
}
.bs-scorecard__cell.is-split::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1.35em;
  height: 1.35em;
  transform: translate(-50%, -50%);
  border: 1.5px solid currentColor;
  border-radius: 50%;
  opacity: 0.7;
  pointer-events: none;
}
.bs-scorecard__cum {
  display: grid;
  place-items: center;
  min-height: 1.2rem;
  font-size: 0.72rem;
  font-weight: 800;
  border-top: 1px solid var(--bs-border-soft);
}
.bs-serie-detail {
  border-top: 1px solid var(--bs-border-soft);
  margin-top: 0.1rem;
  padding-top: 0;
}
.bs-serie-detail > summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  cursor: pointer;
  padding: 0.35rem 0.1rem;
  font-weight: 700;
  font-size: 0.82rem;
}
.bs-serie-detail > summary::-webkit-details-marker { display: none; }
.bs-serie-detail__chev {
  display: inline-grid;
  transition: transform 0.2s ease;
  color: var(--bs-text-soft);
}
.bs-serie-detail[open] .bs-serie-detail__chev { transform: rotate(180deg); }
.bs-ball-picker {
  position: relative;
  z-index: 1;
  display: inline-grid;
  justify-items: center;
}
.bs-ball-picker.is-open { z-index: 40; }
.bs-ball-picker__btn {
  appearance: none;
  display: grid;
  place-items: center;
  width: 2.15rem;
  height: 2.15rem;
  padding: 0;
  border-radius: 999px;
  border: 1px solid var(--bs-border-soft);
  background: light-dark(oklch(0.98 0.005 250), oklch(0.22 0.02 275));
  color: var(--bs-text-soft);
  cursor: pointer;
}
.bs-ball-picker.is-set .bs-ball-picker__btn {
  color: var(--bs-accent);
  border-color: color-mix(in oklch, var(--bs-accent) 45%, var(--bs-border-soft));
}
.bs-ball-picker--frame .bs-ball-picker__btn {
  width: 2rem;
  height: 2rem;
  margin-top: 0.15rem;
}
.bs-ball-picker__thumb {
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 50%;
  object-fit: cover;
  display: block;
}
.bs-ball-picker__icon { display: grid; place-items: center; }
.bs-ball-picker__panel {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 50%;
  transform: translateX(-50%);
  width: min(16.5rem, 78vw);
  max-height: 14rem;
  overflow: auto;
  padding: 0.55rem;
  border-radius: 14px;
  border: 1px solid var(--bs-border);
  background: light-dark(oklch(0.99 0.005 250), oklch(0.16 0.02 275));
  box-shadow: 0 12px 28px oklch(0.1 0.02 275 / .45);
  -webkit-overflow-scrolling: touch;
}
.bs-ball-picker__heading {
  margin: 0 0 0.35rem;
  padding: 0 0.25rem;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--bs-text-soft);
}
.bs-ball-picker__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.25rem;
}
.bs-ball-picker__option {
  appearance: none;
  width: 100%;
  display: grid;
  grid-template-columns: 2.5rem 1fr;
  align-items: center;
  gap: 0.55rem;
  padding: 0.4rem 0.45rem;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.bs-ball-picker__option:hover,
.bs-ball-picker__option.is-active {
  background: color-mix(in oklch, var(--bs-accent) 16%, transparent);
}
.bs-ball-picker__option-img {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  object-fit: cover;
  background: light-dark(oklch(0.94 0.01 250), oklch(0.24 0.02 275));
}
.bs-ball-picker__option-img--empty {
  display: grid;
  place-items: center;
  color: var(--bs-text-soft);
}
.bs-ball-picker__option-meta {
  display: grid;
  gap: 0.05rem;
  min-width: 0;
}
.bs-ball-picker__option-meta strong {
  font-size: 0.86rem;
  font-weight: 750;
  line-height: 1.2;
}
.bs-ball-picker__option-meta span {
  font-size: 0.68rem;
  color: var(--bs-text-soft);
}
.bs-frame-cell:has(.bs-ball-picker.is-open) {
  z-index: 30;
  position: relative;
}
.bs-serie-detail[open] { overflow: visible; }
.bs-frame-grid { overflow: visible; }

/* Publik delning */
.bs-share-page .bs-share-hero { margin: 0 0 1.1rem; }
.bs-share-page .bs-serie-hero__chips { margin-top: 0.75rem; }
.bs-share-scores {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.bs-share-text {
  margin: 0;
  line-height: 1.45;
  font-size: 0.98rem;
}
.bs-share-balls { margin: 0.65rem 0 0; }
.bs-share-kit { margin-bottom: 0.85rem; }
.bs-share-cta { margin-top: 1.25rem; }
.bs-share-footnote {
  margin: 0.85rem 0 1.5rem;
  font-size: 0.78rem;
  line-height: 1.4;
}
.bs-share-page .bs-serie-card {
  border-color: color-mix(in oklch, var(--bs-accent) 22%, var(--bs-border));
}
.bs-share-panel {
  display: none;
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--bs-border-soft);
  gap: 0.55rem;
}
.bs-share-panel.is-open { display: grid; }
.bs-share-panel__row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.bs-share-panel__url {
  width: 100%;
  font-size: 0.82rem;
  word-break: break-all;
  padding: 0.55rem 0.7rem;
  border-radius: 10px;
  border: 1px solid var(--bs-border-soft);
  background: light-dark(oklch(0.97 0.005 250), oklch(0.14 0.02 275));
  color: inherit;
}
.bs-share-panel a.bs-app__btn { text-decoration: none; }
.bs-filter-chips {
  display: flex; flex-wrap: wrap; gap: 0.4rem;
  margin: 0.5rem 0 0.75rem;
}
.bs-chip {
  display: inline-flex; align-items: center;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  font-size: 0.82rem; font-weight: 600;
  text-decoration: none;
  color: inherit;
  background: light-dark(oklch(0.94 0.01 250), oklch(0.28 0.02 275));
}
.bs-chip.is-active {
  background: light-dark(oklch(0.35 0.08 250), oklch(0.72 0.1 250));
  color: light-dark(#fff, #111);
}
.bs-stats-pin-note { margin: 0.35rem 0 0.9rem; font-size: 0.85rem; }
.bs-dev__form { margin-top: 0.35rem; }
.bs-dev__lede {
  margin: 0 0 0.65rem;
  font-size: 0.92rem;
  color: var(--bs-text-soft, oklch(0.72 0.02 270));
}
.bs-dev__chart {
  margin: 0.95rem 0 0.85rem;
  padding: 0.85rem 0.9rem 0.75rem;
  border-radius: 14px;
  border: 1px solid var(--bs-border, oklch(0.3 0.02 270));
  background: light-dark(oklch(0.985 0.01 275), oklch(0.15 0.02 275));
}
.bs-dev__chart-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
  margin-bottom: 0.45rem;
}
.bs-dev__chart-head strong {
  font-size: 0.95rem;
}
.bs-dev__chart-head span {
  font-size: 0.78rem;
  color: var(--bs-text-soft);
}
.bs-dev__curve {
  position: relative;
  margin: 0;
}
.bs-dev__curve svg {
  display: block;
  width: 100%;
  height: auto;
  min-height: 9rem;
}
.bs-dev__guide {
  stroke: light-dark(oklch(0.86 0.01 270), oklch(0.32 0.02 270));
  stroke-width: 1;
  stroke-dasharray: 3 4;
}
.bs-dev__axis {
  fill: var(--bs-text-soft, oklch(0.72 0.02 270));
  font-size: 9px;
  font-weight: 600;
}
.bs-dev__axis--x { font-size: 8.5px; }
.bs-dev__area {
  fill: color-mix(in oklab, var(--bs-accent, #6366f1) 18%, transparent);
}
.bs-dev__line {
  fill: none;
  stroke: var(--bs-accent, #6366f1);
  stroke-width: 2.5;
  stroke-linejoin: round;
  stroke-linecap: round;
}
.bs-dev__dot {
  fill: var(--bs-accent, #6366f1);
  stroke: light-dark(#fff, oklch(0.15 0.02 275));
  stroke-width: 1.5;
}
.bs-dev__dot-label {
  fill: light-dark(oklch(0.28 0.03 275), oklch(0.92 0.02 70));
  font-size: 9px;
  font-weight: 700;
}
.bs-dev__chart-basis {
  margin: 0.35rem 0 0;
  padding: 0.45rem 0.55rem;
  border-radius: 10px;
  font-size: 0.8rem;
  line-height: 1.35;
  color: light-dark(oklch(0.35 0.03 275), oklch(0.88 0.02 70));
  background: light-dark(oklch(0.96 0.015 275), oklch(0.2 0.025 275));
}
.bs-dev__chart-foot {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 1rem;
  margin-top: 0.55rem;
  font-size: 0.8rem;
  color: var(--bs-text-soft);
}
.bs-dev__chart-foot strong {
  color: inherit;
  font-weight: 750;
  color: light-dark(oklch(0.28 0.03 275), oklch(0.94 0.02 70));
}
.bs-dev__empty {
  margin: 0.85rem 0;
  padding: 0.9rem 1rem;
  border-radius: 12px;
  border: 1px dashed var(--bs-border, oklch(0.3 0.02 270));
  font-size: 0.9rem;
  color: var(--bs-text-soft);
}
.bs-dev__empty p { margin: 0; }
.bs-dev__compare {
  display: grid;
  gap: 0.65rem;
  margin: 0.85rem 0 0.75rem;
}
@media (min-width: 520px) {
  .bs-dev__compare { grid-template-columns: 1fr 1fr; }
}
.bs-dev__period {
  display: grid;
  gap: 0.15rem;
  padding: 0.75rem 0.85rem;
  border-radius: 12px;
  border: 1px solid var(--bs-border, oklch(0.3 0.02 270));
  background: light-dark(oklch(1 0 0), oklch(0.17 0.02 275));
}
.bs-dev__period-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--bs-text-soft);
}
.bs-dev__period-value {
  font-size: 1.55rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.1;
}
.bs-dev__period-meta {
  font-size: 0.8rem;
  color: var(--bs-text-soft);
}
.bs-dev__period-delta {
  margin-top: 0.2rem;
  font-size: 0.82rem;
  font-weight: 650;
}
.bs-dev__story { display: grid; gap: 0.45rem; }
.bs-dev__story p { margin: 0; }
.bs-dev__tips-launch { margin-top: 0.35rem; }

.bs-modal.bs-dev-tips {
  width: min(440px, 94vw);
  height: auto;
  max-height: min(88dvh, 740px);
  display: none;
  flex-direction: column;
  margin: auto;
}
.bs-modal.bs-notif-modal {
  width: min(400px, 94vw);
  height: auto;
  max-height: min(78dvh, 560px);
  display: none;
  flex-direction: column;
  margin: auto;
  border-radius: var(--bs-radius-lg);
  border-color: var(--bs-border-soft);
  background:
    linear-gradient(180deg, color-mix(in oklch, var(--bs-bg-card, oklch(0.2 0.02 275)) 55%, transparent), transparent 42%),
    var(--bs-bg-elev);
  box-shadow:
    0 24px 60px oklch(0 0 0 / .42),
    0 0 0 1px var(--bs-border-soft);
}
.bs-modal.bs-notif-modal[open] {
  display: flex;
}
.bs-notif-modal__head {
  padding: 0.85rem 0.75rem 0.85rem 1.05rem;
  background: transparent;
  border-bottom-color: var(--bs-border-soft);
}
.bs-notif-modal__title-wrap {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
}
.bs-notif-modal__ico {
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 10px;
  color: var(--bs-accent);
  background: color-mix(in oklch, var(--bs-accent) 14%, transparent);
  border: 1px solid color-mix(in oklch, var(--bs-accent) 22%, transparent);
  flex: 0 0 auto;
}
.bs-notif-modal__head .bs-modal__title {
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.bs-notif-modal__head-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  flex: 0 0 auto;
}
.bs-notif-modal__read-all {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--bs-accent);
  font: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  padding: 0.45rem 0.55rem;
  border-radius: 999px;
  cursor: pointer;
  white-space: nowrap;
}
.bs-notif-modal__read-all:hover {
  background: color-mix(in oklch, var(--bs-accent) 12%, transparent);
}
.bs-notif-modal__read-all[hidden] { display: none !important; }
.bs-notif-modal__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  display: block;
  padding: 0.15rem 0 0.35rem;
  background: transparent;
}
.bs-notif-modal__foot {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0.55rem 1rem calc(0.7rem + env(safe-area-inset-bottom));
  border-top: 1px solid var(--bs-border-soft);
  background: transparent;
  flex-shrink: 0;
}
.bs-notif-modal__foot[hidden] { display: none !important; }
.bs-notif-modal__clear {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--bs-text-soft);
  font: inherit;
  font-size: 0.82rem;
  font-weight: 650;
  padding: 0.35rem 0.15rem;
  cursor: pointer;
  border-radius: 8px;
}
.bs-notif-modal__clear:hover {
  color: var(--bs-text);
}
.bs-notif-modal__status {
  margin: 0;
  padding: 1.35rem 1.15rem;
  text-align: center;
}
.bs-notif-modal .bs-notif-list {
  margin: 0;
}
.bs-notif-modal .bs-avatar--feed {
  width: 40px;
  height: 40px;
  font-size: 0.95rem;
}
@media (max-width: 600px) {
  .bs-modal.bs-notif-modal {
    width: 100vw;
    width: 100dvw;
    height: 100dvh;
    max-width: none;
    max-height: none;
    border-radius: 0;
    border: 0;
    margin: 0;
    inset: 0;
  }
  .bs-modal.bs-notif-modal .bs-notif-modal__head {
    padding-top: max(0.85rem, env(safe-area-inset-top));
    padding-left: max(1rem, env(safe-area-inset-left));
    padding-right: max(0.75rem, env(safe-area-inset-right));
    flex-shrink: 0;
  }
  .bs-notif-modal__body {
    padding-bottom: calc(0.5rem + env(safe-area-inset-bottom));
  }
}
.bs-modal.bs-dev-tips[open] {
  display: flex;
}
@media (max-width: 600px) {
  .bs-modal.bs-dev-tips {
    width: 100vw;
    width: 100dvw;
    height: 100dvh;
    max-width: none;
    max-height: none;
    border-radius: 0;
    border: 0;
    margin: 0;
    inset: 0;
  }
  .bs-modal.bs-dev-tips .bs-modal__head {
    padding-top: max(0.9rem, env(safe-area-inset-top));
    padding-left: max(1.05rem, env(safe-area-inset-left));
    padding-right: max(1rem, env(safe-area-inset-right));
    flex-shrink: 0;
  }
  .bs-dev-tips__body {
    flex: 1 1 auto;
    min-height: 0;
    padding: 1rem 1.05rem calc(1.25rem + env(safe-area-inset-bottom));
    align-content: start;
  }
}
.bs-dev-tips__body {
  display: grid;
  gap: 0.85rem;
  padding: 1rem 1.05rem 1.2rem;
  overflow: auto;
  background:
    radial-gradient(120% 80% at 0% 0%, color-mix(in oklch, var(--bs-accent) 14%, transparent), transparent 55%),
    var(--bs-bg-elev);
}
.bs-dev-tips__summary {
  margin: 0;
  padding: 0.95rem 1.05rem;
  border-radius: var(--bs-radius-sm);
  border: 1px solid var(--bs-border-soft);
  background: color-mix(in oklch, var(--bs-bg-card) 88%, var(--bs-accent-soft));
  color: var(--bs-text-soft);
  font-size: 0.88rem;
  line-height: 1.45;
  font-weight: 550;
}
.bs-dev-tip {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.85rem;
  align-items: start;
  padding: 0.9rem;
  border-radius: var(--bs-radius);
  border: 1px solid var(--bs-border-soft);
  background: var(--bs-bg-card);
  box-shadow: var(--bs-shadow);
}
.bs-dev-tip__viz {
  display: grid;
  gap: 0.4rem;
  justify-items: center;
}
.bs-dev-tip__viz--pair {
  grid-auto-flow: row;
}
.bs-dev-tip__pins {
  width: 5.4rem;
  height: 5.4rem;
}
.bs-dev-tip__copy {
  display: grid;
  gap: 0.4rem;
  min-width: 0;
}
.bs-dev-tip__title {
  margin: 0;
  font-size: 1.02rem;
  font-weight: 750;
  letter-spacing: -0.015em;
  color: var(--bs-text);
}
.bs-dev-tip__body {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.45;
  color: var(--bs-text);
}
.bs-dev-tip__basis {
  margin: 0.15rem 0 0;
  font-size: 0.82rem;
  line-height: 1.35;
  color: var(--bs-text-muted);
  font-weight: 550;
}
@media (max-width: 420px) {
  .bs-dev-tip {
    grid-template-columns: 1fr;
    justify-items: stretch;
  }
  .bs-dev-tip__viz,
  .bs-dev-tip__viz--pair {
    grid-auto-flow: column;
    justify-content: start;
  }
}
.bs-dev__standing { font-weight: 400; }
.bs-follow-manage {
  margin: 0;
}
.bs-follow-manage__summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  cursor: pointer;
  padding: 0.15rem 0.1rem;
  font-weight: 800;
  font-size: 1rem;
}
.bs-follow-manage__summary::-webkit-details-marker { display: none; }
.bs-follow-manage__label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
}
.bs-follow-manage__count {
  display: inline-grid;
  place-items: center;
  min-width: 1.35rem;
  padding: 0.1rem 0.4rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--bs-text-soft);
  background: light-dark(oklch(0.94 0.01 250), oklch(0.24 0.02 275));
  border: 1px solid var(--bs-border-soft);
}
.bs-follow-manage__chev {
  display: inline-grid;
  transition: transform 0.2s ease;
  color: var(--bs-text-soft);
  flex: 0 0 auto;
}
.bs-follow-manage[open] .bs-follow-manage__chev { transform: rotate(180deg); }
.bs-pref-fold {
  margin: 0.35rem 0 0;
  border-radius: 14px;
  border: 1px solid var(--bs-border-soft);
  background: light-dark(oklch(0.985 0.005 250), oklch(0.2 0.02 275));
  overflow: hidden;
}
.bs-pref-fold__summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  cursor: pointer;
  padding: 0.85rem 0.95rem;
  font-weight: 800;
  font-size: 0.95rem;
}
.bs-pref-fold__summary::-webkit-details-marker { display: none; }
.bs-pref-fold__label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
}
.bs-pref-fold__chev {
  display: inline-grid;
  transition: transform 0.2s ease;
  color: var(--bs-text-soft);
  flex: 0 0 auto;
}
.bs-pref-fold[open] .bs-pref-fold__chev { transform: rotate(180deg); }
.bs-pref-fold__body {
  display: grid;
  gap: 0.65rem;
  padding: 0 0.75rem 0.85rem;
  border-top: 1px solid var(--bs-border-soft);
  padding-top: 0.75rem;
}
.bs-pref-fold__body .bs-choice {
  margin: 0;
}
.bs-follow-list, .bs-follow-results, .bs-feed-list, .bs-live-pick-list {
  list-style: none; padding: 0; margin: 0.75rem 0 0;
  display: grid; gap: 0.75rem;
}
.bs-follow-list li,
.bs-follow-results li {
  padding: 0.7rem 0.85rem;
  border-radius: 14px;
  border: 1px solid var(--bs-border-soft);
  background: light-dark(oklch(0.985 0.005 250), oklch(0.2 0.02 275));
}
.bs-notes { display: grid; gap: 1rem; }
.bs-notes__head { display: grid; gap: 0.25rem; }
.bs-notes__head .bs-app__h2 { margin: 0; }
.bs-notes__composer {
  display: grid;
  gap: 0.75rem;
  padding: 0.9rem;
  border-radius: var(--bs-radius-lg, 0.9rem);
  border: 1px solid var(--bs-border-soft);
  background: light-dark(oklch(0.985 0.005 250), oklch(0.18 0.015 275));
}
.bs-notes__field {
  display: grid;
  gap: 0.35rem;
  font-size: 0.82rem;
  font-weight: 650;
  color: var(--bs-text-soft, inherit);
}
.bs-notes__field--frame { max-width: 11rem; }
.bs-notes__field select,
.bs-notes__field textarea {
  width: 100%;
  margin: 0;
  padding: 0.7rem 0.85rem;
  border-radius: 12px;
  border: 1px solid var(--bs-border-soft);
  background: light-dark(oklch(1 0 0), oklch(0.22 0.02 275));
  color: inherit;
  font: inherit;
  font-weight: 500;
  resize: vertical;
  min-height: 5.5rem;
  line-height: 1.45;
  box-shadow: inset 0 1px 0 oklch(1 0 0 / .04);
}
.bs-notes__field select {
  min-height: 0;
  resize: none;
  cursor: pointer;
}
.bs-notes__field textarea:focus,
.bs-notes__field select:focus {
  outline: 2px solid var(--bs-accent);
  outline-offset: 2px;
}
.bs-notes__actions {
  display: flex;
  justify-content: flex-end;
}
.bs-notes__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}
.bs-notes__item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.8rem 0.9rem;
  border-radius: 12px;
  border: 1px solid var(--bs-border-soft);
  background: light-dark(oklch(0.98 0.005 250), oklch(0.2 0.02 275));
}
.bs-notes__item-main { display: grid; gap: 0.35rem; min-width: 0; flex: 1; }
.bs-notes__badge {
  display: inline-flex;
  align-self: start;
  width: fit-content;
  padding: 0.18rem 0.5rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--bs-text);
  background: color-mix(in oklch, var(--bs-accent) 22%, transparent);
}
.bs-notes__text {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.45;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.bs-notes__delete {
  flex: 0 0 auto;
  margin: 0;
  padding: 0.35rem 0.55rem;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--bs-text-soft);
  font: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
}
.bs-notes__delete:hover,
.bs-notes__delete:focus-visible {
  color: var(--bs-text);
  background: color-mix(in oklch, var(--bs-text) 8%, transparent);
  outline: none;
}
/* Mer: namn + synlighet */
.bs-privacy {
  display: grid;
  gap: 0.85rem;
  margin-top: 1.35rem;
  padding: 1rem 1.05rem 1.1rem;
  border-radius: 18px;
  border: 1px solid color-mix(in oklch, var(--bs-accent) 18%, var(--bs-border-soft));
  background:
    radial-gradient(120% 80% at 0% 0%, color-mix(in oklch, var(--bs-accent) 14%, transparent), transparent 55%),
    light-dark(oklch(0.99 0.004 250), oklch(0.19 0.02 275));
}
.bs-privacy__head { display: grid; gap: 0.25rem; }
.bs-privacy__head .bs-app__h2 { margin: 0; }
.bs-privacy__head .bs-app__muted { margin: 0; }
.bs-privacy__field {
  display: grid;
  gap: 0.4rem;
  font-size: 0.82rem;
  font-weight: 650;
  color: var(--bs-text-soft);
}
.bs-privacy__input {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  width: 100%;
  padding: 0.15rem 0.85rem 0.15rem 0.75rem;
  border-radius: 14px;
  border: 1px solid color-mix(in oklch, var(--bs-accent) 22%, var(--bs-border-soft));
  background: light-dark(oklch(1 0 0), oklch(0.22 0.02 275));
  box-shadow:
    inset 0 1px 0 oklch(1 0 0 / .05),
    0 8px 22px oklch(0 0 0 / .12);
}
.bs-privacy__input:focus-within {
  border-color: color-mix(in oklch, var(--bs-accent) 55%, var(--bs-border-soft));
  box-shadow:
    0 0 0 3px color-mix(in oklch, var(--bs-accent) 22%, transparent),
    0 10px 26px oklch(0 0 0 / .16);
}
.bs-privacy__input-ico {
  display: inline-grid;
  place-items: center;
  color: var(--bs-accent);
  opacity: 0.9;
  flex: 0 0 auto;
}
.bs-privacy__field input,
.bs-privacy__input input {
  width: 100%;
  margin: 0;
  padding: 0.85rem 0.15rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 1.02rem;
  font-weight: 650;
  box-shadow: none;
  outline: none;
}
.bs-privacy__field input:focus,
.bs-privacy__input input:focus {
  outline: none;
}
.bs-privacy__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
}
.bs-privacy__actions .bs-app__btn {
  width: auto;
  justify-self: start;
  padding: 0.55rem 1.15rem;
  font-size: 0.92rem;
  box-shadow: 0 8px 22px color-mix(in oklch, var(--bs-accent) 28%, transparent);
}
.bs-privacy__logout {
  margin-top: 1.25rem;
}
.bs-privacy__logout .bs-app__btn {
  width: auto;
}

.bs-choice-list {
  display: grid;
  gap: 0.55rem;
}
.bs-choice {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.75rem;
  align-items: start;
  margin: 0;
  padding: 0.85rem 0.9rem;
  border-radius: 14px;
  border: 1px solid var(--bs-border-soft);
  background: light-dark(oklch(1 0 0), oklch(0.22 0.022 275));
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.bs-choice:hover {
  border-color: color-mix(in oklch, var(--bs-accent) 35%, var(--bs-border-soft));
}
.bs-choice:has(input:checked) {
  border-color: color-mix(in oklch, var(--bs-accent) 55%, var(--bs-border-soft));
  background:
    linear-gradient(135deg, color-mix(in oklch, var(--bs-accent) 12%, transparent), transparent 70%),
    light-dark(oklch(1 0 0), oklch(0.24 0.025 275));
  box-shadow: 0 0 0 1px color-mix(in oklch, var(--bs-accent) 22%, transparent);
}
.bs-choice input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.bs-choice__ico {
  display: inline-grid;
  place-items: center;
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 12px;
  color: var(--bs-accent);
  background: color-mix(in oklch, var(--bs-accent) 14%, transparent);
  border: 1px solid color-mix(in oklch, var(--bs-accent) 28%, transparent);
}
.bs-choice:has(input:checked) .bs-choice__ico {
  background: color-mix(in oklch, var(--bs-accent) 24%, transparent);
  border-color: color-mix(in oklch, var(--bs-accent) 45%, transparent);
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--bs-accent) 16%, transparent);
}
.bs-choice__body { display: grid; gap: 0.15rem; min-width: 0; }
.bs-choice__title {
  font-weight: 750;
  line-height: 1.25;
  color: var(--bs-text);
}
.bs-choice__hint {
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.35;
  color: var(--bs-text-soft);
}

.bs-feed-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0 0 1rem;
}
.bs-feed-tabs .bs-chip {
  gap: 0.35rem;
}
.bs-feed-card {
  display: grid;
  gap: 0.65rem;
  padding: 0.95rem 1rem;
  border-radius: 18px;
  border: 1px solid var(--bs-border-soft);
  background:
    radial-gradient(90% 70% at 100% 0%, color-mix(in oklch, var(--bs-accent) 10%, transparent), transparent 55%),
    light-dark(oklch(0.99 0.004 250), oklch(0.2 0.022 275));
  box-shadow: 0 10px 28px oklch(0 0 0 / .12);
}
.bs-feed-card--live {
  border-color: color-mix(in oklch, var(--bs-live, oklch(0.78 0.2 150)) 40%, var(--bs-border-soft));
  background:
    radial-gradient(90% 70% at 0% 0%, color-mix(in oklch, var(--bs-live, oklch(0.78 0.2 150)) 18%, transparent), transparent 55%),
    light-dark(oklch(0.99 0.004 250), oklch(0.2 0.022 275));
}
.bs-feed-card__top {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: start;
}
.bs-feed-card__top:not(:has(.bs-avatar)) {
  grid-template-columns: minmax(0, 1fr) auto;
}
.bs-avatar--feed {
  width: 44px;
  height: 44px;
  font-size: 1rem;
  flex-shrink: 0;
  box-shadow: 0 0 0 2px color-mix(in oklch, var(--bs-accent) 28%, transparent);
}
.bs-feed-card__who { min-width: 0; display: grid; gap: 0.2rem; }
.bs-feed-card__name-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.45rem;
}
.bs-feed-card__name {
  color: inherit;
  font-weight: 800;
  font-size: 0.98rem;
  text-decoration: none;
  line-height: 1.25;
}
a.bs-feed-card__name:hover { color: var(--bs-accent); }
.bs-feed-card__hall {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  min-width: 0;
  font-size: 0.84rem;
  font-weight: 650;
  color: var(--bs-text-soft);
}
.bs-feed-card__hall > span:last-child {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bs-feed-card__score {
  display: grid;
  justify-items: end;
  gap: 0.05rem;
  min-width: 3.5rem;
  text-decoration: none;
  color: inherit;
}
a.bs-feed-card__score:hover .bs-feed-card__score-num {
  filter: brightness(1.08);
}
.bs-feed-card__score-num {
  font-family: var(--bs-font-mono, ui-monospace, monospace);
  font-size: clamp(1.55rem, 5.5vw, 1.9rem);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.04em;
  line-height: 1;
  color: var(--bs-accent);
}
.bs-feed-card--live .bs-feed-card__score-num {
  color: var(--bs-live, oklch(0.78 0.2 150));
}
.bs-session-chip--live {
  color: var(--bs-live, oklch(0.78 0.2 150));
  font-size: 1rem;
  font-weight: 800;
}
.bs-feed-card--live .bs-feed-card__session .bs-session-chip:last-of-type:not(.bs-session-chip--live) {
  color: var(--bs-live, oklch(0.78 0.2 150));
}
.bs-feed-card__score-sub {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--bs-text-soft);
  text-transform: lowercase;
}
.bs-feed-card__meta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.85rem;
  color: var(--bs-text-soft);
  font-size: 0.82rem;
  font-weight: 600;
}
.bs-feed-card__ball {
  margin: 0;
}
.bs-feed-card__session {
  display: block;
  text-decoration: none;
  color: inherit;
  margin: 0.1rem 0 0.15rem;
}
.bs-feed-card__session .bs-session-card__scores {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.15rem 0.2rem;
}
.bs-feed-card__session .bs-session-chip {
  font-size: clamp(1.35rem, 5vw, 1.7rem);
}
.bs-feed-social {
  display: grid;
  gap: 0.55rem;
  margin-top: 0.35rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--bs-border-soft);
}
.bs-feed-react {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.bs-feed-react__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  border: 1px solid var(--bs-border-soft);
  background: light-dark(oklch(0.97 0.005 250), oklch(0.24 0.02 275));
  color: inherit;
  font: inherit;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
}
.bs-feed-react__btn:disabled {
  opacity: 0.55;
  cursor: default;
}
.bs-feed-react__btn.is-active {
  border-color: color-mix(in oklch, var(--bs-accent) 50%, var(--bs-border-soft));
  background: color-mix(in oklch, var(--bs-accent) 16%, transparent);
  color: var(--bs-accent);
}
.bs-feed-react__count {
  min-width: 0.8rem;
  font-variant-numeric: tabular-nums;
  color: var(--bs-text-soft);
}
.bs-feed-react__btn.is-active .bs-feed-react__count { color: inherit; }
.bs-feed-comments__toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  width: fit-content;
  margin: 0;
  padding: 0.35rem 0.15rem;
  border: 0;
  background: transparent;
  color: var(--bs-text-soft);
  font: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
}
.bs-feed-comments__toggle:hover { color: var(--bs-accent); }
.bs-feed-comments {
  display: grid;
  gap: 0.65rem;
}
.bs-feed-comments__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}
.bs-feed-comments__item {
  padding: 0.65rem 0.75rem;
  border-radius: 12px;
  border: 1px solid var(--bs-border-soft);
  background: light-dark(oklch(0.985 0.005 250), oklch(0.18 0.018 275));
}
.bs-feed-comments__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  align-items: baseline;
  margin-bottom: 0.25rem;
  font-size: 0.82rem;
}
.bs-feed-comments__body {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.4;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.bs-feed-comments__delete {
  margin: 0.35rem 0 0;
  padding: 0.2rem 0.45rem;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--bs-text-soft);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 650;
  cursor: pointer;
}
.bs-feed-comments__delete:hover { color: var(--bs-text); }
.bs-feed-comments__form {
  display: grid;
  gap: 0.55rem;
}
.bs-feed-comments__field {
  display: grid;
  gap: 0.3rem;
}
.bs-feed-comments__form .bs-app__btn {
  width: auto;
  justify-self: start;
  padding: 0.5rem 1rem;
  font-size: 0.88rem;
}
.bs-choice:has(input[type="checkbox"]) {
  align-items: center;
}
.bs-feed-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.1rem;
}
.bs-feed-card__action {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  width: auto;
  padding: 0.38rem 0.8rem;
  border-radius: 999px;
  border: 1px solid var(--bs-border-soft);
  background: light-dark(oklch(0.97 0.005 250), oklch(0.24 0.02 275));
  color: inherit;
  font-size: 0.8rem;
  font-weight: 700;
  text-decoration: none;
  transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.bs-feed-card__action:hover {
  border-color: color-mix(in oklch, var(--bs-accent) 40%, var(--bs-border-soft));
  color: var(--bs-accent);
}
.bs-feed-card__action--accent {
  border-color: color-mix(in oklch, var(--bs-accent) 45%, var(--bs-border-soft));
  background: color-mix(in oklch, var(--bs-accent) 14%, transparent);
  color: var(--bs-text);
}
.bs-feed-card__action--accent:hover {
  background: color-mix(in oklch, var(--bs-accent) 22%, transparent);
  color: var(--bs-accent);
}
.bs-feed-live {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  padding: 0.14rem 0.5rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: oklch(0.18 0.02 150);
  background: var(--bs-live, oklch(0.78 0.2 150));
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--bs-live, oklch(0.78 0.2 150)) 22%, transparent);
}
.bs-feed-live__ico {
  display: inline-grid;
  place-items: center;
}
.bs-follow-list__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.bs-follow-list__link {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
  color: inherit;
  text-decoration: none;
  font-weight: 700;
}
.bs-follow-list__link:hover { color: var(--bs-accent); }
.bs-follow-list__row .bs-app__btn,
.bs-follow-results .bs-app__btn {
  width: auto;
  flex: 0 0 auto;
  padding: 0.45rem 0.85rem;
  font-size: 0.82rem;
}
.bs-follow-results li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.bs-follow-results__link {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}
.bs-follow-results__link:hover { color: var(--bs-accent); }
.bs-app__btn:has(.bs-lucide) {
  gap: 0.4rem;
}
.bs-profile-hero {
  display: flex;
  align-items: center;
  gap: 0.9rem;
}
.bs-live-scoreboard { margin: 0.85rem 0 0; min-height: 2.5rem; display: grid; gap: 0.85rem; }
.bs-live-scoreboard > .bs-app__muted { margin: 0; }
.bs-pick-section { display: grid; gap: 1rem; }
.bs-pick-section__head { display: grid; gap: 0.35rem; }
.bs-pick-section__head .bs-app__h1,
.bs-pick-section__head .bs-app__h2 { margin: 0; }
.bs-hall-search { display: block; margin: 0.55rem 0 0; }
.bs-hall-search input {
  width: 100%;
  padding: 0.8rem 1rem;
  border-radius: var(--bs-radius-lg, 0.9rem);
  border: 1px solid var(--bs-border-soft, oklch(0.4 0.02 275));
  background: var(--bs-bg-card, oklch(0.22 0.015 275));
  color: var(--bs-text, inherit);
  font: inherit;
  font-size: 1rem;
  box-shadow: var(--bs-shadow, none);
}
.bs-hall-search input:focus {
  outline: 2px solid var(--bs-accent);
  outline-offset: 2px;
}
.bs-grid--pick {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
}
.bs-card--pick {
  min-height: 100%;
  gap: 0.85rem;
  padding: 1.15rem 1.15rem 1rem;
  cursor: pointer;
}
button.bs-card--pick {
  width: 100%;
  font: inherit;
  color: inherit;
  text-align: left;
  appearance: none;
}
.bs-card--pick .bs-card__title {
  font-size: 1.05rem;
  margin: 0;
}
.bs-card--player .bs-card__avatar {
  background: linear-gradient(135deg, oklch(0.55 0.12 250), oklch(0.42 0.1 280));
}
.bs-hall-chosen {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  padding: 1rem 1.15rem;
}
.bs-hall-chosen .bs-card__identity { flex: 1; min-width: 0; }
.bs-hall-chosen .bs-stat-hero__eyebrow { margin: 0; }
.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

.bs-sw-update {
  position: fixed;
  left: 50%;
  bottom: calc(4.75rem + env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%);
  z-index: 80;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: min(22rem, calc(100vw - 1.5rem));
  padding: 0.75rem 0.85rem;
  border-radius: 14px;
  background: oklch(0.22 0.03 275);
  border: 1px solid color-mix(in srgb, #ff6b1a 55%, transparent);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45);
}
.bs-sw-update[hidden] { display: none !important; }
.bs-sw-update__text {
  margin: 0;
  flex: 1 1 auto;
  font-size: 0.9rem;
  font-weight: 650;
  color: #f8fafc;
}
.bs-sw-update__btn {
  flex: 0 0 auto;
  padding: 0.55rem 0.95rem;
  font-size: 0.85rem;
  background: #ff6b1a;
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   TillgÃ¤nglighet: reduce-motion override
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01s !important; animation-iteration-count: 1 !important; transition-duration: .01s !important; }
}
