body.gfl-public{
  --gfl-bg:var(--gfl-primary-dark);
  --gfl-surface:var(--gfl-secondary-dark);
  --gfl-surface-border:color-mix(in srgb, var(--gfl-primary-light) 35%, transparent);
  --gfl-separator:color-mix(in srgb, var(--gfl-primary-light) 18%, transparent);
  --gfl-input-border:color-mix(in srgb, var(--gfl-primary-light) 55%, transparent);
  --gfl-heading:var(--gfl-primary-light);
  --gfl-text:#ffffff;
  --gfl-muted:color-mix(in srgb, #ffffff 70%, transparent);
  --gfl-btn-bg:var(--gfl-primary-light);
  --gfl-btn-text:var(--gfl-primary-dark);
  background:var(--gfl-bg);
  position:relative;
  color:var(--gfl-text);
  line-height:1.6;
  overflow-x:clip;
}

body.gfl-public::before{
  content:"";
  position:fixed;
  inset:0;
  background-image:url("/assets/topo.png");
  background-size:1080px auto;
  background-repeat:repeat;
  background-position:center top;
  opacity:.38;
  mix-blend-mode:screen;
  filter:contrast(1.3) brightness(1.35);
  pointer-events:none;
  z-index:0;
}

.gfl-page{
  position:relative;
  z-index:1;
  display:grid;
  gap:16px;
}

.gfl-public .header,
.gfl-public main{
  position:relative;
  z-index:1;
}

.gfl-public .header{
  position:relative;
  top:auto;
}

.gfl-public .container{
  max-width:var(--gfl-container-max);
  padding:18px;
  min-width:0;
}

.gfl-public .gfl-site-header{
  background:transparent;
  color:var(--gfl-text);
  border-bottom:none;
  backdrop-filter:none;
  box-shadow:none;
}

.gfl-public .gfl-site-header .container{
  padding-top:10px;
  padding-bottom:10px;
}

.gfl-public .gfl-public-brand{
  display:inline-flex;
  align-items:center;
  line-height:1;
}

.gfl-public .gfl-logo-svg{
  display:block;
  width:200px;
  height:auto;
}

.gfl-public .gfl-site-header .nav{
  gap:6px;
}

.gfl-public .gfl-site-header .nav a{
  color:var(--gfl-text);
  font-weight:700;
  letter-spacing:.02em;
  text-transform:uppercase;
  font-size:.95rem;
}

.gfl-public .gfl-site-header .nav a:hover{
  background:color-mix(in srgb, var(--gfl-primary-light) 18%, transparent);
}

.gfl-public .gfl-card,
.gfl-public .gfl-section,
.gfl-public .card,
.gfl-public .payment-step-card,
.gfl-public .gfl-hero{
  background:var(--gfl-surface);
  border:1px solid var(--gfl-surface-border);
  border-radius:18px;
  color:var(--gfl-text);
  box-shadow:var(--gfl-shadow);
}

.gfl-public .gfl-hero{padding:clamp(18px, 3vw, 28px)}

.gfl-public .gfl-page,
.gfl-public .gfl-hero,
.gfl-public .card{
  min-width:0;
  max-width:100%;
}

.gfl-public .gfl-inner,
.gfl-public .participant-row,
.gfl-public .gfl-step,
.gfl-public .table-wrap,
.gfl-public .email-preview,
.gfl-public .preview-card{
  background:var(--gfl-surface);
  border:1px solid var(--gfl-separator);
  border-radius:14px;
}

.gfl-public .gfl-step{
  opacity:1;
  color:var(--gfl-text);
}

.gfl-public .gfl-step .gfl-step-title{
  color:var(--gfl-text);
  white-space:nowrap;
}

.gfl-public .gfl-step .gfl-step-index{
  border-color:var(--gfl-separator);
  background:rgba(255,255,255,.12);
  color:var(--gfl-text);
}

.gfl-public .gfl-step.is-active{
  background:var(--gfl-primary-light);
  border-color:var(--gfl-primary-light);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--gfl-primary-light) 65%, transparent);
}

.gfl-public .gfl-step.is-active .gfl-step-title{
  color:var(--gfl-primary-dark);
}

.gfl-public .gfl-step.is-active .gfl-step-index{
  background:var(--gfl-primary-dark);
  color:var(--gfl-primary-light);
  border-color:var(--gfl-primary-dark);
}

