:root{--bg:#0b0e13;--bg2:#11161d;--panel:#171d26;--panel2:#1d2530;--line:#2c3542;--text:#f3f5f7;--muted:#98a2b0;--accent:#e43d46;--accent2:#ff626a;--gtp:#a699ff;--pro:#ff8d93;--gtd:#f0d77a;--shadow:0 18px 45px rgba(0,0,0,.24)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5}a{color:inherit}.content-inner,.header-inner{width:min(1180px,calc(100% - 40px));margin:auto}
.site-header{position:sticky;top:0;z-index:50;background:rgba(11,14,19,.94);border-bottom:1px solid rgba(255,255,255,.06);backdrop-filter:blur(14px)}.header-inner{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none}.brand>span:last-child{display:flex;flex-direction:column}.brand strong{font-size:14px;text-transform:uppercase;letter-spacing:.08em}.brand small{color:var(--muted);font-size:11px}.brand-mark{display:grid;place-items:center;width:47px;height:38px;border-radius:8px;background:var(--accent);color:#fff;font-size:15px;font-weight:900;letter-spacing:.08em;transform:skewX(-8deg)}nav{display:flex;overflow-x:auto}.nav-link{text-decoration:none;color:var(--muted);font-size:13px;font-weight:750;padding:27px 11px 23px;border-bottom:3px solid transparent;white-space:nowrap}.nav-link:hover,.nav-link.active{color:var(--text);border-bottom-color:var(--accent)}
.hero{min-height:475px;display:grid;align-items:center;background:radial-gradient(circle at 80% 18%,rgba(228,61,70,.27),transparent 31%),radial-gradient(circle at 18% 83%,rgba(141,120,255,.14),transparent 30%),linear-gradient(135deg,#131a23,#0b0e13 58%,#17141a);border-bottom:1px solid var(--line)}.hero .content-inner{padding:74px 0}.eyebrow{display:block;color:var(--accent2);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.18em}.hero h1,.page-hero h1,.driver-hero h1{margin:9px 0 12px;font-size:clamp(42px,6vw,76px);line-height:.98;letter-spacing:-.045em}.hero p{max-width:680px;margin:0;color:#c9d0d8;font-size:20px}.hero-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:27px}.hero-pills span{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.03);color:#dce1e7;font-size:11px;font-weight:800}.hero-actions{display:flex;gap:9px;margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:41px;padding:0 16px;border-radius:8px;border:1px solid transparent;text-decoration:none;font-size:13px;font-weight:800}.button.primary{background:var(--accent);color:#fff}.button.primary:hover{background:var(--accent2)}.button.ghost{background:rgba(255,255,255,.025);border-color:var(--line)}
.page-hero,.driver-hero{background:linear-gradient(110deg,rgba(228,61,70,.11),transparent 44%),var(--bg2);border-bottom:1px solid var(--line)}.page-hero .content-inner{padding:57px 0 47px}.page-hero h1{font-size:clamp(38px,5vw,61px)}.page-hero p,.driver-hero p{max-width:760px;color:var(--muted)}.content-section{padding:56px 0}.content-section.alt{background:var(--bg2);border-block:1px solid rgba(255,255,255,.035)}.section-heading{margin-bottom:21px}.section-heading h2{margin:5px 0;font-size:29px;letter-spacing:-.025em}.section-heading p{max-width:760px;margin:0;color:var(--muted)}
.event-card,.leader-card,.feature-card,.round-card,.result-card,.register-card,.profile-panel{border:1px solid var(--line);border-radius:15px;background:linear-gradient(180deg,var(--panel2),var(--panel));box-shadow:var(--shadow)}.event-card{display:grid;grid-template-columns:80px minmax(220px,1.4fr) minmax(260px,1fr) auto;align-items:center;gap:22px;padding:25px}.event-number{color:var(--accent);font-size:22px;font-weight:900}.event-card h3,.leader-card h3,.feature-card h3,.round-card h3,.result-card h3,.register-card h2{margin:5px 0}.event-card p,.round-card p,.result-card p,.muted{margin:0;color:var(--muted)}.event-dates{display:grid;grid-template-columns:1fr 1fr;gap:9px}.event-dates div{padding:10px 11px;border-radius:9px;background:rgba(255,255,255,.04)}.event-dates small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.07em}.event-dates strong{display:block;margin-top:3px;font-size:13px}
.leader-grid,.split-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.leader-card,.feature-card{padding:22px}.leader-label{display:block;margin-top:17px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.leader-card h3{font-size:20px}.leader-card>strong{display:block;font:800 24px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.leader-card>small{color:var(--muted)}.giant-stat{margin-top:11px;font-size:48px;font-weight:900;line-height:1;letter-spacing:-.05em}.member-stack,.mini-leaders{display:grid;gap:7px;margin-top:19px}.member-stack>div{display:flex;align-items:center;gap:7px;font-size:13px}.mini-leader{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.06)}.mini-leader>div{display:grid;gap:4px}.winner-line{display:flex;align-items:center;gap:11px;margin-top:17px}.winner-line>span{display:grid;place-items:center;min-width:45px;height:41px;border-radius:8px;background:var(--accent);font-weight:900}.winner-line>div{display:grid;gap:4px}.text-link,.driver-link,.back-link{color:#f3f5f7;text-decoration:none}.text-link{display:inline-block;margin-top:17px;color:#ff858b;font-size:13px;font-weight:800}.text-link:hover,.driver-link:hover,.back-link:hover{text-decoration:underline}
.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}.quick-grid>a{display:grid;gap:4px;padding:19px;border:1px solid var(--line);border-radius:12px;background:var(--panel);text-decoration:none}.quick-grid>a:hover{border-color:#4b5869;transform:translateY(-1px)}.quick-grid span{color:var(--accent);font-size:10px;font-weight:900}.quick-grid strong{font-size:18px}.quick-grid small{color:var(--muted)}
.class-badge{display:inline-flex;align-items:center;width:max-content;min-height:23px;padding:0 8px;border-radius:6px;background:#303947;color:#fff;border:1px solid transparent;font-size:10px;font-weight:900;white-space:nowrap}.class-badge.gtp{background:rgba(141,120,255,.18);color:var(--gtp);border-color:rgba(141,120,255,.38)}.class-badge.gtd-pro{background:rgba(255,91,100,.14);color:var(--pro);border-color:rgba(255,91,100,.35)}.class-badge.gtd{background:rgba(230,199,92,.13);color:var(--gtd);border-color:rgba(230,199,92,.34)}.class-badge.gtp-ooc,.class-badge.gt3-ooc{background:rgba(152,162,176,.1);color:#bac2cc;border:1px dashed rgba(152,162,176,.45)}
.tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:20px}.tab-button,.metric-tabs button,.choice-row button{border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);padding:9px 13px;font:inherit;font-size:12px;font-weight:800;cursor:pointer}.tab-button.active,.metric-tabs button.active,.choice-row button.selected{background:var(--accent);border-color:var(--accent);color:#fff}.tab-panel{display:none}.tab-panel.active{display:block}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel)}table{width:100%;min-width:760px;border-collapse:collapse}th,td{padding:13px 14px;border-bottom:1px solid rgba(255,255,255,.06);text-align:left;font-size:13px}th{background:rgba(255,255,255,.025);color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}tbody tr:hover{background:rgba(255,255,255,.025)}.position{font-weight:900}.points,.lap-time{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:800}.ooc{opacity:.7}
.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-bottom:21px}.week-strip>div{min-height:61px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;color:#667181;font-size:10px;font-weight:900}.week-strip .active{color:var(--text);background:var(--panel)}.week-strip small{display:block;font-size:10px}.round-grid,.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.round-card,.result-card{padding:20px}.round-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.status{padding:5px 8px;border-radius:999px;background:rgba(152,162,176,.1);color:var(--muted);font-size:9px;font-weight:900;text-transform:uppercase}.status.complete{background:rgba(73,197,138,.12);color:#72dda5}
.register-event{display:flex;align-items:center;gap:17px;margin-bottom:17px;padding:17px 19px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.register-event h3,.register-event p{margin:0}.register-event p{color:var(--muted)}.register-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.register-card{padding:23px}.register-card p{color:var(--muted)}.choice-row{display:flex;gap:7px;flex-wrap:wrap;margin:22px 0 13px}.choice-row button:disabled{cursor:not-allowed;opacity:.82}.register-card>small{color:#8490a0}.info-strip{display:flex;align-items:center;gap:13px;flex-wrap:wrap;margin-top:18px;padding:15px 17px;border:1px solid var(--line);border-radius:10px;background:var(--panel);font-size:12px}.info-strip span{color:var(--muted)}
.leaderboard-toolbar{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:21px}.leaderboard-toolbar label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase}.leaderboard-toolbar select{min-width:min(470px,90vw);padding:10px 11px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font:inherit}.leaderboard-toolbar>div{display:grid;text-align:right}.leaderboard-toolbar small{color:var(--muted)}.track-panel{display:none}.track-panel.active{display:block}.leaderboard-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:13px}.leaderboard-head h2{margin:4px 0 0;font-size:28px}.metric-tabs{display:flex;gap:6px}.metric-tabs button:disabled{cursor:not-allowed}
.empty-state{padding:40px 21px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);text-align:center}.empty-state.small{padding:14px}.driver-hero{padding:54px 0 43px}.back-link{display:inline-block;margin-bottom:23px;color:var(--muted);font-size:12px;font-weight:800}.driver-identity{display:flex;align-items:center;gap:21px}.monogram{display:grid;place-items:center;width:91px;height:91px;border-radius:18px;background:linear-gradient(135deg,var(--accent),#8d2a35);font-size:30px;font-weight:900;box-shadow:var(--shadow)}.driver-identity h1{margin:4px 0;font-size:clamp(34px,5vw,56px)}.driver-identity p{margin:0}.profile-stat-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;margin-bottom:22px}.profile-stat{min-height:92px;display:flex;flex-direction:column;justify-content:center;padding:13px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.profile-stat span{color:var(--muted);font-size:10px;text-transform:uppercase}.profile-stat strong{margin-top:5px;font-size:20px}.profile-panel{padding:19px;margin-top:17px}
footer{min-height:108px;display:flex;align-items:center;justify-content:center;gap:11px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}footer strong{color:var(--text)}
@media(max-width:1000px){.header-inner{align-items:flex-start;flex-direction:column;padding:13px 0 0}nav{width:100%}.nav-link{padding-top:11px}.event-card{grid-template-columns:70px 1fr}.event-dates,.event-card>.button{grid-column:2}.split-grid,.round-grid,.result-grid{grid-template-columns:1fr 1fr}.profile-stat-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:720px){.content-inner,.header-inner{width:min(100% - 26px,1180px)}.hero{min-height:420px}.leader-grid,.split-grid,.quick-grid,.round-grid,.result-grid,.register-grid{grid-template-columns:1fr}.event-card{display:block}.event-dates{margin:16px 0}.week-strip{grid-template-columns:repeat(4,1fr)}.leaderboard-toolbar,.leaderboard-head{align-items:stretch;flex-direction:column}.leaderboard-toolbar>div{text-align:left}.profile-stat-grid{grid-template-columns:repeat(2,1fr)}.driver-identity{align-items:flex-start;flex-direction:column}footer{flex-direction:column}}

.season-tabs {
  margin-bottom: 24px;
}

.season-tabs .tab-button {
  white-space: nowrap;
}


/* =========================================================
   LIVE REGISTRATION
   ========================================================= */
.registration-live-banner{display:flex;align-items:center;gap:10px;margin-bottom:18px;padding:13px 15px;border:1px solid rgba(73,197,138,.28);border-radius:10px;background:rgba(73,197,138,.07);font-size:12px}.registration-live-banner span:last-child{color:var(--muted)}.live-dot{width:9px;height:9px;border-radius:50%;background:#49c58a;box-shadow:0 0 0 5px rgba(73,197,138,.09)}
.registration-selectors{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:12px}.registration-selectors label{display:grid;gap:6px;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.registration-selectors select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text);font:inherit;text-transform:none;letter-spacing:normal}.registration-driver-class{min-height:32px;display:flex;align-items:center;gap:9px;margin-bottom:14px;color:var(--text);font-size:13px;font-weight:800}.live-register-grid{margin-bottom:14px}.registration-choice button{min-width:110px}.registration-choice button[data-value="UNSET"]{background:transparent}.registration-choice button.selected[data-value="GOING"],.registration-choice button.selected[data-value="RACING"]{background:#23875a;border-color:#49c58a;color:#fff}.registration-choice button.selected[data-value="MAYBE"]{background:#8a6421;border-color:#f1b54a;color:#fff}.registration-choice button.selected[data-value="NOT ATTENDING"]{background:#782d33;border-color:#e43d46;color:#fff}.registration-choice button.selected[data-value="UNSET"]{background:#343d49;border-color:#536070;color:#fff}.registration-save-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:26px;padding:15px 17px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.registration-message{color:var(--muted);font-size:13px}.registration-message.success{color:#6fdca4}.registration-message.error{color:#ff8c93}.registration-summary{display:grid;gap:14px;margin-bottom:28px}.registration-total-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.registration-total-card{display:grid;gap:4px;padding:16px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.registration-total-card span{color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.registration-total-card strong{font-size:28px}.registration-total-card small{color:var(--muted)}.registration-class-table table{min-width:800px}.registration-entry-heading{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:11px}.registration-entry-heading h2{margin:4px 0 0}.registration-status{display:inline-flex;align-items:center;min-height:25px;padding:0 8px;border-radius:999px;background:rgba(152,162,176,.10);color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.registration-status.going,.registration-status.racing{background:rgba(73,197,138,.12);color:#75dbaa}.registration-status.maybe{background:rgba(241,181,74,.12);color:#f1c66f}.registration-status.not-attending{background:rgba(228,61,70,.12);color:#ff858b}.registration-security-note{display:grid;gap:4px;margin-top:18px;padding:14px 16px;border-left:3px solid #596576;background:rgba(255,255,255,.025);color:var(--muted);font-size:12px}.registration-security-note strong{color:var(--text)}
@media(max-width:720px){.registration-selectors{grid-template-columns:1fr}.registration-save-row{align-items:stretch;flex-direction:column}.registration-save-row .button{width:100%}.registration-total-grid{grid-template-columns:repeat(2,1fr)}.registration-entry-heading{align-items:flex-start;flex-direction:column}}


/* PRACTICE HOT LAP / AVERAGE LAP */
.practice-metric-panel{display:none}
.practice-metric-panel.active{display:block}
.practice-metric-note{margin-bottom:12px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.025);color:var(--muted);font-size:12px}
.metric-tabs button{cursor:pointer}


/* ============================================================
   PUBLIC DRIVER AUTH / SUPABASE REGISTRATION
   ============================================================ */

.registration-auth-panel {
  margin: 0 0 18px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel);
}

#registration-auth-signed-out,
#registration-auth-signed-in {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 22px;
}

#registration-auth-signed-in[hidden],
#registration-auth-signed-out[hidden] {
  display: none;
}

.registration-auth-copy {
  max-width: 520px;
}

.registration-auth-copy h2,
#registration-auth-signed-in h2 {
  margin: 3px 0 6px;
}

.registration-auth-copy p,
#registration-auth-signed-in p {
  margin: 0;
  color: var(--muted);
}

.registration-auth-fields {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) minmax(170px, 1fr);
  gap: 9px;
  min-width: min(100%, 520px);
}

