:root{
  --gare-blu:#0b3fae;
  --gare-blu-scuro:#082f6b;
  --gare-giallo:#ffd400;
  --gare-bg:#f3f6fb;
  --gare-testo:#26364d;
  --gare-bordo:#dfe6f0;
  --gare-verde:#16803c;
  --gare-rosso:#b42318;
}

*{box-sizing:border-box}

body.gare-public-page{
  margin:0;
  background:var(--gare-bg);
  color:var(--gare-testo);
  font-family:Arial,Helvetica,sans-serif;
}

.gare-container{
  width:min(1180px,calc(100% - 32px));
  margin:0 auto;
}

.gare-header{
  background:#fff;
  border-bottom:1px solid var(--gare-bordo);
  position:sticky;
  top:0;
  z-index:20;
}

.gare-header-inner{
  width:min(1180px,calc(100% - 32px));
  min-height:82px;
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:16px;
}

.gare-brand img{
  width:68px;
  height:58px;
  object-fit:contain;
  display:block;
}

.gare-header-copy{
  display:flex;
  flex-direction:column;
  line-height:1.15;
}

.gare-header-copy span{
  font-size:.82rem;
  color:#627087;
}

.gare-header-copy strong{
  color:var(--gare-blu-scuro);
  font-size:1.08rem;
}

.gare-home-link{
  margin-left:auto;
  text-decoration:none;
  color:var(--gare-blu);
  font-weight:800;
  border:1px solid #cfd8e6;
  border-radius:8px;
  padding:10px 14px;
  background:#fff;
}

.gare-hero{
  background:linear-gradient(135deg,var(--gare-blu-scuro),var(--gare-blu));
  color:#fff;
  padding:58px 0 52px;
}

.gare-kicker{
  margin:0 0 8px;
  color:var(--gare-giallo);
  text-transform:uppercase;
  font-size:.82rem;
  letter-spacing:.1em;
  font-weight:900;
}

.gare-hero h1{
  margin:0;
  font-size:clamp(2rem,5vw,3.4rem);
}

.gare-intro{
  max-width:720px;
  margin:14px 0 0;
  line-height:1.65;
  font-size:1.05rem;
}

.gare-section{
  padding:42px 0 60px;
}

.gare-toolbar{
  background:#fff;
  border-radius:14px;
  padding:20px;
  box-shadow:0 8px 24px rgba(8,47,107,.08);
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  margin-bottom:24px;
}

.gare-toolbar h2{
  margin:0 0 5px;
  color:var(--gare-blu-scuro);
}

.gare-toolbar p{
  margin:0;
  color:#637188;
  line-height:1.5;
}

.gare-filters{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.gare-filters label{
  min-width:190px;
}

.gare-filters span{
  display:block;
  font-size:.78rem;
  font-weight:800;
  color:#526176;
  margin:0 0 5px;
}

.gare-filters select{
  width:100%;
  padding:11px 12px;
  border:1px solid #cfd8e6;
  border-radius:8px;
  background:#fff;
  font:inherit;
}

.gare-message{
  background:#fff;
  border:1px solid var(--gare-bordo);
  border-radius:12px;
  padding:24px;
  text-align:center;
  color:#617086;
}

.gare-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.gara-card{
  background:#fff;
  border-radius:14px;
  overflow:hidden;
  border:1px solid #e1e7f0;
  box-shadow:0 8px 22px rgba(8,47,107,.07);
}

.gara-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:13px 16px;
  background:#f7f9fd;
  border-bottom:1px solid #e6ebf3;
}

.gara-data{
  font-weight:900;
  color:var(--gare-blu-scuro);
}

.gara-stato{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:5px 9px;
  font-size:.75rem;
  font-weight:900;
}

.gara-stato.programmata{background:#e8f0ff;color:#174ea6}
.gara-stato.disputata{background:#e7f7ec;color:#166534}
.gara-stato.rinviata{background:#fff7dd;color:#8a6400}
.gara-stato.annullata{background:#fff0f0;color:#8a1c13}

.gara-card-body{
  padding:18px 18px 20px;
}

.gara-campionato{
  font-size:.82rem;
  color:#67758a;
  font-weight:800;
  margin-bottom:13px;
}

.gara-squadre{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:10px;
  align-items:center;
}

.gara-team{
  font-weight:900;
  color:var(--gare-blu-scuro);
  line-height:1.25;
}

.gara-team.right{text-align:right}

.gara-vs{
  color:#8590a1;
  font-size:.78rem;
  font-weight:900;
}

.gara-risultato{
  margin-top:16px;
  padding:12px;
  border-radius:10px;
  background:#f7f9fd;
  text-align:center;
}

.gara-risultato strong{
  font-size:1.55rem;
  color:var(--gare-blu-scuro);
}

.gara-dettaglio{
  margin-top:16px;
  display:grid;
  gap:7px;
  font-size:.92rem;
  line-height:1.45;
}

.gara-dettaglio strong{
  color:var(--gare-blu-scuro);
}

.gara-note{
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid #e6ebf3;
  color:#5f6d81;
  font-size:.9rem;
  line-height:1.5;
}

.gare-footer{
  background:var(--gare-blu-scuro);
  color:#fff;
  padding:22px 0;
}

.gare-footer .gare-container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.gare-footer p{margin:0}
.gare-footer a{color:var(--gare-giallo);font-weight:800;text-decoration:none}

@media(max-width:820px){
  .gare-grid{grid-template-columns:1fr}
  .gare-toolbar{align-items:stretch;flex-direction:column}
  .gare-filters{width:100%}
  .gare-filters label{flex:1 1 220px}
}

@media(max-width:560px){
  .gare-header-inner{min-height:72px}
  .gare-brand img{width:55px;height:48px}
  .gare-header-copy span{display:none}
  .gare-home-link{padding:9px 11px;font-size:.86rem}
  .gare-hero{padding:40px 0 36px}
  .gare-section{padding-top:28px}
  .gare-filters{display:grid;grid-template-columns:1fr}
  .gara-card-top{align-items:flex-start;flex-direction:column}
  .gara-squadre{grid-template-columns:1fr;gap:8px;text-align:center}
  .gara-team.right{text-align:center}
  .gara-vs{font-size:.72rem}
  .gare-footer .gare-container{flex-direction:column;text-align:center}
}