.gfl-public .gfl-step.is-inactive{
  opacity:1;
  background:color-mix(in srgb, var(--gfl-surface) 88%, #000 12%);
  border-color:color-mix(in srgb, var(--gfl-primary-light) 24%, transparent);
}

.gfl-public .gfl-step.is-inactive .gfl-step-title{
  color:rgba(255,255,255,.92);
}

.gfl-public .gfl-stepper{
  display:flex;
  flex-wrap:nowrap;
  gap:12px;
  align-items:stretch;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  padding-bottom:2px;
}

.gfl-public .gfl-stepper .gfl-step{
  flex:1 1 0;
  min-width:0;
}

/* Registration/payment stepper should never get an inner horizontal scroll */
.gfl-public .gfl-stepper[aria-label="Anmälningsprogress"]{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  overflow-x:visible;
  padding-bottom:0;
}

.gfl-public .gfl-stepper[aria-label="Anmälningsprogress"] .gfl-step{
  flex:unset;
  min-width:0;
}

/* Member page progress: horizontal on desktop, vertical on mobile */
.gfl-public .gfl-stepper[aria-label="Deltagarprogress"]{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  overflow-x:visible;
  padding-bottom:0;
}

.gfl-public .gfl-stepper[aria-label="Deltagarprogress"] .gfl-step{
  flex:unset;
  min-width:0;
}

.gfl-public .member-page-header{
  margin:2px 0 0;
}

.gfl-public .member-page-header h1{
  margin:0;
}

.gfl-public .member-page-ingress{
  margin-top:8px;
}

.gfl-public .member-page-ingress-heading{
  margin:8px 0 0;
}

.gfl-public .member-page-ingress-body{
  margin-top:8px;
}

.gfl-public .member-page{
  min-width:0;
  max-width:100%;
}

.gfl-public .member-page-nav-wrap{
  position:sticky;
  top:0;
  z-index:30;
  width:100%;
  max-width:100%;
  min-width:0;
  margin:2px 0 0;
  padding:8px 0;
}

.gfl-public .member-page-nav-clip{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow:hidden;
}

.gfl-public .member-page-nav{
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding:8px;
  border:1px solid color-mix(in srgb, var(--gfl-primary-light) 35%, transparent);
  border-radius:16px;
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--gfl-secondary-dark) 82%, transparent),
      color-mix(in srgb, var(--gfl-primary-dark) 90%, #000 10%)
    ),
    var(--gfl-secondary-dark);
  box-shadow:0 16px 34px rgba(0, 0, 0, .22);
  backdrop-filter:saturate(130%) blur(14px);
}

.gfl-public .member-page-nav::-webkit-scrollbar{
  display:none;
}

.gfl-public .member-page-nav__label{
  flex:0 0 auto;
  padding:0 8px;
  color:color-mix(in srgb, var(--gfl-secondary-light) 78%, transparent);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}

.gfl-public .member-page-nav__item{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  flex:0 0 auto;
  min-height:38px;
  max-width:220px;
  padding:8px 12px;
  border:1px solid color-mix(in srgb, var(--gfl-primary-light) 24%, transparent);
  border-radius:999px;
  color:var(--gfl-text);
  background:color-mix(in srgb, var(--gfl-secondary-dark) 78%, var(--gfl-primary-dark) 22%);
  font-size:.92rem;
  font-weight:800;
  line-height:1.1;
  text-decoration:none;
  white-space:nowrap;
}

.gfl-public .member-page-nav__text{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  color:inherit;
}

.gfl-public .member-page-nav__item:hover{
  border-color:color-mix(in srgb, var(--gfl-primary-light) 52%, transparent);
  background:color-mix(in srgb, var(--gfl-primary-light) 16%, var(--gfl-secondary-dark) 84%);
}

.gfl-public .member-page-nav__item:focus-visible{
  outline:none;
  box-shadow:var(--gfl-focus-ring);
}

.gfl-public .member-page-nav__item.is-active{
  color:var(--gfl-primary-dark);
  border-color:var(--gfl-primary-light);
  background:linear-gradient(
    180deg,
    color-mix(in srgb, var(--gfl-primary-light) 82%, white 18%),
    var(--gfl-primary-light)
  );
  box-shadow:0 8px 22px color-mix(in srgb, var(--gfl-primary-light) 22%, transparent);
}

.gfl-public .member-page-nav__item.is-new::after{
  content:"";
  flex:0 0 auto;
  width:8px;
  height:8px;
  border-radius:50%;
  background:currentColor;
  box-shadow:0 0 0 4px color-mix(in srgb, var(--gfl-primary-light) 22%, transparent);
}

.gfl-public .member-page-nav__item.is-active.is-new::after{
  background:var(--gfl-primary-dark);
  box-shadow:0 0 0 4px rgba(72, 0, 0, .12);
}

.gfl-public .member-result-hero,
.gfl-public .member-updates-summary,
.gfl-public .member-countdown,
.gfl-public .member-progress,
.gfl-public .member-card,
.gfl-public .member-page-disclaimer{
  scroll-margin-top:86px;
}

