:root{
  --navy:#0C2340;
  --navy-700:#13335c;
  --navy-300:#395a82;
  --orange:#FE5000;
  --orange-soft:#ff7333;
  --white:#ffffff;
  --paper:#f3ece0;
  --ink:#0C2340;

  --accent:var(--orange);
  --page-bg:var(--navy);
  --hero-bg:var(--navy);
  --hero-ink:#ffffff;
  --hero-ink-dim:#9fb2cb;
  --card-bg:#ffffff;
  --card-ink:#0C2340;
  --card-dim:#5b6b80;
  --card-border:rgba(12,35,64,.10);
  --rail-bg:#0C2340;
  --rail-ink:#ffffff;
  --section-bg:#0C2340;
  --display:"Saira Condensed", sans-serif;
  --body:"Saira", sans-serif;
  --row-pad:26px;
  --radius:10px;
  --maxw:920px;
}

/* ---------- VIBE: CLEAN & OFFICIAL ---------- */
[data-vibe="official"]{
  --page-bg:#eef1f5;
  --hero-bg:#0C2340;
  --section-bg:#eef1f5;
  --card-bg:#ffffff;
  --card-border:rgba(12,35,64,.12);
  --radius:6px;
  --row-pad:24px;
  --maxw:880px;
}
/* ---------- VIBE: VINTAGE COLLEGIATE ---------- */
[data-vibe="vintage"]{
  --page-bg:#e7dcc8;
  --hero-bg:#0C2340;
  --section-bg:#ece2d1;
  --card-bg:#f6efe1;
  --card-ink:#0C2340;
  --card-dim:#6b5c46;
  --card-border:rgba(12,35,64,.28);
  --rail-bg:#0C2340;
  --display:"Zilla Slab", serif;
  --radius:3px;
}

*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;}
body{
  font-family:var(--body);
  background:var(--page-bg);
  color:var(--card-ink);
  line-height:1.5;
  transition:background .3s ease;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:var(--maxw);margin:0 auto;}

/* ============ HERO ============ */
.hero{
  background:var(--hero-bg);
  color:var(--hero-ink);
  position:relative;
  overflow:hidden;
  padding:54px 28px 40px;
}
.hero::before{ /* faint giant stripe motif */
  content:"";position:absolute;inset:0;
  background:
    repeating-linear-gradient(115deg, transparent 0 38px, rgba(255,255,255,.022) 38px 76px);
  pointer-events:none;
}
[data-vibe="vintage"] .hero::before{opacity:.6;}
.hero-inner{position:relative;max-width:var(--maxw);margin:0 auto;display:flex;flex-direction:column;align-items:center;text-align:center;width:100%;}
.hero-inner > *{max-width:100%;}
.hero-logo{width:148px;height:auto;filter:drop-shadow(0 8px 24px rgba(0,0,0,.35));margin-bottom:8px;}
.eyebrow{
  font-family:var(--display);
  font-weight:700;letter-spacing:.42em;text-transform:uppercase;
  font-size:13px;color:var(--orange);padding-left:.42em;margin-bottom:10px;
}
.hero h1{
  font-family:var(--display);
  font-weight:900;line-height:.9;text-transform:uppercase;
  font-size:clamp(46px,11vw,108px);letter-spacing:-.01em;
}
[data-vibe="vintage"] .hero h1{font-weight:700;letter-spacing:.01em;}
.hero h1 .cc{
  display:block;font-size:clamp(20px,4.4vw,38px);letter-spacing:.22em;font-weight:700;
  color:var(--hero-ink);margin-top:8px;-webkit-text-stroke:0;
}
.season-line{
  display:flex;align-items:center;gap:16px;margin-top:22px;
  font-family:var(--display);font-weight:700;letter-spacing:.26em;text-transform:uppercase;font-size:15px;
  color:var(--hero-ink);white-space:nowrap;flex-wrap:wrap;
}
.season-line > span:nth-child(3){white-space:nowrap;}
.season-line .yr{color:var(--orange);font-size:19px;letter-spacing:.16em;}
.season-line .ln{height:2px;width:34px;background:var(--orange);}
.gobengals{
  margin-top:18px;font-family:var(--display);font-style:italic;font-weight:700;
  font-size:clamp(20px,4vw,28px);color:var(--orange);letter-spacing:.01em;white-space:nowrap;
}
[data-vibe="vintage"] .gobengals{font-style:italic;}