.registration-auth-fields label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.registration-auth-fields input {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-2);
  color: var(--text);
  padding: 11px 12px;
  font: inherit;
}

.registration-auth-actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.registration-auth-message {
  min-height: 20px;
  margin-top: 11px;
  color: var(--muted);
  font-size: 12px;
}

.registration-auth-message.success {
  color: var(--success);
}

.registration-auth-message.warning {
  color: #f0ad4e;
}

.registration-auth-message.error {
  color: var(--accent);
}

.registration-choice button:disabled,
#save-registration:disabled {
  cursor: not-allowed;
  opacity: .45;
}

@media (max-width: 850px) {
  #registration-auth-signed-out,
  #registration-auth-signed-in {
    align-items: stretch;
    flex-direction: column;
  }

  .registration-auth-fields {
    min-width: 0;
    width: 100%;
    grid-template-columns: 1fr;
  }

  .registration-auth-actions {
    grid-column: 1;
    justify-content: stretch;
  }

  .registration-auth-actions .button {
    flex: 1;
  }
}


/* Account protection */
.turnstile-wrap{margin:14px 0 4px;min-height:66px;max-width:420px}.security-config-warning{border:1px solid rgba(240,173,78,.45);background:rgba(240,173,78,.08);border-radius:10px;padding:12px 14px;color:#f0ad4e}.button.text-button{background:transparent;border-color:transparent;color:#a8adb7;padding-left:8px;padding-right:8px}.button.text-button:hover{color:#f5f5f5;background:rgba(255,255,255,.04)}.narrow-security-page{max-width:760px}.security-card{background:#20252d;border:1px solid #343b47;border-radius:16px;padding:24px}.security-card h2{margin-top:6px}.security-card label{display:grid;gap:7px;margin:14px 0;color:#a8adb7;font-size:.9rem}.security-card input,.security-card select{width:100%;box-sizing:border-box;background:#15191f;color:#f5f5f5;border:1px solid #343b47;border-radius:10px;padding:11px 12px;font:inherit}.security-status,.security-muted,.password-rules{color:#a8adb7;line-height:1.55}.security-status.success{color:#3cb371}.security-status.error{color:#ff6b78}.password-rules{margin:8px 0 16px;font-size:.85rem}.admin-security-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.admin-account-card{margin-top:18px}.admin-account-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.admin-link-controls{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto auto;gap:10px;align-items:end;margin:20px 0}.admin-link-controls label{margin:0}.mfa-qr{width:min(280px,100%);background:#fff;border-radius:12px;padding:12px;margin:14px 0}.mfa-secret{margin:12px 0;padding:12px;border:1px solid #343b47;border-radius:10px;background:#15191f;word-break:break-all}.mfa-secret code{display:block;margin-top:6px;color:#f5f5f5}@media(max-width:900px){.admin-security-grid{grid-template-columns:1fr}.admin-link-controls{grid-template-columns:1fr}.admin-account-head{display:grid}}