.gfl-public .member-page-disclaimer{
  margin-top:18px;
  border:1px solid color-mix(in srgb, var(--gfl-secondary-light) 20%, var(--gfl-surface-border) 80%);
  background:color-mix(in srgb, var(--gfl-secondary-dark) 88%, #000 12%);
}

.gfl-public .member-page-closed{
  max-width:760px;
}

.gfl-public .member-progress{
  margin-top:2px;
}

.gfl-public .member-countdown{
  margin-top:2px;
  border:1px solid var(--gfl-separator);
  border-radius:18px;
  padding:16px 18px;
  text-align:center;
  background:color-mix(in srgb, var(--gfl-secondary-dark) 88%, #000 12%);
}

.gfl-public .member-countdown__value{
  font-family:"GFL", "Space Grotesk", sans-serif;
  font-weight:900;
  font-size:clamp(2.2rem, 8vw, 4.6rem);
  line-height:1;
  letter-spacing:.01em;
  color:var(--gfl-primary-light);
}

.gfl-public .member-countdown__label{
  margin-top:10px;
  font-size:clamp(1rem, 3.2vw, 1.45rem);
  font-weight:700;
  color:var(--gfl-text);
}

.gfl-public .member-countdown__details{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  max-width:760px;
  margin:18px auto 0;
  padding-top:16px;
  border-top:1px solid color-mix(in srgb, var(--gfl-secondary-light) 28%, transparent);
}

.gfl-public .member-countdown__details.is-hidden{
  display:none;
}

.gfl-public .member-countdown__detail{
  min-width:0;
  padding:10px 12px;
  border:1px solid color-mix(in srgb, var(--gfl-secondary-light) 24%, var(--gfl-surface-border) 76%);
  border-radius:14px;
  background:color-mix(in srgb, var(--gfl-secondary-dark) 74%, #000 26%);
  text-align:left;
}

.gfl-public .member-countdown__detail-label,
.gfl-public .member-countdown__detail-value{
  display:block;
}

.gfl-public .member-countdown__detail-label{
  font-size:.78rem;
  line-height:1.2;
  font-weight:800;
  text-transform:uppercase;
  color:color-mix(in srgb, var(--gfl-primary-light) 72%, var(--gfl-text-muted) 28%);
}

.gfl-public .member-countdown__detail-value{
  margin-top:5px;
  font-size:clamp(1rem, 2.6vw, 1.25rem);
  line-height:1.25;
  font-weight:800;
  color:var(--gfl-primary-light);
}

.gfl-public .member-result-hero{
  margin-top:2px;
  padding:22px 24px;
  border:1px solid color-mix(in srgb, var(--gfl-primary-light) 40%, transparent);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--gfl-primary-light) 12%, transparent), transparent 44%),
    color-mix(in srgb, var(--gfl-secondary-dark) 84%, #000 16%);
}

.gfl-public .member-result-hero__eyebrow{
  margin:0 0 8px 0;
  color:var(--gfl-primary-light);
  font-size:.85rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.gfl-public .member-result-hero h2{
  margin:0;
  font-size:clamp(2rem, 5.4vw, 3.3rem);
  line-height:.98;
  letter-spacing:.01em;
}

.gfl-public .member-result-hero__content > :first-child{margin-top:0}
.gfl-public .member-result-hero__content > :last-child{margin-bottom:0}

.gfl-public .member-result-hero p{
  margin:12px 0 0 0;
  max-width:42rem;
  font-size:clamp(1rem, 2.4vw, 1.2rem);
  color:rgba(255,255,255,.92);
}

.gfl-public .gfl-stepper-status{
  margin-top:6px;
  font-size:.9rem;
  opacity:.82;
}

.gfl-public h1,
.gfl-public h2,
.gfl-public h3{color:var(--gfl-heading)}

.gfl-public h1,
.gfl-public h2,
.gfl-public h3,
.gfl-public .gfl-site-header .nav a{
  overflow-wrap:anywhere;
}

.gfl-public p,
.gfl-public label,
.gfl-public span,
.gfl-public li,
.gfl-public td,
.gfl-public th{color:var(--gfl-text)}

.gfl-public .small,
.gfl-public .hint,
.gfl-public small,
.gfl-public .help,
.gfl-public .gfl-help,
.gfl-public .form-text,
.gfl-public .muted,
.gfl-public .text-muted{color:var(--gfl-muted)}

.gfl-public .gfl-input,
.gfl-public .gfl-select,
.gfl-public .gfl-textarea,
.gfl-public input,
.gfl-public select,
.gfl-public textarea,
.gfl-public .input,
.gfl-public .select,
.gfl-public .textarea{
  background:#ffffff;
  color:#111111;
  border:1px solid var(--gfl-input-border);
  border-radius:10px;
}

.gfl-public .gfl-input:focus,
.gfl-public .gfl-select:focus,
.gfl-public .gfl-textarea:focus,
.gfl-public input:focus,
.gfl-public select:focus,
.gfl-public textarea:focus{
  outline:2px solid var(--gfl-primary-light);
  outline-offset:2px;
}

.gfl-public .gfl-input::placeholder,
.gfl-public .gfl-textarea::placeholder,
.gfl-public input::placeholder,
.gfl-public textarea::placeholder{color:#64748b;opacity:1}

.gfl-public .gfl-btn-primary,
.gfl-public .btn.btn-primary,
.gfl-public .gfl-btn--primary{
  background:var(--gfl-btn-bg);
  color:var(--gfl-btn-text);
  border-radius:999px;
  border:none;
  font-weight:600;
}

.gfl-public .gfl-btn-outline,
.gfl-public .btn.btn-secondary,
.gfl-public .gfl-btn--secondary{
  background:transparent;
  color:var(--gfl-primary-light);
  border:1px solid var(--gfl-primary-light);
}

.gfl-public .alert.alert-info{
  border-color:color-mix(in srgb, var(--gfl-primary-light) 52%, var(--gfl-surface-border) 48%);
  color:var(--gfl-text);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--gfl-primary-light) 14%, transparent), transparent 44%),
    color-mix(in srgb, var(--gfl-primary-dark) 74%, var(--gfl-secondary-dark) 26%);
}

