/* Shared visual language, drawn from the Gymnastics News page. */
:root{
  --brand-ink:#101d30;
  --brand-navy:#142843;
  --brand-night:#0a1628;
  --brand-red:#c32631;
  --brand-red-hover:#a81d2a;
  --brand-canvas:#f1f3f6;
  --brand-border:#dce2e9;
  --brand-muted:#687688;
  --brand-display:Impact,"Arial Narrow",Arial,sans-serif;
  --brand-body:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
}

html,body,.front-page,.login-screen{background:var(--brand-canvas);color:var(--brand-ink);font-family:var(--brand-body)}
.sidebar{
  background:linear-gradient(180deg,var(--brand-night) 0%,#132b4b 100%);
  color:#eef3f8;
  border-right:1px solid #233a54;
}
.brand{border-bottom-color:#ffffff26}
.brand-plaque{border-bottom-color:var(--brand-red)}
.brand-subline,.sidefoot{color:#b8c7d8}
.navgroup+.navgroup{border-top-color:#ffffff21}
.navlabel{display:flex;align-items:center;gap:8px;color:#b8c7d8;font-weight:900}
.navlabel::before{content:"";display:block;width:13px;height:2px;background:var(--brand-red);flex:none}
.nav button{color:#e1e9f2;gap:10px;padding:8px 10px;min-height:47px}
.nav .icon{
  width:30px;
  height:30px;
  flex:none;
  display:grid;
  place-items:center;
  border:1px solid #ffffff20;
  border-radius:6px;
  background:#ffffff0c;
  color:#dce6ef;
  font-size:0;
}
.nav .icon svg{display:block;width:18px;height:18px}
.nav button:hover,.nav button:focus-visible{background:#24415e;color:#fff}
.nav button:hover .icon,.nav button:focus-visible .icon{background:#ffffff1a;color:#fff}
.nav button:focus-visible{outline:2px solid #f3b0b6;outline-offset:2px}
.nav button.active,.navgroup.meet-scoring button.active{
  background:#203a56;
  color:#fff;
  box-shadow:inset 3px 0 var(--brand-red);
}
.navgroup.meet-scoring{background:#11253c;border-color:#314a63}
.navgroup.meet-scoring .navlabel{color:#f0c5ca}
.nav button.active .icon,.navgroup.meet-scoring button.active .icon{
  background:var(--brand-red);
  border-color:var(--brand-red);
  color:#fff;
}
.sidefoot{border-top-color:#ffffff26}
.topbar{border-bottom-color:var(--brand-border)}
.score-ticker{
  background:var(--brand-night);
  color:#f2f6fa;
  border-bottom:3px solid var(--brand-red);
}
.ticker-label{
  background:#132b4b;
  border-right:1px solid #ffffff26;
  color:#fff;
  font-family:var(--brand-display);
  font-size:16px;
  letter-spacing:.025em;
}
.ticker-item{color:#edf3f8;border-right-color:#ffffff26}
.ticker-item:hover,.ticker-item:focus-visible{background:#203b56;color:#fff}
.ticker-item:focus-visible{outline:2px solid #f3b0b6;outline-offset:-2px}
.ticker-meta{color:#efadb3}
.ticker-item strong{color:#f2f6fa}
.ticker-item em{font-family:var(--brand-display);font-size:17px;letter-spacing:.015em}
.ticker-vs{color:#9eafc1}
.ticker-logo{width:30px;height:30px;padding:2px;border-radius:4px;background:#fff;border:1px solid #ffffff66}
.ticker-tail{color:#b9c8d8}
.ticker-tail a{color:#fff}
.ticker-tail a:hover{color:#f2a5ac}
.content{color:var(--brand-ink)}
.subtitle,.tiny,.muted,.source,.front-section-head p{color:var(--brand-muted)}

/* Condensed sports headlines; body copy and controls stay highly legible. */
.pagehead h1,.front-hero h1,.front-section-head h2,.front-trust h2,
.login-brand-center h1,.login-access-content h2,.fan-scoreboard-top h1,
.fan-section-head h2,.fan-meet-switcher h2,.resource-hero h2,
.power-feature h2,.athlete-hero h2,.athlete-recruit-head h2,
.feature-side h2,.hero h2,.sectiontitle,.card h2,.front-service-grid h3,
.athlete-section-top h2,.athlete-recruit-block h3{
  font-family:var(--brand-display);
  font-weight:900;
  letter-spacing:.005em;
  line-height:1.05;
}
.pagehead h1{font-size:clamp(38px,3.8vw,52px);letter-spacing:-.025em}
.card h2{font-size:21px}
.front-service-grid h3{font-size:22px}
.feature-side h2{font-size:26px}
.stat,.fan-team-card>strong,.fan-leader-card strong,.fan-result-row>strong,
.front-feature-team strong,.athlete-performance-grid strong{
  font-family:var(--brand-display);
  font-variant-numeric:tabular-nums;
  letter-spacing:.015em;
}
.stat{font-size:40px;color:var(--brand-ink)}

/* Navy structure, red actions, and neutral white surfaces. */
.card,.front-service-grid article,.front-feature-card,.fan-meet-choice,
.fan-leader-card,.fan-results-card{border-color:var(--brand-border)}
.front-page,.news-page{background:var(--brand-canvas)}
.btn.primary,.front-signin,.login-enter{background:var(--brand-red);border-color:var(--brand-red);color:#fff}
.btn.primary:hover,.front-signin:hover,.login-enter:hover{background:var(--brand-red-hover);border-color:var(--brand-red-hover)}
.btn.dark{background:var(--brand-navy);border-color:var(--brand-navy);color:#fff}
.btn:not(.primary):not(.dark){color:var(--brand-navy);border-color:#cbd4de}
.feature-main .btn.feature-detail-btn{color:#fff;border-color:#ffffff66}
.feature-main .btn.feature-detail-btn:hover{background:#ffffff30}
a,.linkbtn,.athlete-roster-link,.rank-method-link{color:var(--brand-navy)}
a:hover,.linkbtn:hover,.athlete-roster-link:hover,.rank-method-link:hover{color:var(--brand-red)}
.login-access-top button,.login-access-foot button{color:var(--brand-navy)}
.login-access-top button:hover,.login-access-foot button:hover{color:var(--brand-red)}
.login-brand-center h1 em,.login-offering-grid b,.login-brand-foot span{color:#f0a5aa}
.login-access-content h2,.login-selected h3,.auth-help h3,.auth-current strong{color:var(--brand-ink)}
.login-lead,.auth-help p,.login-demo-note{color:var(--brand-muted)}
.auth-help button,.auth-text-button,.auth-guest{color:var(--brand-navy)}
.auth-help button:hover,.auth-text-button:hover,.auth-guest:hover{color:var(--brand-red)}
.auth-form input:focus,.auth-form select:focus,.auth-user-row select:focus,.auth-invitation input:focus{
  outline:3px solid #f4c6ca;
  border-color:var(--brand-red);
}
.auth-check input{accent-color:var(--brand-red)}
.auth-current,.auth-invitation{background:#f5f7f9;border-color:var(--brand-border)}
.login-role:hover,.login-role:focus-visible,.login-role.selected{border-color:var(--brand-red)}
.login-role.selected{background:#f9f1f2;box-shadow:0 0 0 2px #c326311a}
.login-role.selected:after{color:var(--brand-red)}
.login-role.selected .login-role-icon{background:var(--brand-navy)}
.login-selected{background:#f0f3f7;border-left-color:var(--brand-red)}
.field input:focus,.field select:focus,.field textarea:focus,
.athlete-editor textarea:focus,.athlete-recruit-form input:focus,
.athlete-recruit-form textarea:focus{outline:3px solid #f4c6ca;border-color:var(--brand-red)}
.table th{background:#f8fafc;color:#657489;border-bottom-color:var(--brand-border)}
.table td{border-bottom-color:#e6ebf0}
.table tbody tr:hover{background:#f7f9fb}
.notice:not(.warn):not(.error){border-left-color:var(--brand-navy);background:#edf1f6;color:#344b65}
.event time,.news-source-note a{color:var(--brand-red)}
.badge.live{background:#f9e8e9;color:#a81d2a}
.tabrow button.active{border-color:var(--brand-red);color:var(--brand-navy)}
.step.active{background:#f9e8e9;color:#9f1f29}
.prog span{background:var(--brand-red)}
.kpi{border-left-color:var(--brand-red)}
.keypad button:hover,.keypad button:focus-visible{background:#fbecee;border-color:var(--brand-red);outline-color:var(--brand-red)}

/* Use the News lead's restrained dark gradient for feature panels. */
.feature-main,.fan-scoreboard,.resource-hero,.power-feature,
.athlete-hero,.athlete-recruit-head,.front-hero,.login-brand-side{
  background:linear-gradient(115deg,#0a1628 0%,#132b4b 72%,#1b3e61 100%);
}
.feature-side{background:var(--brand-night);border-left-color:var(--brand-red)}
.fan-team-card{background:var(--brand-navy)}
.fan-meet-choice.active,.fan-event-tabs button.active{background:var(--brand-navy);border-color:var(--brand-navy);color:#fff}
.fan-meet-choice:hover,.fan-meet-choice:focus-visible,
.fan-leader-card:hover,.fan-leader-card:focus-visible{border-color:var(--brand-red);outline-color:var(--brand-red)}
.fan-leader-card strong,.fan-result-row>strong{color:var(--brand-navy)}
.front-service-grid article{border-top-color:var(--brand-navy)}
.front-service-grid article:last-child{border-top-color:var(--brand-red)}
.front-feature-foot{background:var(--brand-navy)}
.power-counting a{background:#eef2f6;color:var(--brand-navy)}
.power-table details a,.power-table summary{color:var(--brand-navy)}
.athlete-recruit-nav button:hover,.athlete-recruit-nav button:focus-visible{border-color:var(--brand-red)}

@media(max-width:760px){
  .pagehead h1{font-size:39px}
  .card h2{font-size:20px}
}
