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:hidden;
}

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;
}

.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-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);
}

.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 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:#93c5fd;
  color:#dbeafe;
  background:#1e3a8a;
}

.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;
}

@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 .payment-mobile-only{
    display:flex;
  }
}

.gfl-public .table thead th{background:var(--gfl-surface)}
.gfl-public .table tbody tr:nth-child(even){background:color-mix(in srgb, var(--gfl-secondary-dark) 88%, #000 12%)}

.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;
  }
}