.gfl-public .alert.alert-success{
  border-color:#6ee7b7;
  color:#d1fae5;
  background:#065f46;
}

.gfl-public .alert.alert-error{
  border-color:#fca5a5;
  color:#fee2e2;
  background:#7f1d1d;
}

.gfl-public .badge{border-color:var(--gfl-separator);background:var(--gfl-surface);color:var(--gfl-text)}

.gfl-public code{
  background:var(--gfl-secondary-dark);
  color:var(--gfl-secondary-light);
  border:1px solid color-mix(in srgb, var(--gfl-secondary-light) 28%, transparent);
}

.gfl-public .alert.alert-info.payment-confirm-card{
  border:1px solid var(--gfl-surface-border);
  border-radius:18px;
  background:var(--gfl-secondary-dark);
  color:var(--gfl-secondary-light);
}

.gfl-public .payment-confirm-card p,
.gfl-public .payment-confirm-card strong{
  color:var(--gfl-secondary-light);
}

.gfl-public .payment-mobile-only{
  display:none;
}

.gfl-public .member-cards-grid{
  display:grid;
  gap:14px;
}

.gfl-public .member-updates-summary{
  border:1px solid color-mix(in srgb, var(--gfl-primary-light) 42%, var(--gfl-surface-border) 58%);
  background:
    radial-gradient(circle at top right, color-mix(in srgb, var(--gfl-primary-light) 18%, transparent) 0, transparent 42%),
    color-mix(in srgb, var(--gfl-primary-dark) 86%, #000 14%);
}

.gfl-public .member-updates-summary__header{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:12px;
}

.gfl-public .member-updates-summary__list{
  display:grid;
  gap:10px;
}

.gfl-public .member-updates-summary__item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border:1px solid color-mix(in srgb, var(--gfl-primary-light) 28%, var(--gfl-surface-border) 72%);
  border-radius:14px;
  text-decoration:none;
  background:color-mix(in srgb, var(--gfl-secondary-dark) 84%, var(--gfl-primary-dark) 16%);
}

.gfl-public .member-updates-summary__item:hover{
  transform:translateY(-1px);
  border-color:color-mix(in srgb, var(--gfl-primary-light) 48%, var(--gfl-surface-border) 52%);
}

.gfl-public .member-updates-summary__title{
  font-weight:800;
  color:var(--gfl-secondary-light);
}

.gfl-public .member-updates-summary__meta{
  font-size:14px;
  color:color-mix(in srgb, var(--gfl-secondary-light) 82%, transparent);
}

.gfl-public .member-badge-new{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 14px;
  border-radius:999px;
  font-weight:900;
  letter-spacing:.02em;
  color:var(--gfl-primary-dark);
  background:linear-gradient(
    180deg,
    color-mix(in srgb, var(--gfl-primary-light) 72%, white 28%) 0%,
    color-mix(in srgb, var(--gfl-primary-light) 88%, var(--gfl-secondary-light) 12%) 100%
  );
  border:1px solid color-mix(in srgb, var(--gfl-primary-light) 72%, var(--gfl-primary-dark) 28%);
  box-shadow:0 10px 24px color-mix(in srgb, var(--gfl-primary-light) 22%, transparent);
}

.gfl-public .member-badge-new::before{
  content:"";
  width:10px;
  height:10px;
  border-radius:50%;
  background:color-mix(in srgb, var(--gfl-primary-dark) 82%, var(--gfl-secondary-dark) 18%);
  box-shadow:0 0 0 4px color-mix(in srgb, var(--gfl-primary-light) 24%, transparent);
}

.gfl-public .member-badge-new--large{
  padding:10px 16px;
  font-size:15px;
}

.gfl-public .member-card{
  position:relative;
  overflow:hidden;
}

.gfl-public .member-card.member-card--new{
  border-color:color-mix(in srgb, var(--gfl-primary-light) 48%, var(--gfl-surface-border) 52%);
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--gfl-primary-light) 12%, transparent) 0%,
      color-mix(in srgb, var(--gfl-primary-light) 0%, transparent) 30%
    ),
    var(--gfl-surface);
  box-shadow:
    inset 4px 0 0 color-mix(in srgb, var(--gfl-primary-light) 78%, var(--gfl-secondary-light) 22%),
    0 14px 38px rgba(0, 0, 0, .14);
}

.gfl-public .member-card.card--inactive{
  opacity:.6;
}

.gfl-public .member-card.card--inactive .member-card-content{
  filter:blur(.6px);
}