/* stat strip */
.stats{
  display:flex;justify-content:center;gap:0;margin-top:30px;
  border-top:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16);
}
.stat{padding:16px 26px;text-align:center;position:relative;flex:0 0 auto;}
.stat + .stat::before{content:"";position:absolute;left:0;top:18%;height:64%;width:1px;background:rgba(255,255,255,.16);}
.stat .num{font-family:var(--display);font-weight:800;font-size:34px;line-height:1;color:var(--orange);}
.stat .lbl{font-family:var(--display);font-weight:600;letter-spacing:.18em;text-transform:uppercase;font-size:11px;color:var(--hero-ink-dim);margin-top:6px;}

/* ============ SCHEDULE ============ */
.schedule{background:var(--section-bg);padding:46px 20px 30px;transition:background .3s ease;}
.sched-head{
  max-width:var(--maxw);margin:0 auto 22px;display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  color:var(--card-ink);
}
[data-vibe="athletic"] .schedule, [data-vibe="vintage"] .schedule{}
.sched-head h2{
  font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.04em;
  font-size:clamp(26px,5vw,40px);color:var(--card-ink);
}
[data-vibe="athletic"] .sched-head h2{color:#fff;}
[data-vibe="athletic"] .sched-head .legend{color:#9fb2cb;}
.sched-head .legend{display:flex;gap:16px;font-family:var(--display);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:11px;color:var(--card-dim);flex-wrap:wrap;}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px;}
.legend .d-invite{background:var(--navy-300);}
.legend .d-champ{background:var(--orange);}
.legend .d-travel{background:#b07a2e;}

.list{display:flex;flex-direction:column;gap:14px;}

.meet{
  background:var(--card-bg);color:var(--card-ink);
  border:1px solid var(--card-border);
  border-radius:var(--radius);
  display:grid;grid-template-columns:108px 1fr;
  overflow:hidden;
  box-shadow:0 1px 2px rgba(0,0,0,.04);
  transition:box-shadow .2s ease, transform .2s ease;
}
[data-vibe="vintage"] .meet{box-shadow:none;border-width:2px;}
.meet:hover{box-shadow:0 10px 30px rgba(0,0,0,.14);}
[data-vibe="athletic"] .meet:hover{box-shadow:0 14px 36px rgba(0,0,0,.40);}

/* date rail */
.rail{
  background:var(--rail-bg);color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:18px 8px;position:relative;text-align:center;
}
.rail .mo{font-family:var(--display);font-weight:700;letter-spacing:.2em;font-size:14px;color:var(--orange);}
.rail .dy{font-family:var(--display);font-weight:900;font-size:46px;line-height:.92;}
.rail .dy small{font-size:24px;font-weight:700;}
.rail .wd{font-family:var(--display);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:10.5px;color:#9fb2cb;margin-top:3px;}
.rail .idx{position:absolute;top:8px;left:9px;font-family:var(--display);font-weight:700;font-size:11px;color:rgba(255,255,255,.32);}

/* body */
.body{padding:var(--row-pad);display:flex;flex-direction:column;gap:2px;min-width:0;}
.body-row{display:flex;gap:22px;align-items:flex-start;}
.body-info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px;}
.actions{flex:0 0 200px;display:flex;flex-direction:column;gap:8px;padding-top:2px;}
.actions-h{font-family:var(--display);font-weight:700;letter-spacing:.16em;text-transform:uppercase;font-size:10px;color:var(--card-dim);margin-bottom:1px;}
.signup{
  display:flex;flex-direction:column;gap:2px;text-decoration:none;
  background:var(--card-bg);border:1.5px solid var(--accent);border-radius:8px;
  padding:11px 14px;transition:background .16s ease, transform .12s ease, box-shadow .16s ease;
}
[data-vibe="vintage"] .signup{border-radius:3px;}
.signup .su-ttl{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.03em;font-size:14px;color:var(--card-ink);line-height:1.05;}
.signup .su-sub{font-family:var(--display);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:10.5px;color:var(--accent);}
.signup:hover{background:var(--accent);box-shadow:0 6px 18px rgba(254,80,0,.28);transform:translateY(-1px);}
.signup:hover .su-ttl,.signup:hover .su-sub{color:#fff;}
.signup.placeholder{border-style:dashed;border-color:var(--card-border);}
.signup.placeholder .su-sub{color:var(--card-dim);}
.signup.placeholder:hover{background:var(--card-ink);border-color:var(--card-ink);box-shadow:0 6px 18px rgba(12,35,64,.28);}
.signup.placeholder:hover .su-ttl,.signup.placeholder:hover .su-sub{color:#fff;}
.tagrow{display:flex;align-items:center;gap:8px;margin-bottom:7px;flex-wrap:wrap;}
.tag{
  font-family:var(--display);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:10.5px;
  padding:4px 9px;border-radius:999px;line-height:1;
}
[data-vibe="vintage"] .tag{border-radius:2px;}
.tag.invite{background:rgba(57,90,130,.14);color:var(--navy-300);}
.tag.champ{background:var(--orange);color:#fff;}
.tag.travel{background:rgba(176,122,46,.16);color:#9c6a1e;}
.tag.ghost{background:transparent;color:var(--card-dim);border:1px solid var(--card-border);}
.meet h3{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.01em;font-size:clamp(24px,4.4vw,32px);line-height:1;}
.meet .loc{display:block;margin-top:9px;font-size:15px;font-weight:600;color:var(--card-ink);text-decoration:none;}
.meet .loc .city{color:var(--accent);}
.meet a.loc:hover .city{text-decoration:underline;}
.meet .addr{display:inline-flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:13.5px;color:var(--card-dim);margin-top:3px;text-decoration:none;}
.meet a.addr:hover{color:var(--card-ink);}
.meet .addr .dir{font-family:var(--display);font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:10.5px;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:3px 9px;line-height:1;white-space:nowrap;transition:background .15s ease,color .15s ease;}
.meet a.addr:hover .dir{background:var(--accent);color:#fff;}
[data-vibe="vintage"] .meet .addr .dir{border-radius:2px;}

.startbar{
  display:flex;align-items:center;gap:10px;margin-top:14px;
  font-family:var(--display);
}
.startbar{flex-wrap:nowrap;}
.startbar .lab{font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:11px;color:var(--card-dim);white-space:nowrap;}
.startbar .val{font-weight:800;font-size:20px;color:var(--card-ink);white-space:nowrap;}
.startbar .est{font-family:var(--display);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:10px;color:var(--card-dim);border:1px solid var(--card-border);border-radius:999px;padding:3px 7px;white-space:nowrap;}
.startbar .val.tba{color:var(--card-dim);font-weight:700;}

.note{margin-top:12px;font-size:13.5px;color:var(--card-dim);border-left:3px solid var(--accent);padding-left:12px;line-height:1.45;}

/* race schedule */
.races{margin-top:16px;border-top:1px dashed var(--card-border);padding-top:14px;}
.races-h{display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none;}
.races-h .ttl{font-family:var(--display);font-weight:700;letter-spacing:.16em;text-transform:uppercase;font-size:11px;color:var(--card-dim);}
.races-h .chev{margin-left:auto;color:var(--card-dim);transition:transform .2s ease;font-size:13px;}
.races-h.open .chev{transform:rotate(180deg);}
.races-grid{margin-top:12px;display:grid;grid-template-columns:1fr;gap:0;}
.rrow{display:grid;grid-template-columns:92px 1fr;gap:14px;padding:7px 0;border-bottom:1px solid var(--card-border);align-items:baseline;}
.rrow:last-child{border-bottom:none;}
.rrow .t{font-family:var(--display);font-weight:800;font-size:15px;color:var(--accent);letter-spacing:.01em;white-space:nowrap;}
.rrow .e{font-size:14px;font-weight:600;color:var(--card-ink);}
.rrow.award .e{color:var(--card-dim);font-weight:600;font-style:italic;}
.collapsed .races-grid{display:none;}

/* ============ FOOTER ============ */
.foot{background:var(--navy);color:#fff;padding:40px 24px 48px;text-align:center;}
.foot .logo{width:60px;margin:0 auto 14px;display:block;}
.foot .fb{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:30px;letter-spacing:.02em;}
.foot .fb em{color:var(--orange);font-style:italic;}
.foot .sub{font-family:var(--display);font-weight:600;letter-spacing:.2em;text-transform:uppercase;font-size:12px;color:#9fb2cb;margin-top:8px;}

/* density */
[data-density="compact"]{--row-pad:18px;}
[data-density="comfy"]{--row-pad:34px;}

/* mobile */
@media (max-width:680px){
  .body-row{flex-direction:column;gap:16px;}
  .actions{flex:1 1 auto;width:100%;flex-direction:row;flex-wrap:wrap;}
  .actions-h{width:100%;margin-bottom:-2px;}
  .signup{flex:1 1 130px;}
}
@media (max-width:620px){
  .meet{grid-template-columns:84px 1fr;}
  .rail .dy{font-size:36px;}
  .rail{padding:14px 6px;}
  .body{padding:18px 16px;}
  .stats{flex-wrap:wrap;}
  .hero{padding:40px 18px 32px;}
  .rrow{grid-template-columns:80px 1fr;gap:10px;}
}

#tweaks-root{position:fixed;z-index:9000;}

/* Save-as-PDF button */
.pdf-btn{
  position:fixed;top:16px;right:16px;z-index:8000;
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--display);font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:13px;
  color:#fff;background:var(--orange);border:none;border-radius:999px;
  padding:11px 16px;cursor:pointer;white-space:nowrap;
  box-shadow:0 6px 20px rgba(0,0,0,.32);
  transition:background .18s ease, transform .12s ease, box-shadow .18s ease;
}
.pdf-btn:hover{background:#0C2340;box-shadow:0 8px 26px rgba(0,0,0,.42);}
.pdf-btn:active{transform:translateY(1px);}
.pdf-btn .ic{font-size:16px;line-height:1;font-weight:400;}
.pdf-btn .kbd{
  font-family:var(--body);font-weight:600;letter-spacing:.02em;text-transform:none;font-size:11px;
  background:rgba(255,255,255,.22);border-radius:5px;padding:2px 6px;line-height:1.3;
}
@media (max-width:560px){ .pdf-btn .kbd{display:none;} .pdf-btn{padding:10px 14px;font-size:12px;} }

/* ============ PRINT — one-page Letter portrait ============ */
@page{ size:Letter portrait; margin:0.45in; }
@media print{
  *{ -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
  html,body{ background:#fff !important; }
  .twk-panel, [data-omelette-chrome]{ display:none !important; }
  .pdf-btn{ display:none !important; }

  /* hero → tight horizontal navy band */
  .hero{ padding:14px 20px !important; }
  .hero::before{ display:none; }
  .hero-inner{ flex-direction:row !important; align-items:center !important; justify-content:center !important; gap:20px; text-align:left !important; }
  .hero-logo{ width:78px !important; margin:0 !important; flex:0 0 auto; }
  .eyebrow{ font-size:9.5px; margin-bottom:3px; padding-left:0; }
  .hero h1{ font-size:38px !important; }
  .hero h1 .cc{ font-size:15px !important; margin-top:2px; }
  .season-line{ margin-top:7px; font-size:11px; justify-content:flex-start; }
  .season-line .ln:last-child{ display:none; }
  .season-line .yr{ font-size:13px; }
  .gobengals{ font-size:16px !important; margin-top:5px; }
  .stats{ display:none !important; }

  /* schedule → white field, two columns */
  .schedule{ background:#fff !important; padding:12px 0 0 !important; }
  .sched-head{ margin-bottom:8px !important; }
  .sched-head h2{ font-size:20px !important; color:var(--navy) !important; }
  .sched-head .legend{ color:#5b6b80 !important; font-size:9px; gap:10px; }
  .list{ display:block !important; column-count:2; column-gap:14px; }

  .meet{
    break-inside:avoid; page-break-inside:avoid;
    box-shadow:none !important; border:1px solid rgba(12,35,64,.28) !important;
    margin:0 0 8px 0; grid-template-columns:52px 1fr !important;
    width:100%;
  }
  .rail{ padding:7px 4px !important; }
  .rail .mo{ font-size:10px; }
  .rail .dy{ font-size:26px !important; }
  .rail .dy small{ font-size:14px; }
  .rail .wd{ font-size:7.5px; }
  .rail .idx{ font-size:8.5px; top:4px; left:5px; }

  .body{ padding:8px 11px !important; }
  .tagrow{ margin-bottom:3px !important; }
  .tag{ font-size:8px; padding:2px 6px; }
  .meet h3{ font-size:15px !important; }
  .meet .loc{ font-size:11.5px !important; margin-top:4px !important; }
  .meet .addr{ font-size:10px !important; margin-top:1px !important; }
  .meet .addr .dir{ display:none !important; }
  .startbar{ margin-top:5px !important; }
  .startbar .lab{ font-size:8.5px; }
  .startbar .val{ font-size:14px !important; }
  .startbar .est{ font-size:7.5px; padding:2px 5px; }
  .note{ font-size:9.5px !important; margin-top:6px !important; }

  /* race-by-race tables & sign-ups stay on screen only */
  .races{ display:none !important; }
  .actions{ display:none !important; }
  .body-row{ display:block !important; }

  .foot{ padding:10px !important; page-break-inside:avoid; }
  .foot .logo{ display:none !important; }
  .foot .fb{ font-size:18px !important; }
  .foot .sub{ font-size:9px; margin-top:4px; }
}
.collapsed .races-grid{display:none;}