.gfl-public .member-card.card--inactive a,
.gfl-public .member-card.card--inactive button,
.gfl-public .member-card.card--inactive .btn{
  pointer-events:none;
}

.gfl-public .member-card-header{
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  flex-direction:column;
  gap:10px;
}

.gfl-public .member-card-header__top{
  width:100%;
}

.gfl-public .member-card-updated-label{
  font-size:15px;
  font-weight:700;
  color:color-mix(in srgb, var(--gfl-secondary-light) 82%, transparent);
}

.gfl-public .member-card-content{
  display:grid;
  gap:10px;
}

.gfl-public .member-card-content > h3.member-rich{
  margin:22px 0 2px;
}

.gfl-public .member-card-content > h3.member-rich:first-child{
  margin-top:0;
}

.gfl-public .member-divider{
  display:block;
  width:100%;
  height:0;
  margin:
    max(0px, calc(var(--member-divider-space-top, 18px) - 10px))
    0
    max(0px, calc(var(--member-divider-space-bottom, 18px) - 10px));
  border:0;
  border-top:1px solid color-mix(in srgb, var(--gfl-primary-light) 45%, transparent);
}

.gfl-public .member-result-hero__content .member-divider{
  margin:var(--member-divider-space-top, 18px) 0 var(--member-divider-space-bottom, 18px);
}

.gfl-public .member-generated-image-preview{
  display:block;
  width:min(100%, 260px);
  border:1px solid color-mix(in srgb, var(--gfl-primary-light) 45%, var(--gfl-surface-border) 55%);
  border-radius:14px;
  overflow:hidden;
  background:color-mix(in srgb, var(--gfl-surface) 88%, #fff 12%);
  box-shadow:0 10px 24px rgba(0, 0, 0, .16);
}

.gfl-public .member-generated-image-preview:hover,
.gfl-public .member-generated-image-preview:focus-visible{
  border-color:var(--gfl-primary-light);
  box-shadow:
    0 12px 28px rgba(0, 0, 0, .2),
    0 0 0 3px color-mix(in srgb, var(--gfl-primary-light) 22%, transparent);
}

.gfl-public .member-generated-image-preview img{
  display:block;
  width:100%;
  height:auto;
}

.gfl-public .member-runner-history-table-wrap{
  width:100%;
  max-width:100%;
  overflow:hidden;
  border:1px solid var(--gfl-separator);
  border-radius:14px;
}

.gfl-public .member-runner-history-table{
  width:100%;
  margin:0;
}

.gfl-public .member-runner-history{
  display:grid;
  gap:14px;
  max-width:100%;
  min-width:0;
}

.gfl-public .member-runner-history__greeting{
  margin:0;
  max-width:46rem;
  font-size:1.03rem;
  line-height:1.45;
  overflow-wrap:anywhere;
}

.gfl-public .member-runner-history__note{
  margin:0;
  max-width:46rem;
  color:var(--gfl-muted);
  font-size:.92rem;
  line-height:1.45;
}

.gfl-public .member-runner-history-stats{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
}

.gfl-public .member-runner-history-stat{
  min-width:0;
}

.gfl-public .member-runner-history-stat span{
  display:block;
  margin-bottom:3px;
  color:var(--gfl-primary-light);
  font-size:.88rem;
  font-weight:800;
  line-height:1.25;
}

.gfl-public .member-runner-history-stat strong{
  display:block;
  color:var(--gfl-text);
  font-family:inherit;
  font-size:1.08rem;
  font-weight:500;
  line-height:1.35;
  overflow-wrap:anywhere;
}

.gfl-public .member-weather{
  --member-weather-panel:color-mix(in srgb, var(--gfl-secondary-dark) 90%, #000 10%);
  --member-weather-panel-strong:color-mix(in srgb, var(--gfl-secondary-dark) 82%, var(--gfl-primary-dark) 18%);
  --member-weather-line:var(--gfl-primary-light);
  --member-weather-fill:color-mix(in srgb, var(--gfl-primary-light) 18%, transparent);
  --member-weather-marker:var(--gfl-primary-light);
  display:grid;
  gap:14px;
}

.gfl-public .member-weather__intro{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}

.gfl-public .member-weather__eyebrow,
.gfl-public .member-weather__updated{
  margin:0;
  color:color-mix(in srgb, var(--gfl-secondary-light) 78%, transparent);
  font-size:.92rem;
  font-weight:700;
}

.gfl-public .member-weather__time-summary{
  margin:6px 0 0;
  color:var(--gfl-secondary-light);
  font-size:.95rem;
  font-weight:800;
  line-height:1.25;
}

.gfl-public .member-weather__intro h3{
  margin:2px 0 0;
  font-size:clamp(1.35rem, 4vw, 2rem);
  line-height:1.05;
}

.gfl-public .member-weather-profile{
  border:1px solid var(--gfl-separator);
  border-radius:14px;
  padding:10px;
  background:var(--member-weather-panel);
  overflow:hidden;
}

.gfl-public .member-weather-profile__svg{
  width:100%;
  height:auto;
  min-height:140px;
  color:var(--member-weather-line);
}

.gfl-public .member-weather-profile__area{
  fill:var(--member-weather-fill);
}

.gfl-public .member-weather-profile__line{
  fill:none;
  stroke:var(--member-weather-line);
  stroke-width:5;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.gfl-public .member-weather-profile__axis{
  stroke:color-mix(in srgb, var(--gfl-secondary-light) 38%, transparent);
  stroke-width:2;
}

.gfl-public .member-weather-profile__marker line{
  stroke:color-mix(in srgb, var(--gfl-secondary-light) 35%, transparent);
  stroke-width:2;
  stroke-dasharray:6 7;
}

.gfl-public .member-weather-profile__marker circle{
  fill:var(--member-weather-marker);
  stroke:var(--gfl-secondary-dark);
  stroke-width:4;
}

.gfl-public .member-weather-profile__marker--summit circle{
  fill:color-mix(in srgb, var(--gfl-primary-light) 82%, #fff 18%);
}

.gfl-public .member-weather-profile__labels{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:8px;
  margin-top:8px;
}

.gfl-public .member-weather-profile__label{
  display:grid;
  gap:1px;
  min-width:0;
}

.gfl-public .member-weather-profile__label--summit{
  text-align:center;
}

.gfl-public .member-weather-profile__label--finish{
  text-align:right;
}

.gfl-public .member-weather-profile__label strong{
  color:var(--gfl-secondary-light);
  font-size:.95rem;
  line-height:1.15;
  overflow-wrap:anywhere;
}

.gfl-public .member-weather-profile__label span{
  color:color-mix(in srgb, var(--gfl-text) 74%, transparent);
  font-size:.8rem;
  line-height:1.2;
}

.gfl-public .member-weather-points{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
}

.gfl-public .member-weather-point{
  min-width:0;
  border:1px solid var(--gfl-separator);
  border-radius:14px;
  background:var(--member-weather-panel);
  overflow:hidden;
}

.gfl-public .member-weather-point[open]{
  border-color:color-mix(in srgb, var(--gfl-primary-light) 45%, var(--gfl-separator) 55%);
  background:var(--member-weather-panel-strong);
}

.gfl-public .member-weather-point summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:12px;
  cursor:pointer;
  list-style:none;
}

.gfl-public .member-weather-point summary::-webkit-details-marker{
  display:none;
}

.gfl-public .member-weather-point summary:focus-visible{
  outline:2px solid var(--gfl-primary-light);
  outline-offset:-2px;
}

.gfl-public .member-weather-point__place{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}

.gfl-public .member-weather-point__place strong{
  display:block;
  color:var(--gfl-secondary-light);
  line-height:1.12;
  overflow-wrap:anywhere;
}

.gfl-public .member-weather-point__place span span{
  display:block;
  color:color-mix(in srgb, var(--gfl-text) 70%, transparent);
  font-size:.78rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.gfl-public .member-weather-point__place span .member-weather-point__time{
  margin-top:3px;
  color:color-mix(in srgb, var(--gfl-secondary-light) 82%, transparent);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:0;
  text-transform:none;
}

.gfl-public .member-weather-point__temp{
  flex:0 0 auto;
  color:var(--gfl-text);
  font-family:"GFL", "Space Grotesk", sans-serif;
  font-size:clamp(1.8rem, 5vw, 2.8rem);
  font-weight:900;
  line-height:1;
}

.gfl-public .member-weather-point__details{
  display:grid;
  gap:4px;
  padding:0 12px 12px;
  color:var(--gfl-muted);
  font-size:.9rem;
}

.gfl-public .member-weather-point__details span,
.gfl-public .member-weather-point__details strong{
  color:inherit;
}

.gfl-public .member-weather-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:38px;
  height:38px;
  color:var(--gfl-primary-light);
}

.gfl-public .member-weather-icon svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:2.4;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.gfl-public .member-weather-icon--sun svg circle,
.gfl-public .member-weather-icon--partly svg circle{
  fill:color-mix(in srgb, var(--gfl-primary-light) 35%, transparent);
}

.gfl-public .member-weather-summary{
  display:flex;
  gap:12px;
  align-items:flex-start;
  border:1px solid color-mix(in srgb, var(--gfl-primary-light) 35%, var(--gfl-separator) 65%);
  border-radius:14px;
  padding:13px 14px;
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--gfl-primary-light) 12%, transparent), transparent 55%),
    var(--member-weather-panel-strong);
}

.gfl-public .member-weather-summary__icon{
  width:44px;
  height:44px;
}

.gfl-public .member-weather-summary strong{
  display:block;
  color:var(--gfl-primary-light);
  font-size:1.03rem;
  line-height:1.2;
}

.gfl-public .member-weather-summary p{
  margin:3px 0 0;
  color:var(--gfl-text);
}

.gfl-public .member-weather-disclaimer{
  margin:0;
  color:color-mix(in srgb, var(--gfl-text) 76%, transparent);
  font-size:.9rem;
}

.gfl-public .member-infobox,
.gfl-public .member-result-row{
  border:1px solid var(--gfl-separator);
  border-radius:12px;
  padding:10px 12px;
  background:color-mix(in srgb, var(--gfl-secondary-dark) 88%, #000 12%);
}

.gfl-public .member-accordion-group{
  display:grid;
  gap:8px;
}

.gfl-public .member-accordion-group > h3{
  margin:18px 0 2px;
}

.gfl-public .member-accordion-group > h3:first-child{
  margin-top:0;
}

.gfl-public .member-accordion-group__intro{
  margin:0 0 4px;
}

.gfl-public .member-accordion{
  border:1px solid var(--gfl-separator);
  border-radius:12px;
  background:color-mix(in srgb, var(--gfl-secondary-dark) 90%, #000 10%);
  overflow:hidden;
}

.gfl-public .member-accordion summary{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:12px 14px;
  cursor:pointer;
  font-weight:800;
  color:var(--gfl-text);
  list-style:none;
}

.gfl-public .member-accordion summary::-webkit-details-marker{
  display:none;
}

.gfl-public .member-accordion summary:hover{
  background:color-mix(in srgb, var(--gfl-primary-light) 10%, transparent);
}

.gfl-public .member-accordion summary:focus-visible{
  outline:2px solid var(--gfl-primary-light);
  outline-offset:-2px;
}

.gfl-public .member-accordion__icon{
  flex:0 0 auto;
  width:1em;
  line-height:1.6;
  color:var(--gfl-primary-light);
}

.gfl-public .member-accordion__icon::before{
  content:"▸";
}

.gfl-public .member-accordion[open] .member-accordion__icon::before{
  content:"▾";
}

.gfl-public .member-accordion__intro,
.gfl-public .member-accordion__content{
  padding:0 14px 12px 38px;
}

.gfl-public .member-accordion__content{
  display:grid;
  gap:8px;
}

.gfl-public .member-accordion__content > :first-child{
  margin-top:0;
}

.gfl-public .member-accordion__content > :last-child{
  margin-bottom:0;
}

.gfl-public .member-accordion__content p{
  margin:0;
}

.gfl-public .member-accordion__content ul{
  margin:0 0 0 20px;
  padding:0;
}

.gfl-public .member-card-inactive-overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.18);
  pointer-events:none;
}

.gfl-public .member-card-fallback{
  position:relative;
  z-index:1;
  margin-top:10px;
  font-weight:600;
}

.gfl-public .member-rich p{
  margin:0 0 8px;
}

.gfl-public .member-rich p:last-child{
  margin-bottom:0;
}

.gfl-public .member-rich div{
  margin:0;
}

.gfl-public .member-rich div:last-child{
  margin-bottom:0;
}

.gfl-public .member-rich div:empty{
  display:none;
}

.gfl-public .member-rich div > br:only-child{
  display:none;
}

.gfl-public .member-rich ul{
  margin:0 0 10px 20px;
  padding:0;
}

.gfl-public .member-rich li{
  margin:0 0 4px;
}

.gfl-public .member-rich a{
  color:var(--gfl-primary-light);
  text-decoration:underline;
  word-break:break-word;
}

.gfl-public .member-sponsor-grid-wrap{
  display:grid;
  gap:12px;
}

.gfl-public .member-sponsor-intro{
  margin:0;
}

.gfl-public .member-sponsor-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
}

.gfl-public .member-sponsor-item{
  border:none;
  border-radius:0;
  min-height:72px;
  padding:2px 4px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:transparent;
}

.gfl-public .member-sponsor-item img{
  display:block;
  width:100%;
  max-height:62px;
  object-fit:contain;
}

.gfl-public .member-sponsor-link{
  display:block;
  width:100%;
}

.gfl-public .member-sponsor-fallback{
  font-weight:700;
}

.gfl-public .public-footer{
  position:relative;
  z-index:1;
  margin:6px 0 24px;
}

.gfl-public .public-footer__inner{
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  align-items:center;
  justify-content:center;
  padding-top:0;
  padding-bottom:0;
}

.gfl-public .public-footer a{
  color:var(--gfl-muted);
  font-size:.92rem;
  text-decoration:underline;
  text-underline-offset:2px;
}

.gfl-public .public-footer a:hover{
  color:var(--gfl-text);
}

@media (max-width: 860px){
  .gfl-public .gfl-site-header .container{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
  }

  .gfl-public .gfl-logo-svg{
    width:min(220px, 72vw);
  }

  .gfl-public .gfl-site-header .nav{
    width:100%;
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    align-items:start;
    gap:4px;
  }

  .gfl-public .gfl-site-header .nav a{
    display:block;
    text-align:center;
    margin:0;
    padding:6px 4px;
    font-size:clamp(.78rem, 3.1vw, .95rem);
    line-height:1.15;
  }

  .gfl-public .member-page-nav{
    border-radius:14px;
    padding:7px;
  }

  .gfl-public .member-page-nav__label{
    display:none;
  }

  .gfl-public .member-page-nav__item{
    min-height:36px;
    max-width:180px;
    padding:8px 11px;
    font-size:.88rem;
  }

  .gfl-public .member-result-hero,
  .gfl-public .member-updates-summary,
  .gfl-public .member-countdown,
  .gfl-public .member-progress,
  .gfl-public .member-card,
  .gfl-public .member-page-disclaimer{
    scroll-margin-top:78px;
  }

  .gfl-public .payment-mobile-only{
    display:flex;
  }

  .gfl-public .gfl-stepper{
    gap:8px;
  }

  .gfl-public .gfl-stepper .gfl-step{
    flex:0 0 min(46vw, 170px);
  }

  .gfl-public .gfl-stepper[aria-label="Anmälningsprogress"] .gfl-step{
    flex:unset;
  }

  .gfl-public .public-footer__inner{
    justify-content:flex-start;
  }
}

@media (max-width: 640px){
  .gfl-public .participant-grid{
    grid-template-columns:1fr;
  }

  .gfl-public .gfl-stepper[aria-label="Deltagarprogress"]{
    grid-template-columns:1fr;
  }

  .gfl-public .member-countdown{
    padding:14px 12px;
  }

  .gfl-public .member-countdown__details{
    grid-template-columns:1fr;
    gap:8px;
    margin-top:14px;
    padding-top:12px;
  }

  .gfl-public .member-countdown__detail{
    text-align:center;
  }

  .gfl-public .member-weather__intro{
    flex-direction:column;
    gap:6px;
  }

  .gfl-public .member-weather-profile{
    padding:8px;
  }

  .gfl-public .member-weather-profile__svg{
    min-height:150px;
  }

  .gfl-public .member-weather-profile__labels{
    gap:6px;
  }

  .gfl-public .member-weather-profile__label strong{
    font-size:.86rem;
  }

  .gfl-public .member-weather-profile__label span{
    font-size:.72rem;
  }

  .gfl-public .member-weather-points{
    grid-template-columns:1fr;
  }

  .gfl-public .member-runner-history{
    gap:12px;
  }

  .gfl-public .member-runner-history__greeting{
    font-size:1rem;
    line-height:1.45;
  }

  .gfl-public .member-runner-history-stats{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:12px 14px;
  }

  .gfl-public .member-runner-history-stat span{
    margin-bottom:2px;
    font-size:.86rem;
  }

  .gfl-public .member-runner-history-stat strong{
    font-size:1rem;
    line-height:1.3;
  }

  .gfl-public .member-runner-history-table-wrap{
    border-radius:12px;
  }

  .gfl-public .member-runner-history-table,
  .gfl-public .member-runner-history-table tbody,
  .gfl-public .member-runner-history-table tr,
  .gfl-public .member-runner-history-table td{
    display:block;
    width:100%;
  }

  .gfl-public .member-runner-history-table thead{
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0 0 0 0);
    white-space:nowrap;
  }

  .gfl-public .member-runner-history-table tr{
    padding:12px 14px;
  }

  .gfl-public .member-runner-history-table tr + tr{
    border-top:1px solid var(--gfl-separator);
  }

  .gfl-public .member-runner-history-table td{
    display:grid;
    grid-template-columns:minmax(74px, .34fr) minmax(0, 1fr);
    gap:10px;
    align-items:start;
    min-width:0;
    padding:6px 0;
    border:0;
    overflow-wrap:anywhere;
    font-size:.98rem;
    line-height:1.3;
  }

  .gfl-public .member-runner-history-table td::before{
    content:attr(data-label);
    min-width:0;
    color:var(--gfl-primary-light);
    font-weight:800;
    overflow-wrap:anywhere;
  }

  .gfl-public .member-runner-history-table td > span{
    min-width:0;
    overflow-wrap:anywhere;
  }

  .gfl-public .member-sponsor-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .gfl-public .member-sponsor-item{
    min-height:84px;
    padding:8px;
  }
}

.gfl-public .table{
  background:var(--gfl-surface);
  color:var(--gfl-text);
}
.gfl-public .table th,
.gfl-public .table td{
  border-color:var(--gfl-separator);
  color:var(--gfl-text);
}
.gfl-public .table thead th{
  background:color-mix(in srgb, var(--gfl-secondary-dark) 88%, #000 12%);
  color:var(--gfl-primary-light);
}
.gfl-public .table tbody tr:nth-child(even){background:color-mix(in srgb, var(--gfl-secondary-dark) 88%, #000 12%)}
.gfl-public .table tbody tr:hover{background:color-mix(in srgb, var(--gfl-primary-light) 14%, var(--gfl-secondary-dark) 86%)}

.gfl-public .gfl-payment-grid{display:grid;grid-template-columns:2fr 1fr;gap:12px}
.gfl-public .gfl-payment-column{display:grid;gap:12px}

@media (max-width: 860px){
  .gfl-public .gfl-payment-grid{grid-template-columns:1fr}
}

@media (prefers-reduced-motion: reduce){
  .gfl-public *,
  .gfl-public *::before,
  .gfl-public *::after{
    animation:none !important;
    transition:none !important;
    scroll-behavior:auto !important;
  }
}
