:root {
  --sportia-green: #008f46;
  --sportia-green-dark: #006c37;
  --sportia-green-soft: #eef9f3;
  --accent: var(--sportia-green);
  --surface: var(--white);
  --surface-soft: var(--bg);
  --ink: var(--navy);
  --muted: var(--navy-muted);
  --pastel-green: #45b883;
  --pastel-blue: #7ba7f2;
  --pastel-purple: #9b8de3;
  --pastel-yellow: #f4bf6d;
  --pastel-cyan: #7ed0d4;
  --navy: #071447;
  --navy-muted: #2b356b;
  --border: #dde6f0;
  --bg: #f8fafc;
  --white: #ffffff;
  --warning: #f5a623;
  --danger: #e5484d;
  --blue: #2868d8;
  --purple: #6b5dd3;
  --shadow: 0 8px 22px rgba(7, 20, 71, 0.035);
  --shadow-soft: 0 14px 34px rgba(7, 20, 71, 0.055);
  --header: 72px;
  --sidebar: 232px;
  --rail: 286px;
}

* { box-sizing: border-box; }

html {
  color-scheme: light;
  overflow-x: hidden;
}

body {
  margin: 0;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 82% 4%, rgba(0, 143, 70, 0.045), transparent 28%),
    linear-gradient(180deg, #fff 0%, #fbfcfe 48%, var(--bg) 100%);
  color: var(--navy);
  font-family: Aptos, Inter, Manrope, "SF Pro Text", "SF Pro Display", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 14px;
  font-weight: 430;
  letter-spacing: 0;
  font-optical-sizing: auto;
  font-variation-settings: "wght" 430;
}

a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
svg { flex: 0 0 auto; }

.app-header {
  position: sticky;
  top: 0;
  z-index: 50;
  height: var(--header);
  display: grid;
  grid-template-columns: var(--sidebar) minmax(480px, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 0 22px;
  background: rgba(255, 255, 255, 0.94);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(14px);
}

.header-left, .header-actions, .top-nav, .contact-row, .title-row, .tags {
  display: flex;
  align-items: center;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--sportia-green);
  font-size: 26px;
  font-weight: 760;
  font-variation-settings: "wght" 760;
}

.brand-mark {
  width: 45px;
  height: 32px;
  object-fit: contain;
  display: block;
}

.top-nav {
  height: 100%;
  justify-content: center;
  gap: clamp(16px, 3vw, 42px);
  color: var(--navy);
  font-weight: 610;
  font-variation-settings: "wght" 610;
}

.top-link {
  position: relative;
  height: 100%;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

.top-link.active, .top-link:hover { color: var(--sportia-green); }
.top-link.active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: var(--sportia-green);
}

.header-actions {
  justify-content: flex-end;
  gap: 14px;
}

.search {
  width: min(330px, 24vw);
  height: 40px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 0 14px;
  border: 1px solid var(--border);
  border-radius: 20px;
  background: white;
  color: var(--navy-muted);
}

.search input, .table-search input {
  border: 0;
  outline: 0;
  width: 100%;
  color: var(--navy);
  background: transparent;
}

.icon-button {
  width: 38px;
  height: 38px;
  display: inline-grid;
  place-items: center;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--navy);
}

.icon-button:hover, .icon-button:focus-visible {
  background: var(--sportia-green-soft);
  color: var(--sportia-green);
  outline: 2px solid transparent;
}

.menu-button { display: none; }
.notification { position: relative; }
.notification span {
  position: absolute;
  top: 2px;
  right: 0;
  display: grid;
  place-items: center;
  min-width: 17px;
  height: 17px;
  border-radius: 50%;
  color: white;
  background: var(--sportia-green);
  font-size: 10px;
  font-weight: 800;
}

.avatar {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: 50%;
  color: white;
  background: linear-gradient(145deg, #1a2c62, #d98655);
  font-weight: 800;
}

.chevron { font-size: 20px; font-weight: 800; }

.shell {
  display: grid;
  grid-template-columns: var(--sidebar) minmax(0, 1fr);
  min-height: calc(100vh - var(--header));
}

.sidebar {
  position: sticky;
  top: var(--header);
  height: calc(100vh - var(--header));
  padding: 22px 14px;
  border-right: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.78);
  overflow-y: auto;
}

.mobile-sidebar-brand { display: none; }
.side-group { display: grid; gap: 8px; }
.side-separator {
  height: 1px;
  margin: 18px 0;
  background: var(--border);
}

.side-link {
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0 14px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--navy);
  font-weight: 610;
  font-variation-settings: "wght" 610;
}

.side-link:hover, .side-link:focus-visible {
  background: #fbfdfc;
  border-color: var(--border);
}

.side-link.active {
  color: var(--sportia-green);
  background: linear-gradient(90deg, var(--sportia-green-soft), rgba(234, 247, 239, 0.38));
  border-color: #cfe9d9;
}

.report-link .side-link {
  color: var(--sportia-green);
  border-color: var(--border);
}

.main-content {
  min-width: 0;
  padding: 26px clamp(18px, 2.2vw, 34px);
}

.page-grid {
  max-width: 1450px;
  margin: 0 auto;
  display: grid;
  gap: 22px;
}

.page-grid.with-rail {
  grid-template-columns: minmax(0, 1fr) var(--rail);
  align-items: start;
}

.page-primary {
  min-width: 0;
  display: grid;
  gap: 18px;
}

.right-rail {
  position: sticky;
  top: calc(var(--header) + 22px);
  display: grid;
  gap: 14px;
}

.club-profile {
  display: grid;
  grid-template-columns: 164px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

.club-profile.compact {
  grid-template-columns: 150px minmax(0, 1fr);
}

.club-logo {
  height: 164px;
  display: grid;
  place-items: center;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: white;
  box-shadow: var(--shadow);
  text-align: center;
}

.club-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.club-profile-main {
  min-width: 0;
  display: grid;
  gap: 11px;
  padding-top: 6px;
}

.title-row {
  gap: 14px;
  flex-wrap: wrap;
  align-items: center;
}

h1 {
  margin: 0;
  color: var(--navy);
  font-size: clamp(25px, 2vw, 32px);
  line-height: 1.08;
  font-weight: 700;
  font-variation-settings: "wght" 700;
}

.club-profile p, .simple-title p {
  margin: 0;
  color: var(--navy);
  font-size: 16px;
  font-weight: 570;
  font-variation-settings: "wght" 570;
}

.verified, .badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  padding: 7px 11px;
  border: 1px solid #bfe4cd;
  border-radius: 7px;
  color: var(--sportia-green-dark);
  background: var(--sportia-green-soft);
  font-weight: 620;
  font-variation-settings: "wght" 620;
  white-space: nowrap;
}

.tags {
  flex-wrap: wrap;
  gap: 10px;
}

.tag {
  padding: 8px 13px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: white;
  color: var(--navy);
  font-weight: 570;
  font-variation-settings: "wght" 570;
}

.contact-row {
  flex-wrap: wrap;
  gap: 12px 24px;
  color: var(--navy);
  font-size: 13px;
  font-weight: 520;
  font-variation-settings: "wght" 520;
}

.contact-row span {
  display: inline-flex;
  align-items: center;
  gap: 9px;
}

.profile-tabs {
  display: flex;
  gap: clamp(12px, 2vw, 24px);
  min-width: 0;
  border-bottom: 1px solid var(--border);
  overflow-x: auto;
  scrollbar-width: none;
}

.profile-tabs button {
  position: relative;
  min-height: 52px;
  padding: 0 6px;
  border: 0;
  background: transparent;
  color: var(--navy);
  font-size: 13px;
  font-weight: 610;
  font-variation-settings: "wght" 610;
  white-space: nowrap;
}

.profile-tabs button.active { color: var(--sportia-green); }
.profile-tabs button.active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 3px;
  background: var(--sportia-green);
}

.card {
  min-width: 0;
  container-type: inline-size;
  border: 1px solid rgba(221, 230, 240, 0.95);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: var(--shadow);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.card:hover {
  border-color: rgba(0, 143, 70, 0.18);
  box-shadow: var(--shadow-soft);
}
.card-title {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 16px 18px 0;
}

.card-title h2 {
  margin: 0;
  font-size: 18px;
  line-height: 1.2;
  font-weight: 680;
  font-variation-settings: "wght" 680;
}

.info-dot {
  display: inline-grid;
  place-items: center;
  width: 15px;
  height: 15px;
  border: 1px solid #9eb0d5;
  border-radius: 50%;
  color: var(--blue);
  font-size: 10px;
  font-weight: 900;
}

.card > :not(.card-title) { margin: 16px 18px 18px; }
.card-title + * { margin-top: 14px !important; }

.kpi-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
}

.kpi-grid.six { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.compact-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.page-grid.with-rail .kpi-grid.six {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.kpi-card {
  display: flex;
  gap: 14px;
  align-items: center;
  min-height: 112px;
  padding: 16px;
}

.kpi-card > * { margin: 0 !important; }
.metric-icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--sportia-green);
  background: linear-gradient(145deg, #f0fbf5, #f9fdfb);
  box-shadow: inset 0 0 0 1px rgba(0, 143, 70, 0.08);
}

.kpi-label {
  margin: 0 0 6px;
  color: var(--navy);
  font-size: 12px;
  font-weight: 610;
  font-variation-settings: "wght" 610;
}

.kpi-card strong {
  display: block;
  color: #219563;
  font-size: clamp(22px, 2vw, 31px);
  line-height: 1.05;
  font-weight: 720;
  font-variation-settings: "wght" 720;
}

.kpi-card span {
  color: var(--sportia-green-dark);
  font-size: 12px;
  font-weight: 540;
  font-variation-settings: "wght" 540;
}

.content-grid {
  display: grid;
  gap: 14px;
  align-items: stretch;
}

.content-grid > .card,
.stack > .card {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
}

.content-grid > .card > .chart,
.content-grid > .card > .line-chart,
.content-grid > .card > .donut-module,
.stack > .card > .chart,
.stack > .card > .line-chart,
.stack > .card > .donut-module {
  align-self: center;
}

.stack {
  display: grid;
  gap: 14px;
  align-content: start;
}

.content-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.content-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.split-2-1 { grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr) !important; }
.split-1-2 { grid-template-columns: minmax(280px, 1fr) minmax(0, 2fr) !important; }

.body-copy {
  color: var(--navy-muted);
  line-height: 1.75;
  font-weight: 430;
  font-variation-settings: "wght" 430;
}

.line-illustration { margin-top: 24px; color: var(--sportia-green); }

.chart {
  width: 100%;
  min-height: clamp(168px, 24cqi, 230px);
}

.line-chart {
  display: flex;
  align-items: center;
}

.chart svg, .line-chart svg {
  display: block;
  width: 100%;
  height: clamp(170px, 36cqi, 240px);
  max-height: 245px;
}

.grid-line { stroke: #eef3f8; stroke-width: 1; }
.line-chart text {
  fill: #41507d;
  font-size: 11px;
  font-weight: 560;
  font-variation-settings: "wght" 560;
}
.axis {
  fill: #7180a7 !important;
  font-weight: 470 !important;
  font-variation-settings: "wght" 470;
}

.radar-chart {
  display: grid;
  place-items: center;
}

.radar-chart svg {
  width: min(100%, 286px);
  max-width: 286px;
  aspect-ratio: 1 / 1;
  overflow: visible;
}

.radar-chart text {
  fill: #4b5a87;
  font-size: 9.5px;
  font-weight: 500;
  font-variation-settings: "wght" 500;
}

.donut-module {
  display: grid;
  grid-template-columns: minmax(112px, 170px) minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  min-width: 0;
}

.donut-figure {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  min-width: 112px;
  max-width: 190px;
}

.donut-figure svg {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 1 / 1;
}

.donut-center {
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  color: var(--navy);
  font-weight: 640;
  font-variation-settings: "wght" 640;
}

.donut-center strong {
  display: block;
  font-size: 15px;
  line-height: 1.1;
}

.donut-center span {
  color: var(--navy-muted);
  font-size: 12px;
}

.donut-legend {
  display: grid;
  gap: 10px;
  padding: 0;
  margin: 0;
  list-style: none;
  min-width: 0;
}

.donut-legend li {
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  color: var(--navy);
  font-weight: 500;
  font-variation-settings: "wght" 500;
  font-size: 12px;
}

.donut-legend li span {
  width: 11px;
  height: 11px;
  border-radius: 50%;
}

.donut-legend p { margin: 0; }

.financial-donut {
  grid-template-columns: minmax(138px, 210px) minmax(0, 1fr);
}

.financial-donut .donut-figure {
  max-width: 220px;
  aspect-ratio: 1 / 1;
}

.status-wrap {
  display: flex;
  align-items: center;
  gap: 18px;
}

.progress-ring {
  position: relative;
  width: 92px;
  height: 92px;
  flex-shrink: 0;
  aspect-ratio: 1 / 1;
  display: grid;
  place-items: center;
}

.progress-ring svg {
  position: absolute;
  inset: 0;
  transform: rotate(-90deg);
}

.progress-ring circle {
  fill: none;
  stroke-width: 10;
}

.progress-ring .track { stroke: #e8eef6; }
.progress-ring .bar {
  stroke: var(--pastel-green);
  stroke-dasharray: var(--dash) var(--circ);
  stroke-linecap: round;
}

.progress-ring strong {
  color: var(--sportia-green);
  font-size: 24px;
  font-weight: 700;
  font-variation-settings: "wght" 700;
}

.check-list, .links-list, .insight-list, .event-list, .rating-list, .module-list {
  padding: 0;
  margin: 0;
  list-style: none;
}

.check-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--navy-muted);
  font-weight: 470;
  font-variation-settings: "wght" 470;
}

.check-list svg { color: var(--sportia-green); }
.check-list.stacked {
  display: grid;
  gap: 13px;
}

.links-list {
  display: grid;
  gap: 14px;
}

.links-list li {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) 16px;
  gap: 10px;
  align-items: center;
  font-weight: 590;
  font-variation-settings: "wght" 590;
}

.links-list svg { color: var(--navy); }

.ai-list, .quick-actions {
  display: grid;
  gap: 14px;
}

.ai-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: var(--navy);
  font-weight: 520;
  font-variation-settings: "wght" 520;
}

.ai-item span {
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  border: 1px solid #9dd2b6;
  border-radius: 50%;
  color: var(--sportia-green);
}

.ai-item p { margin: 2px 0 0; }

.outline-action, .ghost-button, .primary-action {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: 100%;
  border-radius: 6px;
  font-weight: 620;
  font-variation-settings: "wght" 620;
}

.outline-action {
  border: 1px solid var(--sportia-green);
  color: var(--sportia-green);
  background: white;
}

.ghost-button {
  border: 1px solid var(--border);
  color: var(--blue);
  background: white;
}

.primary-action {
  border: 0;
  color: white;
  background: linear-gradient(90deg, var(--sportia-green), #00a85a);
}

.quick-actions button {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 42px;
  border: 0;
  color: var(--navy);
  background: transparent;
  text-align: left;
  font-weight: 520;
  font-variation-settings: "wght" 520;
}

.quick-actions button:hover { color: var(--sportia-green); }

.opportunity-strip, .info-strip {
  display: grid;
  gap: 0;
  border: 1px solid var(--sportia-green);
  border-radius: 8px;
  background: white;
  box-shadow: var(--shadow);
}

.opportunity-strip { grid-template-columns: repeat(3, 1fr); }
.opportunity-strip > div {
  display: grid;
  grid-template-columns: 66px minmax(0, 1fr);
  grid-template-rows: auto auto auto;
  align-items: center;
  min-height: 112px;
  padding: 18px 28px;
  color: var(--sportia-green);
}

.opportunity-strip > div + div { border-left: 1px solid var(--border); }
.opportunity-strip svg { grid-row: 1 / span 3; }
.opportunity-strip p {
  margin: 0;
  color: var(--navy);
  font-size: 16px;
  font-weight: 610;
  font-variation-settings: "wght" 610;
}
.opportunity-strip strong {
  font-size: 28px;
  font-weight: 720;
  font-variation-settings: "wght" 720;
}
.opportunity-strip span {
  color: var(--sportia-green-dark);
  font-weight: 460;
  font-variation-settings: "wght" 460;
}

.ai-strip strong {
  color: var(--navy);
  font-size: 14px;
}

.map-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 18px;
}

.map-card > div { margin: 0 !important; }
.map-mock {
  position: relative;
  min-height: 205px;
  overflow: hidden;
  isolation: isolate;
  contain: paint;
  border-radius: 8px;
  background:
    linear-gradient(150deg, transparent 0 43%, rgba(255,255,255,.94) 43% 47%, transparent 47%),
    linear-gradient(35deg, #f5f8f7 0 48%, #cfeeff 48% 100%);
}

.map-mock.large { min-height: 565px; }
.roads::before, .roads::after {
  content: "";
  position: absolute;
  left: -6%;
  right: -6%;
  top: 22%;
  height: 10px;
  background: rgba(255,255,255,.85);
  border: 1px solid #d5dee8;
  transform: rotate(-25deg);
}
.roads::after {
  top: 45%;
  transform: rotate(16deg);
}
.roads {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.lake-shape {
  position: absolute;
  left: 0;
  right: 9%;
  bottom: 0;
  height: 42%;
  border-radius: 62% 38% 0 0;
  background: linear-gradient(180deg, #bde8ff, #8cccf7);
  box-shadow: inset 0 18px 26px rgba(255, 255, 255, 0.35);
}
.park {
  position: absolute;
  width: 110px;
  height: 85px;
  border-radius: 45%;
  background: rgba(178, 224, 191, .58);
}
.park.one { top: 18%; right: 18%; }
.park.two { top: 48%; right: 10%; }
.map-label {
  position: absolute;
  z-index: 2;
  color: rgba(7,20,71,.75);
  font-weight: 800;
  letter-spacing: .04em;
}
.lugano { top: 11%; left: 9%; font-size: 22px; }
.castagnola { top: 40%; left: 52%; font-size: 16px; }
.map-mock .lake { left: 34%; bottom: 31%; color: #296eb6; font-style: italic; }
.marker {
  position: absolute;
  left: min(60%, calc(100% - 190px));
  top: 50%;
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 8px;
  color: #238a5b;
  font-weight: 900;
  max-width: min(190px, 46%);
}
.marker svg { fill: #45b883; color: white; stroke: #238a5b; }
.map-controls {
  position: absolute;
  right: 24px;
  bottom: 34px;
  display: grid;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: white;
}
.map-controls button {
  width: 44px;
  height: 40px;
  border: 0;
  border-bottom: 1px solid var(--border);
  background: white;
  color: var(--navy);
  font-size: 20px;
}
.map-actions {
  position: absolute;
  left: 24px;
  bottom: 24px;
  display: flex;
  gap: 12px;
}
.map-actions button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 0 18px;
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--blue);
  background: white;
  font-weight: 800;
}

.icon-list {
  display: grid;
  gap: 18px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.icon-list li {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 10px;
  color: var(--navy-muted);
  font-weight: 650;
  line-height: 1.45;
}

.info-strip {
  grid-template-columns: repeat(5, 1fr);
  border-color: var(--border);
}

.info-strip > div {
  min-height: 118px;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 18px 22px;
}

.info-strip > div + div { border-left: 1px solid var(--border); }
.info-strip svg { grid-row: 1 / span 2; color: var(--sportia-green); }
.info-strip strong { font-size: 17px; }
.info-strip span { color: var(--navy-muted); font-weight: 650; line-height: 1.45; }

.distance-list {
  display: grid;
  gap: 14px;
  margin: 0;
}

.distance-list div {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  color: var(--navy);
  font-weight: 650;
}
.distance-list dd { margin: 0; font-weight: 800; }

.ranking-grid, .review-layout, .report-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(300px, 1fr);
  gap: 18px;
}

.ranking-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  text-align: center;
  border: 1px solid var(--border);
  border-radius: 8px;
}
.ranking-stats > div {
  min-height: 160px;
  display: grid;
  place-items: center;
  align-content: center;
  padding: 20px;
}
.ranking-stats > div + div { border-left: 1px solid var(--border); }
.ranking-stats strong {
  color: var(--sportia-green);
  font-size: 48px;
  font-weight: 720;
  font-variation-settings: "wght" 720;
}
.ranking-stats span {
  color: var(--navy);
  font-weight: 500;
  font-variation-settings: "wght" 500;
  line-height: 1.55;
}

.score-big {
  color: var(--sportia-green);
  font-size: 42px;
  font-weight: 720;
  font-variation-settings: "wght" 720;
}
.score-big span { color: var(--navy); font-size: 20px; }

.bar-list { display: grid; gap: 13px; }
.bar-row {
  display: grid;
  grid-template-columns: minmax(110px, 1fr) minmax(90px, 1.6fr) 44px;
  align-items: center;
  gap: 12px;
  color: var(--navy);
  font-weight: 500;
  font-variation-settings: "wght" 500;
}
.bar-row div {
  height: 8px;
  overflow: hidden;
  border-radius: 10px;
  background: #eef3f7;
}
.bar-row b {
  display: block;
  height: 100%;
  border-radius: inherit;
  transition: width .2s ease, filter .2s ease;
}
.bar-row:hover b { filter: saturate(1.15); }

.table-scroll {
  overflow-x: auto;
  scrollbar-width: thin;
}

table {
  width: 100%;
  min-width: 650px;
  border-collapse: collapse;
}

th, td {
  padding: 13px 12px;
  border-bottom: 1px solid var(--border);
  text-align: left;
  vertical-align: middle;
  color: var(--navy);
  font-size: 13px;
}

th {
  color: var(--navy-muted);
  font-size: 11px;
  text-transform: uppercase;
  font-weight: 620;
  font-variation-settings: "wght" 620;
}

tbody tr:hover, .highlight-table tbody tr:nth-child(2), .document-table tbody tr:hover {
  background: linear-gradient(90deg, rgba(234,247,239,.86), rgba(255,255,255,.4));
}

.benchmark-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.benchmark-filter {
  min-height: 34px;
  padding: 0 13px;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--navy-muted);
  background: #fff;
  font-weight: 560;
  font-variation-settings: "wght" 560;
}

.benchmark-filter:hover,
.benchmark-filter.active {
  color: var(--sportia-green);
  border-color: rgba(0, 143, 70, .32);
  background: var(--sportia-green-soft);
}

.benchmark-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.benchmark-summary span {
  min-height: 56px;
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 10px 12px;
  border: 1px solid #e4ecf5;
  border-radius: 8px;
  background: linear-gradient(180deg, #ffffff, #f8fbfd);
  color: var(--navy-muted);
  font-size: 12px;
}

.benchmark-summary b {
  color: var(--navy);
  font-size: 17px;
  font-weight: 680;
  font-variation-settings: "wght" 680;
}

.benchmark-table tbody tr {
  transition: background .18s ease, transform .18s ease, opacity .18s ease;
}

.benchmark-table tbody tr.is-highlighted {
  background: linear-gradient(90deg, rgba(238, 249, 243, .95), rgba(255, 255, 255, .68));
  box-shadow: inset 3px 0 0 rgba(0, 143, 70, .55);
}

.benchmark-table tbody tr:hover {
  background: linear-gradient(90deg, rgba(238, 249, 243, .96), rgba(247, 250, 255, .7));
}

.benchmark-table tbody tr[hidden] {
  display: none;
}

.green { color: var(--sportia-green) !important; }

.club-avatar, .club-logo-mini {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  color: white;
  background: var(--navy);
  font-weight: 900;
  font-size: 12px;
}
.club-logo-mini {
  color: var(--navy);
  background: white;
  border: 1px solid var(--border);
  font-family: Georgia, serif;
  line-height: .8;
}

.insight-list {
  display: grid;
  gap: 18px;
}
.insight-list li {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  color: var(--navy);
  font-weight: 650;
  line-height: 1.55;
}
.insight-list svg { color: var(--sportia-green); }

.market-snapshot {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.market-snapshot > div {
  display: grid;
  align-content: center;
  min-height: 165px;
  gap: 10px;
  padding-right: 12px;
}
.market-snapshot > div + div { border-left: 1px solid var(--border); padding-left: 18px; }
.market-snapshot span, .market-snapshot small {
  color: var(--navy-muted);
  font-weight: 470;
  font-variation-settings: "wght" 470;
  line-height: 1.45;
}
.market-snapshot strong, .metric-line {
  color: var(--sportia-green);
  font-size: 34px;
  font-weight: 720;
  font-variation-settings: "wght" 720;
}
.metric-line { margin: 0 18px !important; }
.metric-line span { display: block; color: var(--navy-muted); font-size: 12px; }

.badge { padding: 6px 11px; font-size: 12px; }
.badge.yellow {
  border-color: #ffe2a8;
  color: #af6500;
  background: #fff6e4;
}
.badge.blue {
  border-color: #cfe0ff;
  color: #1157c2;
  background: #edf4ff;
}
.badge.red {
  border-color: #ffd1d3;
  color: var(--danger);
  background: #fff1f1;
}

.dots {
  display: inline-flex;
  gap: 6px;
}
.dots i {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #d5ddec;
}
.dots i.on { background: var(--sportia-green); }

.numbered {
  display: grid;
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.numbered li {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
}
.numbered strong {
  grid-row: span 2;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--sportia-green);
  background: var(--sportia-green-soft);
  font-size: 18px;
}
.numbered span { font-weight: 900; }
.numbered p {
  margin: 0;
  color: var(--navy-muted);
  line-height: 1.45;
  font-weight: 650;
}

.funnel {
  display: grid;
  justify-items: center;
  gap: 5px;
}
.funnel div {
  height: 48px;
  display: grid;
  place-items: center;
  color: white;
  font-size: 24px;
  font-weight: 900;
  clip-path: polygon(8% 0, 92% 0, 82% 100%, 18% 100%);
}
.funnel div:nth-child(1) { width: 190px; background: var(--sportia-green); }
.funnel div:nth-child(2) { width: 150px; background: #64bf73; }
.funnel div:nth-child(3) { width: 112px; background: #ffc400; }
.funnel div:nth-child(4) { width: 76px; background: #1473ff; }
.funnel-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  padding: 0;
  list-style: none;
  color: var(--navy);
  font-weight: 650;
}

.matrix {
  position: relative;
  min-height: 265px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 8px;
  padding: 18px 18px 30px 34px;
}
.matrix .q {
  display: grid;
  place-items: center;
  min-height: 102px;
  background: linear-gradient(145deg, #f1f8f4, #f8fbfe);
  color: var(--navy);
  font-weight: 800;
}
.matrix span, .matrix em {
  position: absolute;
  color: var(--navy);
  font-style: normal;
  font-weight: 900;
}
.matrix span { left: 2px; top: 44%; transform: rotate(-90deg); }
.matrix em { bottom: 3px; left: 50%; }
.matrix b {
  position: absolute;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: white;
  background: var(--pastel-green);
  box-shadow: 0 8px 18px rgba(69, 184, 131, .22);
}
.matrix .q1 { left: 32%; top: 30%; }
.matrix .q2 { left: 66%; top: 25%; }
.matrix .q3 { left: 58%; top: 58%; }
.matrix .q4 { left: 35%; top: 64%; }
.matrix .blue { background: var(--pastel-blue); }
.matrix .yellow { background: var(--pastel-yellow); }

.big-money {
  color: var(--sportia-green);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 720;
  font-variation-settings: "wght" 720;
}

.mini-geo {
  position: relative;
  min-height: 175px;
  overflow: hidden;
  border-radius: 8px;
  background: linear-gradient(135deg, #bfe7ff 0 34%, #edf3ee 34% 100%);
}
.mini-geo::before {
  content: "";
  position: absolute;
  inset: 30px;
  border: 2px solid rgba(255,255,255,.9);
  transform: rotate(-24deg);
}
.mini-geo span {
  position: absolute;
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: white;
  background: var(--sportia-green);
  font-weight: 900;
}
.m1 { left: 25%; top: 35%; } .m2 { left: 55%; top: 20%; } .m3 { left: 53%; top: 58%; } .m4 { right: 18%; top: 65%; } .m5 { left: 18%; bottom: 14%; }

.ecosystem-map {
  position: relative;
  min-height: clamp(430px, 62cqi, 520px);
  overflow: hidden;
  border-radius: 8px;
  background:
    radial-gradient(circle at 50% 47%, rgba(238, 249, 243, 0.95), transparent 30%),
    linear-gradient(180deg, #ffffff, #fbfdff);
}
.ecosystem-map::before {
  content: "";
  position: absolute;
  inset: 18% 14%;
  border: 2px dashed #99c5ee;
  border-radius: 50%;
}
.eco-center, .eco-node {
  position: absolute;
  display: grid;
  place-items: center;
  text-align: center;
}
.eco-center {
  left: 50%;
  top: 47%;
  transform: translate(-50%, -50%);
  width: clamp(92px, 22cqi, 122px);
  height: clamp(92px, 22cqi, 122px);
  border: 1px solid var(--border);
  border-radius: 50%;
  background: white;
  box-shadow: var(--shadow);
  font-family: Georgia, serif;
  color: var(--navy);
  font-size: clamp(18px, 4.2cqi, 23px);
  line-height: .9;
  font-weight: 900;
}
.eco-node {
  gap: 6px;
  width: clamp(82px, 20cqi, 112px);
  color: var(--navy);
  font-weight: 750;
  font-size: clamp(11px, 2.5cqi, 13px);
}
.eco-node svg {
  width: clamp(42px, 10cqi, 54px);
  height: clamp(42px, 10cqi, 54px);
  padding: clamp(9px, 2cqi, 12px);
  border: 1px solid var(--border);
  border-radius: 50%;
  color: #32986a;
  background: white;
  box-shadow: 0 8px 18px rgba(7, 20, 71, .045);
}
.eco-node.top { left: 50%; top: 4%; transform: translateX(-50%); }
.eco-node.right { right: 3%; top: 25%; }
.eco-node.right2 { right: 5%; top: 62%; }
.eco-node.bottom2 { right: 27%; bottom: 4%; }
.eco-node.bottom { left: 27%; bottom: 4%; }
.eco-node.left2 { left: 5%; top: 62%; }
.eco-node.left { left: 3%; top: 25%; }

.roadmap {
  display: grid;
  gap: 8px;
  min-width: 0;
}
.road-row {
  display: grid;
  grid-template-columns: 24px minmax(96px, 140px) minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}
.road-row span {
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: white;
  background: var(--sportia-green);
  font-size: 11px;
  font-weight: 900;
}
.road-row p {
  margin: 0;
  font-size: 12px;
  font-weight: 430;
}
.road-row b {
  --start-p: min(58%, calc(var(--start) * 7%));
  height: 18px;
  grid-column: 3;
  width: min(calc(var(--len) * 7.5%), calc(100% - var(--start-p)));
  margin-left: var(--start-p);
  border-radius: 4px;
  background: var(--tone);
}

.scenario-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.scenario-grid article {
  display: grid;
  gap: 9px;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 8px;
}
.scenario-grid article.selected {
  border-color: var(--sportia-green);
  box-shadow: inset 0 0 0 1px var(--sportia-green);
}
.scenario-grid h3 { margin: 0; font-size: 15px; }
.scenario-grid strong { color: var(--sportia-green); font-size: 24px; }
.scenario-grid p, .scenario-grid span { margin: 0; color: var(--navy-muted); font-weight: 650; }
.scenario-grid button {
  min-height: 38px;
  border: 0;
  border-radius: 6px;
  color: white;
  background: var(--sportia-green);
  font-weight: 800;
}

.simple-title {
  display: grid;
  gap: 10px;
  margin: 6px 0 10px;
}
.simple-title p {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--navy);
  text-transform: uppercase;
}
.simple-title span { color: #8fa0c5; }

.pill-tabs {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding-bottom: 2px;
}
.pill-tabs button {
  min-height: 40px;
  padding: 0 18px;
  border: 1px solid var(--border);
  border-radius: 7px;
  color: var(--navy);
  background: white;
  font-weight: 800;
  white-space: nowrap;
}
.pill-tabs button.active {
  color: var(--sportia-green);
  border-color: var(--sportia-green);
  background: var(--sportia-green-soft);
}
.pill-tabs.inline { justify-content: space-between; border-bottom: 1px solid var(--border); }
.pill-tabs.inline button { border: 0; border-radius: 0; background: transparent; }
.pill-tabs.inline button.active { border-bottom: 3px solid var(--sportia-green); }

.action-card {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) 28px;
  align-items: center;
  gap: 12px;
}
.action-card svg { color: var(--sportia-green); }
.action-card h3 { margin: 0 0 6px; font-size: 17px; }
.action-card p { margin: 0; color: var(--navy-muted); font-weight: 650; line-height: 1.45; }
.action-card button { border: 0; background: transparent; color: var(--sportia-green); }

.table-search {
  width: min(330px, 100%);
  height: 42px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 14px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: white;
}

.ai-score {
  display: flex;
  align-items: center;
  gap: 18px;
}
.ai-score > svg {
  color: var(--sportia-green);
  padding: 12px;
  border-radius: 50%;
  background: var(--sportia-green-soft);
}

.media-grid {
  display: grid;
  gap: 12px;
}
.media-grid.six { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.media-grid.five { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.media-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: white;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.media-card:hover {
  transform: translateY(-2px);
  border-color: rgba(0, 143, 70, 0.28);
  box-shadow: var(--shadow);
}
.media-card > div:first-child {
  position: relative;
  height: clamp(112px, 18cqi, 152px);
  background-size: cover;
}
.media-card strong, .media-card span {
  display: block;
  padding: 0 10px;
}
.media-card strong {
  padding-top: 9px;
  color: var(--navy);
  font-size: 13px;
  font-weight: 900;
}
.media-card span {
  padding-bottom: 10px;
  color: var(--blue);
  font-size: 11px;
  font-weight: 700;
}

.photo, .video, .thumb {
  background:
    radial-gradient(circle at 72% 18%, rgba(255,255,255,.72) 0 7%, transparent 8%),
    linear-gradient(180deg, rgba(255,255,255,.04) 0%, rgba(7,20,71,.26) 100%),
    repeating-linear-gradient(90deg, transparent 0 44px, rgba(255,255,255,.22) 45px 47px),
    linear-gradient(135deg, #b8d9ef, #f1b463 42%, #2b8a55 43%, #2b8a55 58%, #b55a36 59%);
}
.lake, .photo.lake, .video.lake {
  background:
    radial-gradient(circle at 70% 20%, rgba(255,255,255,.82) 0 8%, transparent 9%),
    linear-gradient(180deg, rgba(255,255,255,.1), rgba(7,20,71,.22)),
    linear-gradient(160deg, #9bd4fb 0 42%, #f3f8ff 42% 46%, #6db17c 46% 55%, #c9724a 56% 100%);
}
.clay, .video.clay {
  background:
    linear-gradient(180deg, rgba(255,255,255,0), rgba(7,20,71,.12)),
    repeating-linear-gradient(90deg, transparent 0 46px, rgba(255,255,255,.42) 47px 49px),
    linear-gradient(160deg, #5fa873 0 20%, #c76a43 21% 70%, #f4d0b8 71%);
}
.house { background: linear-gradient(145deg, #93c17d, #fff4d4 38%, #ffffff 39% 48%, #9e5f37 49%); }
.event, .video.event { background: radial-gradient(circle at 72% 34%, white 0 7%, transparent 8%), linear-gradient(145deg, #0e8f51, #f3f8f3 45%, #c86234 46%); }
.academy, .video.academy { background: radial-gradient(circle at 72% 26%, #fff 0 9%, transparent 10%), linear-gradient(145deg, #c45c34, #f5d4be 48%, #224f8f); }
.team { background: radial-gradient(circle at 35% 35%, white 0 7%, transparent 8%), radial-gradient(circle at 55% 38%, white 0 6%, transparent 7%), linear-gradient(135deg, #0b4f9f, #f4f8ff 45%, #008f46); }
.sunset, .video.sunset { background: linear-gradient(145deg, #27345f, #f6a34f 55%, #141e39); }

.play-badge {
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  color: white;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.25));
}
.media-card small {
  position: absolute;
  right: 8px;
  bottom: 8px;
  padding: 3px 6px;
  border-radius: 4px;
  color: white;
  background: rgba(0,0,0,.55);
  font-size: 10px;
  font-weight: 900;
}
.see-all {
  float: right;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 18px 14px;
  color: var(--sportia-green);
  font-weight: 900;
}
.thumb {
  display: inline-block;
  width: 56px;
  height: 32px;
  border-radius: 4px;
}
.upload-box {
  min-height: 212px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 10px;
  border: 1px dashed #9eb0d5;
  border-radius: 8px;
  color: var(--blue);
  text-align: center;
  font-weight: 800;
}
.upload-box p { margin: 0; }
.upload-box small { color: var(--navy-muted); }

.review-top { grid-template-columns: 1.4fr .95fr 1.05fr !important; }
.review-score strong {
  color: var(--sportia-green);
  font-size: 56px;
  font-weight: 720;
  font-variation-settings: "wght" 720;
}
.review-score span {
  color: var(--navy-muted);
  font-size: 28px;
  font-weight: 520;
  font-variation-settings: "wght" 520;
}
.stars {
  color: var(--sportia-green);
  font-size: 28px;
  letter-spacing: 2px;
}
.stars.small { font-size: 18px; letter-spacing: 1px; }
.stars b { color: var(--navy); font-size: 13px; }
.rating-list {
  display: grid;
  gap: 18px;
}
.rating-list li {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  color: var(--navy);
  font-size: 16px;
  font-weight: 800;
}
.rating-list svg, .rating-list strong { color: var(--sportia-green); }
textarea {
  width: 100%;
  min-height: 76px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  resize: vertical;
}
.rating-input { color: var(--sportia-green); font-size: 30px; }
.review-list {
  display: grid;
  gap: 10px;
}
.review-item {
  display: grid;
  grid-template-columns: 54px 170px minmax(0, 1fr) 104px;
  gap: 14px;
  align-items: center;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 8px;
}
.review-avatar {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--sportia-green-dark);
  background: var(--sportia-green-soft);
  font-weight: 900;
}
.review-item h3 { margin: 0 0 4px; }
.review-item p {
  margin: 0;
  color: var(--navy);
  line-height: 1.55;
  font-weight: 650;
}
.review-item small {
  display: block;
  margin-bottom: 7px;
  color: var(--navy-muted);
}
.review-photo { height: 76px; border-radius: 8px; }
.reputation h3 {
  color: var(--sportia-green);
  font-size: 22px;
}

.mini-metric strong {
  display: block;
  color: var(--sportia-green);
  font-size: 30px;
  font-weight: 720;
  font-variation-settings: "wght" 720;
}
.mini-metric span { color: var(--sportia-green-dark); font-weight: 750; }

.report-layout {
  grid-template-columns: 300px minmax(0, 1fr) 300px;
}
.module-list {
  display: grid;
}
.module-list li {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  min-height: 34px;
  border-bottom: 1px solid var(--border);
  font-weight: 800;
}
.module-list svg, .module-list strong { color: var(--sportia-green); }
.export-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.export-grid button {
  min-height: 112px;
  display: grid;
  place-items: center;
  gap: 6px;
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--navy);
  background: white;
}
.export-grid svg { color: var(--danger); }
.export-grid span { color: var(--navy-muted); font-size: 12px; }
.timeline {
  position: relative;
  display: grid;
  gap: 24px;
  padding-left: 22px;
}
.timeline::before {
  content: "";
  position: absolute;
  left: 6px;
  top: 5px;
  bottom: 5px;
  width: 2px;
  background: #c7d5ea;
}
.timeline li {
  position: relative;
  list-style: none;
  font-weight: 800;
}
.timeline li::before {
  content: "";
  position: absolute;
  left: -22px;
  top: 4px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--sportia-green);
}
.preview-grid {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr) 260px;
  gap: 18px;
  align-items: center;
}

.data-footer {
  display: grid;
  gap: 6px;
  color: #7481ad;
  font-size: 13px;
  font-weight: 430;
  font-variation-settings: "wght" 430;
}
.data-footer p { margin: 0; }

#toast {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 100;
  transform: translateY(20px);
  opacity: 0;
  pointer-events: none;
  padding: 13px 16px;
  border: 1px solid #bfe4cd;
  border-radius: 8px;
  color: var(--sportia-green-dark);
  background: white;
  box-shadow: 0 16px 36px rgba(7,20,71,.14);
  font-weight: 620;
  font-variation-settings: "wght" 620;
  transition: .2s ease;
}
#toast.show {
  transform: translateY(0);
  opacity: 1;
}

.back-to-top {
  position: fixed;
  right: max(18px, env(safe-area-inset-right));
  bottom: calc(18px + env(safe-area-inset-bottom));
  z-index: 70;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(0, 143, 70, .42);
  border-radius: 50%;
  color: var(--sportia-green);
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 12px 28px rgba(7, 20, 71, .12);
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px) scale(.94);
  transition: opacity .18s ease, transform .18s ease, color .18s ease, background .18s ease, border-color .18s ease;
  backdrop-filter: blur(14px);
}

.back-to-top.show {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}

.back-to-top:hover,
.back-to-top:focus-visible {
  color: white;
  background: var(--sportia-green);
  border-color: var(--sportia-green);
  outline: 0;
}

:focus-visible {
  outline: 3px solid rgba(0, 143, 70, .28);
  outline-offset: 2px;
}

@container (max-width: 560px) {
  .market-snapshot {
    grid-template-columns: 1fr;
  }

  .market-snapshot > div {
    min-height: auto;
    padding-right: 0;
  }

  .market-snapshot > div + div {
    border-left: 0;
    border-top: 1px solid var(--border);
    padding: 16px 0 0;
  }

  .market-snapshot .line-chart {
    width: min(100%, 360px);
  }
}

@container (max-width: 420px) {
  .donut-module,
  .financial-donut {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: left;
  }

  .donut-figure {
    width: min(72cqi, 190px);
    min-width: 0;
  }

  .financial-donut .donut-figure {
    width: min(72cqi, 220px);
  }

  .donut-legend {
    width: 100%;
  }

  .bar-row {
    grid-template-columns: minmax(82px, 1fr) minmax(80px, 1.2fr) 38px;
    gap: 9px;
  }

  .chart {
    min-height: 168px;
  }
}

@container (max-width: 380px) {
  .ecosystem-map {
    min-height: auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 14px;
    background: linear-gradient(180deg, #ffffff, #f8fbff);
  }

  .ecosystem-map::before {
    display: none;
  }

  .eco-center,
  .eco-node {
    position: static;
    transform: none !important;
    width: auto;
  }

  .eco-center {
    grid-column: 1 / -1;
    justify-self: center;
    width: 94px;
    height: 94px;
    margin-bottom: 4px;
  }

  .eco-node {
    min-height: 94px;
    padding: 10px 8px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: white;
  }

  .eco-node svg {
    width: 42px;
    height: 42px;
  }

  .road-row {
    grid-template-columns: 22px minmax(82px, 118px) minmax(0, 1fr);
    gap: 6px;
  }

  .road-row p {
    font-size: 11px;
    line-height: 1.25;
  }
}

@media (max-width: 1280px) {
  :root { --sidebar: 224px; --rail: 286px; }
  .app-header { grid-template-columns: var(--sidebar) 1fr auto; gap: 10px; }
  .top-nav { gap: 18px; }
  .search { width: 260px; }
  .kpi-grid, .kpi-grid.six { grid-template-columns: repeat(3, 1fr); }
  .compact-kpis { grid-template-columns: repeat(2, 1fr); }
  .media-grid.six, .media-grid.five { grid-template-columns: repeat(3, 1fr); }
  .content-grid.three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-top > .card:first-child { grid-column: 1 / -1; }
  .report-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); }
  .report-layout > .card:nth-child(3) { grid-column: 1 / -1; }
}

@media (max-width: 1100px) {
  .app-header {
    grid-template-columns: auto 1fr auto;
  }
  .menu-button { display: inline-grid; }
  .top-nav { display: none; }
  .brand { font-size: 22px; }
  .shell { grid-template-columns: 1fr; }
  .sidebar {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 80;
    width: 292px;
    height: 100vh;
    transform: translateX(-105%);
    transition: transform .22s ease;
    box-shadow: 20px 0 44px rgba(7, 20, 71, .16);
  }
  .menu-open .sidebar { transform: translateX(0); }
  .drawer-backdrop {
    position: fixed;
    inset: 0;
    z-index: 70;
    display: none;
    background: rgba(7, 20, 71, .28);
  }
  .menu-open .drawer-backdrop { display: block; }
  .mobile-sidebar-brand {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
  }
  .page-grid.with-rail { grid-template-columns: 1fr; }
  .right-rail {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .map-layout, .ranking-grid, .review-layout { grid-template-columns: 1fr; }
  .map-mock.large { min-height: 480px; }
}

@media (max-width: 820px) {
  .app-header {
    height: 64px;
    padding: 0 14px;
  }
  :root { --header: 64px; }
  .header-actions { gap: 7px; }
  .search {
    width: 42px;
    padding: 0;
    justify-content: center;
  }
  .search input { display: none; }
  .avatar, .chevron { display: none; }
  .main-content { padding: 18px 12px 28px; }
  .club-profile, .club-profile.compact {
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 14px;
  }
  .club-logo {
    width: 150px;
    height: 128px;
  }
  .club-logo strong { font-size: 30px; }
  .contact-row { gap: 12px; }
  .profile-tabs { gap: 12px; }
  .kpi-grid, .kpi-grid.six, .compact-kpis,
  .content-grid.two, .content-grid.three, .split-2-1, .split-1-2,
  .right-rail, .info-strip, .report-layout,
  .review-top, .preview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .opportunity-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .kpi-card { min-height: 96px; }
  .info-strip > div + div { border-left: 0; border-top: 0; }
  .info-strip > div { border-top: 1px solid var(--border); }
  .info-strip > div:nth-child(-n + 2) { border-top: 0; }
  .info-strip > div:nth-child(2n) { border-left: 1px solid var(--border); }
  .donut-module, .financial-donut {
    grid-template-columns: 1fr;
    justify-items: center;
  }
  .donut-legend { width: 100%; }
  .media-grid.six, .media-grid.five { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-snapshot { grid-template-columns: 1fr; }
  .market-snapshot > div + div { border-left: 0; border-top: 1px solid var(--border); padding-left: 0; padding-top: 16px; }
  .ranking-stats { grid-template-columns: 1fr; }
  .ranking-stats > div + div { border-left: 0; border-top: 1px solid var(--border); }
  .review-item {
    grid-template-columns: 44px minmax(0, 1fr);
  }
  .review-item p, .review-photo { grid-column: 1 / -1; }
  .export-grid, .scenario-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .map-mock.large { min-height: 420px; }
}

@media (max-width: 430px) {
  body { font-size: 13px; }
  .brand span:last-child { display: none; }
  .brand-mark { width: 38px; }
  h1 { font-size: 25px; }
  .card > :not(.card-title) { margin: 14px; }
  .card-title { padding: 14px 14px 0; }
  .club-profile, .club-profile.compact {
    grid-template-columns: 1fr;
  }
  .club-logo {
    width: 170px;
  }
  .kpi-grid, .kpi-grid.six, .compact-kpis,
  .content-grid.two, .content-grid.three, .split-2-1, .split-1-2,
  .right-rail, .opportunity-strip, .info-strip, .report-layout,
  .review-top, .preview-grid,
  .export-grid, .scenario-grid {
    grid-template-columns: 1fr !important;
  }
  .opportunity-strip > div + div,
  .info-strip > div + div,
  .info-strip > div:nth-child(2n) {
    border-left: 0;
    border-top: 1px solid var(--border);
  }
  .media-grid.six, .media-grid.five { grid-template-columns: 1fr; }
  .map-mock.large { min-height: 360px; }
  .map-actions { left: 12px; bottom: 12px; }
  .map-controls { right: 12px; bottom: 12px; }
  .marker {
    left: 47%;
    top: 49%;
    font-size: 12px;
  }
  .lugano { font-size: 17px; }
  .castagnola { left: 38%; }
  .kpi-card strong { font-size: 24px; }
}

/* SPORTIA visual system 2026 */
:root {
  --sportia-green: #079455;
  --sportia-green-dark: #057647;
  --sportia-green-soft: #edf9f3;
  --navy: #0a1744;
  --navy-muted: #53617f;
  --border: #e3e9f1;
  --bg: #f6f8fb;
  --pastel-green: #60c494;
  --pastel-blue: #80aef1;
  --pastel-purple: #a695df;
  --pastel-yellow: #f2c875;
  --pastel-cyan: #7bcbd1;
  --shadow: 0 1px 1px rgba(10, 23, 68, .025), 0 7px 24px rgba(35, 56, 96, .045);
  --shadow-soft: 0 2px 2px rgba(10, 23, 68, .025), 0 14px 34px rgba(35, 56, 96, .075);
  --header: 74px;
  --sidebar: 238px;
  --rail: 284px;
}

body {
  background: linear-gradient(180deg, #fff 0, #fbfcfd 42%, #f6f8fb 100%);
  font-family: "Avenir Next", "Inter Variable", Inter, "SF Pro Text", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 13.5px;
  font-weight: 400;
  font-variation-settings: "wght" 400;
  text-rendering: optimizeLegibility;
}

.app-header {
  grid-template-columns: var(--sidebar) minmax(470px, 1fr) auto;
  padding: 0 18px;
  border-bottom-color: rgba(216, 225, 236, .9);
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 4px 20px rgba(27, 45, 81, .025);
}

.brand { width: 180px; gap: 0; }
.brand-logo { display: block; width: 172px; height: 44px; object-fit: contain; object-position: left center; }
.top-nav { gap: clamp(18px, 2.6vw, 38px); font-weight: 560; font-variation-settings: "wght" 560; }
.top-link.active::after { left: -7px; right: -7px; height: 2px; }

.search-wrap { position: relative; }
.search {
  width: min(320px, 23vw);
  height: 42px;
  border-radius: 8px;
  background: #fbfcfe;
  transition: width .2s ease, border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.search:focus-within {
  width: min(350px, 26vw);
  border-color: rgba(7, 148, 85, .38);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(7, 148, 85, .07);
}
.search-result {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  z-index: 90;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 11px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 18px 42px rgba(18, 37, 76, .14);
}
.search-result[hidden] { display: none; }
.search-result-mark {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid #dce5f0;
  border-radius: 50%;
  color: var(--navy);
  background: #fff;
  font-family: Georgia, serif;
  font-weight: 700;
}
.search-result strong, .search-result small { display: block; }
.search-result strong { font-size: 12px; }
.search-result small { margin-top: 2px; color: var(--navy-muted); }
.search-result kbd { color: #8a98b1; font-family: inherit; }

.avatar {
  border: 2px solid #fff;
  background: linear-gradient(145deg, #29436f, #bd774f);
  box-shadow: 0 0 0 1px var(--border), 0 5px 14px rgba(17, 34, 70, .11);
}

.sidebar {
  padding: 20px 12px;
  background: rgba(252, 253, 254, .9);
  border-right-color: rgba(220, 228, 238, .9);
}
.side-group { gap: 5px; }
.side-link {
  min-height: 44px;
  gap: 12px;
  padding: 0 12px;
  border-radius: 7px;
  font-size: 13px;
  font-weight: 530;
  font-variation-settings: "wght" 530;
}
.side-link svg { width: 19px; height: 19px; stroke-width: 1.7; }
.side-link.active {
  background: linear-gradient(90deg, #eaf8f1 0%, #f6fbf8 100%);
  box-shadow: inset 3px 0 0 var(--sportia-green);
}
.side-separator { margin: 13px 8px; background: #e7ebf2; }
.report-link .side-link { background: #fff; }

.main-content { padding: 22px clamp(16px, 2vw, 30px) 34px; }
.page-grid { max-width: 1540px; gap: 18px; }
.page-primary { gap: 14px; }
.page-grid.with-rail { gap: 18px; }
.right-rail { top: calc(var(--header) + 18px); gap: 12px; }
.right-rail > .card { box-shadow: none; background: rgba(255, 255, 255, .82); }
.right-rail > .ai-card { border-top-color: rgba(126, 174, 241, .55); }

.club-profile {
  position: relative;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 22px;
  align-items: center;
  min-height: 158px;
  padding: 2px 0 8px;
}
.club-profile::after {
  content: "";
  position: absolute;
  left: 172px;
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, rgba(7, 148, 85, .18), rgba(227, 233, 241, .8), transparent);
}
.club-profile.compact { grid-template-columns: 132px minmax(0, 1fr); min-height: 138px; }
.club-profile.compact::after { left: 152px; }
.club-logo {
  width: 150px;
  height: 150px;
  padding: 14px;
  border-color: #e3e8ef;
  background: linear-gradient(180deg, #fff, #fdfefe);
  box-shadow: 0 8px 26px rgba(28, 46, 84, .045);
}
.club-profile.compact .club-logo { width: 132px; height: 132px; }
.club-profile-main { gap: 9px; padding-top: 0; }
h1 { font-size: clamp(25px, 2vw, 31px); line-height: 1.12; font-weight: 650; font-variation-settings: "wght" 650; }
.club-profile p, .simple-title p { font-size: 14px; font-weight: 520; font-variation-settings: "wght" 520; }
.title-row { gap: 11px; }
.verified, .badge { padding: 5px 9px; font-size: 11px; font-weight: 560; font-variation-settings: "wght" 560; }
.tags { gap: 7px; }
.tag { padding: 6px 10px; font-size: 11.5px; font-weight: 500; font-variation-settings: "wght" 500; background: rgba(255, 255, 255, .78); }
.contact-row { gap: 8px 20px; color: #334265; font-size: 12px; font-weight: 430; font-variation-settings: "wght" 430; }
.contact-row svg { color: #1f3d86; stroke-width: 1.7; }

.profile-tabs { justify-content: space-between; gap: 8px; }
.profile-tabs button { min-height: 46px; padding: 0 10px; font-size: 12px; font-weight: 540; font-variation-settings: "wght" 540; }
.profile-tabs button.active::after { height: 2px; }

.card {
  border-color: rgba(224, 231, 240, .96);
  background: rgba(255, 255, 255, .94);
  box-shadow: var(--shadow);
  isolation: isolate;
}
.card:hover { border-color: rgba(7, 148, 85, .22); box-shadow: var(--shadow-soft); transform: translateY(-1px); }
.card-title { position: relative; padding: 14px 16px 0; }
.card-title h2 { font-size: 15.5px; font-weight: 620; font-variation-settings: "wght" 620; }
.card-accent { margin-left: auto; width: 22px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, transparent, rgba(7, 148, 85, .32)); opacity: 0; transition: opacity .18s ease, width .18s ease; }
.card:hover .card-accent { width: 34px; opacity: 1; }
.card > :not(.card-title) { margin: 13px 16px 16px; }
.card-title + * { margin-top: 12px !important; }
.info-dot { border-color: #b8c4d7; color: #6680ae; font-weight: 600; }

.kpi-grid { gap: 11px; }
.kpi-card {
  position: relative;
  min-height: 96px;
  gap: 11px;
  padding: 13px;
  overflow: hidden;
  box-shadow: 0 1px 1px rgba(10, 23, 68, .02), 0 6px 18px rgba(35, 56, 96, .035);
}
.kpi-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--kpi-color, var(--pastel-green)); opacity: .8; }
.kpi-card:nth-child(4n + 1) { --kpi-color: var(--pastel-green); --kpi-soft: #eef9f4; }
.kpi-card:nth-child(4n + 2) { --kpi-color: var(--pastel-blue); --kpi-soft: #f0f5fd; }
.kpi-card:nth-child(4n + 3) { --kpi-color: var(--pastel-purple); --kpi-soft: #f4f1fb; }
.kpi-card:nth-child(4n + 4) { --kpi-color: var(--pastel-yellow); --kpi-soft: #fff8ea; }
.metric-icon { width: 40px; height: 40px; color: var(--kpi-color); background: var(--kpi-soft); box-shadow: none; }
.metric-icon svg { width: 20px; height: 20px; stroke-width: 1.8; }
.metric-icon svg.icon-court { stroke-width: 1.1; }
.icon-court .court-net { stroke-dasharray: none !important; stroke-linecap: butt; }
.kpi-label { margin-bottom: 5px; color: #52607b; font-size: 10.5px; font-weight: 560; font-variation-settings: "wght" 560; }
.kpi-card strong { color: var(--navy); font-size: clamp(20px, 1.7vw, 27px); font-weight: 650; font-variation-settings: "wght" 650; }
.kpi-note { display: inline-block; margin-top: 4px; color: var(--sportia-green-dark) !important; font-size: 10.5px !important; font-weight: 520 !important; }
.kpi-signal { position: absolute; right: 10px; bottom: 9px; width: 30px; height: 12px; border-bottom: 1.5px solid var(--kpi-color); transform: skewY(-13deg); opacity: .45; }

.content-grid { gap: 12px; }
.stack { gap: 12px; }
.body-copy { color: #53617f; line-height: 1.65; font-weight: 400; font-variation-settings: "wght" 400; }

.chart { min-height: clamp(150px, 22cqi, 210px); }
.chart svg, .line-chart svg { height: clamp(156px, 33cqi, 218px); overflow: visible; }
.grid-line { stroke: #e9eef5; stroke-dasharray: 3 6; }
.line-chart text { fill: #435274; font-size: 10.5px; font-weight: 500; }
.chart-line-path { stroke-dasharray: 900; stroke-dashoffset: 900; animation: chartDraw .9s cubic-bezier(.2,.7,.2,1) forwards; }
.chart-line-shadow { opacity: .75; }
.chart-area { animation: chartFade .75s ease-out both; }
.chart-point { cursor: default; outline: none; }
.chart-point circle, .radar-point { transition: r .16s ease, filter .16s ease, opacity .16s ease; }
.chart-point .point-halo { opacity: .4; }
.chart-point:hover .point-halo, .chart-point:focus .point-halo { opacity: 1; }
.chart-point:hover circle:not(.point-halo), .chart-point:focus circle:not(.point-halo) { r: 6; }

.radar-chart svg { width: min(94%, 286px); max-width: 286px; }
.radar-chart text { fill: #566482; font-size: 9.5px; font-weight: 460; }
.radar-area { transform-origin: center; animation: radarIn .65s cubic-bezier(.2,.8,.2,1) both; }
.radar-point { cursor: default; outline: none; }
.radar-point:hover, .radar-point:focus { r: 6; }

.donut-module { grid-template-columns: minmax(112px, 156px) minmax(0, 1fr); gap: 14px; }
.donut-figure { max-width: 172px; filter: drop-shadow(0 8px 14px rgba(38, 63, 98, .07)); }
.donut-segment { cursor: default; outline: none; transform-origin: 60px 60px; transition: stroke-width .16s ease, filter .16s ease, opacity .16s ease; animation: donutIn .72s cubic-bezier(.2,.75,.2,1) both; }
.donut-segment:hover, .donut-segment:focus { stroke-width: 21; filter: saturate(1.08) drop-shadow(0 2px 3px rgba(25, 46, 78, .12)); }
.donut-figure:has(.donut-segment:hover) .donut-segment:not(:hover) { opacity: .55; }
.donut-core { filter: drop-shadow(0 0 7px rgba(26, 47, 77, .04)); }
.donut-center strong { font-size: 14px; font-weight: 620; }
.donut-legend { gap: 8px; }
.donut-legend li { grid-template-columns: 9px minmax(0, 1fr) auto; gap: 8px; color: #4e5c79; font-size: 10.8px; font-weight: 450; }
.donut-legend li span { width: 8px; height: 8px; }
.donut-legend li strong { color: var(--navy); font-weight: 620; }
.financial-donut { grid-template-columns: minmax(145px, 190px) minmax(0, 1fr); }
.financial-donut .donut-figure { max-width: 194px; }

.bar-list { gap: 10px; }
.bar-row { grid-template-columns: minmax(104px, 1fr) minmax(90px, 1.6fr) 38px; gap: 10px; color: #3f4e70; font-size: 11.5px; font-weight: 460; outline: none; }
.bar-row div { height: 6px; background: #edf1f6; }
.bar-row b { width: 0; background: var(--bar-color); animation: barGrow .72s cubic-bezier(.2,.75,.2,1) forwards; }
.bar-row:hover b, .bar-row:focus b { filter: saturate(1.08); box-shadow: 0 0 0 3px color-mix(in srgb, var(--bar-color) 18%, transparent); }
.bar-row strong { color: var(--navy); font-weight: 610; }

.progress-ring { width: 84px; height: 84px; }
.progress-ring circle { stroke-width: 8; }
.progress-ring .bar { animation: ringIn .8s cubic-bezier(.2,.75,.2,1) both; }
.progress-ring strong { font-size: 20px; font-weight: 650; }

.ranking-stats { border-color: #e3e9f1; background: linear-gradient(180deg, #fff, #fbfcfe); }
.ranking-stats > div { min-height: 146px; padding: 16px; }
.ranking-stats strong { font-size: 42px; font-weight: 650; }
.ranking-stats span { color: #53617f; font-weight: 430; }
.score-big { font-size: 38px; font-weight: 650; }

.table-scroll { border-radius: 6px; }
table { min-width: 620px; }
th, td { padding: 11px 10px; border-bottom-color: #e8edf4; font-size: 11.5px; }
th { color: #65728d; font-size: 9.5px; font-weight: 600; letter-spacing: 0; }
tbody tr { transition: background .16s ease, box-shadow .16s ease; }
tbody tr:hover { background: linear-gradient(90deg, rgba(237, 249, 243, .86), rgba(246, 249, 253, .55)); box-shadow: inset 2px 0 0 rgba(7, 148, 85, .45); }
.benchmark-tools { gap: 6px; }
.benchmark-filter { min-height: 32px; border-radius: 6px; font-size: 11px; font-weight: 520; }
.benchmark-summary { gap: 8px; }
.benchmark-summary span { min-height: 52px; border-radius: 7px; background: #f8fafc; font-size: 10.5px; }
.benchmark-summary b { font-size: 15px; font-weight: 630; }

.market-snapshot strong, .metric-line { font-size: 30px; font-weight: 650; }
.market-snapshot span, .market-snapshot small { font-weight: 400; }
.big-money { font-size: clamp(26px, 2.8vw, 38px); font-weight: 650; }

.matrix { min-height: 250px; gap: 5px; }
.matrix .q { border: 1px solid #edf1f6; background: #f8fafc; color: #66738c; font-size: 11px; font-weight: 540; }
.matrix .q:nth-of-type(1) { background: linear-gradient(135deg, #eef9f3, #f8fbfa); color: var(--sportia-green-dark); }
.matrix .q:nth-of-type(2) { background: linear-gradient(135deg, #f1f5fc, #fafbfd); }
.matrix b { width: 27px; height: 27px; font-size: 11px; box-shadow: 0 6px 16px rgba(42, 70, 106, .16); transition: transform .16s ease; }
.matrix b:hover { transform: scale(1.18); z-index: 2; }

.ecosystem-map { background: linear-gradient(180deg, #fff, #f7fafc); }
.ecosystem-map::before { border-color: #b8d4ec; opacity: .75; }
.eco-center { box-shadow: 0 12px 32px rgba(28, 54, 86, .09); }
.eco-node svg { border-color: #dce6ef; box-shadow: 0 7px 20px rgba(33, 59, 90, .055); transition: transform .18s ease, border-color .18s ease; }
.eco-node:hover svg { transform: translateY(-3px); border-color: rgba(7, 148, 85, .35); }

.opportunity-strip, .info-strip { background: rgba(255, 255, 255, .9); box-shadow: var(--shadow); }
.opportunity-strip strong { font-weight: 650; }
.scenario-grid article { background: #fff; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.scenario-grid article:hover { transform: translateY(-2px); box-shadow: var(--shadow-soft); }
.scenario-grid article.selected { border-color: rgba(7, 148, 85, .65); box-shadow: 0 10px 28px rgba(7, 148, 85, .09); background: linear-gradient(180deg, #fff, #f3fbf7); }

.pill-tabs button { min-height: 36px; padding: 0 14px; font-size: 11px; border-radius: 6px; font-weight: 520; }
.action-card h3 { font-size: 15px; font-weight: 620; }
.action-card p { font-size: 11.5px; font-weight: 400; }

.media-card { border-color: #e3e9f0; background: #fff; }
.media-card > div:first-child { height: clamp(108px, 17cqi, 146px); transition: transform .35s ease, filter .35s ease; }
.media-card:hover > div:first-child { filter: saturate(1.06); }
.media-card strong { font-size: 11.5px; font-weight: 620; }
.media-card span { color: #667793; font-weight: 480; }

.review-item { border-color: #e5eaf1; background: #fff; }
.review-item p { color: #3d4d6e; font-weight: 400; }
.review-score strong { font-weight: 640; }
.module-list li { font-weight: 510; }
.export-grid button { transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.export-grid button:hover { transform: translateY(-2px); border-color: rgba(7, 148, 85, .28); box-shadow: var(--shadow-soft); }

.chart-tooltip {
  position: fixed;
  z-index: 120;
  max-width: 210px;
  transform: translate(-50%, calc(-100% - 12px));
  padding: 7px 10px;
  border: 1px solid rgba(219, 227, 237, .95);
  border-radius: 6px;
  color: #fff;
  background: rgba(10, 23, 68, .92);
  box-shadow: 0 10px 24px rgba(10, 23, 68, .18);
  font-size: 11px;
  font-weight: 540;
  pointer-events: none;
  opacity: 0;
  transition: opacity .12s ease;
}
.chart-tooltip.show { opacity: 1; }
.route-enter { animation: routeIn .32s ease both; }
.reveal-card { animation: cardIn .42s ease both; animation-delay: var(--reveal-delay, 0ms); }

@keyframes chartDraw { to { stroke-dashoffset: 0; } }
@keyframes chartFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes radarIn { from { opacity: 0; transform: scale(.72); } to { opacity: 1; transform: scale(1); } }
@keyframes donutIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes barGrow { to { width: var(--bar-width); } }
@keyframes ringIn { from { stroke-dasharray: 0 var(--circ); } to { stroke-dasharray: var(--dash) var(--circ); } }
@keyframes routeIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
@keyframes cardIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media (max-width: 1280px) {
  :root { --sidebar: 218px; --rail: 272px; }
  .app-header { grid-template-columns: var(--sidebar) minmax(430px, 1fr) auto; }
  .brand { width: 150px; }
  .brand-logo { width: 148px; }
  .top-nav { gap: 16px; }
  .search { width: 230px; }
  .page-grid.with-rail .kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1100px) {
  :root { --sidebar: 232px; }
  .app-header { grid-template-columns: auto 1fr auto; }
  .brand { width: 148px; }
  .sidebar { width: 286px; }
  .page-grid.with-rail { grid-template-columns: 1fr; }
  .right-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  :root { --header: 64px; }
  .brand-logo { width: 132px; height: 34px; }
  .search-wrap { width: 42px; }
  .search { width: 42px; border-radius: 8px; }
  .search:focus-within { width: 42px; }
  .search-result { display: none !important; }
  .main-content { padding: 16px 12px 26px; }
  .page-grid, .page-primary { gap: 12px; }
  .club-profile, .club-profile.compact { grid-template-columns: 104px minmax(0, 1fr); min-height: 118px; gap: 14px; padding-bottom: 10px; }
  .club-profile::after, .club-profile.compact::after { left: 118px; }
  .club-logo, .club-profile.compact .club-logo { width: 104px; height: 104px; padding: 9px; }
  .club-profile-main { gap: 7px; }
  h1 { font-size: clamp(21px, 4.6vw, 27px); }
  .club-profile p { font-size: 12.5px; }
  .tags { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
  .tag { flex: 0 0 auto; }
  .contact-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 14px; }
  .contact-row span { min-width: 0; overflow-wrap: anywhere; }
  .profile-tabs { justify-content: flex-start; }
  .profile-tabs button { min-height: 42px; }
  .kpi-grid, .kpi-grid.six, .compact-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .content-grid.two, .content-grid.three, .split-2-1, .split-1-2, .ranking-grid, .review-layout, .report-layout { grid-template-columns: 1fr !important; }
  .market-top > .card:first-child { grid-column: auto; }
  .right-rail { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .opportunity-strip { grid-template-columns: 1fr; }
  .opportunity-strip > div + div { border-left: 0; border-top: 1px solid var(--border); }
  .preview-grid { grid-template-columns: 120px minmax(0, 1fr) !important; }
  .preview-grid > :last-child { grid-column: 1 / -1; }
  .review-top { grid-template-columns: 1fr !important; }
}

@media (max-width: 540px) {
  body { font-size: 13px; }
  .app-header { padding: 0 10px; }
  .brand { width: 118px; }
  .brand-logo { width: 116px; }
  .header-actions { gap: 4px; }
  .notification { width: 34px; }
  .main-content { padding-inline: 10px; }
  .club-profile, .club-profile.compact { grid-template-columns: 88px minmax(0, 1fr); gap: 11px; min-height: 104px; }
  .club-profile::after, .club-profile.compact::after { left: 99px; }
  .club-logo, .club-profile.compact .club-logo { width: 88px; height: 88px; padding: 7px; }
  .club-profile-main { align-self: start; padding-top: 2px; }
  .title-row { display: grid; gap: 6px; justify-items: start; }
  h1 { font-size: 21px; line-height: 1.08; }
  .verified { padding: 4px 7px; }
  .tags, .contact-row { grid-column: 1 / -1; }
  .contact-row { grid-template-columns: 1fr; font-size: 11px; }
  .profile-tabs { margin-inline: -10px; padding-inline: 10px; }
  .kpi-grid, .kpi-grid.six, .compact-kpis {
    display: flex;
    gap: 9px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding: 2px 1px 8px;
  }
  .kpi-card { flex: 0 0 min(78vw, 284px); min-height: 92px; scroll-snap-align: start; }
  .right-rail {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding: 2px 1px 8px;
  }
  .right-rail > .card { flex: 0 0 min(84vw, 310px); scroll-snap-align: start; }
  .media-grid.six, .media-grid.five {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding-bottom: 7px;
  }
  .media-card { flex: 0 0 min(76vw, 270px); scroll-snap-align: start; }
  .media-card > div:first-child { height: 150px; }
  .donut-module, .financial-donut { grid-template-columns: minmax(118px, 150px) minmax(0, 1fr); justify-items: stretch; }
  .donut-figure, .financial-donut .donut-figure { width: 100%; max-width: 150px; }
  .donut-legend li { font-size: 10px; }
  .ranking-stats { grid-template-columns: repeat(3, 1fr); }
  .ranking-stats > div { min-height: 112px; padding: 10px 7px; }
  .ranking-stats > div + div { border-top: 0; border-left: 1px solid var(--border); }
  .ranking-stats strong { font-size: 28px; }
  .ranking-stats span { font-size: 10px; line-height: 1.35; }
  .export-grid, .scenario-grid { grid-template-columns: 1fr 1fr; }
  .benchmark-summary { grid-template-columns: 1fr; }
  .bar-row { grid-template-columns: minmax(92px, 1fr) minmax(74px, 1.2fr) 34px; }
  #toast { left: 10px; right: 10px; bottom: 12px; text-align: center; }
}

@media (max-width: 380px) {
  .brand { width: 106px; }
  .brand-logo { width: 104px; }
  .menu-button { width: 34px; }
  .search-wrap, .search { width: 36px; }
  .club-profile, .club-profile.compact { grid-template-columns: 76px minmax(0, 1fr); }
  .club-profile::after, .club-profile.compact::after { left: 87px; }
  .club-logo, .club-profile.compact .club-logo { width: 76px; height: 76px; }
  h1 { font-size: 19px; }
  .verified { font-size: 9.5px; }
  .tag { padding: 5px 8px; font-size: 10.5px; }
  .donut-module, .financial-donut { grid-template-columns: 1fr; justify-items: center; }
  .donut-legend { width: 100%; }
  .export-grid, .scenario-grid { grid-template-columns: 1fr; }
}

/* Content refinement: maps, media and dense analysis pages */
.facility-pictogram {
  display: flex;
  align-items: center;
  gap: 18px;
  min-height: 96px;
  margin-top: 18px;
  padding: 12px 16px;
  border: 1px solid #dcece4;
  border-radius: 7px;
  color: var(--sportia-green);
  background: linear-gradient(135deg, #f2faf6, #fbfcfe);
}
.facility-pictogram svg { stroke-width: 1.35; filter: drop-shadow(0 7px 12px rgba(7, 148, 85, .1)); }
.facility-pictogram svg.icon-court { stroke-width: 1.1; }
.facility-pictogram span { display: grid; gap: 2px; color: var(--navy); }
.facility-pictogram strong { font-size: 18px; font-weight: 620; }
.facility-pictogram small { color: var(--navy-muted); font-size: 11px; font-weight: 400; }

.map-mock.map-live {
  position: relative;
  min-height: 220px;
  overflow: hidden;
  isolation: isolate;
  border-radius: 8px;
  background: linear-gradient(135deg, #eef4f1 0 48%, #dbeef7 48% 100%);
}
.map-mock.map-live.large { min-height: 540px; }
.map-live::before {
  display: none;
}
.osm-fallback {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  transition: opacity .25s ease;
}
.osm-fallback::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(18deg, transparent 0 58px, rgba(195, 207, 217, .3) 59px 61px),
    repeating-linear-gradient(108deg, transparent 0 72px, rgba(209, 219, 227, .38) 73px 75px);
}
.osm-frame {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  border: 0;
  background: transparent;
  filter: saturate(.78) contrast(.94) brightness(1.025);
  opacity: 0;
  transition: opacity .25s ease;
}
.map-live.map-loaded .osm-frame { opacity: 1; }
.map-live.map-loaded .osm-fallback { opacity: 0; }
.map-poi {
  position: absolute;
  z-index: 2;
  padding: 3px 6px;
  border: 1px solid rgba(209, 218, 227, .9);
  border-radius: 4px;
  color: #53617a;
  background: rgba(255,255,255,.86);
  font-size: 9px;
  font-weight: 500;
}
.map-poi.center { left: 10%; top: 25%; }
.map-poi.station { left: 23%; top: 44%; color: #2868d8; }
.map-poi.park-label { right: 11%; top: 35%; color: #237b50; }
.map-label.cassarate { left: 42%; top: 31%; font-size: 11px; }
.map-label.lake-name { left: 34%; bottom: 22%; color: #296eb6; font-style: italic; }
.map-location-badge {
  position: absolute;
  left: 16px;
  top: 16px;
  z-index: 3;
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  max-width: min(250px, calc(100% - 32px));
  padding: 9px 11px;
  border: 1px solid rgba(218, 228, 237, .95);
  border-radius: 7px;
  color: var(--sportia-green-dark);
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 8px 22px rgba(20, 43, 77, .1);
  backdrop-filter: blur(8px);
  pointer-events: none;
}
.map-location-badge svg { color: var(--sportia-green); }
.map-location-badge strong, .map-location-badge small { display: block; }
.map-location-badge strong { color: var(--navy); font-size: 11px; font-weight: 620; }
.map-location-badge small { margin-top: 2px; color: var(--navy-muted); font-size: 9.5px; }
.map-attribution {
  position: absolute;
  right: 8px;
  bottom: 7px;
  z-index: 3;
  padding: 3px 6px;
  border-radius: 4px;
  color: #42516d;
  background: rgba(255,255,255,.88);
  font-size: 8.5px;
  pointer-events: none;
}
.map-actions { z-index: 4; }
.map-actions a, .map-actions button {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  max-width: 100%;
  padding: 0 15px;
  border: 1px solid #dce4ed;
  border-radius: 7px;
  color: #275baf;
  background: rgba(255,255,255,.96);
  box-shadow: 0 7px 18px rgba(21, 42, 76, .09);
  font-size: 11px;
  font-weight: 540;
}
.partner-map { position: relative; }
.partner-map .map-location-badge { display: none; }
.partner-map .map-attribution { bottom: 6px; }
.partner-map-stats {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 4;
  display: flex;
  gap: 6px;
  pointer-events: none;
}
.partner-map-stats span {
  padding: 6px 8px;
  border: 1px solid rgba(219, 228, 236, .95);
  border-radius: 6px;
  color: var(--navy);
  background: rgba(255,255,255,.94);
  box-shadow: 0 5px 16px rgba(20, 41, 73, .08);
  font-size: 9.5px;
  font-weight: 560;
}

.media-cover { position: relative; overflow: hidden; }
.media-cover img {
  position: absolute;
  width: 300%;
  max-width: none;
  height: 200%;
  object-fit: fill;
  transition: filter .38s ease;
}
.media-cover.clay img { left: 0; top: 0; }
.media-cover.lake img { left: -100%; top: 0; }
.media-cover.house img { left: -200%; top: 0; }
.media-cover.event img { left: 0; top: -100%; }
.media-cover.academy img { left: -100%; top: -100%; }
.media-cover.team img, .media-cover.sunset img { left: -200%; top: -100%; }
.media-card:hover .media-cover img { filter: saturate(1.08) contrast(1.025); }
.media-cover::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 42%;
  background: linear-gradient(180deg, transparent, rgba(8, 20, 52, .2));
  pointer-events: none;
}
.media-cover .play-badge, .media-cover small { z-index: 2; }
.media-source-note {
  margin-top: 0 !important;
  margin-bottom: 10px !important;
  color: #748199;
  font-size: 10px;
  font-weight: 400;
}
.see-all { font-size: 11px; font-weight: 560; }

.opportunity-portfolio { overflow: hidden; }
.opportunity-portfolio td:nth-child(2) { min-width: 210px; }
.opportunity-portfolio td:nth-child(2) svg { width: 18px; height: 18px; margin-right: 7px; color: var(--sportia-green); vertical-align: middle; }
.opportunity-portfolio td:last-child { white-space: nowrap; }
.opportunity-analytics > .card { min-height: 322px; }
.opportunity-priority .numbered { gap: 13px; }
.opportunity-priority .numbered li { grid-template-columns: 34px minmax(0, 1fr); }
.opportunity-priority .numbered strong { width: 30px; height: 30px; font-size: 14px; }
.opportunity-priority .numbered span { font-size: 12px; font-weight: 580; }
.opportunity-priority .numbered p { font-size: 10.5px; font-weight: 400; }

.review-summary-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, .85fr);
  gap: 12px;
}
.review-overview {
  display: grid;
  grid-template-columns: minmax(145px, .65fr) minmax(220px, 1.35fr);
  align-items: center;
  gap: 22px;
}
.review-overview > div:first-child { padding-right: 20px; border-right: 1px solid var(--border); }
.review-score strong { font-size: 48px; font-weight: 630; }
.review-score span { font-size: 23px; font-weight: 430; }
.stars { font-size: 22px; letter-spacing: 1px; }
.rating-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; }
.rating-list li {
  min-height: 38px;
  padding: 7px 9px;
  border: 1px solid #e6ebf1;
  border-radius: 6px;
  background: #fafbfd;
  font-size: 12px;
  font-weight: 460;
}
.rating-list li strong { font-size: 14px; font-weight: 620; }
.review-composer textarea { min-height: 84px; }
.rating-input { display: flex; gap: 4px; margin-block: 10px; }
.rating-input button {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  color: var(--sportia-green);
  background: transparent;
  font-size: 25px;
  line-height: 1;
}
.rating-input button:hover, .rating-input button.selected { transform: translateY(-1px); color: #07854d; }
.review-item { grid-template-columns: 46px 148px minmax(0, 1fr) 92px; padding: 13px; }
.review-item h3 { font-size: 13px; font-weight: 600; }
.review-item > div:nth-child(2) > span { color: var(--navy-muted); font-size: 10.5px; }
.review-item p { font-size: 11.5px; line-height: 1.5; }

.finance-trend-grid > .card { min-height: 274px; }
.finance-analysis-grid {
  display: grid;
  grid-template-columns: minmax(290px, .78fr) minmax(0, 1.42fr);
  gap: 12px;
  align-items: stretch;
}
.finance-analysis-grid > .card { min-width: 0; }
.revenue-mix-card .financial-donut { grid-template-columns: 1fr; justify-items: center; }
.revenue-mix-card .donut-figure { width: min(70%, 210px); }
.revenue-mix-card .donut-legend { width: 100%; grid-template-columns: 1fr; }
.finance-indicators th, .finance-indicators td { padding-block: 10px; font-size: 10.5px; }
.finance-indicators th { font-size: 8.5px; }
.service-revenue-grid .card { min-height: 228px; }
.service-revenue-grid .line-chart svg { height: 150px; }
.mini-metric strong { font-size: 26px; font-weight: 630; }
.mini-metric span { font-size: 10.5px; font-weight: 500; }

.card button, .card a { min-width: 0; }
.card button { max-width: 100%; }
.outline-action, .ghost-button, .primary-action {
  min-height: 40px;
  height: auto;
  padding: 8px 12px;
  line-height: 1.25;
  white-space: normal;
  overflow-wrap: anywhere;
  font-size: 11.5px;
  font-weight: 560;
}
.card > .outline-action, .card > .ghost-button, .card > .primary-action { width: auto; }
.card > .chart,
.card > .line-chart,
.card > .table-scroll,
.card > .donut-module,
.card > textarea {
  width: auto;
  max-width: none;
}
.quick-actions { min-width: 0; }
.quick-actions button { width: 100%; min-width: 0; padding: 6px 0; font-size: 11.5px; font-weight: 450; }
.quick-actions button span { min-width: 0; overflow-wrap: anywhere; }
.insight-list li, .icon-list li { font-weight: 430; }
.info-strip strong { font-weight: 600; }
.table-scroll { width: 100%; max-width: 100%; overscroll-behavior-inline: contain; }
td strong { font-weight: 600; }

@media (max-width: 1100px) {
  .map-mock.map-live.large { min-height: 470px; }
  .opportunity-analytics > .card { min-height: auto; }
}

@media (max-width: 820px) {
  .review-summary-grid, .finance-analysis-grid { grid-template-columns: 1fr; }
  .review-overview { grid-template-columns: minmax(130px, .6fr) minmax(0, 1.4fr); }
  .revenue-mix-card .financial-donut { grid-template-columns: minmax(150px, 190px) minmax(0, 1fr); }
  .revenue-mix-card .donut-figure { width: 100%; }
  .map-mock.map-live.large { min-height: 420px; }
}

@media (max-width: 540px) {
  .facility-pictogram { min-height: 82px; gap: 12px; }
  .facility-pictogram svg { width: 58px; height: 58px; }
  .map-mock.map-live.large { min-height: 365px; }
  .map-location-badge { left: 10px; top: 10px; max-width: calc(100% - 20px); }
  .map-actions { left: 10px; right: 10px; bottom: 10px; gap: 7px; }
  .map-actions a, .map-actions button { flex: 1 1 0; padding-inline: 9px; }
  .map-attribution { right: 5px; bottom: 55px; }
  .review-overview { grid-template-columns: 1fr; gap: 14px; }
  .review-overview > div:first-child { padding: 0 0 13px; border-right: 0; border-bottom: 1px solid var(--border); }
  .rating-list { grid-template-columns: 1fr; }
  .review-item { grid-template-columns: 42px minmax(0, 1fr); }
  .review-item p, .review-photo { grid-column: 1 / -1; }
  .review-photo { height: 118px; }
  .revenue-mix-card .financial-donut { grid-template-columns: 1fr; }
  .revenue-mix-card .donut-figure { width: min(68vw, 200px); }
  .opportunity-portfolio td:nth-child(2) { min-width: 180px; }
}

/* Portal-inspired editorial system */
:root {
  --portal-blue: #205493;
  --portal-sky: #5b91d1;
  --portal-green: #079455;
  --portal-lime: #91bd55;
  --portal-gold: #d3a33c;
  --portal-coral: #dc7662;
  --portal-violet: #766bd0;
  --navy: #10264a;
  --navy-muted: #5a6880;
  --border: #e1e7ed;
  --bg: #f4f7f9;
  --shadow: 0 1px 2px rgba(16, 38, 74, .025), 0 5px 16px rgba(31, 57, 88, .035);
  --shadow-soft: 0 2px 3px rgba(16, 38, 74, .03), 0 10px 25px rgba(31, 57, 88, .065);
}

body {
  color: var(--navy);
  background: linear-gradient(180deg, #ffffff 0, #f8fafb 44%, #f3f6f8 100%);
  font-family: "Avenir Next", Avenir, "Helvetica Neue", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: 400;
  font-variation-settings: "wght" 400;
}
strong, b { font-weight: 600; }

.main-content { --page-accent: var(--portal-green); }
.main-content[data-page="mappa"] { --page-accent: #327cc3; }
.main-content[data-page="ranking"] { --page-accent: var(--portal-gold); }
.main-content[data-page="market-insights"] { --page-accent: #2a9e9d; }
.main-content[data-page="opportunita"] { --page-accent: var(--portal-violet); }
.main-content[data-page="network"] { --page-accent: #3375ae; }
.main-content[data-page="interventi-consigliati"] { --page-accent: #d47c49; }
.main-content[data-page="documenti"] { --page-accent: #4d78c7; }
.main-content[data-page="foto-video"] { --page-accent: #a75d88; }
.main-content[data-page="recensioni"] { --page-accent: #c39732; }
.main-content[data-page="dati-finanziari"] { --page-accent: #14835a; }
.main-content[data-page="report"] { --page-accent: #334f8a; }

.app-header {
  border-bottom-color: #e3e8ed;
  background: rgba(255,255,255,.96);
  box-shadow: 0 2px 12px rgba(22, 50, 85, .035);
}
.top-nav { color: #1e3457; font-size: 12.5px; font-weight: 520; font-variation-settings: "wght" 520; }
.top-link.active, .top-link:hover { color: var(--portal-green); }
.top-link.active::after { height: 2px; background: linear-gradient(90deg, var(--portal-green), var(--portal-lime)); }
.search { border-color: #e0e6ec; background: #f6f8fa; }
.search:focus-within { border-color: rgba(32,84,147,.35); box-shadow: 0 0 0 3px rgba(32,84,147,.07); }

.sidebar { background: rgba(249,251,252,.96); }
.side-link { color: #23395c; font-weight: 500; font-variation-settings: "wght" 500; }
.side-link:hover { border-color: #e0e7ec; background: #fff; }
.side-link.active {
  color: #087a4a;
  border-color: #d8eae1;
  background: linear-gradient(90deg, #eaf6f0, #f6faf8);
  box-shadow: inset 3px 0 0 var(--portal-green);
}
.report-link .side-link { color: #245f4a; background: #fff; }

.page-grid, .page-primary { gap: 15px; }
.main-content { padding-top: 20px; }

.club-profile {
  min-height: 154px;
  padding: 12px 14px;
  border-top: 1px solid #e5eaef;
  border-bottom: 1px solid #e5eaef;
  background: linear-gradient(90deg, #fff 0, #f9fbfc 72%, color-mix(in srgb, var(--page-accent) 5%, #fff) 100%);
}
.club-profile::before {
  content: "";
  position: absolute;
  left: 0;
  top: 12px;
  bottom: 12px;
  width: 3px;
  background: var(--page-accent);
}
.club-profile::after { display: none; }
.club-profile.compact { min-height: 132px; }
.club-logo {
  border-color: #dfe5eb;
  border-radius: 6px;
  box-shadow: 0 4px 14px rgba(25, 54, 88, .045);
}
h1 { color: #10264a; font-weight: 620; font-variation-settings: "wght" 620; }
.club-profile p, .simple-title p { color: #435471; font-weight: 470; font-variation-settings: "wght" 470; }
.tag { border-color: #dde4ea; border-radius: 5px; background: #f8fafb; color: #263b5d; font-weight: 460; font-variation-settings: "wght" 460; }
.contact-row { color: #4c5d77; }
.contact-row svg { color: var(--page-accent); }
.verified { border-radius: 5px; }

.profile-tabs { border-bottom-color: #dfe5ea; }
.profile-tabs button { color: #40516e; font-weight: 500; font-variation-settings: "wght" 500; }
.profile-tabs button:hover, .profile-tabs button.active { color: var(--page-accent); }
.profile-tabs button.active::after { background: var(--page-accent); }

.card {
  border-color: #e1e6eb;
  border-radius: 6px;
  background: #fff;
  box-shadow: var(--shadow);
}
.card:hover {
  border-color: color-mix(in srgb, var(--page-accent) 24%, #dfe5eb);
  box-shadow: var(--shadow-soft);
  transform: none;
}
.card-title { min-height: 36px; padding: 14px 16px 0; gap: 7px; }
.card-title h2 {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #183154;
  font-size: 14.5px;
  font-weight: 580;
  font-variation-settings: "wght" 580;
}
.card-title h2::before {
  content: "";
  width: 3px;
  height: 15px;
  border-radius: 2px;
  background: var(--page-accent);
}
.card-accent { display: none; }
.info-dot { border-color: #b8c4d1; color: #617a9c; }
.card > :not(.card-title) { margin: 13px 16px 16px; }
.right-rail > .card { border-color: #e2e7ec; background: #fdfefe; }
.right-rail .card-title h2 { font-size: 14px; }

.kpi-card {
  min-height: 100px;
  border-color: #e0e6eb;
  border-radius: 6px;
  background: #fff;
}
.kpi-card::before { inset: 0 0 auto; width: 100%; height: 3px; background: var(--kpi-color, var(--page-accent)); }
.kpi-card .metric-icon {
  width: 38px;
  height: 38px;
  border-radius: 6px;
  color: var(--kpi-color, var(--page-accent));
}
.kpi-label { color: #5a6880; font-size: 10px; font-weight: 520; }
.kpi-card strong { color: #163257; font-size: clamp(20px,1.7vw,26px); font-weight: 620; font-variation-settings: "wght" 620; }
.kpi-note { color: #4f6079 !important; font-weight: 450 !important; }
.kpi-signal { display: none; }

.outline-action, .ghost-button {
  border-color: color-mix(in srgb, var(--page-accent) 55%, #dbe2e9);
  color: var(--page-accent);
  background: #fff;
  font-weight: 520;
}
.outline-action:hover, .ghost-button:hover { background: color-mix(in srgb, var(--page-accent) 6%, #fff); }
.primary-action { background: var(--page-accent); font-weight: 560; }
.pill-tabs button { flex: 0 0 auto; color: #3e506d; background: #fff; font-weight: 500; }
.pill-tabs.inline { justify-content: flex-start; gap: 6px; }
.pill-tabs.inline button { padding-inline: 10px; }
.pill-tabs button.active { color: var(--page-accent); border-color: var(--page-accent); background: color-mix(in srgb, var(--page-accent) 6%, #fff); }

table { border-collapse: separate; border-spacing: 0; }
thead th {
  color: #566780;
  background: #f6f8fa;
  font-size: 9.5px;
  font-weight: 570;
  text-transform: uppercase;
}
th, td { border-bottom-color: #e6ebef; }
td { color: #263d60; font-weight: 400; }
tbody tr:hover {
  background: color-mix(in srgb, var(--page-accent) 5%, #fff);
  box-shadow: inset 2px 0 0 var(--page-accent);
}
.badge { border-radius: 5px; font-weight: 520; }

.facility-pictogram { border-color: color-mix(in srgb, var(--page-accent) 20%, #e0e7eb); background: color-mix(in srgb, var(--page-accent) 4%, #fff); color: var(--page-accent); }
.insight-list svg, .rating-list svg { color: var(--page-accent); }
.insight-list li { color: #334966; font-weight: 420; }
.big-money, .score-big, .review-score strong, .mini-metric strong { color: var(--page-accent); }
.progress-ring .bar { stroke: var(--page-accent); }
.progress-ring strong { color: var(--page-accent); }
.opportunity-strip { border-color: color-mix(in srgb, var(--page-accent) 50%, #dfe5ea); }
.opportunity-strip svg, .opportunity-strip strong { color: var(--page-accent); }
.map-location-badge svg { color: var(--page-accent); }

.data-footer { color: #758298; font-size: 11.5px; }
.data-footer p:last-child { color: #8793a5; }

.report-layout {
  grid-template-columns: minmax(220px, .8fr) minmax(300px, 1.35fr) minmax(210px, .75fr);
}
.export-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.export-grid button { min-height: 96px; padding: 10px 8px; }

@container (max-width: 360px) {
  .export-grid { grid-template-columns: 1fr; }
  .export-grid button { min-height: 82px; }
}

@media (max-width: 820px) {
  .main-content { padding-top: 14px; }
  .club-profile, .club-profile.compact { padding: 10px; }
  .club-profile::before { top: 10px; bottom: 10px; }
  .card-title h2 { font-size: 14px; }
}

@media (max-width: 540px) {
  .page-grid, .page-primary { gap: 11px; }
  .club-profile { margin-inline: -2px; }
  .card { border-radius: 6px; }
  .card-title { padding: 13px 14px 0; }
  .card > :not(.card-title) { margin: 12px 14px 14px; }
  .kpi-card { flex-basis: min(76vw,270px); }
  .data-footer { font-size: 10.5px; }
}

/* Targeted analytics refinements */
.ranking-overview {
  grid-template-columns: 1fr 1fr 1.25fr;
  overflow: hidden;
  border-color: #dfe6ec;
  background: #fff;
}
.ranking-overview .ranking-metric {
  min-height: 156px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: 40px auto auto auto;
  align-items: start;
  align-content: center;
  justify-items: center;
  row-gap: 7px;
  padding: 18px 20px;
  text-align: center;
}
.ranking-overview .ranking-metric + .ranking-metric { border-left: 1px solid var(--border); }
.ranking-icon {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  margin: 0;
  border-radius: 50%;
  color: var(--page-accent);
  background: color-mix(in srgb, var(--page-accent) 9%, #fff);
}
.ranking-overview small {
  align-self: start;
  color: #66748b;
  font-size: 10.5px;
  font-weight: 500;
}
.ranking-overview .ranking-metric > strong {
  align-self: center;
  color: var(--page-accent);
  font-size: 36px;
  line-height: 1;
  font-weight: 630;
}
.ranking-overview p {
  align-self: start;
  margin: 0;
  color: #53627b;
  font-size: 10.5px;
  line-height: 1.35;
}
.ranking-overview .rank-percentile {
  grid-template-columns: minmax(0, 1fr);
}

.ranking-benchmark-card .ranking-table tbody tr[hidden] {
  display: none !important;
}

.ranking-benchmark-card .ranking-table table {
  min-width: 0;
  width: 100%;
  table-layout: fixed;
}

.ranking-benchmark-card .ranking-table th,
.ranking-benchmark-card .ranking-table td {
  padding-inline: 9px;
}

.ranking-benchmark-card .ranking-table th:nth-child(1),
.ranking-benchmark-card .ranking-table td:nth-child(1) { width: 42px; }
.ranking-benchmark-card .ranking-table th:nth-child(2),
.ranking-benchmark-card .ranking-table td:nth-child(2) { width: 46px; }
.ranking-benchmark-card .ranking-table th:nth-child(4),
.ranking-benchmark-card .ranking-table td:nth-child(4) { width: 92px; }
.ranking-benchmark-card .ranking-table th:nth-child(5),
.ranking-benchmark-card .ranking-table td:nth-child(5) { width: 76px; }
.ranking-benchmark-card .ranking-table th:nth-child(6),
.ranking-benchmark-card .ranking-table td:nth-child(6) { width: 88px; }

.ranking-benchmark-card .ranking-table td:nth-child(3) {
  overflow-wrap: anywhere;
}

.ranking-loadbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-top: 14px;
  border-top: 1px solid #edf1f5;
}

.ranking-load-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

.ranking-loadbar span {
  color: #66758f;
  font-size: 12px;
  font-weight: 450;
  font-variation-settings: "wght" 450;
}

.ranking-loadbar .outline-action {
  width: auto;
  min-width: 180px;
  padding-inline: 18px;
}

.ranking-loadbar .ghost-button {
  width: auto;
  min-width: 132px;
  padding-inline: 16px;
}
.rank-percentile .progress-ring { grid-row: 1; width: 92px; height: 92px; }
.rank-percentile .progress-ring circle { stroke-width: 7; }
.rank-percentile .progress-ring strong { font-size: 18px; }
.rank-percentile > div { display: grid; gap: 6px; }
.rank-percentile > div strong { color: #19375f; font-size: 18px; font-weight: 610; }

.market-overview-grid { display: grid; gap: 12px; }
.market-secondary-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
  gap: 12px;
}
.market-panorama .market-snapshot { gap: 0; }
.market-panorama .market-snapshot > div {
  min-height: 112px;
  padding: 10px 18px;
}
.market-panorama .market-snapshot > div:first-child { padding-left: 4px; }
.market-panorama .market-snapshot > div + div { padding-left: 22px; }
.market-panorama .market-snapshot strong { font-size: 29px; line-height: 1.05; }
.market-panorama .market-snapshot span { font-size: 10.5px; }
.market-panorama .market-snapshot small { font-size: 10px; }
.market-demand, .market-seasonality { min-height: 278px; }
.market-demand-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.market-demand-head .metric-line { margin: 0 !important; font-size: 30px; }
.market-demand-head .metric-line span { margin-top: 3px; font-size: 10px; }
.market-demand .line-chart svg { height: 178px; max-height: 178px; }
.market-demand .line-chart { min-height: 178px; }
.market-seasonality .donut-module { grid-template-columns: minmax(128px, 155px) minmax(0, 1fr); }
.market-seasonality .donut-figure { max-width: 155px; }
.market-seasonality .donut-legend { gap: 7px; }
.market-seasonality .donut-legend li { font-size: 10px; }

.opportunity-analytics {
  grid-template-columns: minmax(250px, .82fr) minmax(340px, 1.18fr) !important;
}
.opportunity-analytics > .card { min-height: 318px; }
.opportunity-analytics > .card:nth-child(3) { grid-column: 1 / -1; min-height: auto; }
.funnel-module {
  display: grid;
  grid-template-columns: minmax(116px, .9fr) minmax(112px, 1.1fr);
  align-items: center;
  gap: 16px;
}
.funnel { gap: 4px; }
.funnel > div {
  width: calc(100% - var(--stage) * 13%) !important;
  height: 43px;
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
  justify-items: center;
  justify-self: center;
  gap: 7px;
  padding: 0 15px;
  clip-path: polygon(5% 0, 95% 0, 88% 100%, 12% 100%);
  color: #fff;
  background: var(--stage-color) !important;
  font-size: 12px;
}
.funnel > div strong { font-size: 20px; font-weight: 630; }
.funnel-details { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.funnel-details li { display: grid; grid-template-columns: 9px minmax(0,1fr); align-items: center; gap: 8px; }
.funnel-details i { width: 8px; height: 8px; border-radius: 50%; }
.funnel-details span { display: grid; gap: 1px; }
.funnel-details strong { color: #314866; font-size: 10.5px; font-weight: 570; }
.funnel-details small { color: #78859a; font-size: 9.5px; }
.funnel-rate {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 14px !important;
  padding-top: 12px;
  border-top: 1px solid var(--border);
}
.funnel-rate strong { color: var(--page-accent); font-size: 21px; }
.funnel-rate span { color: #617089; font-size: 10px; }

.modern-matrix {
  min-height: 270px;
  padding: 12px 12px 30px 34px;
  gap: 5px;
}
.modern-matrix .q {
  min-height: 108px;
  align-content: start;
  justify-items: start;
  gap: 3px;
  padding: 12px;
  border: 1px solid #e7ecf0;
  color: #334a68;
  background: #f8fafb;
  font-size: 10px;
}
.modern-matrix .q:nth-of-type(1) { background: #edf8f3; }
.modern-matrix .q:nth-of-type(2) { background: #f1f5fb; }
.modern-matrix .q:nth-of-type(3) { background: #fafbfc; }
.modern-matrix .q:nth-of-type(4) { background: #fbf7f1; }
.modern-matrix .q strong { font-size: 10.5px; font-weight: 590; }
.modern-matrix .q small { color: #748298; font-size: 8.5px; font-weight: 400; }
.modern-matrix .matrix-axis {
  position: absolute;
  z-index: 3;
  color: #5c6b82;
  font-size: 9px;
  font-weight: 560;
}
.modern-matrix .axis-y { left: 4px; top: 48%; transform: rotate(-90deg); }
.modern-matrix .axis-x { left: 53%; bottom: 4px; }
.modern-matrix .matrix-point {
  left: var(--x) !important;
  top: var(--y) !important;
  transform: translate(-50%, -50%);
  border: 2px solid #fff;
  font-size: 10px;
  transition: transform .16s ease, box-shadow .16s ease;
}
.modern-matrix .matrix-point:hover { transform: translate(-50%, -50%) scale(1.16); }

.ecosystem-map { min-height: 500px; background: linear-gradient(180deg, #fff, #f7fafc); }
.ecosystem-map::before { display: none; }
.ecosystem-lines {
  position: absolute;
  inset: 5% 4%;
  width: 92%;
  height: 90%;
  overflow: visible;
}
.ecosystem-lines line {
  stroke: #9fc4e3;
  stroke-width: 2;
  stroke-dasharray: 6 8;
  vector-effect: non-scaling-stroke;
}
.eco-center {
  top: 50%;
  width: 118px;
  height: 118px;
  padding: 15px;
  border: 2px solid #d9e5ed;
  background: #fff;
  box-shadow: 0 13px 30px rgba(25,57,92,.1);
}
.eco-center img { width: 100%; height: 100%; object-fit: contain; }
.eco-node {
  width: 112px;
  gap: 7px;
  padding: 8px 6px;
  border: 1px solid #e0e7ec;
  border-radius: 6px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 6px 16px rgba(28,58,91,.055);
  font-size: 10px;
  font-weight: 520;
}
.eco-node svg { width: 38px; height: 38px; padding: 8px; }
.eco-node.top { top: 2%; }
.eco-node.right { right: 1%; top: 22%; }
.eco-node.right2 { right: 3%; top: 60%; }
.eco-node.bottom2 { right: 24%; bottom: 2%; }
.eco-node.bottom { left: 24%; bottom: 2%; }
.eco-node.left2 { left: 3%; top: 60%; }
.eco-node.left { left: 1%; top: 22%; }

.media-operations-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(190px, .72fr) minmax(210px, .83fr);
  gap: 12px;
  align-items: stretch;
}
.media-operations-grid > .card { min-width: 0; }
.see-all {
  border: 0;
  background: transparent;
  font-family: inherit;
  font-weight: 530;
}
.play-badge {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 50%;
  color: #fff;
  background: rgba(13,32,64,.48);
  box-shadow: 0 6px 18px rgba(12,27,52,.2);
}
.play-badge:hover { background: rgba(7,148,85,.88); }

.quick-actions button.outline-action {
  display: flex;
  width: 100%;
  min-height: 40px;
  height: auto;
  padding: 9px 12px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  white-space: nowrap;
}
.quick-actions button.outline-action svg { flex: 0 0 auto; transform: rotate(180deg); }

.rating-list { grid-template-columns: 1fr; gap: 8px; }
.rating-list li {
  grid-template-columns: 24px minmax(0, 1fr) 38px;
  width: auto;
  min-height: 40px;
  padding: 7px 10px;
}
.rating-list li span { min-width: 0; text-align: left; }
.rating-list li strong { min-width: 32px; text-align: right; font-variant-numeric: tabular-nums; }

@media (max-width: 1100px) {
  .market-secondary-grid { grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr); }
  .media-operations-grid { grid-template-columns: minmax(0, 1.35fr) minmax(220px, .65fr); }
  .media-operations-grid > .card:last-child { grid-column: 1 / -1; }
}

@media (max-width: 820px) {
  .market-secondary-grid, .opportunity-analytics { grid-template-columns: 1fr !important; }
  .opportunity-analytics > .card:nth-child(3) { grid-column: auto; }
  .market-demand, .market-seasonality { min-height: auto; }
  .ecosystem-map { min-height: 470px; }
  .media-operations-grid { grid-template-columns: 1fr 1fr; }
  .media-operations-grid > .card:first-child { grid-column: 1 / -1; }
  .media-operations-grid > .card:last-child { grid-column: auto; }
}

@media (max-width: 540px) {
  .ranking-overview {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .ranking-overview .ranking-metric { flex: 0 0 min(76vw, 255px); scroll-snap-align: start; }
  .ranking-overview .ranking-metric + .ranking-metric { border-left: 1px solid var(--border); border-top: 0; }
  .ranking-benchmark-card {
    overflow: hidden;
  }
  .ranking-benchmark-card .ranking-table {
    overflow: visible;
  }
  .ranking-benchmark-card .ranking-table table,
  .ranking-benchmark-card .ranking-table tbody {
    display: block;
    width: 100%;
  }
  .ranking-benchmark-card .ranking-table thead {
    display: none;
  }
  .ranking-benchmark-card .ranking-table tbody {
    display: grid;
    gap: 8px;
  }
  .ranking-benchmark-card .ranking-table tbody tr {
    width: 100%;
    display: grid;
    grid-template-columns: 30px 34px minmax(0, 1fr) auto;
    grid-template-areas:
      "rank avatar club score"
      "rank avatar city rating";
    align-items: center;
    gap: 3px 8px;
    padding: 10px 9px;
    border: 1px solid #e4ebf2;
    border-radius: 8px;
    background: #fff;
  }
  .ranking-benchmark-card .ranking-table tbody tr[hidden] {
    display: none !important;
  }
  .ranking-benchmark-card .ranking-table tbody tr.is-highlighted {
    border-color: #cfe9da;
    background: linear-gradient(90deg, #f1fbf6 0%, #ffffff 100%);
  }
  .ranking-benchmark-card .ranking-table td {
    min-width: 0;
    width: auto !important;
    padding: 0 !important;
    border: 0;
    font-size: 10.5px;
    line-height: 1.25;
  }
  .ranking-benchmark-card .ranking-table td:nth-child(1) {
    grid-area: rank;
    width: 28px !important;
    height: 28px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: var(--sportia-green-dark);
    background: #eaf7ef;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
  }
  .ranking-benchmark-card .ranking-table td:nth-child(2) {
    grid-area: avatar;
  }
  .ranking-benchmark-card .ranking-table td:nth-child(2) > * {
    width: 30px !important;
    height: 30px !important;
  }
  .ranking-benchmark-card .ranking-table td:nth-child(3) {
    grid-area: club;
    color: var(--navy);
    font-size: 11px;
    font-weight: 570;
    overflow-wrap: anywhere;
  }
  .ranking-benchmark-card .ranking-table td:nth-child(3) strong {
    color: var(--sportia-green-dark);
    font-weight: 640;
  }
  .ranking-benchmark-card .ranking-table td:nth-child(4) {
    grid-area: city;
    color: #66758f;
    font-size: 9.5px;
    font-weight: 430;
  }
  .ranking-benchmark-card .ranking-table td:nth-child(5) {
    grid-area: score;
    justify-self: end;
    color: var(--sportia-green);
    font-size: 11px;
    font-weight: 650;
    white-space: nowrap;
  }
  .ranking-benchmark-card .ranking-table td:nth-child(6) {
    grid-area: rating;
    justify-self: end;
    color: #61708a;
    font-size: 9.5px;
    font-weight: 460;
    white-space: nowrap;
  }
  .ranking-loadbar {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
    padding-top: 12px;
  }
  .ranking-loadbar span {
    font-size: 10px;
    text-align: center;
  }
  .ranking-load-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 7px;
  }
  .ranking-loadbar .outline-action,
  .ranking-loadbar .ghost-button {
    width: 100%;
    min-width: 0;
    min-height: 34px;
  }
  .market-panorama .market-snapshot { grid-template-columns: 1fr; }
  .market-panorama .market-snapshot > div { min-height: 88px; padding: 12px 4px; }
  .market-panorama .market-snapshot > div + div { padding-left: 4px; border-left: 0; border-top: 1px solid var(--border); }
  .market-secondary-grid { grid-template-columns: 1fr; }
  .market-seasonality .donut-module { grid-template-columns: 1fr; }
  .market-seasonality .donut-figure { width: min(58vw, 180px); max-width: 180px; }
  .funnel-module { grid-template-columns: 1fr 1fr; gap: 10px; }
  .modern-matrix { min-height: 290px; }
  .ecosystem-map { min-height: auto; }
  .ecosystem-lines { display: none; }
  .eco-center img { width: 76px; height: 76px; }
  .media-operations-grid { grid-template-columns: 1fr; }
  .media-operations-grid > .card:first-child, .media-operations-grid > .card:last-child { grid-column: auto; }
}

/* SPORTIA reference parity */
:root {
  --sportia-green: #008f46;
  --sportia-green-dark: #006c37;
  --sportia-green-soft: #edf8f2;
  --navy: #071447;
  --navy-muted: #536187;
  --border: #dfe6ef;
  --bg: #f8fafc;
  --shadow: 0 2px 8px rgba(7, 20, 71, .025);
  --shadow-soft: 0 5px 16px rgba(7, 20, 71, .045);
  --header: 70px;
  --sidebar: 216px;
  --rail: 280px;
}

body {
  color: var(--navy);
  background: #fff;
  font-family: Inter, "Avenir Next", Avenir, "Helvetica Neue", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 13px;
  font-weight: 400;
  font-variation-settings: "wght" 400;
}

.main-content[data-page] { --page-accent: var(--sportia-green); }
.main-content { padding: 24px 22px 28px; background: #fff; }
.page-grid { width: 100%; max-width: none; gap: 12px; }
.page-grid.with-rail { grid-template-columns: minmax(0, 1fr) var(--rail); gap: 16px; }
.page-primary { gap: 12px; }
.right-rail { top: calc(var(--header) + 16px); gap: 12px; }
.right-rail > .card { background: #fff; }

.app-header {
  grid-template-columns: var(--sidebar) minmax(520px, 1fr) auto;
  gap: 12px;
  padding: 0 18px;
  border-bottom-color: var(--border);
  box-shadow: none;
  background: rgba(255, 255, 255, .98);
}
.brand-logo { width: 154px; height: 44px; object-fit: contain; object-position: left center; }
.top-nav { gap: clamp(24px, 3.1vw, 46px); color: var(--navy); font-size: 12px; font-weight: 600; }
.top-link.active, .top-link:hover { color: var(--sportia-green); }
.top-link.active::after { height: 2px; background: var(--sportia-green); }
.search { width: min(306px, 23vw); height: 40px; border-color: var(--border); background: #fff; }
.avatar { width: 38px; height: 38px; background: #9a6c4d; }

.shell { grid-template-columns: var(--sidebar) minmax(0, 1fr); }
.sidebar { padding: 18px 10px; border-right-color: var(--border); background: #fff; }
.side-group { gap: 5px; }
.side-link { min-height: 47px; gap: 13px; padding: 0 12px; color: var(--navy); border-radius: 7px; font-size: 12.5px; font-weight: 560; }
.side-link svg { width: 20px; height: 20px; color: #0b2470; stroke-width: 1.65; }
.side-link.active { color: var(--sportia-green); border-color: #d7e9df; background: linear-gradient(90deg, #edf8f2, #f9fcfa); box-shadow: none; }
.side-link.active svg { color: var(--sportia-green); }
.side-separator { margin: 13px 6px; background: var(--border); }
.report-link .side-link { color: var(--sportia-green); border: 1px solid var(--border); background: #fff; }

.club-profile,
.club-profile.compact {
  min-height: 164px;
  grid-template-columns: 172px minmax(0, 1fr);
  gap: 20px;
  align-items: center;
  padding: 0;
  border: 0;
  background: transparent;
}
.club-profile::before, .club-profile::after { display: none; }
.club-logo,
.club-profile.compact .club-logo {
  width: 172px;
  height: 164px;
  padding: 12px;
  border-color: var(--border);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.club-profile.compact { min-height: 132px; grid-template-columns: 154px minmax(0, 1fr); }
.club-profile.compact .club-logo { width: 154px; height: 132px; padding: 10px; }
.club-profile-main { gap: 9px; padding: 0; }
h1 { color: var(--navy); font-size: clamp(26px, 2.1vw, 32px); line-height: 1.08; font-weight: 700; }
.club-profile.compact h1 { font-size: clamp(25px, 1.9vw, 30px); }
.club-profile p, .simple-title p { color: var(--navy); font-size: 14px; font-weight: 600; }
.title-row { gap: 12px; }
.verified, .badge { padding: 5px 9px; border-color: #c4e3d1; border-radius: 6px; color: var(--sportia-green-dark); background: var(--sportia-green-soft); font-size: 11px; font-weight: 560; }
.tags { gap: 8px 10px; }
.tag { padding: 6px 11px; border-color: var(--border); border-radius: 6px; color: var(--navy); background: #fff; font-size: 11.5px; font-weight: 560; }
.contact-row { gap: 8px 22px; color: #162a69; font-size: 12px; font-weight: 460; }
.contact-row svg { color: #0b2879; stroke-width: 1.65; }
.profile-tabs {
  min-height: 48px;
  justify-content: flex-start;
  gap: 18px;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  border-bottom-color: var(--border);
}
.profile-tabs::-webkit-scrollbar { display: none; }
.profile-tabs button { min-height: 47px; padding: 0 10px; color: var(--navy); font-size: 11.5px; font-weight: 560; }
.profile-tabs button:hover, .profile-tabs button.active { color: var(--sportia-green); }
.profile-tabs button.active::after { height: 2px; background: var(--sportia-green); }

.card {
  border-color: var(--border);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow);
}
.card:hover { border-color: #cbded4; box-shadow: var(--shadow-soft); transform: none; }
.card-title { min-height: 32px; padding: 12px 14px 0; gap: 7px; }
.card-title h2 { color: var(--navy); font-size: 14px; line-height: 1.2; font-weight: 650; }
.card-title h2::before, .card-accent { display: none; }
.card > :not(.card-title) { margin: 10px 14px 14px; }
.card-title + * { margin-top: 9px !important; }
.info-dot { width: 14px; height: 14px; border-color: #9fb0cc; color: #46639b; font-size: 9px; }

.kpi-grid, .kpi-grid.six, .page-grid.with-rail .kpi-grid.six { gap: 10px; }
.kpi-grid.six, .page-grid.with-rail .kpi-grid.six { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.kpi-card { min-height: 98px; gap: 10px; padding: 12px; border-radius: 8px; overflow: hidden; }
.kpi-card::before, .kpi-signal { display: none; }
.kpi-card .metric-icon { width: 40px; height: 40px; border-radius: 50%; color: var(--sportia-green); background: var(--sportia-green-soft); }
.metric-icon svg { width: 21px; height: 21px; stroke-width: 1.55; }
.metric-icon svg.icon-court { stroke-width: 1.05; }
.kpi-label { margin-bottom: 4px; color: var(--navy); font-size: 10.5px; font-weight: 600; }
.kpi-card strong { color: var(--navy); font-size: clamp(21px, 1.65vw, 27px); font-weight: 650; }
.kpi-note { margin-top: 4px; color: var(--sportia-green-dark) !important; font-size: 10px !important; font-weight: 520 !important; }
.main-content[data-page="dashboard"] .kpi-card:first-child strong,
.main-content[data-page="dati-finanziari"] .kpi-card strong,
.main-content[data-page="report"] .kpi-card strong { color: var(--sportia-green); }

.content-grid, .stack { gap: 10px; }
.body-copy { color: #34446f; line-height: 1.58; font-size: 11.5px; }
.chart { min-height: 0; }
.chart svg, .line-chart svg { height: 178px; overflow: visible; }
.grid-line { stroke: #e6ebf2; stroke-dasharray: none; }
.chart-line-shadow { opacity: .3; }
.line-chart text { fill: #314777; font-size: 9.5px; font-weight: 500; }
.radar-chart svg { width: min(96%, 286px); max-width: 286px; }
.radar-chart text { fill: #263d72; font-size: 9.3px; }
.donut-figure { max-width: 158px; filter: none; }
.donut-center strong { font-size: 13px; }
.donut-legend { gap: 7px; }
.donut-legend li { color: #263c6d; font-size: 10.2px; }
.bar-list { gap: 9px; }
.bar-row { grid-template-columns: minmax(100px, 1fr) minmax(90px, 1.6fr) 34px; gap: 9px; color: #253a69; font-size: 10.5px; }
.bar-row div { height: 5px; }
.progress-ring { width: 82px; height: 82px; }
.progress-ring circle { stroke-width: 7; }
.progress-ring .bar { stroke: var(--sportia-green); }
.progress-ring strong { color: var(--sportia-green); font-size: 19px; }

.right-rail .card-title h2 { font-size: 14px; }
.right-rail .card > :not(.card-title) { margin: 10px 14px 14px; }
.check-list { gap: 9px; }
.check-list li { color: #263b6b; font-size: 11.5px; font-weight: 440; }
.check-list svg { color: var(--sportia-green); }
.links-list li, .quick-actions button { min-height: 35px; color: #18316c; font-size: 11.5px; }
.ai-item { min-height: 34px; }
.ai-item p { color: #18316c; font-size: 11.5px; }
.outline-action, .ghost-button { min-height: 36px; border-color: var(--sportia-green); color: var(--sportia-green-dark); background: #fff; font-size: 11.5px; font-weight: 560; }
.primary-action { background: var(--sportia-green); }

table { min-width: 610px; }
th, td { padding: 8px 9px; font-size: 10.5px; }
thead th { color: #263c70; background: #fff; font-size: 8.8px; font-weight: 600; }
tbody tr:hover { background: #f1faf5; box-shadow: inset 2px 0 0 var(--sportia-green); }
.badge { border-radius: 5px; }

.main-content[data-page="dashboard"] .content-grid.three > .card { min-height: 258px; }
.main-content[data-page="dashboard"] .content-grid.three .chart svg { height: 198px; }
.facility-pictogram { min-height: 74px; margin-top: 10px; padding: 8px 12px; border-color: #c8e4d4; background: #f7fcf9; }
.facility-pictogram svg { width: 56px; height: 56px; filter: none; }
.facility-pictogram strong { font-size: 16px; }
.dashboard-secondary { grid-template-columns: minmax(250px, .82fr) minmax(0, 1.55fr) !important; }
.dashboard-secondary > .card { min-height: 160px; }
.dashboard-secondary .map-live { min-height: 132px; }
.opportunity-strip { min-height: 96px; border-color: var(--sportia-green); border-radius: 8px; box-shadow: none; }

.map-layout { grid-template-columns: minmax(0, 1fr) 300px; gap: 16px; }
.map-card { overflow: hidden; }
.map-mock.map-live.large { min-height: 486px; }
.leaflet-host { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; background: #eaf2ed; opacity: 0; transition: opacity .2s ease; }
.map-live.leaflet-loaded .leaflet-host { opacity: 1; }
.map-live.leaflet-loaded .osm-frame, .map-live.leaflet-loaded .osm-fallback { display: none; }
.map-live .leaflet-control-container { font-family: inherit; }
.leaflet-control-zoom a { color: var(--navy) !important; }
.leaflet-control-attribution { color: #65738d; font-size: 8px !important; }
.sportia-marker-wrap { background: transparent; border: 0; }
.sportia-map-pin { display: block; width: 30px; height: 30px; border: 3px solid #fff; border-radius: 50% 50% 50% 0; background: var(--sportia-green); box-shadow: 0 5px 14px rgba(0, 108, 55, .28); transform: rotate(-45deg); }
.sportia-map-pin::after { content: ""; position: absolute; left: 9px; top: 9px; width: 7px; height: 7px; border-radius: 50%; background: #fff; }
.sportia-map-tooltip { padding: 5px 7px !important; border: 0 !important; border-radius: 5px !important; color: var(--sportia-green-dark) !important; background: rgba(255,255,255,.94) !important; box-shadow: 0 4px 12px rgba(7,20,71,.12) !important; font-family: inherit; font-size: 10px; line-height: 1.2; }
.sportia-map-tooltip::before { display: none; }
.map-location-badge, .map-attribution { display: none; }
.map-actions { z-index: 5; left: 16px; bottom: 16px; }
.map-actions a, .map-actions button { min-height: 38px; padding: 0 14px; border: 1px solid var(--border); border-radius: 7px; color: #153784; background: #fff; font-size: 11px; font-weight: 560; }
.icon-list { gap: 14px; }
.icon-list li { color: #22396d; font-size: 11.5px; font-weight: 450; }
.distance-list { gap: 11px; }
.info-strip > div { min-height: 108px; padding: 14px 18px; }
.info-strip strong { font-size: 14px; }
.info-strip span { color: #233a6c; font-size: 11.5px; font-weight: 450; }

.ranking-grid { grid-template-columns: minmax(0, 1.65fr) minmax(300px, 1fr); gap: 14px; }
.ranking-stats > div { min-height: 150px; padding: 14px; }
.ranking-stats strong { color: var(--sportia-green); font-size: 39px; }
.ranking-icon { color: var(--sportia-green); background: var(--sportia-green-soft); }
.rank-percentile .progress-ring { width: 88px; height: 88px; }
.score-big { color: var(--sportia-green); font-size: 36px; }
.main-content[data-page="ranking"] .bar-row b { --bar-color: var(--sportia-green) !important; }

.profile-with-status { display: grid; grid-template-columns: minmax(0, 1fr) var(--rail); gap: 16px; align-items: start; }
.profile-with-status .right-rail { position: static; }
.market-reference-top { display: grid; grid-template-columns: 1.05fr 1.05fr 1.1fr; gap: 12px; }
.market-reference-top > .card { min-height: 260px; }
.market-panorama .market-snapshot { grid-template-columns: repeat(3, minmax(0, 1fr)); height: 190px; align-items: stretch; gap: 0; }
.market-panorama .market-snapshot > div { min-height: 0; padding: 22px 9px; justify-content: center; }
.market-panorama .market-snapshot > div + div { padding-left: 12px; }
.market-panorama .market-snapshot strong { font-size: 23px; }
.market-panorama .market-snapshot span { font-size: 9px; }
.market-panorama .market-snapshot small { font-size: 8.8px; line-height: 1.45; }
.market-demand, .market-seasonality { min-height: 260px; }
.market-demand .line-chart, .market-demand .line-chart svg { min-height: 0; height: 156px; }
.market-demand-head .metric-line { font-size: 28px; }
.market-seasonality .donut-module { grid-template-columns: minmax(120px, 145px) minmax(0, 1fr); gap: 10px; }
.market-seasonality .donut-figure { max-width: 145px; }
.market-seasonality .donut-legend li { font-size: 9.5px; }
.benchmark-summary span { min-height: 46px; }

.opportunity-analytics { grid-template-columns: .82fr 1.02fr 1.16fr !important; }
.opportunity-analytics > .card { min-height: 292px; }
.opportunity-analytics > .card:nth-child(3) { grid-column: auto; }
.opportunity-analytics .big-money { font-size: clamp(25px, 2.25vw, 31px); white-space: nowrap; }
.funnel > div { height: 39px; }
.modern-matrix { min-height: 248px; }

.main-content[data-page="network"] .kpi-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.ecosystem-map { min-height: 376px; }
.ecosystem-lines { inset: 4% 4%; height: 92%; }
.eco-center { width: 108px; height: 108px; }
.eco-node { min-width: 100px; min-height: 65px; font-size: 9.5px; }
.partner-map .map-live { min-height: 150px; }

.main-content[data-page="interventi-consigliati"] .kpi-card { min-height: 88px; padding: 9px 10px; }
.main-content[data-page="interventi-consigliati"] .kpi-card strong { font-size: 21px; white-space: nowrap; }
.main-content[data-page="interventi-consigliati"] .kpi-grid + .content-grid.two { grid-template-columns: .82fr 1.18fr; }
.main-content[data-page="interventi-consigliati"] .kpi-grid + .content-grid.two > .card { height: 238px; min-height: 238px; }
.main-content[data-page="interventi-consigliati"] .modern-matrix { min-height: 194px; }
.main-content[data-page="interventi-consigliati"] .donut-figure { max-width: 150px; }
.main-content[data-page="interventi-consigliati"] th,
.main-content[data-page="interventi-consigliati"] td { padding: 5px 8px; font-size: 9.5px; }
.roadmap { min-height: 170px; }

.simple-title { min-height: 70px; }
.simple-title h1 { font-size: 30px; }
.pill-tabs { gap: 9px; }
.pill-tabs button { min-height: 34px; padding: 0 13px; font-size: 10.5px; }
.action-card { min-height: 78px; padding: 10px; }
.action-card svg { width: 34px; height: 34px; }
.document-table th, .document-table td { padding-block: 7px; }
.main-content[data-page="documenti"] .kpi-card { min-height: 90px; padding: 9px; }
.main-content[data-page="documenti"] .kpi-card strong { font-size: 23px; }
.main-content[data-page="documenti"] .content-grid.three > .card { height: 92px; }
.main-content[data-page="documenti"] .action-card { min-height: 0; height: 100%; grid-template-columns: 40px minmax(0,1fr) 22px; gap: 8px; padding: 6px; }
.main-content[data-page="documenti"] .action-card h3 { margin-bottom: 3px; font-size: 13px; }
.main-content[data-page="documenti"] .action-card p { font-size: 9.5px; line-height: 1.35; }

.media-grid { gap: 7px; }
.media-card > div:first-child { height: 112px; }
.media-card strong { font-size: 10.5px; }
.media-card span { font-size: 9px; }
.main-content[data-page="foto-video"] .kpi-card { min-height: 88px; padding: 9px; }
.main-content[data-page="foto-video"] .metric-icon { width: 34px; height: 34px; }
.main-content[data-page="foto-video"] .card:has(.media-grid) { min-height: 200px; }
.main-content[data-page="foto-video"] .card:has(.media-grid) { position: relative; }
.main-content[data-page="foto-video"] .see-all { position: absolute; top: 9px; right: 12px; z-index: 2; margin: 0; color: var(--sportia-green); }

.review-summary-grid { grid-template-columns: 1.3fr .85fr 1fr; gap: 10px; }
.review-summary-grid > .card { min-height: 242px; }
.review-overview { grid-template-columns: .8fr 1.2fr; }
.review-score strong { color: var(--sportia-green); }
.rating-list li { min-height: 34px; padding: 5px 8px; }
.review-composer textarea { min-height: 62px; }
.review-layout { grid-template-columns: minmax(0, 1.65fr) minmax(235px, .75fr); gap: 10px; }
.review-item { min-height: 92px; padding: 10px; }
.stars { color: var(--sportia-green); }

.finance-title { min-height: 76px; align-content: center; }
.finance-title p { display: flex; align-items: center; gap: 12px; }
.main-content[data-page="dati-finanziari"] .kpi-card strong { font-size: 20px; white-space: nowrap; }
.finance-reference-top { display: grid; grid-template-columns: 1fr 1fr 1.08fr; gap: 10px; }
.finance-reference-top > .card { min-height: 246px; }
.finance-reference-top .chart svg { height: 184px; }
.finance-reference-top .financial-donut { grid-template-columns: minmax(112px, 145px) minmax(0, 1fr); gap: 8px; }
.finance-reference-top .donut-figure { max-width: 145px; }
.finance-reference-top .donut-legend li { font-size: 8.8px; }
.finance-reference-bottom { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(230px, .72fr); gap: 10px; }
.finance-reference-bottom > .card { min-height: 255px; }
.service-revenue-grid .card { min-height: 122px; }
.service-revenue-grid .line-chart svg { height: 76px; }
.mini-metric strong { color: var(--sportia-green); }

.executive-summary { padding: 10px 12px 12px; border: 1px solid var(--border); border-radius: 8px; }
.executive-summary > h2 { margin: 0 0 8px; color: var(--navy); font-size: 14px; }
.executive-summary .kpi-card { min-height: 92px; }
.report-layout { grid-template-columns: minmax(200px, .8fr) minmax(300px, 1.35fr) minmax(205px, .75fr); gap: 10px; }
.module-list { gap: 0; }
.module-list li { min-height: 29px; }
.export-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.export-grid button { min-height: 82px; }
.preview-grid { min-height: 150px; }
.preview-grid .line-chart svg, .preview-grid .radar-chart svg { height: 145px; }

.data-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2px 12px;
  min-height: 24px;
  padding-top: 2px;
  color: #7180a2;
  font-size: 10px;
  line-height: 1.25;
}
.data-footer p { margin: 0; }

@media (min-width: 1181px) {
  .main-content[data-page="network"] .split-1-2 { height: 370px; }
  .main-content[data-page="network"] .split-1-2 > .stack,
  .main-content[data-page="network"] .split-1-2 > .card { min-height: 0; height: 370px; }
  .main-content[data-page="network"] .split-1-2 > .stack { grid-template-rows: 1.08fr .92fr; }
  .main-content[data-page="network"] .split-1-2 + .content-grid.two { height: 185px; }
  .main-content[data-page="network"] .split-1-2 + .content-grid.two > .card { min-height: 0; height: 185px; overflow: hidden; }
  .main-content[data-page="network"] th,
  .main-content[data-page="network"] td { padding: 3px 6px; font-size: 8.8px; line-height: 1.2; }

  .main-content[data-page="network"] .right-rail,
  .main-content[data-page="foto-video"] .right-rail { gap: 8px; }
  .main-content[data-page="network"] .right-rail .card-title,
  .main-content[data-page="foto-video"] .right-rail .card-title { min-height: 27px; padding: 9px 11px 0; }
  .main-content[data-page="network"] .right-rail .card > :not(.card-title),
  .main-content[data-page="foto-video"] .right-rail .card > :not(.card-title) { margin: 6px 11px 10px; }
  .main-content[data-page="network"] .right-rail .card-title h2,
  .main-content[data-page="foto-video"] .right-rail .card-title h2 { font-size: 12.5px; }
  .main-content[data-page="network"] .right-rail .check-list,
  .main-content[data-page="foto-video"] .right-rail .check-list,
  .main-content[data-page="network"] .right-rail .links-list,
  .main-content[data-page="foto-video"] .right-rail .links-list,
  .main-content[data-page="network"] .right-rail .ai-list,
  .main-content[data-page="foto-video"] .right-rail .ai-list,
  .main-content[data-page="network"] .right-rail .quick-actions,
  .main-content[data-page="foto-video"] .right-rail .quick-actions,
  .main-content[data-page="network"] .right-rail .insight-list,
  .main-content[data-page="foto-video"] .right-rail .insight-list { gap: 5px; }
  .main-content[data-page="network"] .right-rail .check-list li,
  .main-content[data-page="foto-video"] .right-rail .check-list li,
  .main-content[data-page="network"] .right-rail .links-list li,
  .main-content[data-page="foto-video"] .right-rail .links-list li,
  .main-content[data-page="network"] .right-rail .quick-actions button,
  .main-content[data-page="foto-video"] .right-rail .quick-actions button { min-height: 28px; font-size: 10px; }
  .main-content[data-page="network"] .right-rail .ai-item,
  .main-content[data-page="foto-video"] .right-rail .ai-item { min-height: 28px; }
  .main-content[data-page="network"] .right-rail .ai-item p,
  .main-content[data-page="foto-video"] .right-rail .ai-item p,
  .main-content[data-page="network"] .right-rail .insight-list li,
  .main-content[data-page="foto-video"] .right-rail .insight-list li { font-size: 10px; line-height: 1.3; }
  .main-content[data-page="network"] .right-rail .insight-list li,
  .main-content[data-page="foto-video"] .right-rail .insight-list li { grid-template-columns: 26px minmax(0, 1fr); gap: 7px; }
  .main-content[data-page="network"] .right-rail .outline-action,
  .main-content[data-page="foto-video"] .right-rail .outline-action { min-height: 31px; font-size: 10px; }
  .main-content[data-page="network"] .right-rail .progress-ring,
  .main-content[data-page="foto-video"] .right-rail .progress-ring { width: 68px; height: 68px; }
  .main-content[data-page="network"] .right-rail .progress-ring strong,
  .main-content[data-page="foto-video"] .right-rail .progress-ring strong { font-size: 16px; }
  .main-content[data-page="network"] .right-rail .status-wrap,
  .main-content[data-page="foto-video"] .right-rail .status-wrap { gap: 10px; }

  .main-content[data-page="interventi-consigliati"] .club-profile.compact {
    min-height: 116px;
    grid-template-columns: 116px minmax(0, 1fr);
  }
  .main-content[data-page="interventi-consigliati"] .club-profile.compact .club-logo { width: 116px; height: 116px; padding: 8px; }
  .main-content[data-page="interventi-consigliati"] .kpi-card { min-height: 84px; padding-block: 8px; }
  .main-content[data-page="interventi-consigliati"] .kpi-grid + .content-grid.two > .card { height: 210px; min-height: 210px; }
  .main-content[data-page="interventi-consigliati"] .modern-matrix { min-height: 166px; }
  .main-content[data-page="interventi-consigliati"] .kpi-grid + .content-grid.two + .card {
    min-height: 0;
    height: 238px;
    overflow: hidden;
  }
  .main-content[data-page="interventi-consigliati"] .kpi-grid + .content-grid.two + .card + .content-grid.two {
    height: 205px;
  }
  .main-content[data-page="interventi-consigliati"] .kpi-grid + .content-grid.two + .card + .content-grid.two > .card {
    min-height: 0;
    height: 205px;
    overflow: hidden;
  }
  .main-content[data-page="interventi-consigliati"] th,
  .main-content[data-page="interventi-consigliati"] td { padding: 1px 6px; font-size: 8.5px; line-height: 1.1; }
  .main-content[data-page="interventi-consigliati"] .roadmap { min-height: 0; height: 157px; }
  .main-content[data-page="interventi-consigliati"] .scenario-grid { gap: 6px; }
  .main-content[data-page="interventi-consigliati"] .scenario-grid article { gap: 3px; padding: 7px; }
  .main-content[data-page="interventi-consigliati"] .scenario-grid h3 { font-size: 10px; }
  .main-content[data-page="interventi-consigliati"] .scenario-grid strong { font-size: 16px; }
  .main-content[data-page="interventi-consigliati"] .scenario-grid p,
  .main-content[data-page="interventi-consigliati"] .scenario-grid span { font-size: 8px; line-height: 1.25; font-weight: 520; }
  .main-content[data-page="interventi-consigliati"] .scenario-grid button { min-height: 27px; font-size: 9px; font-weight: 600; }

  .main-content[data-page="foto-video"] .club-profile.compact {
    min-height: 120px;
    grid-template-columns: 120px minmax(0, 1fr);
  }
  .main-content[data-page="foto-video"] .club-profile.compact .club-logo { width: 120px; height: 120px; padding: 8px; }
  .main-content[data-page="foto-video"] .kpi-grid { min-height: 78px; }
  .main-content[data-page="foto-video"] .kpi-card { min-height: 78px; gap: 6px; padding: 6px; }
  .main-content[data-page="foto-video"] .kpi-card .metric-icon { width: 31px; height: 31px; }
  .main-content[data-page="foto-video"] .kpi-label { margin-bottom: 2px; font-size: 9px; }
  .main-content[data-page="foto-video"] .kpi-card strong { font-size: 18px; }
  .main-content[data-page="foto-video"] .kpi-note { margin-top: 2px; font-size: 8.5px !important; }
  .main-content[data-page="foto-video"] .media-card > div:first-child { height: 94px; }
  .main-content[data-page="foto-video"] .card:has(.media-grid.six) { min-height: 0; height: 223px; overflow: hidden; }
  .main-content[data-page="foto-video"] .card:has(.media-grid.five) { min-height: 0; height: 199px; overflow: hidden; }
  .main-content[data-page="foto-video"] .media-operations-grid { min-height: 0; height: 238px; }
  .main-content[data-page="foto-video"] .media-operations-grid > .card { min-height: 0; height: 238px; overflow: hidden; }
  .main-content[data-page="foto-video"] .media-operations-grid th,
  .main-content[data-page="foto-video"] .media-operations-grid td { padding: 5px 6px; font-size: 8.8px; }
  .main-content[data-page="foto-video"] .upload-box { min-height: 170px; gap: 5px; }
  .main-content[data-page="foto-video"] .media-operations-grid .insight-list { gap: 6px; }
  .main-content[data-page="foto-video"] .media-operations-grid .insight-list li { grid-template-columns: 28px minmax(0, 1fr); gap: 8px; font-size: 9.5px; line-height: 1.3; }

  .main-content[data-page="dati-finanziari"] .finance-reference-bottom { height: 274px; }
  .main-content[data-page="dati-finanziari"] .finance-reference-bottom > .card,
  .main-content[data-page="dati-finanziari"] .service-revenue-grid { min-height: 0; height: 274px; }
  .main-content[data-page="dati-finanziari"] .service-revenue-grid { grid-template-rows: 1fr 1fr; }
  .main-content[data-page="dati-finanziari"] .service-revenue-grid .card { min-height: 0; overflow: hidden; }
  .main-content[data-page="dati-finanziari"] .finance-indicators th,
  .main-content[data-page="dati-finanziari"] .finance-indicators td { padding: 5px 6px; font-size: 9px; }
  .main-content[data-page="dati-finanziari"] .kpi-card strong { font-size: 18px; }
  .main-content[data-page="dati-finanziari"] .ai-strip { min-height: 0; height: 100px; }
  .main-content[data-page="dati-finanziari"] .ai-strip > div {
    grid-template-columns: 44px minmax(0, 1fr);
    min-height: 98px;
    padding: 10px 15px;
  }
  .main-content[data-page="dati-finanziari"] .ai-strip svg { width: 32px; height: 32px; }
  .main-content[data-page="dati-finanziari"] .ai-strip p { font-size: 12px; line-height: 1.2; }
  .main-content[data-page="dati-finanziari"] .ai-strip strong { font-size: 10px; line-height: 1.25; font-weight: 540; }
  .main-content[data-page="dati-finanziari"] .ai-strip span { font-size: 9px; line-height: 1.2; }

  .main-content[data-page="report"] .report-layout {
    grid-template-rows: 334px 188px;
    align-items: stretch;
  }
  .main-content[data-page="report"] .report-layout > .card:first-child,
  .main-content[data-page="report"] .report-layout > .stack { min-height: 0; height: 334px; }
  .main-content[data-page="report"] .report-layout > .card:first-child .module-list li { min-height: 23px; font-size: 9.5px; }
  .main-content[data-page="report"] .report-layout > .stack { gap: 7px; }
  .main-content[data-page="report"] .report-layout > .stack .card-title { min-height: 27px; padding: 9px 11px 0; }
  .main-content[data-page="report"] .report-layout > .stack .card > :not(.card-title) { margin: 6px 11px 10px; }
  .main-content[data-page="report"] .report-layout > .stack .card p { margin-block: 0 5px; font-size: 9.5px; line-height: 1.3; }
  .main-content[data-page="report"] .report-layout > .stack .export-grid button { min-height: 62px; padding: 6px; }
  .main-content[data-page="report"] .report-layout > .stack .export-grid svg { width: 25px; height: 25px; }
  .main-content[data-page="report"] .report-layout > .stack .export-grid strong { font-size: 9.5px; }
  .main-content[data-page="report"] .report-layout > .stack .export-grid span { font-size: 8.5px; }
  .main-content[data-page="report"] .report-layout > .stack .check-list { gap: 4px; }
  .main-content[data-page="report"] .report-layout > .stack .check-list li { gap: 6px; font-size: 9px; line-height: 1.2; }
  .main-content[data-page="report"] .report-layout > .card:nth-child(3) {
    grid-column: 3;
    grid-row: 1 / span 2;
    min-height: 0;
    height: 532px;
    overflow: hidden;
  }
  .main-content[data-page="report"] .report-preview {
    grid-column: 1 / 3;
    grid-row: 2;
    min-height: 0;
    height: 236px;
    overflow: visible;
  }
  .main-content[data-page="report"] .report-preview .preview-grid { min-height: 0; height: 180px; }
  .main-content[data-page="report"] .report-preview .line-chart svg,
  .main-content[data-page="report"] .report-preview .radar-chart svg { height: 150px; }
  .main-content[data-page="report"] .timeline { gap: 11px; padding-left: 17px; }
  .main-content[data-page="report"] .timeline::before { left: 5px; }
  .main-content[data-page="report"] .timeline li {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 2px 6px;
    align-items: start;
    font-weight: 520;
  }
  .main-content[data-page="report"] .timeline li::before { left: -17px; width: 9px; height: 9px; }
  .main-content[data-page="report"] .timeline small { grid-row: 1 / span 2; color: #3b5180; font-size: 8px; line-height: 1.3; }
  .main-content[data-page="report"] .timeline strong { color: var(--navy); font-size: 9px; line-height: 1.25; font-weight: 620; }
  .main-content[data-page="report"] .timeline span { color: #5e6f92; font-size: 8px; line-height: 1.25; }
}

.outline-action .icon-arrow,
.see-all .icon-arrow,
.action-card .icon-arrow { transform: rotate(180deg); }

@media (max-width: 1180px) {
  .app-header { grid-template-columns: auto minmax(0, 1fr) auto; }
  .shell { grid-template-columns: 1fr; }
  .main-content { padding: 18px 16px 28px; }
  .page-grid.with-rail { grid-template-columns: 1fr; }
  .right-rail { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-with-status { grid-template-columns: minmax(0, 1fr) 270px; }
  .market-reference-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-reference-top > .card:first-child { grid-column: 1 / -1; }
  .review-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .review-summary-grid > .review-composer { grid-column: 1 / -1; }
  .kpi-grid.six, .page-grid.with-rail .kpi-grid.six { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .main-content { padding: 14px 12px 24px; }
  .club-profile, .club-profile.compact { min-height: 120px; grid-template-columns: 112px minmax(0, 1fr); gap: 14px; }
  .club-logo, .club-profile.compact .club-logo { width: 112px; height: 112px; padding: 8px; }
  .club-profile h1, .club-profile.compact h1 { font-size: 24px; }
  .profile-with-status { grid-template-columns: 1fr; }
  .profile-with-status .right-rail { grid-template-columns: 1fr; }
  .market-reference-top, .review-summary-grid, .finance-reference-top, .finance-reference-bottom { grid-template-columns: 1fr; }
  .market-reference-top > .card:first-child, .review-summary-grid > .review-composer { grid-column: auto; }
  .market-panorama .market-snapshot { height: auto; }
  .content-grid.two, .content-grid.three, .split-2-1, .split-1-2, .ranking-grid, .review-layout, .report-layout, .opportunity-analytics { grid-template-columns: 1fr !important; }
  .dashboard-secondary { grid-template-columns: 1fr !important; }
  .opportunity-analytics > .card:nth-child(3) { grid-column: auto; }
  .main-content[data-page="network"] .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .map-layout { grid-template-columns: 1fr; }
  .map-mock.map-live.large { min-height: 420px; }
  .export-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 540px) {
  .main-content { padding-inline: 10px; }
  .club-profile, .club-profile.compact { min-height: 104px; grid-template-columns: 78px minmax(0, 1fr); gap: 10px; }
  .club-logo, .club-profile.compact .club-logo { width: 78px; height: 78px; padding: 6px; }
  .club-profile h1, .club-profile.compact h1 { font-size: 21px; }
  .club-profile-main { gap: 7px; }
  .profile-tabs { margin-inline: -10px; padding-inline: 10px; justify-content: flex-start; }
  .kpi-grid, .kpi-grid.six, .page-grid.with-rail .kpi-grid.six, .main-content[data-page="network"] .kpi-grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .kpi-card { flex: 0 0 min(76vw, 276px); min-height: 90px; scroll-snap-align: start; }
  .right-rail { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .right-rail > .card { flex: 0 0 min(84vw, 310px); scroll-snap-align: start; }
  .market-panorama .market-snapshot { grid-template-columns: 1fr; }
  .market-panorama .market-snapshot > div { min-height: 82px; padding: 10px 4px; }
  .market-panorama .market-snapshot > div + div { padding-left: 4px; border-left: 0; border-top: 1px solid var(--border); }
  .market-seasonality .donut-module, .finance-reference-top .financial-donut { grid-template-columns: 1fr; justify-items: center; }
  .ecosystem-map { min-height: auto; }
  .media-grid.six, .media-grid.five { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .media-card { flex: 0 0 min(76vw, 270px); scroll-snap-align: start; }
  .review-summary-grid > .card { min-height: auto; }
  .opportunity-strip, .info-strip { grid-template-columns: 1fr; }
  .export-grid { grid-template-columns: 1fr; }
}

/* Alignment and responsive containment audit */
.card,
.funnel-module,
.funnel,
.funnel-details,
.review-overview,
.review-overview .bar-list,
.modern-matrix,
.ecosystem-map { min-width: 0; max-width: 100%; }

.funnel-module {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 8px;
}
.funnel > div { max-width: 100%; padding-inline: 8px; }
.funnel-details li { min-width: 0; gap: 5px; }
.funnel-details strong,
.funnel-details small { overflow-wrap: anywhere; }

.review-overview {
  grid-template-columns: minmax(104px, .72fr) minmax(0, 1.28fr);
  gap: 10px;
}
.review-overview > div:first-child { padding-right: 10px; }
.review-overview .bar-row {
  grid-template-columns: minmax(26px, .46fr) minmax(46px, 1fr) 25px;
  gap: 5px;
  min-width: 0;
  font-size: 9px;
}

.main-content[data-page="interventi-consigliati"] .modern-matrix .q {
  min-height: 0;
  padding: 7px;
}

@media (min-width: 1181px) {
  .main-content[data-page="network"] .split-1-2 .ecosystem-map {
    height: 326px;
    min-height: 0;
  }
  .main-content[data-page="interventi-consigliati"] .modern-matrix {
    height: 166px;
    min-height: 0;
    padding: 7px 8px 22px 27px;
    gap: 4px;
  }
  .main-content[data-page="interventi-consigliati"] .modern-matrix .q {
    height: auto;
    padding: 6px;
  }
}

/* Final legend and matrix alignment */
.network-partner-types > .donut-module {
  grid-template-columns: minmax(104px, 116px) minmax(0, 1fr);
  align-items: center;
  gap: 13px;
}
.network-partner-types .donut-figure {
  width: 112px;
  max-width: 112px;
  justify-self: center;
}
.network-partner-types .donut-legend { gap: 7px; }
.network-partner-types .donut-legend li {
  grid-template-columns: 8px minmax(0, 1fr) 29px;
  gap: 7px;
  font-size: 9.2px;
  line-height: 1.25;
}
.network-partner-types .donut-legend li p {
  min-width: 0;
  padding-right: 2px;
  overflow-wrap: anywhere;
}
.network-partner-types .donut-legend li strong {
  min-width: 29px;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.revenue-mix-card > .financial-donut { gap: 12px; }
.revenue-mix-card .donut-legend li {
  grid-template-columns: 8px minmax(0, 1fr) 31px;
  gap: 7px;
}
.revenue-mix-card .donut-legend li p {
  min-width: 0;
  padding-right: 2px;
  overflow-wrap: anywhere;
}
.revenue-mix-card .donut-legend li strong {
  min-width: 31px;
  white-space: nowrap;
}

.opportunity-analytics .modern-matrix .q strong {
  position: absolute;
  left: 6px;
  right: 6px;
  top: 9px;
  text-align: center;
  white-space: nowrap;
}
.opportunity-analytics .modern-matrix .q:nth-of-type(5) strong,
.opportunity-analytics .modern-matrix .q:nth-of-type(6) strong {
  top: auto;
  bottom: 9px;
}
.opportunity-analytics .modern-matrix .axis-y {
  left: 8px;
  top: 50%;
  transform: translate(-50%, -50%) rotate(-90deg);
}
.opportunity-analytics .modern-matrix .axis-x {
  left: 50%;
  bottom: 3px;
  transform: translateX(-50%);
}
.opportunity-analytics .modern-matrix .matrix-y-high { left: 5px; top: 7px; }
.opportunity-analytics .modern-matrix .matrix-y-low { left: 4px; bottom: 28px; }
.opportunity-analytics .modern-matrix .matrix-x-low { left: 36px; bottom: 3px; }
.opportunity-analytics .modern-matrix .matrix-x-high { right: 8px; bottom: 3px; }

.market-insights-card .insight-list {
  gap: 0;
  margin-top: 10px !important;
}
.market-insights-card .insight-list li {
  min-height: 58px;
  grid-template-columns: 27px minmax(0, 1fr);
  align-items: start;
  gap: 9px;
  padding: 9px 0;
  border-bottom: 1px solid #e8edf2;
  color: #344d70;
  font-size: 10px;
  font-weight: 430;
  line-height: 1.5;
}
.market-insights-card .insight-list li:last-child { border-bottom: 0; }
.market-insights-card .insight-list svg {
  width: 21px;
  height: 21px;
  margin-top: 1px;
  stroke-width: 1.5;
}

@media (min-width: 1181px) {
  .revenue-mix-card > .financial-donut {
    grid-template-columns: minmax(154px, 166px) minmax(0, 1fr);
  }
  .revenue-mix-card .donut-figure {
    width: 164px;
    max-width: 164px;
  }
}

@media (max-width: 1180px) and (min-width: 821px) {
  .network-partner-types > .donut-module {
    grid-template-columns: minmax(98px, 108px) minmax(0, 1fr);
    gap: 9px;
  }
  .network-partner-types .donut-figure { width: 104px; max-width: 104px; }
  .revenue-mix-card > .financial-donut { grid-template-columns: minmax(136px, 148px) minmax(0, 1fr); }
  .revenue-mix-card .donut-figure { width: 144px; max-width: 144px; }
}

@media (max-width: 820px) {
  .network-partner-types > .donut-module { grid-template-columns: minmax(125px, 155px) minmax(0, 1fr); }
  .network-partner-types .donut-figure { width: 145px; max-width: 145px; }
  .market-insights-card .insight-list li { min-height: 0; font-size: 10.5px; }
}

@media (max-width: 540px) {
  .network-partner-types > .donut-module { grid-template-columns: 1fr; justify-items: center; }
  .network-partner-types .donut-figure { width: min(54vw, 170px); max-width: 170px; }
  .network-partner-types .donut-legend { width: 100%; }
  .opportunity-analytics .modern-matrix .q strong { font-size: 9px; white-space: normal; }
}

/* Final override: Potenziale complessivo must stay inside the card at every width. */
.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) {
  container-type: inline-size;
  overflow: hidden !important;
}

.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .big-money {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  font-size: clamp(18px, 1.55vw, 23px) !important;
  line-height: 1.12 !important;
  letter-spacing: 0 !important;
}

.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .opportunity-money {
  display: flex !important;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 7px;
  max-width: 100%;
}

.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .opportunity-money span {
  min-width: 0;
  white-space: nowrap;
}

.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .opportunity-money .money-separator {
  color: color-mix(in srgb, var(--sportia-green) 72%, #071447);
}

.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .insight-list,
.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .insight-list span {
  min-width: 0 !important;
}

.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .insight-list li {
  grid-template-columns: 34px minmax(0, 1fr) !important;
}

@container (max-width: 285px) {
  .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .big-money {
    font-size: clamp(17px, 7.4cqw, 20px) !important;
  }
}

@media (max-width: 540px) {
  body .main-content[data-page="opportunita"] .opportunity-analytics {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    gap: 10px !important;
    height: auto !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics > .card {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .big-money {
    font-size: clamp(20px, 5.6vw, 23px) !important;
  }
}

/* Closing mobile polish: keep these rules last so legacy page rules cannot override them. */
@media (max-width: 540px) {
  .back-to-top {
    right: 14px;
    bottom: calc(16px + env(safe-area-inset-bottom));
    width: 44px;
    height: 44px;
  }

  body .main-content[data-page="market-insights"] .market-reference-top {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
  }

  body .main-content[data-page="market-insights"] .market-reference-top > .card {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    height: auto !important;
    gap: 8px !important;
    padding: 0 !important;
  }

  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot > .market-stat-block,
  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot > .market-stat-block + .market-stat-block {
    min-height: 88px !important;
    display: grid !important;
    grid-template-rows: 18px 31px auto !important;
    align-content: center !important;
    gap: 5px !important;
    padding: 12px 10px !important;
    border: 1px solid #e8edf4 !important;
    border-radius: 8px !important;
    background: #fbfcfd !important;
  }

  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot span,
  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot strong,
  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot small {
    width: 100% !important;
    min-height: 0 !important;
    text-align: left !important;
  }

  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot strong {
    font-size: 25px !important;
    line-height: 1 !important;
  }

  body .main-content[data-page="market-insights"] .market-demand,
  body .main-content[data-page="market-insights"] .market-seasonality {
    min-height: 0 !important;
  }

  body .main-content[data-page="market-insights"] .market-demand-content {
    height: auto !important;
    display: grid !important;
    grid-template-rows: auto 168px !important;
    gap: 8px !important;
  }

  body .main-content[data-page="market-insights"] .market-demand-content .line-chart,
  body .main-content[data-page="market-insights"] .market-demand-content .line-chart svg {
    width: 100% !important;
    height: 168px !important;
    max-height: 168px !important;
    min-height: 0 !important;
  }

  body .main-content[data-page="market-insights"] .market-seasonality-content {
    height: auto !important;
    padding: 2px 0 0 !important;
  }

  body .main-content[data-page="market-insights"] .market-seasonality-content .donut-module {
    display: grid !important;
    grid-template-columns: minmax(118px, 142px) minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 10px !important;
  }

  body .main-content[data-page="market-insights"] .market-seasonality-content .donut-figure {
    width: min(38vw, 142px) !important;
    max-width: 142px !important;
    justify-self: center !important;
  }

  body .main-content[data-page="market-insights"] .market-seasonality-content .donut-legend {
    width: 100% !important;
    gap: 7px !important;
  }

  body .main-content[data-page="market-insights"] .market-seasonality-content .donut-legend li {
    grid-template-columns: 9px minmax(0, 1fr) 33px !important;
    gap: 7px !important;
    font-size: 9.4px !important;
    line-height: 1.25 !important;
  }

  body .main-content[data-page="market-insights"] .split-2-1 {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
  }

  body .main-content[data-page="market-insights"] .benchmark-card,
  body .main-content[data-page="market-insights"] .market-insights-card {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
  }

  body .main-content[data-page="market-insights"] .benchmark-card {
    overflow-x: auto !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    gap: 10px !important;
    height: auto !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics > .card {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics > .card:first-child {
    min-height: 292px !important;
  }

  body .main-content[data-page="opportunita"] .funnel-module {
    display: grid !important;
    grid-template-columns: minmax(132px, .95fr) minmax(0, 1.05fr) !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    min-height: 208px !important;
  }

  body .main-content[data-page="opportunita"] .funnel-visual {
    width: 100% !important;
    max-width: 158px !important;
    justify-self: center !important;
  }

  body .main-content[data-page="opportunita"] .funnel-stage {
    height: 43px !important;
    font-size: 25px !important;
  }

  body .main-content[data-page="opportunita"] .funnel-legend {
    width: 100% !important;
    gap: 11px !important;
    align-self: center !important;
  }

  body .main-content[data-page="opportunita"] .funnel-rate {
    grid-column: 1 / -1 !important;
    margin-top: 2px !important;
  }

  body .main-content[data-page="report"] .timeline-card {
    width: 100% !important;
    min-width: 0 !important;
    grid-column: 1 / -1 !important;
    min-height: 0 !important;
    height: auto !important;
  }

  body .main-content[data-page="report"] .report-layout,
  body .main-content[data-page="report"] .report-layout-secondary,
  body .main-content[data-page="report"] .report-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  body .main-content[data-page="report"] .report-layout > .card,
  body .main-content[data-page="report"] .report-layout-secondary > .card,
  body .main-content[data-page="report"] .report-grid > .card,
  body .main-content[data-page="report"] .report-preview {
    width: 100% !important;
    min-width: 0 !important;
    grid-column: 1 / -1 !important;
  }

  body .main-content[data-page="report"] .timeline-card .timeline {
    min-height: 0 !important;
    height: auto !important;
    display: grid !important;
    gap: 8px !important;
    padding: 4px 0 2px 18px !important;
  }

  body .main-content[data-page="report"] .timeline-card .timeline li {
    min-height: 0 !important;
    padding: 8px 8px 8px 0 !important;
    grid-template-columns: 66px minmax(0, 1fr) !important;
    gap: 9px !important;
  }

  body .main-content[data-page="report"] .report-preview .preview-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
    min-height: 0 !important;
  }

  body .main-content[data-page="report"] .preview-panel + .preview-panel {
    border-left: 0 !important;
    border-top: 1px solid var(--border) !important;
    padding-top: 12px !important;
  }
}

/* Map reference polish */
.main-content[data-page="mappa"] .map-layout {
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 18px;
  align-items: stretch;
}

.main-content[data-page="mappa"] .map-card {
  border-radius: 8px;
  overflow: hidden;
}

.main-content[data-page="mappa"] .map-mock.map-live.large {
  min-height: 570px;
  border-radius: 8px;
  background:
    radial-gradient(circle at 78% 30%, rgba(194, 231, 202, .62), transparent 17%),
    radial-gradient(circle at 39% 87%, rgba(147, 210, 249, .52), transparent 31%),
    linear-gradient(180deg, #f5f8f7 0%, #edf3f3 54%, #b9e3fb 54%, #9bd0f4 100%);
}

.main-content[data-page="mappa"] .leaflet-host {
  background: #eef4f1;
}

.main-content[data-page="mappa"] .map-live.leaflet-loaded .leaflet-tile-pane {
  filter: saturate(.48) contrast(.86) brightness(1.12) opacity(.82);
}

.main-content[data-page="mappa"] .map-live.leaflet-loaded .leaflet-overlay-pane,
.main-content[data-page="mappa"] .map-live.leaflet-loaded .leaflet-marker-pane,
.main-content[data-page="mappa"] .map-live.leaflet-loaded .leaflet-tooltip-pane {
  filter: none;
}

.main-content[data-page="mappa"] .leaflet-control-zoom {
  margin-right: 22px !important;
  margin-bottom: 28px !important;
  overflow: hidden;
  border: 1px solid #dbe4ee !important;
  border-radius: 11px !important;
  background: rgba(255,255,255,.96) !important;
  box-shadow: 0 10px 24px rgba(19, 48, 86, .14) !important;
}

.main-content[data-page="mappa"] .leaflet-control-zoom a {
  width: 42px !important;
  height: 42px !important;
  line-height: 41px !important;
  border-color: #e3eaf2 !important;
  color: #071447 !important;
  background: rgba(255,255,255,.97) !important;
  font-size: 22px !important;
  font-weight: 420 !important;
}

.main-content[data-page="mappa"] .leaflet-control-zoom a:hover {
  color: var(--sportia-green-dark) !important;
  background: #f4fbf7 !important;
}

.main-content[data-page="mappa"] .leaflet-control-attribution {
  margin: 0 8px 6px 0 !important;
  border-radius: 5px;
  color: rgba(50, 68, 92, .66) !important;
  background: rgba(255,255,255,.72) !important;
  font-size: 8px !important;
}

.main-content[data-page="mappa"] .sportia-map-pin {
  width: 42px;
  height: 42px;
  border: 5px solid #fff;
  border-radius: 50% 50% 50% 0;
  background: linear-gradient(180deg, #0ca65a, #008545);
  box-shadow: 0 13px 26px rgba(0, 108, 55, .28), 0 0 0 1px rgba(0, 108, 55, .16);
}

.main-content[data-page="mappa"] .sportia-map-pin::after {
  left: 13px;
  top: 13px;
  width: 10px;
  height: 10px;
}

.main-content[data-page="mappa"] .sportia-map-tooltip {
  margin-left: 5px !important;
  padding: 5px 8px !important;
  border: 0 !important;
  border-radius: 5px !important;
  color: #008245 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 14px !important;
  font-weight: 690 !important;
  line-height: 1.12 !important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.92),
    0 -1px 0 rgba(255,255,255,.92),
    1px 0 0 rgba(255,255,255,.92),
    -1px 0 0 rgba(255,255,255,.92);
}

.sportia-map-label-icon,
.sportia-poi-marker {
  background: transparent;
  border: 0;
  pointer-events: none;
}

.sportia-map-label-icon span {
  display: block;
  color: rgba(7, 20, 71, .58);
  font-size: 15px;
  font-weight: 520;
  letter-spacing: .06em;
  text-align: center;
  text-transform: uppercase;
  text-shadow: 0 1px 0 rgba(255,255,255,.9);
}

.sportia-map-label-icon.major span {
  color: rgba(7, 20, 71, .82);
  font-size: 22px;
  font-weight: 590;
  letter-spacing: .08em;
}

.sportia-map-label-icon.lake span {
  color: rgba(19, 83, 145, .86);
  font-size: 14px;
  font-style: italic;
  font-weight: 430;
  letter-spacing: 0;
  text-transform: none;
}

.sportia-poi-marker {
  display: flex;
  align-items: center;
  gap: 5px;
}

.sportia-poi-marker span {
  width: 14px;
  height: 14px;
  display: inline-flex;
  flex: 0 0 14px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #6b7481;
  box-shadow: 0 2px 7px rgba(7, 20, 71, .16);
}

.sportia-poi-marker.station span { background: #2e8df1; }
.sportia-poi-marker.park span { background: #119250; }

.sportia-poi-marker strong {
  color: #3d4858;
  font-size: 10.5px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  text-shadow: 0 1px 0 rgba(255,255,255,.95);
}

.sportia-poi-marker.park strong { color: #147143; }

.main-content[data-page="mappa"] .map-actions {
  left: 22px;
  bottom: 24px;
  z-index: 520;
  gap: 14px;
}

.main-content[data-page="mappa"] .map-actions a,
.main-content[data-page="mappa"] .map-actions button {
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid #dbe4ef;
  border-radius: 9px;
  color: #163783;
  background: rgba(255,255,255,.96);
  box-shadow: 0 10px 20px rgba(17, 45, 82, .12);
  font-size: 13px;
  font-weight: 520;
}

.main-content[data-page="mappa"] .map-actions a:hover,
.main-content[data-page="mappa"] .map-actions button:hover {
  border-color: #b9dac8;
  color: var(--sportia-green-dark);
  background: #f9fffb;
}

.main-content[data-page="mappa"] .map-position-card,
.main-content[data-page="mappa"] .map-distance-card {
  border-radius: 8px;
}

.main-content[data-page="mappa"] .map-position-card .card-title h2,
.main-content[data-page="mappa"] .map-distance-card .card-title h2 {
  font-size: 21px;
  font-weight: 670;
  letter-spacing: 0;
}

.main-content[data-page="mappa"] .map-position-list {
  gap: 22px;
  margin-top: 18px !important;
}

.main-content[data-page="mappa"] .map-position-list li {
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 12px;
  color: #071447;
  font-size: 14px;
  font-weight: 420;
  line-height: 1.42;
}

.main-content[data-page="mappa"] .map-position-list li svg {
  width: 22px;
  height: 22px;
  color: #071447;
  stroke-width: 1.55;
}

.main-content[data-page="mappa"] .map-distance-card .distance-list {
  gap: 0;
  height: auto;
  align-content: start;
}

.main-content[data-page="mappa"] .map-distance-card .distance-list div {
  min-height: 36px;
  padding: 8px 0;
  border-bottom: 0;
  grid-template-columns: minmax(0, 1fr) auto;
}

.main-content[data-page="mappa"] .map-distance-card .distance-list dt,
.main-content[data-page="mappa"] .map-distance-card .distance-list dd {
  color: #071447;
  font-size: 14px;
  line-height: 1.25;
}

.main-content[data-page="mappa"] .map-distance-card .distance-list dt {
  font-weight: 410;
}

.main-content[data-page="mappa"] .map-distance-card .distance-list dd {
  font-weight: 520;
}

@media (max-width: 1180px) {
  .main-content[data-page="mappa"] .map-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .main-content[data-page="mappa"] .map-layout > .stack {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
  }
}

@media (max-width: 720px) {
  .main-content[data-page="mappa"] .map-mock.map-live.large {
    min-height: 420px;
  }

  .main-content[data-page="mappa"] .map-layout > .stack {
    grid-template-columns: minmax(0, 1fr);
  }

  .main-content[data-page="mappa"] .map-actions {
    left: 12px;
    right: 70px;
    bottom: 12px;
    gap: 8px;
  }

  .main-content[data-page="mappa"] .map-actions a,
  .main-content[data-page="mappa"] .map-actions button {
    flex: 1 1 0;
    min-height: 40px;
    padding-inline: 8px;
    font-size: 11px;
  }

  .main-content[data-page="mappa"] .leaflet-control-zoom {
    margin-right: 12px !important;
    margin-bottom: 12px !important;
  }

  .main-content[data-page="mappa"] .sportia-map-tooltip {
    font-size: 12px !important;
  }
}

/* Map minimal pass */
.main-content[data-page="mappa"] .map-mock.map-live.large {
  background:
    radial-gradient(circle at 78% 32%, rgba(214, 237, 219, .55), transparent 18%),
    linear-gradient(180deg, #f7faf9 0%, #f0f5f4 57%, #c9eaff 57%, #a8d9f7 100%);
}

.main-content[data-page="mappa"] .map-live.leaflet-loaded .leaflet-tile-pane {
  filter: saturate(.36) contrast(.82) brightness(1.18) opacity(.78);
}

.main-content[data-page="mappa"] .leaflet-control-zoom {
  border-radius: 9px !important;
  box-shadow: 0 8px 18px rgba(19, 48, 86, .1) !important;
}

.main-content[data-page="mappa"] .leaflet-control-zoom a {
  width: 39px !important;
  height: 39px !important;
  line-height: 38px !important;
  font-size: 20px !important;
  font-weight: 380 !important;
}

.main-content[data-page="mappa"] .sportia-map-pin {
  width: 38px;
  height: 38px;
  border-width: 5px;
  background: #008f46;
  box-shadow: 0 10px 22px rgba(0, 108, 55, .24);
}

.main-content[data-page="mappa"] .sportia-map-pin::after {
  left: 12px;
  top: 12px;
  width: 9px;
  height: 9px;
}

.main-content[data-page="mappa"] .sportia-map-tooltip {
  color: #008545 !important;
  font-size: 13px !important;
  font-weight: 650 !important;
}

.sportia-map-label-icon span {
  color: rgba(7, 20, 71, .46);
  font-size: 14px;
  font-weight: 460;
  letter-spacing: .08em;
}

.sportia-map-label-icon.major span {
  color: rgba(7, 20, 71, .72);
  font-size: 21px;
  font-weight: 560;
}

.sportia-map-label-icon.lake span {
  color: rgba(16, 78, 140, .74);
  font-size: 13px;
  font-weight: 390;
}

.sportia-poi-marker span {
  width: 12px;
  height: 12px;
  flex-basis: 12px;
  border-width: 2px;
  opacity: .92;
}

.sportia-poi-marker strong {
  color: rgba(7, 20, 71, .62);
  font-size: 10px;
  font-weight: 420;
}

.main-content[data-page="mappa"] .map-actions a,
.main-content[data-page="mappa"] .map-actions button {
  min-height: 41px;
  border-radius: 8px;
  box-shadow: 0 8px 18px rgba(17, 45, 82, .09);
  font-size: 12.5px;
  font-weight: 500;
}

/* Terminal responsive override: must stay after all legacy rules. */
@media (max-width: 540px) {
  .back-to-top {
    right: 14px;
    bottom: calc(16px + env(safe-area-inset-bottom));
    width: 44px;
    height: 44px;
  }

  body .main-content[data-page="market-insights"] .market-reference-top {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
  }

  body .main-content[data-page="market-insights"] .market-reference-top > .card {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    height: auto !important;
    gap: 8px !important;
    padding: 0 !important;
  }

  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot > .market-stat-block,
  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot > .market-stat-block + .market-stat-block {
    min-height: 88px !important;
    display: grid !important;
    grid-template-rows: 18px 31px auto !important;
    align-content: center !important;
    gap: 5px !important;
    padding: 12px 10px !important;
    border: 1px solid #e8edf4 !important;
    border-radius: 8px !important;
    background: #fbfcfd !important;
  }

  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot span,
  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot strong,
  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot small {
    width: 100% !important;
    min-height: 0 !important;
    text-align: left !important;
  }

  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot strong {
    font-size: 25px !important;
    line-height: 1 !important;
  }

  body .main-content[data-page="market-insights"] .market-demand,
  body .main-content[data-page="market-insights"] .market-seasonality {
    min-height: 0 !important;
  }

  body .main-content[data-page="market-insights"] .market-demand-content {
    height: auto !important;
    display: grid !important;
    grid-template-rows: auto 168px !important;
    gap: 8px !important;
  }

  body .main-content[data-page="market-insights"] .market-demand-head {
    min-height: 0 !important;
    align-items: center !important;
  }

  body .main-content[data-page="market-insights"] .market-demand-head .metric-line {
    font-size: 27px !important;
    line-height: 1 !important;
  }

  body .main-content[data-page="market-insights"] .market-demand-content .line-chart,
  body .main-content[data-page="market-insights"] .market-demand-content .line-chart svg {
    width: 100% !important;
    height: 168px !important;
    max-height: 168px !important;
    min-height: 0 !important;
  }

  body .main-content[data-page="market-insights"] .market-seasonality-content {
    height: auto !important;
    padding: 2px 0 0 !important;
  }

  body .main-content[data-page="market-insights"] .market-seasonality-content .donut-module {
    display: grid !important;
    grid-template-columns: minmax(118px, 142px) minmax(0, 1fr) !important;
    align-items: center !important;
    justify-items: stretch !important;
    gap: 12px !important;
  }

  body .main-content[data-page="market-insights"] .market-seasonality-content .donut-figure {
    width: 142px !important;
    max-width: 142px !important;
    justify-self: center !important;
  }

  body .main-content[data-page="market-insights"] .market-seasonality-content .donut-legend {
    width: 100% !important;
    gap: 7px !important;
  }

  body .main-content[data-page="market-insights"] .market-seasonality-content .donut-legend li {
    grid-template-columns: 8px minmax(0, 1fr) 32px !important;
    gap: 7px !important;
    font-size: 9.3px !important;
    line-height: 1.25 !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics > .card:first-child {
    min-height: 292px !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics .funnel-module {
    display: grid !important;
    grid-template-columns: minmax(132px, .95fr) minmax(0, 1.05fr) !important;
    align-items: center !important;
    gap: 12px !important;
    min-height: 208px !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics .funnel {
    width: 100% !important;
    align-content: center !important;
    justify-items: center !important;
    gap: 6px !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics .funnel > div {
    height: 43px !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics .funnel-details {
    width: 100% !important;
    gap: 11px !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics .funnel-details li {
    grid-template-columns: 10px minmax(0, 1fr) !important;
    gap: 8px !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics .funnel-rate {
    margin-top: 8px !important;
    padding-top: 8px !important;
  }

  body .main-content[data-page="report"] .timeline-card {
    min-height: 0 !important;
    height: auto !important;
  }

  body .main-content[data-page="report"] .timeline-card .timeline {
    min-height: 0 !important;
    height: auto !important;
    display: grid !important;
    gap: 8px !important;
    padding: 4px 0 2px 18px !important;
  }

  body .main-content[data-page="report"] .timeline-card .timeline li {
    min-height: 0 !important;
    padding: 8px 8px 8px 0 !important;
    grid-template-columns: 66px minmax(0, 1fr) !important;
    gap: 9px !important;
  }
}

/* Final-final network ecosystem panel: no overlap with relationship graph */
body .main-content[data-page="network"] .ecosystem-integrated {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto minmax(0, auto) !important;
  gap: 10px !important;
  position: relative !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel {
  position: relative !important;
  inset: auto !important;
  order: -1 !important;
  justify-self: end !important;
  width: min(560px, 100%) !important;
  min-width: 0 !important;
  max-width: 560px !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  display: grid !important;
  grid-template-columns: 112px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 10px 12px !important;
  overflow: hidden !important;
  border: 1px solid rgba(221, 230, 240, .96) !important;
  border-radius: 9px !important;
  background: #fff !important;
  box-shadow: 0 12px 28px rgba(17, 45, 82, .07) !important;
  backdrop-filter: none !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-map {
  min-height: 510px !important;
  padding: 28px 4px 2px !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-diagram {
  min-height: 480px !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel h3 {
  width: auto !important;
  margin: 0 !important;
  color: var(--navy) !important;
  font-size: 10.6px !important;
  font-weight: 640 !important;
  line-height: 1.25 !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel .donut-module {
  display: grid !important;
  grid-template-columns: 84px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 10px !important;
  min-width: 0 !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel .donut-figure {
  width: 82px !important;
  max-width: 82px !important;
  justify-self: center !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel .donut-center strong {
  font-size: 10px !important;
  line-height: 1.05 !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel .donut-center span {
  font-size: 7px !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel .donut-legend {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-content: center !important;
  gap: 5px 10px !important;
  min-width: 0 !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel .donut-legend li {
  grid-template-columns: 7px minmax(0, 1fr) 28px !important;
  gap: 6px !important;
  min-width: 0 !important;
  font-size: 8.2px !important;
  line-height: 1.18 !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel .donut-legend li p {
  min-width: 0 !important;
  padding-right: 3px !important;
  overflow-wrap: anywhere !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel .donut-legend li strong {
  min-width: 28px !important;
  text-align: right !important;
  white-space: nowrap !important;
  font-variant-numeric: tabular-nums !important;
}

@media (max-width: 720px) {
  body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel {
    justify-self: stretch !important;
    width: 100% !important;
    grid-template-columns: 1fr !important;
  }

  body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel .donut-module {
    grid-template-columns: 88px minmax(0, 1fr) !important;
  }

  body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-map {
    min-height: 430px !important;
    padding-top: 44px !important;
  }
}

/* Absolute last-pass: network donut overlay must be landscape and non-invasive */
body .main-content[data-page="network"] .ecosystem-integrated {
  position: relative !important;
  display: block !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-map {
  min-height: 540px !important;
  padding: 96px 4px 2px !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-diagram {
  min-height: 500px !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel {
  position: absolute !important;
  inset: 14px 14px auto auto !important;
  width: min(520px, calc(100% - 28px)) !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 520px !important;
  max-height: none !important;
  display: grid !important;
  grid-template-columns: 110px minmax(0, 1fr) !important;
  align-items: center !important;
  align-content: center !important;
  gap: 12px !important;
  padding: 10px 12px !important;
  overflow: hidden !important;
  background: rgba(255, 255, 255, .96) !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel h3 {
  width: auto !important;
  margin: 0 !important;
  font-size: 10.5px !important;
  line-height: 1.22 !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel .donut-module {
  display: grid !important;
  grid-template-columns: 84px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 10px !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel .donut-figure {
  width: 82px !important;
  max-width: 82px !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel .donut-legend {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 5px 9px !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel .donut-legend li {
  grid-template-columns: 7px minmax(0, 1fr) 28px !important;
  gap: 6px !important;
  font-size: 8.1px !important;
  line-height: 1.18 !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel .donut-center strong {
  font-size: 10px !important;
  line-height: 1.05 !important;
}

body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel .donut-center span {
  font-size: 7px !important;
}

@media (max-width: 720px) {
  body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-map {
    padding: 46px 4px 170px !important;
  }

  body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel {
    inset: auto 12px 12px 12px !important;
    width: auto !important;
    grid-template-columns: 1fr !important;
  }

  body .main-content[data-page="network"] .ecosystem-integrated .ecosystem-donut-panel .donut-module {
    grid-template-columns: 88px minmax(0, 1fr) !important;
  }
}

/* Network final placement: collaboration donut as a compact landscape overlay */
.main-content[data-page="network"] .ecosystem-integrated .ecosystem-map {
  padding-top: 96px !important;
}

.main-content[data-page="network"] .ecosystem-donut-panel {
  top: 14px !important;
  right: 14px !important;
  bottom: auto !important;
  left: auto !important;
  width: min(520px, calc(100% - 28px)) !important;
  min-width: 0 !important;
  max-width: 520px !important;
  min-height: 0 !important;
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 10px 12px !important;
  background: rgba(255, 255, 255, .96) !important;
}

.main-content[data-page="network"] .ecosystem-donut-panel h3 {
  align-self: center !important;
  width: 112px !important;
  font-size: 10.4px !important;
  line-height: 1.25 !important;
}

.main-content[data-page="network"] .ecosystem-donut-panel .donut-module {
  min-width: 0 !important;
  display: grid !important;
  grid-template-columns: 86px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 10px !important;
}

.main-content[data-page="network"] .ecosystem-donut-panel .donut-figure {
  width: 84px !important;
  max-width: 84px !important;
}

.main-content[data-page="network"] .ecosystem-donut-panel .donut-center strong {
  font-size: 10px !important;
  line-height: 1.05 !important;
}

.main-content[data-page="network"] .ecosystem-donut-panel .donut-center span {
  font-size: 7px !important;
}

.main-content[data-page="network"] .ecosystem-donut-panel .donut-legend {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 5px 9px !important;
  align-content: center !important;
}

.main-content[data-page="network"] .ecosystem-donut-panel .donut-legend li {
  grid-template-columns: 7px minmax(0, 1fr) 28px !important;
  gap: 6px !important;
  font-size: 8.1px !important;
  line-height: 1.18 !important;
}

@media (max-width: 720px) {
  .main-content[data-page="network"] .ecosystem-integrated .ecosystem-map {
    padding-top: 46px !important;
    padding-bottom: 170px !important;
  }

  .main-content[data-page="network"] .ecosystem-donut-panel {
    top: auto !important;
    right: 12px !important;
    bottom: 12px !important;
    left: 12px !important;
    width: auto !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .main-content[data-page="network"] .ecosystem-donut-panel h3 {
    width: auto !important;
  }

  .main-content[data-page="network"] .ecosystem-donut-panel .donut-module {
    grid-template-columns: 88px minmax(0, 1fr) !important;
  }
}

/* Opportunity final order: matrix, funnel, potential */
.main-content[data-page="opportunita"] .opportunity-analytics {
  grid-template-columns: minmax(0, 1.04fr) minmax(0, 1fr) minmax(245px, .78fr) !important;
}

.main-content[data-page="opportunita"] .opportunity-potential-card {
  min-width: 0 !important;
  overflow: hidden !important;
}

.main-content[data-page="opportunita"] .opportunity-potential-card .big-money {
  max-width: 100% !important;
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: baseline !important;
  gap: 4px 7px !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  font-size: clamp(22px, 2vw, 30px) !important;
  line-height: 1.08 !important;
}

.main-content[data-page="opportunita"] .opportunity-potential-card .insight-list,
.main-content[data-page="opportunita"] .opportunity-potential-card .insight-list span {
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}

@media (max-width: 900px) {
  .main-content[data-page="opportunita"] .opportunity-analytics {
    grid-template-columns: 1fr !important;
  }
}

/* Network ecosystem: integrate collaboration donut inside the relationship map */
.main-content[data-page="network"] .ecosystem-integrated {
  position: relative !important;
  display: block !important;
  min-width: 0 !important;
}

.main-content[data-page="network"] .ecosystem-integrated .ecosystem-map {
  min-height: 540px !important;
  padding: 34px 4px 2px !important;
}

.main-content[data-page="network"] .ecosystem-integrated .ecosystem-diagram {
  width: 100% !important;
  height: 100% !important;
  min-height: 500px !important;
}

.main-content[data-page="network"] .ecosystem-donut-panel {
  position: absolute !important;
  right: 18px !important;
  bottom: 18px !important;
  z-index: 3 !important;
  width: min(360px, 34%) !important;
  min-width: 275px !important;
  max-width: 380px !important;
  padding: 12px 13px !important;
  gap: 8px !important;
  border: 1px solid rgba(221, 230, 240, .92) !important;
  border-radius: 9px !important;
  background: rgba(255, 255, 255, .92) !important;
  box-shadow: 0 18px 34px rgba(17, 45, 82, .10) !important;
  backdrop-filter: blur(10px);
}

.main-content[data-page="network"] .ecosystem-donut-panel h3 {
  font-size: 12px !important;
  line-height: 1.2 !important;
  font-weight: 640 !important;
}

.main-content[data-page="network"] .ecosystem-donut-panel .donut-module {
  grid-template-columns: minmax(100px, 118px) minmax(0, 1fr) !important;
  gap: 10px !important;
  align-items: center !important;
}

.main-content[data-page="network"] .ecosystem-donut-panel .donut-figure {
  width: 112px !important;
  max-width: 112px !important;
  justify-self: center !important;
}

.main-content[data-page="network"] .ecosystem-donut-panel .donut-legend {
  gap: 6px !important;
}

.main-content[data-page="network"] .ecosystem-donut-panel .donut-legend li {
  grid-template-columns: 8px minmax(0, 1fr) 30px !important;
  gap: 7px !important;
  font-size: 8.9px !important;
  line-height: 1.22 !important;
}

.main-content[data-page="network"] .ecosystem-donut-panel .donut-legend li p {
  min-width: 0 !important;
  padding-right: 3px !important;
  overflow-wrap: anywhere !important;
}

.main-content[data-page="network"] .ecosystem-donut-panel .donut-legend li strong {
  min-width: 30px !important;
  text-align: right !important;
  white-space: nowrap !important;
  font-variant-numeric: tabular-nums !important;
}

/* Final map control lock: +, -, expand in the same white perimeter */
.map-live.leaflet-loaded .leaflet-bottom.leaflet-right .leaflet-control-zoom {
  margin-right: 12px !important;
  margin-bottom: 12px !important;
  display: grid !important;
  overflow: hidden !important;
  border: 1px solid #dfe8f1 !important;
  border-radius: 9px !important;
  background: rgba(255, 255, 255, .96) !important;
  box-shadow: 0 10px 24px rgba(17, 45, 82, .08) !important;
}

.main-content[data-page="mappa"] .map-live.leaflet-loaded .leaflet-bottom.leaflet-right .leaflet-control-zoom {
  margin-right: 22px !important;
  margin-bottom: 20px !important;
}

.map-live.leaflet-loaded .leaflet-control-zoom a,
.map-live.leaflet-loaded .leaflet-control-zoom .map-expand-control {
  position: static !important;
  width: 39px !important;
  height: 39px !important;
  min-width: 39px !important;
  min-height: 39px !important;
  display: grid !important;
  place-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #e4ebf3 !important;
  border-radius: 0 !important;
  color: #071447 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 20px !important;
  font-weight: 360 !important;
  line-height: 1 !important;
}

.map-live.leaflet-loaded .leaflet-control-zoom .map-expand-control {
  border-bottom: 0 !important;
  cursor: pointer !important;
}

.map-live.leaflet-loaded .leaflet-control-zoom .map-expand-control svg {
  width: 17px !important;
  height: 17px !important;
  stroke-width: 1.75 !important;
}

.map-live.leaflet-loaded .leaflet-control-zoom a:hover,
.map-live.leaflet-loaded .leaflet-control-zoom .map-expand-control:hover {
  color: var(--sportia-green) !important;
  background: #f5fbf8 !important;
}

.map-live.leaflet-loaded .leaflet-control-container {
  position: absolute !important;
  inset: 0 !important;
  z-index: 504 !important;
  pointer-events: none !important;
}

.map-live.leaflet-loaded .leaflet-control {
  pointer-events: auto !important;
}

@media (max-width: 820px) {
  .main-content[data-page="network"] .ecosystem-integrated .ecosystem-map {
    min-height: 620px !important;
    padding-bottom: 182px !important;
  }

  .main-content[data-page="network"] .ecosystem-integrated .ecosystem-diagram {
    min-height: 405px !important;
  }

  .main-content[data-page="network"] .ecosystem-donut-panel {
    left: 14px !important;
    right: 14px !important;
    bottom: 14px !important;
    width: auto !important;
    min-width: 0 !important;
  }
}

@media (max-width: 520px) {
  .main-content[data-page="network"] .ecosystem-donut-panel .donut-module {
    grid-template-columns: minmax(96px, 112px) minmax(0, 1fr) !important;
  }

  .main-content[data-page="network"] .ecosystem-donut-panel .donut-figure {
    width: 104px !important;
    max-width: 104px !important;
  }

  .main-content[data-page="mappa"] .map-live.leaflet-loaded .leaflet-bottom.leaflet-right .leaflet-control-zoom {
    margin-right: 12px !important;
    margin-bottom: 12px !important;
  }
}

/* Final map control group: zoom + expand inside the same white perimeter */
.map-live.leaflet-loaded .leaflet-bottom.leaflet-right .leaflet-control-zoom {
  margin-right: 12px !important;
  margin-bottom: 12px !important;
  display: grid !important;
  overflow: hidden !important;
  border: 1px solid #dfe8f1 !important;
  border-radius: 9px !important;
  background: rgba(255, 255, 255, .96) !important;
  box-shadow: 0 10px 24px rgba(17, 45, 82, .08) !important;
}

.main-content[data-page="mappa"] .map-live.leaflet-loaded .leaflet-bottom.leaflet-right .leaflet-control-zoom {
  margin-right: 22px !important;
  margin-bottom: 20px !important;
}

.map-live.leaflet-loaded .leaflet-control-zoom a,
.map-live.leaflet-loaded .leaflet-control-zoom .map-expand-control {
  position: static !important;
  width: 39px !important;
  height: 39px !important;
  min-width: 39px !important;
  min-height: 39px !important;
  display: grid !important;
  place-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #e4ebf3 !important;
  border-radius: 0 !important;
  color: #071447 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 20px !important;
  font-weight: 360 !important;
  line-height: 1 !important;
}

.map-live.leaflet-loaded .leaflet-control-zoom .map-expand-control {
  border-bottom: 0 !important;
  cursor: pointer;
}

.map-live.leaflet-loaded .leaflet-control-zoom .map-expand-control svg {
  width: 17px !important;
  height: 17px !important;
  stroke-width: 1.75 !important;
}

.map-live.leaflet-loaded .leaflet-control-zoom a:hover,
.map-live.leaflet-loaded .leaflet-control-zoom .map-expand-control:hover {
  color: var(--sportia-green) !important;
  background: #f5fbf8 !important;
}

@media (max-width: 720px) {
  .main-content[data-page="mappa"] .map-live.leaflet-loaded .leaflet-bottom.leaflet-right .leaflet-control-zoom {
    margin-right: 12px !important;
    margin-bottom: 12px !important;
  }
}

/* Final responsive controls: market top cards, opportunity funnel, report timeline, back-to-top. */
@media (max-width: 540px) {
  .back-to-top {
    right: 14px;
    bottom: calc(16px + env(safe-area-inset-bottom));
    width: 44px;
    height: 44px;
  }

  body .main-content[data-page="market-insights"] .market-reference-top {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
  }

  body .main-content[data-page="market-insights"] .market-reference-top > .card {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    overflow: hidden;
  }

  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    height: auto !important;
    gap: 8px !important;
    padding: 0 !important;
  }

  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot > .market-stat-block,
  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot > .market-stat-block + .market-stat-block {
    min-height: 88px !important;
    display: grid !important;
    grid-template-rows: 18px 31px auto !important;
    align-content: center !important;
    gap: 5px !important;
    padding: 12px 10px !important;
    border: 1px solid #e8edf4 !important;
    border-radius: 8px !important;
    background: #fbfcfd !important;
  }

  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot span,
  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot strong,
  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot small {
    width: 100% !important;
    min-height: 0 !important;
    text-align: left !important;
  }

  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot strong {
    font-size: 25px !important;
    line-height: 1 !important;
  }

  body .main-content[data-page="market-insights"] .market-demand,
  body .main-content[data-page="market-insights"] .market-seasonality {
    min-height: 0 !important;
  }

  body .main-content[data-page="market-insights"] .market-demand-content {
    height: auto !important;
    display: grid !important;
    grid-template-rows: auto 168px !important;
    gap: 8px !important;
  }

  body .main-content[data-page="market-insights"] .market-demand-head {
    min-height: 0 !important;
    align-items: center !important;
  }

  body .main-content[data-page="market-insights"] .market-demand-head .metric-line {
    font-size: 27px !important;
    line-height: 1 !important;
  }

  body .main-content[data-page="market-insights"] .market-demand-content .line-chart,
  body .main-content[data-page="market-insights"] .market-demand-content .line-chart svg {
    width: 100% !important;
    height: 168px !important;
    max-height: 168px !important;
    min-height: 0 !important;
  }

  body .main-content[data-page="market-insights"] .market-seasonality-content {
    height: auto !important;
    padding: 2px 0 0 !important;
  }

  body .main-content[data-page="market-insights"] .market-seasonality-content .donut-module {
    display: grid !important;
    grid-template-columns: minmax(118px, 142px) minmax(0, 1fr) !important;
    align-items: center !important;
    justify-items: stretch !important;
    gap: 12px !important;
  }

  body .main-content[data-page="market-insights"] .market-seasonality-content .donut-figure {
    width: 142px !important;
    max-width: 142px !important;
    justify-self: center !important;
  }

  body .main-content[data-page="market-insights"] .market-seasonality-content .donut-legend {
    width: 100% !important;
    gap: 7px !important;
  }

  body .main-content[data-page="market-insights"] .market-seasonality-content .donut-legend li {
    grid-template-columns: 8px minmax(0, 1fr) 32px !important;
    gap: 7px !important;
    font-size: 9.3px !important;
    line-height: 1.25 !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics > .card:first-child {
    min-height: 292px !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics .funnel-module {
    display: grid !important;
    grid-template-columns: minmax(132px, .95fr) minmax(0, 1.05fr) !important;
    align-items: center !important;
    gap: 12px !important;
    min-height: 208px !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics .funnel {
    width: 100% !important;
    align-content: center !important;
    justify-items: center !important;
    gap: 6px !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics .funnel > div {
    height: 43px !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics .funnel-details {
    width: 100% !important;
    gap: 11px !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics .funnel-details li {
    grid-template-columns: 10px minmax(0, 1fr) !important;
    gap: 8px !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics .funnel-rate {
    margin-top: 8px !important;
    padding-top: 8px !important;
  }

  body .main-content[data-page="report"] .timeline-card {
    min-height: 0 !important;
    height: auto !important;
  }

  body .main-content[data-page="report"] .timeline-card .timeline {
    min-height: 0 !important;
    height: auto !important;
    display: grid !important;
    gap: 8px !important;
    padding: 4px 0 2px 18px !important;
  }

  body .main-content[data-page="report"] .timeline-card .timeline li {
    min-height: 0 !important;
    padding: 8px 8px 8px 0 !important;
    grid-template-columns: 66px minmax(0, 1fr) !important;
    gap: 9px !important;
  }
}

/* Guardrail: the potential value must never exceed its card on narrow columns. */
.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) {
  container-type: inline-size;
  overflow: hidden;
}

.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .big-money {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: clip;
  color: var(--sportia-green);
  font-size: clamp(18px, 1.55vw, 23px);
  line-height: 1.12;
  letter-spacing: 0;
}

.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .insight-list {
  min-width: 0;
}

.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .insight-list li {
  grid-template-columns: 34px minmax(0, 1fr);
}

.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .insight-list span,
.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .insight-list strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

@container (max-width: 285px) {
  .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .big-money {
    font-size: clamp(17px, 8.2cqw, 21px);
  }
}

@media (max-width: 540px) {
  body .main-content[data-page="opportunita"] .opportunity-analytics {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    gap: 10px !important;
    height: auto !important;
    align-items: stretch !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics > .card {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) {
    min-height: 270px !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .big-money {
    font-size: clamp(20px, 6vw, 23px) !important;
  }
}

/* Final mobile pass: keep Opportunita analysis cards readable after desktop alignment overrides. */
@media (max-width: 540px) {
  body .main-content[data-page="opportunita"] .opportunity-analytics {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    gap: 10px !important;
    height: auto !important;
    align-items: stretch !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics > .card {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(1),
  body .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(2) {
    min-height: 318px !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) {
    min-height: 268px !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics .funnel-module {
    grid-template-columns: minmax(125px, .88fr) minmax(0, 1.12fr) !important;
    gap: 10px !important;
    align-items: center;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics .funnel-legend {
    min-width: 0;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics .funnel-legend li {
    grid-template-columns: 10px minmax(0, 1fr) !important;
    gap: 7px !important;
    font-size: 10px !important;
    line-height: 1.3 !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics .modern-matrix {
    min-height: 300px !important;
    padding: 18px 12px 30px 33px !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics .modern-matrix .bubble {
    width: 25px;
    height: 25px;
    font-size: 12px;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics .big-money {
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    font-size: clamp(21px, 6.6vw, 26px) !important;
    line-height: 1.12 !important;
    letter-spacing: 0 !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .insight-list {
    min-width: 0 !important;
    gap: 8px !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .insight-list li {
    grid-template-columns: 30px minmax(0, 1fr) !important;
    gap: 8px !important;
    font-size: 10px !important;
    line-height: 1.35 !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .insight-list span {
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
  }

  body .main-content[data-page="opportunita"] .page-grid.with-rail,
  body .main-content[data-page="opportunita"] .right-rail {
    grid-template-columns: 1fr !important;
  }

  body .main-content[data-page="opportunita"] .right-rail > .card {
    width: 100% !important;
    min-width: 0 !important;
  }
}

/* Final mobile fixes for ranking and opportunity cards */
@media (max-width: 540px) {
  .main-content[data-page="opportunita"] .opportunity-analytics {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    height: auto !important;
    align-items: stretch;
  }
  .main-content[data-page="opportunita"] .opportunity-analytics > .card {
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    grid-column: auto !important;
  }
  .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) {
    min-height: 268px !important;
    overflow: hidden;
  }
  .main-content[data-page="opportunita"] .opportunity-analytics .big-money {
    max-width: 100%;
    white-space: normal !important;
    overflow-wrap: anywhere;
    font-size: clamp(21px, 6.6vw, 26px) !important;
    line-height: 1.12;
  }
  .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .insight-list {
    gap: 8px;
  }
  .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .insight-list li {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 8px;
    font-size: 10px;
    line-height: 1.35;
  }
  .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .insight-list span {
    min-width: 0;
    overflow-wrap: anywhere;
  }
  .main-content[data-page="opportunita"] .page-grid.with-rail,
  .main-content[data-page="opportunita"] .right-rail {
    grid-template-columns: 1fr !important;
  }
  .main-content[data-page="opportunita"] .right-rail > .card {
    width: 100%;
    min-width: 0;
  }
}

/* Interventions roadmap and investment scenarios */
.main-content[data-page="interventi-consigliati"] .intervention-planning-stack {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  align-items: stretch;
}
.main-content[data-page="interventi-consigliati"] .roadmap-section-card,
.main-content[data-page="interventi-consigliati"] .investment-section-card {
  width: 100%;
  min-width: 0;
  height: auto !important;
}
.main-content[data-page="interventi-consigliati"] .roadmap-section-card {
  overflow-x: auto;
  overflow-y: hidden;
}
.main-content[data-page="interventi-consigliati"] .investment-section-card {
  min-height: 0;
  height: auto !important;
  overflow: hidden;
}

.roadmap-gantt {
  --label-col: 190px;
  --quarter-count: 15;
  min-width: 920px;
  height: auto;
  display: grid;
  grid-template-rows: 58px auto auto;
  color: var(--navy);
}
.roadmap-head {
  display: grid;
  grid-template-columns: var(--label-col) minmax(0, 1fr);
  grid-template-rows: 29px 27px;
  border-bottom: 1px solid #dfe8f0;
}
.roadmap-corner {
  grid-row: 1 / span 2;
  display: flex;
  align-items: center;
  padding-left: 4px;
  color: #1f3566;
  font-size: 10.5px;
  font-weight: 620;
}
.roadmap-years,
.roadmap-quarters {
  display: grid;
  grid-template-columns: repeat(var(--quarter-count), minmax(0, 1fr));
  min-width: 0;
}
.roadmap-years strong {
  grid-column: span var(--span);
  display: grid;
  place-items: center;
  border-left: 1px solid #e5ebf2;
  color: #17306a;
  font-size: 12px;
  font-weight: 620;
}
.roadmap-quarters span {
  display: grid;
  place-items: center;
  border-left: 1px solid #e5ebf2;
  color: #3c4e79;
  font-size: 9px;
  font-weight: 560;
}
.roadmap-body {
  min-height: 0;
  display: grid;
  grid-template-rows: repeat(6, minmax(0, 1fr));
}
.roadmap-gantt.is-expanded .roadmap-body {
  grid-template-rows: repeat(12, minmax(0, 1fr));
}
.roadmap-row {
  min-height: 36px;
  display: grid;
  grid-template-columns: 28px minmax(142px, 162px) minmax(0, 1fr);
  align-items: center;
  border-bottom: 1px solid #edf1f5;
}
.roadmap-row[data-intervention-extra="true"] { display: none; }
.roadmap-gantt.is-expanded .roadmap-row[data-intervention-extra="true"] { display: grid; }
.roadmap-row:last-child { border-bottom: 0; }
.roadmap-index {
  width: 17px;
  height: 17px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  font-size: 9px;
  font-weight: 620;
  line-height: 1;
}
.roadmap-index.tone-green,
.roadmap-track b.tone-green { background: linear-gradient(180deg, #16a05c, #078842); }
.roadmap-index.tone-blue,
.roadmap-track b.tone-blue { background: linear-gradient(180deg, #2682e5, #1265c9); }
.roadmap-index.tone-violet,
.roadmap-track b.tone-violet { background: linear-gradient(180deg, #8f63e8, #7242d0); }
.roadmap-index.tone-amber,
.roadmap-track b.tone-amber { background: linear-gradient(180deg, #f4b626, #ee9b12); }
.roadmap-row p {
  min-width: 0;
  margin: 0;
  color: #263c68;
  font-size: 10.5px;
  font-weight: 470;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.roadmap-track {
  position: relative;
  height: 100%;
  display: grid;
  grid-template-columns: repeat(var(--quarter-count), minmax(0, 1fr));
  min-width: 0;
}
.roadmap-track i {
  border-left: 1px solid #e6ecf2;
  background: linear-gradient(180deg, rgba(255,255,255,.8), rgba(248,250,252,.8));
}
.roadmap-track b {
  position: absolute;
  left: calc((var(--start) - 1) * 100% / var(--quarter-count) + 3px);
  top: 50%;
  width: calc(var(--len) * 100% / var(--quarter-count) - 6px);
  height: 20px;
  transform: translateY(-50%);
  border-radius: 4px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.16), 0 4px 9px rgba(5, 89, 48, .14);
}
.roadmap-toggle {
  justify-self: center;
  width: min(280px, calc(100% - 28px));
  margin: 13px auto 2px;
}

.investment-scenarios {
  height: auto !important;
  min-height: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.investment-scenarios article {
  position: relative;
  min-width: 0;
  min-height: 218px;
  display: grid;
  grid-template-rows: auto auto auto minmax(0, 1fr) auto;
  gap: 8px;
  padding: 15px 12px 12px;
  border: 1px solid #dfe7ef;
  border-radius: 8px;
  background: #fff;
}
.investment-scenarios article.selected {
  border-color: rgba(0, 143, 70, .58);
  background: linear-gradient(180deg, #ffffff 0%, #f5fbf8 100%);
  box-shadow: inset 0 0 0 1px rgba(0, 143, 70, .24), 0 8px 22px rgba(0, 143, 70, .08);
}
.scenario-tag {
  position: absolute;
  top: 7px;
  right: 8px;
  padding: 2px 8px;
  border: 1px solid #ccebd9;
  border-radius: 999px;
  color: var(--sportia-green-dark);
  background: #edf8f2;
  font-size: 8px;
  font-weight: 620;
}
.scenario-head {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.scenario-head svg {
  width: 29px;
  height: 29px;
  color: var(--sportia-green);
  stroke-width: 1.6;
}
.investment-scenarios article.selected .scenario-head svg { color: #f5a623; }
.scenario-head h3 {
  display: grid;
  gap: 2px;
  margin: 0;
  color: #17306a;
  font-size: 11px;
  font-weight: 640;
  line-height: 1.1;
}
.scenario-head h3 span {
  color: #536587;
  font-size: 8.6px;
  font-weight: 470;
}
.investment-scenarios strong {
  color: var(--sportia-green);
  font-size: 19px;
  font-weight: 640;
  line-height: 1;
}
.investment-scenarios dl {
  display: grid;
  gap: 5px;
  margin: 0;
}
.investment-scenarios dl div {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 6px;
  color: #263c68;
  font-size: 9px;
}
.investment-scenarios dt,
.investment-scenarios dd {
  margin: 0;
  font-weight: 500;
}
.investment-scenarios dd {
  color: #152a62;
  font-weight: 620;
}
.investment-scenarios p {
  margin: 0;
  color: #536587;
  font-size: 9px;
  font-weight: 430;
  line-height: 1.35;
}
.investment-scenarios button {
  min-height: 33px;
  border: 0;
  border-radius: 5px;
  color: #fff;
  background: linear-gradient(180deg, #08a754, #008f46);
  font-size: 11px;
  font-weight: 650;
}

@media (max-width: 1180px) {
  .roadmap-gantt {
    min-width: 900px;
    min-height: 0;
  }
  .main-content[data-page="interventi-consigliati"] .roadmap-section-card {
    overflow-x: auto !important;
  }
  .investment-scenarios {
    min-height: 0;
  }
}

@media (max-width: 680px) {
  .main-content[data-page="interventi-consigliati"] .investment-section-card {
    height: auto !important;
    min-height: 0;
  }
  .investment-scenarios {
    grid-template-columns: 1fr;
    height: auto;
  }
  .investment-scenarios article {
    min-height: 210px;
  }
}

/* Unified pictogram medallions */
:where(
  .metric-icon,
  .facility-row-icon,
  .ranking-icon,
  .ai-item > span,
  .play-badge
) {
  box-sizing: border-box;
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  min-height: 40px !important;
  flex: 0 0 40px !important;
  aspect-ratio: 1 / 1;
  border-radius: 50% !important;
}

:where(.eco-node svg, .ai-score > svg) {
  box-sizing: border-box;
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  min-height: 40px !important;
  aspect-ratio: 1 / 1;
  padding: 8px;
  border-radius: 50% !important;
}

.metric-icon svg,
.facility-row-icon svg,
.ranking-icon svg,
.ai-item > span svg {
  width: 20px;
  height: 20px;
}

/* Adjacent cards share exact grid edges; independent columns keep their own rhythm. */
:where(
  .kpi-grid,
  .content-grid,
  .market-reference-top,
  .structure-overview-grid,
  .media-operations-grid,
  .action-grid
) {
  align-items: stretch;
}

:where(
  .kpi-grid,
  .content-grid,
  .market-reference-top,
  .structure-overview-grid,
  .media-operations-grid,
  .action-grid
) > .card {
  min-width: 0;
  align-self: stretch;
}

@media (max-width: 1180px) {
  .main-content[data-page="network"] .split-1-2,
  .main-content[data-page="network"] .split-1-2 > .stack,
  .main-content[data-page="network"] .split-1-2 > .card,
  .main-content[data-page="network"] .split-1-2 + .content-grid.two,
  .main-content[data-page="network"] .split-1-2 + .content-grid.two > .card,
  .main-content[data-page="interventi-consigliati"] .kpi-grid + .content-grid.two > .card {
    height: auto !important;
  }
  .main-content[data-page="network"] .ecosystem-map { min-height: 390px; }
  .main-content[data-page="interventi-consigliati"] .modern-matrix { min-height: 250px; }
  .profile-with-status .status-wrap { gap: 8px; }
  .profile-with-status .right-rail { grid-template-columns: 1fr; }
  .profile-with-status .progress-ring { width: 68px; height: 68px; }
  .profile-with-status .progress-ring strong { font-size: 16px; }
  .profile-with-status .check-list { gap: 5px; }
  .profile-with-status .check-list li { gap: 6px; font-size: 10px; }
  .main-content[data-page="report"] .report-preview { grid-column: 1 / -1; }
  .main-content[data-page="report"] .report-preview .preview-grid {
    grid-template-columns: 120px minmax(0, 1fr) minmax(160px, .8fr);
    gap: 10px;
  }
}

@media (max-width: 540px) {
  .funnel-module { grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: 6px; }
  .funnel-details strong { font-size: 9.5px; }
  .funnel-details small { font-size: 8.5px; }
  .review-overview { grid-template-columns: 1fr; gap: 12px; }
  .review-overview > div:first-child {
    padding: 0 0 12px;
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }
  .review-overview .bar-row { grid-template-columns: 42px minmax(70px, 1fr) 28px; }
  .main-content[data-page="network"] .ecosystem-map { min-height: 430px; }
  .main-content[data-page="report"] .report-preview .preview-grid { grid-template-columns: 1fr; }
}

/* Detail refinements */
.main-content[data-page="ranking"] .ranking-grid > div:first-child {
  display: grid;
  gap: 16px;
}

.report-info-card .card-title h2 {
  font-weight: 680;
  font-variation-settings: "wght" 680;
}
.report-info-card .distance-list { gap: 0; }
.report-info-card .distance-list div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid #edf1f5;
  font-weight: 400;
}
.report-info-card .distance-list div:last-child { border-bottom: 0; }
.report-info-card .distance-list dt {
  color: #66758f;
  font-weight: 390;
  font-variation-settings: "wght" 390;
  line-height: 1.35;
}
.report-info-card .distance-list dd {
  max-width: 128px;
  color: #193364;
  font-weight: 500;
  font-variation-settings: "wght" 500;
  line-height: 1.35;
  text-align: right;
}

@media (min-width: 1181px) {
  .main-content[data-page="ranking"] .ranking-grid { align-items: stretch; }
  .main-content[data-page="ranking"] .ranking-grid > .stack {
    height: 100%;
    grid-template-rows: auto minmax(0, 1fr);
    align-content: stretch;
    gap: 16px;
  }
  .main-content[data-page="ranking"] .ranking-grid > .stack > .card:last-child { height: 100%; }

  .main-content[data-page="dati-finanziari"] .page-grid.with-rail { align-items: stretch; }
  .main-content[data-page="dati-finanziari"] .right-rail {
    position: static;
    height: calc(100% - 42px);
    display: flex;
    flex-direction: column;
  }
  .main-content[data-page="dati-finanziari"] .right-rail > .ai-card {
    margin-top: auto;
    position: relative;
    top: -2px;
  }
}

.interventions-table tbody tr:nth-child(n + 7) { display: none; }
.interventions-table.is-expanded tbody tr:nth-child(n + 7) { display: table-row; }
.interventions-table {
  height: auto !important;
  overflow: visible !important;
  margin-bottom: 6px;
}
.interventions-toggle {
  width: calc(100% - 28px);
  min-height: 30px;
  margin: 4px 14px 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 0;
  border-top: 1px solid var(--border);
  color: var(--sportia-green-dark);
  background: transparent;
  font: inherit;
  font-size: 10px;
  font-weight: 560;
}
.interventions-toggle svg { transition: transform .18s ease; }
.interventions-table.is-expanded .interventions-toggle svg { transform: rotate(90deg); }

@media (min-width: 1181px) {
  .main-content[data-page="network"] .split-1-2,
  .main-content[data-page="network"] .split-1-2 > .stack,
  .main-content[data-page="network"] .split-1-2 > .card,
  .main-content[data-page="network"] .split-1-2 + .content-grid.two,
  .main-content[data-page="network"] .split-1-2 + .content-grid.two > .card {
    height: auto;
  }
  .main-content[data-page="network"] .split-1-2 > .stack { grid-template-rows: auto auto; }
  .main-content[data-page="network"] .split-1-2 .ecosystem-map { height: auto; min-height: 420px; }
}

@media (max-width: 1180px) {
  .brand-logo { width: 140px; height: 42px; }
}

@media (max-width: 820px) {
  .brand-logo { width: 124px; height: 40px; }
}

@media (max-width: 540px) {
  .brand-logo { width: 108px; height: 38px; }
}

/* Review overview */
.review-overview-card .review-overview {
  grid-template-columns: minmax(118px, .78fr) minmax(0, 1.22fr);
  min-height: 184px;
  gap: 14px;
}
.review-score-summary {
  display: grid;
  align-content: center;
  gap: 9px;
  padding-right: 14px;
  border-right: 1px solid var(--border);
}
.review-score-summary .review-score { display: flex; align-items: baseline; gap: 5px; }
.review-score-summary .review-score strong { font-size: 46px; line-height: .95; letter-spacing: 0; }
.review-score-summary .review-score span { color: #697897; font-size: 21px; }
.review-score-summary .stars { color: var(--sportia-green); font-size: 21px; line-height: 1; letter-spacing: 1px; }
.review-score-summary .stars span { color: #b8dac8; }
.review-score-summary p { margin: 2px 0 0; color: #586987; font-size: 10px; line-height: 1.4; }
.review-score-summary p strong { color: var(--navy); font-weight: 560; }
.review-distribution { display: grid; align-content: center; gap: 11px; min-width: 0; }
.review-dist-row {
  display: grid;
  grid-template-columns: 30px minmax(58px, 1fr) 30px;
  align-items: center;
  gap: 7px;
  min-width: 0;
  color: #253965;
  font-size: 10px;
  outline: none;
}
.review-dist-row > span { white-space: nowrap; }
.review-dist-row > strong { text-align: right; font-weight: 560; }
.review-dist-track { height: 6px; overflow: hidden; border-radius: 999px; background: #edf1f5; }
.review-dist-track i { display: block; height: 100%; border-radius: inherit; background: var(--sportia-green); transition: width .35s ease; }
.review-dist-row:focus .review-dist-track i,
.review-dist-row:hover .review-dist-track i { background: var(--sportia-green-dark); }

/* Report preview and version timeline */
.report-preview .preview-grid {
  grid-template-columns: minmax(130px, .75fr) minmax(220px, 1.35fr) minmax(170px, 1fr);
  align-items: stretch;
  gap: 0;
}
.preview-panel {
  min-width: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  justify-items: center;
  align-items: center;
  gap: 4px;
  padding: 2px 14px 5px;
}
.preview-panel + .preview-panel { border-left: 1px solid var(--border); }
.preview-panel h3 {
  justify-self: center;
  max-width: calc(100% - 12px);
  margin: 0;
  color: var(--navy);
  font-size: 10px;
  font-weight: 590;
  line-height: 1.08;
  text-align: center;
  white-space: normal;
}
.preview-panel h3 span { font-weight: 520; }
.preview-panel small { color: #667795; font-size: 8.5px; font-weight: 450; }
.preview-score .progress-ring { width: 106px; height: 106px; }
.preview-score .progress-ring strong { font-size: 18px; }
.preview-score > small { color: var(--sportia-green-dark); font-weight: 560; }
.preview-panel .line-chart,
.preview-panel .radar-chart { width: 100%; min-width: 0; }
.preview-trend .line-chart svg,
.preview-radar .radar-chart svg { width: 100%; max-width: none; height: 153px; }

.main-content[data-page="report"] .timeline {
  height: calc(100% - 56px);
  display: grid;
  grid-template-rows: repeat(5, minmax(0, 1fr));
  align-content: stretch;
  gap: 0;
  padding-left: 19px;
}
.main-content[data-page="report"] .timeline::before { left: 5px; width: 2px; background: #b8c9df; }
.main-content[data-page="report"] .timeline li {
  min-height: 0;
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  align-content: center;
  gap: 7px;
  padding: 7px 0;
  border-bottom: 1px solid #eef1f5;
}
.main-content[data-page="report"] .timeline li:last-child { border-bottom: 0; }
.main-content[data-page="report"] .timeline li::before {
  left: -18px;
  top: 50%;
  width: 10px;
  height: 10px;
  transform: translateY(-50%);
  box-shadow: 0 0 0 4px #edf8f2;
}
.main-content[data-page="report"] .timeline time { display: grid; gap: 2px; color: #40547a; }
.main-content[data-page="report"] .timeline time span { font-size: 8.5px; line-height: 1.2; }
.main-content[data-page="report"] .timeline time small { color: #7583a0; font-size: 8.5px; }
.main-content[data-page="report"] .timeline li > div { display: grid; gap: 2px; min-width: 0; }
.main-content[data-page="report"] .timeline li > div strong { color: var(--navy); font-size: 11px; line-height: 1.2; font-weight: 620; }
.main-content[data-page="report"] .timeline li > div span { color: #3d5076; font-size: 9.5px; line-height: 1.25; }
.main-content[data-page="report"] .timeline li > div small { color: #7b88a1; font-size: 8.5px; line-height: 1.2; }
.main-content[data-page="report"] .timeline li.current::before { background: var(--sportia-green-dark); }
.main-content[data-page="report"] .timeline li.current > div strong,
.main-content[data-page="report"] .timeline li.current > div span { color: var(--sportia-green-dark); }

@media (min-width: 1181px) {
  .main-content[data-page="report"] .report-layout {
    grid-template-columns: minmax(250px, .78fr) minmax(0, 1.42fr);
    grid-template-rows: 334px 150px 360px;
    align-items: stretch;
  }
  .main-content[data-page="report"] .report-layout > .card:first-child {
    grid-column: 1;
    grid-row: 1;
  }
  .main-content[data-page="report"] .report-layout > .stack {
    grid-column: 2;
    grid-row: 1;
    display: grid;
    align-content: stretch;
    grid-template-rows: auto minmax(0, 1fr);
    height: 334px;
  }
  .main-content[data-page="report"] .report-layout > .stack > .card:last-child {
    min-height: 0;
    height: 100%;
  }
  .main-content[data-page="report"] .report-layout > .card.timeline-card:nth-child(3) {
    grid-column: 1 / -1;
    grid-row: 2;
    min-height: 0;
    height: 150px;
    overflow: visible;
  }
  .main-content[data-page="report"] .report-preview {
    grid-column: 1 / -1;
    grid-row: 3;
    min-height: 0;
    height: 360px;
    overflow: visible;
  }
  .main-content[data-page="report"] .report-preview .preview-grid {
    grid-template-columns: minmax(170px, .62fr) minmax(0, 1.52fr) minmax(260px, 1.08fr);
    height: 296px;
  }
  .main-content[data-page="report"] .report-preview .preview-score .progress-ring { width: 144px; height: 144px; }
  .main-content[data-page="report"] .report-preview .preview-score .progress-ring strong { font-size: 22px; }
  .main-content[data-page="report"] .report-preview .preview-trend .line-chart svg,
  .main-content[data-page="report"] .report-preview .preview-radar .radar-chart svg { height: 252px; }
  .main-content[data-page="report"] .report-preview .preview-panel h3 {
    min-height: 24px;
    display: grid;
    place-items: center;
    font-size: 10.5px;
  }
  .main-content[data-page="report"] .report-preview .preview-panel small { font-size: 9px; }

  .main-content[data-page="report"] .timeline-card .timeline {
    position: relative;
    height: 92px;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
    padding: 26px 2px 0;
  }
  .main-content[data-page="report"] .timeline-card .timeline::before {
    left: calc(10% + 8px);
    right: calc(10% + 8px);
    top: 22px;
    bottom: auto;
    width: auto;
    height: 2px;
    background: linear-gradient(90deg, rgba(0,143,70,.28), rgba(0,143,70,.9));
  }
  .main-content[data-page="report"] .timeline-card .timeline li {
    position: relative;
    min-height: 0;
    display: grid;
    grid-template-columns: 1fr;
    align-content: start;
    justify-items: center;
    gap: 4px;
    padding: 14px 10px 0;
    border-right: 1px solid #eef2f6;
    border-bottom: 0;
    text-align: center;
  }
  .main-content[data-page="report"] .timeline-card .timeline li:last-child { border-right: 0; }
  .main-content[data-page="report"] .timeline-card .timeline li::before {
    left: 50%;
    top: -9px;
    width: 11px;
    height: 11px;
    transform: translateX(-50%);
    background: #fff;
    border: 2px solid var(--sportia-green);
    box-shadow: 0 0 0 5px #edf8f2;
  }
  .main-content[data-page="report"] .timeline-card .timeline li.current::before {
    background: var(--sportia-green);
    border-color: var(--sportia-green);
  }
  .main-content[data-page="report"] .timeline-card .timeline time {
    justify-items: center;
    gap: 1px;
  }
  .main-content[data-page="report"] .timeline-card .timeline time span,
  .main-content[data-page="report"] .timeline-card .timeline time small { font-size: 8px; line-height: 1.15; }
  .main-content[data-page="report"] .timeline-card .timeline li > div {
    justify-items: center;
    gap: 1px;
    max-width: 130px;
  }
  .main-content[data-page="report"] .timeline-card .timeline li > div strong { font-size: 10px; line-height: 1.15; }
  .main-content[data-page="report"] .timeline-card .timeline li > div span { font-size: 8.5px; line-height: 1.2; }
  .main-content[data-page="report"] .timeline-card .timeline li > div small { display: none; }
}

@media (max-width: 1180px) {
  .main-content[data-page="report"] .timeline-card {
    overflow: hidden;
  }
  .main-content[data-page="report"] .timeline-card .timeline {
    height: auto;
    display: grid;
    grid-template-columns: repeat(5, minmax(150px, 1fr));
    gap: 0;
    overflow-x: auto;
    padding: 26px 4px 4px;
  }
  .main-content[data-page="report"] .timeline-card .timeline::before {
    left: 80px;
    right: 80px;
    top: 20px;
    bottom: auto;
    width: auto;
    height: 2px;
  }
  .main-content[data-page="report"] .timeline-card .timeline li {
    min-height: 96px;
    grid-template-columns: 1fr;
    justify-items: center;
    align-content: start;
    text-align: center;
    padding: 14px 10px 0;
    border-bottom: 0;
    border-right: 1px solid #eef2f6;
  }
  .main-content[data-page="report"] .timeline-card .timeline li::before {
    left: 50%;
    top: -9px;
    transform: translateX(-50%);
  }
  .main-content[data-page="report"] .report-preview .preview-grid { grid-template-columns: minmax(130px, .7fr) minmax(260px, 1.4fr) minmax(180px, .9fr); }
}

@media (max-width: 820px) {
  .review-overview-card .review-overview { grid-template-columns: 1fr; }
  .review-score-summary { grid-template-columns: auto auto; align-items: center; padding: 0 0 13px; border-right: 0; border-bottom: 1px solid var(--border); }
  .review-score-summary p { grid-column: 1 / -1; }
  .main-content[data-page="report"] .report-preview .preview-grid { grid-template-columns: 1fr 1.45fr 1fr; }
  .preview-panel { padding-inline: 8px; }
}

@media (max-width: 540px) {
  .review-score-summary { grid-template-columns: 1fr; }
  .review-score-summary p { grid-column: auto; }
  .main-content[data-page="report"] .report-preview .preview-grid { grid-template-columns: 1fr; gap: 12px; }
  .preview-panel + .preview-panel { padding-top: 14px; border-left: 0; border-top: 1px solid var(--border); }
  .preview-trend .line-chart svg,
  .preview-radar .radar-chart svg { height: 190px; }
}

/* Connected profile navigation */
.profile-tabs .profile-tab {
  position: relative;
  min-height: 47px;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  padding: 0 10px;
  color: var(--navy);
  font-size: 11.5px;
  font-weight: 540;
  font-variation-settings: "wght" 540;
  white-space: nowrap;
}
.profile-tabs .profile-tab:hover,
.profile-tabs .profile-tab.active { color: var(--sportia-green); }
.profile-tabs .profile-tab.active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  background: var(--sportia-green);
}
.main-content[data-page="struttura-servizi"] { --page-accent: #14885a; }

/* Dashboard strategic hexagram */
.main-content[data-page="dashboard"] .radar-chart {
  min-height: 246px;
  padding: 2px 8px 0;
}

.main-content[data-page="dashboard"] .radar-chart svg {
  width: min(100%, 286px) !important;
  max-width: 286px !important;
  height: auto;
  overflow: visible;
}

.radar-axis {
  stroke: #cfd9e6;
  stroke-width: 1;
}

.radar-label {
  letter-spacing: 0;
}

/* Deterministic donut sectors: sector and legend share the same data color */
.donut-segment {
  transform-box: view-box;
  transform-origin: 60px 60px;
  outline: none;
  cursor: default;
  transition: transform .16s ease, filter .16s ease, opacity .16s ease;
}
.donut-segment:hover,
.donut-segment:focus {
  transform: scale(1.025);
  filter: saturate(1.06) drop-shadow(0 2px 3px rgba(25, 46, 78, .12));
}
.donut-figure:has(.donut-segment:hover) .donut-segment:not(:hover) { opacity: .62; }

/* Structure & services */
.structure-overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.28fr) minmax(300px, .72fr);
  gap: 12px;
  align-items: stretch;
}
.structure-overview-grid > .card { min-height: 285px; }
.facility-list { display: grid; gap: 0; }
.facility-row {
  min-width: 0;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  min-height: 68px;
  padding: 9px 0;
  border-bottom: 1px solid #e8edf3;
}
.facility-row:last-child { border-bottom: 0; }
.facility-row-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--sportia-green);
  background: #edf8f2;
}
.facility-row h3 { margin: 0; font-size: 12.5px; font-weight: 620; }
.facility-row p { margin: 2px 0; color: #365075; font-size: 10.5px; font-weight: 470; }
.facility-row small { color: #73819a; font-size: 9.5px; line-height: 1.35; }
.facility-status {
  padding: 5px 7px;
  border: 1px solid #cfe8da;
  border-radius: 5px;
  color: #087847;
  background: #eef9f3;
  font-size: 9.5px;
  font-weight: 560;
}
.structure-quality .bar-list { align-content: center; min-height: 178px; }
.structure-quality .bar-row { grid-template-columns: minmax(84px, 1fr) minmax(90px, 1.25fr) 30px; }
.structure-note { margin-top: 10px !important; color: #71809a; font-size: 9.5px; line-height: 1.4; }
.services-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.service-tile {
  min-width: 0;
  min-height: 74px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 9px;
  padding: 10px;
  border: 1px solid #e0e8ef;
  border-radius: 7px;
  color: var(--navy);
  background: #fff;
  text-align: left;
  transition: border-color .16s ease, background .16s ease;
}
.service-tile:hover { border-color: #bcdccb; background: #f7fcf9; }
.service-tile > svg:first-child { color: var(--sportia-green); }
.service-tile > svg:last-child { color: #6e7e98; transform: rotate(180deg); }
.service-tile span { min-width: 0; display: grid; gap: 3px; }
.service-tile strong { font-size: 11px; font-weight: 600; }
.service-tile small { color: #71809a; font-size: 9.5px; font-weight: 420; }

/* Ecosystem relationship map */
.ecosystem-map {
  min-height: 420px;
  overflow: hidden;
  background: linear-gradient(180deg, #fff 0%, #f8fbfc 100%);
}
.ecosystem-key {
  position: absolute;
  left: 10px;
  top: 8px;
  z-index: 4;
  display: flex;
  gap: 11px;
  padding: 5px 7px;
  border: 1px solid #e2e9ef;
  border-radius: 5px;
  color: #53647e;
  background: rgba(255,255,255,.94);
  font-size: 8.5px;
}
.ecosystem-key span { display: inline-flex; align-items: center; gap: 5px; }
.ecosystem-key i { width: 20px; height: 0; border-top: 2px solid #55a87d; }
.ecosystem-key i.potential { border-top: 2px dashed #79a9d2; }
.ecosystem-lines { inset: 0; width: 100%; height: 100%; }
.ecosystem-lines line { vector-effect: non-scaling-stroke; }
.ecosystem-lines .relation-active {
  stroke: #55a87d;
  stroke-width: 2.1;
  stroke-dasharray: none;
}
.ecosystem-lines .relation-potential {
  stroke: #79a9d2;
  stroke-width: 1.9;
  stroke-dasharray: 7 7;
}
.eco-center {
  top: 50%;
  width: 108px;
  height: 108px;
  padding: 13px;
  border: 2px solid #cfe1d8;
  box-shadow: 0 12px 28px rgba(25,57,92,.09);
}
.eco-center img { width: 72px; height: 72px; }
.eco-center small {
  position: absolute;
  left: 50%;
  bottom: 7px;
  transform: translateX(-50%);
  color: #6d7b92;
  font-family: inherit;
  font-size: 7.5px;
  font-weight: 450;
  white-space: nowrap;
}
.eco-node {
  width: 108px;
  min-width: 0;
  min-height: 62px;
  gap: 5px;
  padding: 3px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  font-size: 9.5px;
  font-weight: 520;
}
.eco-node svg {
  width: 42px;
  height: 42px;
  padding: 9px;
  border: 1.5px solid #cfe4d8;
  border-radius: 50%;
  color: #138856;
  background: #fff;
  box-shadow: 0 5px 14px rgba(27,57,88,.07);
}
.eco-node.potential svg { color: #387bb6; border-color: #9fc3e1; border-style: dashed; background: #f7fbff; }
.eco-node.top { left: 50%; top: 2%; transform: translateX(-50%); }
.eco-node.left { left: 1%; top: 19%; }
.eco-node.right { right: 1%; top: 19%; }
.eco-node.left2 { left: 1%; top: 58%; }
.eco-node.right2 { right: 1%; top: 58%; }
.eco-node.bottom { left: 21%; bottom: 1%; }
.eco-node.hotel { left: 50%; bottom: 0; transform: translateX(-50%); }
.eco-node.bottom2 { right: 21%; bottom: 1%; }

/* Priority versus impact matrix */
.main-content[data-page="interventi-consigliati"] .kpi-grid + .content-grid.two > .card {
  height: 310px;
  min-height: 310px;
}
.priority-impact-matrix {
  width: 100%;
  height: 250px;
  min-width: 0;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) 31px;
  gap: 0;
}
.priority-y-axis {
  position: relative;
  grid-column: 1;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  padding: 0 4px 3px 0;
  color: #30446f;
  font-size: 9px;
}
.priority-y-axis strong {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) rotate(-90deg);
  font-size: 10px;
  font-weight: 600;
  white-space: nowrap;
}
.priority-plot {
  position: relative;
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 4px;
  border-left: 1.5px solid #8d9bb2;
  border-bottom: 1.5px solid #8d9bb2;
}
.priority-quadrant {
  display: grid;
  align-content: start;
  justify-items: center;
  gap: 3px;
  padding: 12px 8px;
  color: #334a71;
  background: #f8fafc;
  text-align: center;
}
.priority-quadrant.preferred { color: #087747; background: #eaf7ef; }
.priority-quadrant strong { font-size: 10.5px; font-weight: 620; }
.priority-quadrant span { font-size: 9.5px; font-weight: 470; }
.priority-point {
  position: absolute;
  z-index: 3;
  left: var(--x);
  top: var(--y);
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  transform: translate(-50%, -50%);
  border: 2px solid #fff;
  border-radius: 50%;
  color: #fff;
  background: var(--sportia-green);
  box-shadow: 0 1px 5px rgba(0,108,55,.24);
  font-size: 10px;
  font-weight: 650;
  outline: none;
  transition: transform .15s ease;
}
.priority-point:hover,
.priority-point:focus { transform: translate(-50%, -50%) scale(1.13); }
.priority-x-axis {
  grid-column: 2;
  grid-row: 2;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 8px;
  padding-top: 4px;
  color: #30446f;
  font-size: 9px;
}
.priority-x-axis strong { font-size: 10px; font-weight: 600; }
.priority-x-axis span:last-child { text-align: right; }

@media (max-width: 1180px) {
  .structure-overview-grid { grid-template-columns: 1fr 1fr; }
  .main-content[data-page="interventi-consigliati"] .kpi-grid + .content-grid.two > .card { height: auto !important; min-height: 300px; }
  .priority-impact-matrix { height: 250px; }
}

@media (max-width: 820px) {
  .structure-overview-grid { grid-template-columns: 1fr; }
  .services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-tabs .profile-tab { min-height: 42px; padding-inline: 9px; }
}

@media (max-width: 540px) {
  .services-grid { grid-template-columns: 1fr; }
  .facility-row { grid-template-columns: 38px minmax(0, 1fr); }
  .facility-status { grid-column: 2; justify-self: start; }
  .ecosystem-map {
    position: relative;
    min-height: auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 58px 8px 10px;
  }
  .ecosystem-key { left: 8px; right: 8px; justify-content: center; }
  .ecosystem-lines { display: none; }
  .eco-center,
  .eco-node,
  .eco-node.top,
  .eco-node.left,
  .eco-node.right,
  .eco-node.left2,
  .eco-node.right2,
  .eco-node.bottom,
  .eco-node.hotel,
  .eco-node.bottom2 {
    position: relative;
    inset: auto;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    transform: none;
    width: auto;
    min-height: 76px;
  }
  .eco-center { grid-column: 1 / -1; justify-self: center; width: 104px; height: 104px; }
  .priority-impact-matrix { height: 300px; grid-template-columns: 36px minmax(0, 1fr); }
  .priority-quadrant { padding: 10px 5px; }
  .priority-quadrant strong { font-size: 9.5px; }
  .priority-quadrant span { font-size: 8.5px; }
  .priority-point { width: 22px; height: 22px; font-size: 9px; }
}

/* Layout refinements: interventions, structure, market and forms */
.structure-kpis {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.structure-kpis .kpi-card { min-height: 94px; }
.structure-kpis .kpi-note { line-height: 1.3; }

/* KPI cards must never let long financial values push outside the card. */
.kpi-card > div:last-of-type {
  min-width: 0;
}

.kpi-card strong {
  display: block;
  max-width: 100%;
  line-height: 1.08;
  overflow-wrap: anywhere;
}

.main-content[data-page="interventi-consigliati"] .kpi-card strong,
.main-content[data-page="dati-finanziari"] .kpi-card strong {
  white-space: normal !important;
  font-size: clamp(18px, 1.35vw, 21px);
}

.intervention-overview-grid {
  grid-template-columns: minmax(0, 1.48fr) minmax(300px, .72fr) !important;
  align-items: stretch;
  gap: 10px;
}
.main-content[data-page="interventi-consigliati"] .intervention-overview-grid > .card {
  height: 330px;
  min-height: 330px;
}
.priority-matrix-card { overflow: hidden; }
.priority-matrix-card > .priority-impact-matrix {
  width: auto;
  max-width: none;
  height: 250px;
}
.intervention-categories-card > .donut-module {
  width: auto;
  grid-template-columns: minmax(104px, 118px) minmax(0, 1fr);
  align-items: center;
  gap: 4px;
}
.intervention-categories-card .donut-figure {
  width: 112px;
  min-width: 0;
  justify-self: end;
}
.intervention-categories-card .donut-legend { gap: 8px; }
.intervention-categories-card .donut-legend li {
  grid-template-columns: 8px minmax(0, 1fr) auto;
  gap: 5px;
  font-size: 9.5px;
}

.market-panorama .market-snapshot {
  gap: 8px;
  align-items: stretch;
}
.market-panorama .market-snapshot > div,
.market-panorama .market-snapshot > div + div {
  min-height: 0;
  align-content: center;
  justify-items: start;
  padding: 14px !important;
  border: 0 !important;
  border-radius: 6px;
  background: #f7f9fb;
  text-align: left;
}
.market-panorama .market-snapshot span,
.market-panorama .market-snapshot strong,
.market-panorama .market-snapshot small { width: 100%; text-align: left; }
.market-demand-content,
.market-seasonality-content {
  min-width: 0;
  height: 188px;
}
.market-demand-content {
  display: grid;
  grid-template-rows: 38px 150px;
}
.market-demand-content .market-demand-head { min-height: 38px; }
.market-demand-content .line-chart,
.market-demand-content .line-chart svg {
  min-height: 0;
  height: 150px !important;
  max-height: 150px;
}
.market-seasonality-content {
  display: flex;
  align-items: flex-start;
  padding-top: 38px;
}
.market-seasonality-content .donut-module {
  width: 100%;
  min-height: 150px;
  align-items: center;
}
.benchmark-context {
  margin: 8px 0 10px !important;
  padding: 8px 10px;
  border-left: 2px solid #9ccfb4;
  color: #62718a;
  background: #f7faf8;
  font-size: 9.5px;
  font-weight: 410;
  line-height: 1.45;
}
.benchmark-context strong { color: #274563; font-weight: 600; }
.benchmark-table th:nth-child(4) { min-width: 108px; }

.pipeline-scroll-control {
  width: calc(100% - 32px);
  min-height: 32px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  margin-top: 8px !important;
  padding: 5px 9px;
  border: 0;
  border-top: 1px solid #e4eaf0;
  color: #276797;
  background: linear-gradient(90deg, transparent, #f5f9fc);
  font-size: 9.5px;
  font-weight: 540;
}
.pipeline-scroll-control svg { transform: rotate(180deg); }
.pipeline-scroll-control.is-reversed { justify-content: flex-start; }
.pipeline-scroll-control.is-reversed svg { transform: none; }
.pipeline-card .table-scroll {
  scrollbar-color: #a8bdd1 #eef3f7;
  scrollbar-width: thin;
}

.review-summary-grid > .card { min-height: 330px; }
.category-review-composer > .body-copy { margin-bottom: 6px !important; font-size: 10px; line-height: 1.35; }
.category-rating-group { display: grid; gap: 4px; }
.category-rating-row {
  min-width: 0;
  min-height: 29px;
  display: grid;
  grid-template-columns: minmax(90px, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 3px 0;
  border-bottom: 1px solid #edf1f5;
}
.category-rating-row > span {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #2b4169;
  font-size: 9.5px;
  font-weight: 500;
}
.category-rating-row > span svg { color: var(--sportia-green); }
.category-stars { display: flex; gap: 1px; }
.category-stars button {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  color: #a8cdb8;
  background: transparent;
  font-size: 18px;
  line-height: 1;
}
.category-stars button:hover,
.category-stars button.selected { color: var(--sportia-green); }
.review-rating-average {
  min-height: 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 5px 8px;
  border-radius: 5px;
  color: #425575;
  background: #f3f8f5;
  font-size: 9.5px;
}
.review-rating-average strong { color: var(--sportia-green-dark); font-size: 11px; font-weight: 620; }
.category-review-composer textarea { min-height: 48px; margin-top: 7px !important; }
.category-review-composer .primary-action { min-height: 34px; }
.reputation-card .reputation .outline-action { margin-top: 20px; }
.reputation-card .reputation .check-list { margin-bottom: 2px; }

@media (min-width: 1181px) {
  .main-content[data-page="dati-finanziari"] .right-rail {
    height: calc(100% - 44px);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 12px;
  }
  .main-content[data-page="dati-finanziari"] .right-rail > .card { flex: 0 0 auto; }
  .main-content[data-page="dati-finanziari"] .right-rail > .ai-card {
    position: static;
    top: auto;
    margin-top: 0;
  }
}

@media (max-width: 1180px) {
  .structure-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .intervention-overview-grid { grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr) !important; }
  .main-content[data-page="interventi-consigliati"] .intervention-overview-grid > .card { height: 330px !important; min-height: 330px; }
}

@media (max-width: 820px) {
  .structure-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .intervention-overview-grid { grid-template-columns: 1fr !important; }
  .intervention-categories-card > .donut-module { grid-template-columns: minmax(120px, 160px) minmax(0, 1fr); gap: 12px; }
  .intervention-categories-card .donut-figure { width: 145px; justify-self: center; }
  .market-demand-content,
  .market-seasonality-content { height: auto; }
  .market-demand-content { grid-template-rows: auto 165px; }
  .market-demand-content .line-chart,
  .market-demand-content .line-chart svg { height: 165px !important; max-height: 165px; }
  .market-seasonality-content { padding-top: 0; }
}

@media (max-width: 540px) {
  .structure-kpis {
    display: flex;
    grid-template-columns: none;
  }
  .main-content[data-page="interventi-consigliati"] .intervention-overview-grid > .card { height: auto !important; min-height: 330px; }
  .priority-matrix-card > .priority-impact-matrix { height: 300px; }
  .intervention-categories-card > .donut-module { grid-template-columns: 1fr; justify-items: center; }
  .intervention-categories-card .donut-figure { width: min(58vw, 170px); }
  .category-rating-row { grid-template-columns: minmax(86px, 1fr) auto; }
  .category-stars button { width: 21px; }
}

/* Reference alignment: ecosystem, market snapshot and interactive maps */
.main-content[data-page="network"] .network-overview {
  height: 430px;
  grid-template-columns: minmax(270px, .82fr) minmax(0, 1.58fr);
  align-items: stretch;
  gap: 12px;
}
.main-content[data-page="network"] .network-overview > .stack {
  height: 100%;
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(0, .94fr) minmax(0, 1.06fr);
  gap: 12px;
}
.main-content[data-page="network"] .network-overview > .stack > .card,
.main-content[data-page="network"] .network-overview > .ecosystem-card {
  height: 100%;
  min-height: 0;
}
.network-partner-types,
.network-geo-card,
.ecosystem-card {
  min-width: 0;
  overflow: hidden;
}
.network-geo-card,
.ecosystem-card {
  display: flex;
  flex-direction: column;
}
.network-geo-card > .card-title,
.ecosystem-card > .card-title { flex: 0 0 auto; }
.network-geo-card > .partner-map,
.ecosystem-card > .ecosystem-map {
  min-height: 0;
  flex: 1 1 auto;
}
.network-geo-card > .partner-map {
  display: flex;
  overflow: hidden;
}
.network-geo-card .map-live {
  width: 100%;
  height: 100%;
  min-height: 0;
}

.ecosystem-card > .ecosystem-map {
  position: relative;
  min-height: 0;
  display: block;
  padding: 34px 8px 5px;
  background: linear-gradient(180deg, #fff 0%, #f8fbfc 100%);
}
.ecosystem-diagram {
  width: 100%;
  height: 100%;
  min-height: 320px;
  display: block;
  overflow: visible;
}
.ecosystem-relations line {
  vector-effect: non-scaling-stroke;
  fill: none;
  stroke-linecap: round;
}
.ecosystem-relations .relation-active {
  stroke: #72b894;
  stroke-width: 2;
}
.ecosystem-relations .relation-potential {
  stroke: #78a9cf;
  stroke-width: 1.8;
  stroke-dasharray: 7 7;
}
.eco-center-svg circle {
  fill: #fff;
  stroke: #b8daca;
  stroke-width: 2.2;
  filter: drop-shadow(0 8px 13px rgba(25, 57, 92, .1));
}
.eco-center-svg text,
.eco-svg-node text {
  fill: #1d3563;
  stroke: rgba(255, 255, 255, .96);
  stroke-width: 6px;
  paint-order: stroke fill;
  font-family: inherit;
  font-size: 17px;
  font-weight: 560;
  letter-spacing: 0;
}
.eco-center-svg text {
  fill: #61708a;
  font-size: 13px;
  font-weight: 460;
}
.eco-svg-node circle {
  fill: #fff;
  stroke: #a9d4bf;
  stroke-width: 2;
  filter: drop-shadow(0 5px 8px rgba(25, 57, 92, .08));
}
.eco-svg-node.potential circle {
  fill: #f6fbff;
  stroke: #8eb7d8;
  stroke-dasharray: 5 4;
}
.eco-svg-icon {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  color: #168958;
}
.eco-svg-node.potential .eco-svg-icon { color: #397cad; }
.eco-svg-icon svg { width: 26px; height: 26px; stroke-width: 1.55; }
.eco-svg-node:focus,
.eco-center-svg:focus { outline: none; }
.eco-svg-node:focus circle,
.eco-svg-node:hover circle { stroke-width: 3; }

.market-panorama .market-snapshot > .market-stat-block,
.market-panorama .market-snapshot > .market-stat-block + .market-stat-block {
  display: grid;
  grid-template-rows: 34px 48px minmax(40px, auto);
  align-content: center;
  align-items: start;
  padding: 14px !important;
}
.market-stat-block > span {
  min-height: 34px;
  display: flex;
  align-items: flex-start;
  color: #213965;
  font-size: 10px !important;
  font-weight: 600;
  line-height: 1.25;
}
.market-stat-block > strong,
.market-stat-value {
  min-height: 48px;
  display: flex;
  align-items: center;
}
.market-stat-block > small {
  align-self: start;
  margin: 0;
  color: #71809a;
  line-height: 1.45;
}
.market-stat-value .badge { margin: 0; }

.map-live.leaflet-loaded .leaflet-tile-pane {
  filter: saturate(.6) contrast(.9) brightness(1.055);
}
.map-live.leaflet-loaded .leaflet-control-zoom {
  overflow: hidden;
  border: 1px solid #d8e1e9 !important;
  border-radius: 7px !important;
  box-shadow: 0 6px 16px rgba(20, 43, 77, .1) !important;
}
.map-position-card .map-position-list {
  gap: 13px;
  margin-top: 12px !important;
}
.map-position-list li {
  min-width: 0;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: start;
  gap: 9px;
  color: #203766;
  font-size: 11.5px;
  font-weight: 430;
  line-height: 1.5;
}
.map-position-list li svg {
  width: 19px;
  height: 19px;
  margin-top: 0;
  color: #18377d;
  stroke-width: 1.65;
}

@media (max-width: 1180px) {
  .main-content[data-page="network"] .network-overview {
    height: auto;
    grid-template-columns: minmax(240px, .78fr) minmax(0, 1.42fr);
  }
  .main-content[data-page="network"] .network-overview > .stack,
  .main-content[data-page="network"] .network-overview > .ecosystem-card { height: 410px; }
  .ecosystem-diagram { min-height: 300px; }
}

@media (max-width: 820px) {
  .main-content[data-page="network"] .network-overview { grid-template-columns: 1fr; }
  .main-content[data-page="network"] .network-overview > .stack {
    height: auto;
    grid-template-rows: auto auto;
  }
  .main-content[data-page="network"] .network-overview > .stack > .card { min-height: 230px; height: auto; }
  .main-content[data-page="network"] .network-overview > .ecosystem-card { height: auto; min-height: 420px; }
  .network-geo-card .map-live { min-height: 180px; }
  .ecosystem-card > .ecosystem-map { min-height: 370px; }
}

@media (max-width: 540px) {
  .ecosystem-card > .ecosystem-map {
    min-height: 350px;
    display: block;
    padding: 42px 2px 2px;
  }
  .ecosystem-diagram { min-height: 300px; }
  .ecosystem-key {
    left: 6px;
    right: 6px;
    justify-content: center;
    gap: 8px;
    font-size: 7.5px;
  }
  .eco-svg-node text { font-size: 19px; }
  .market-panorama .market-snapshot > .market-stat-block,
  .market-panorama .market-snapshot > .market-stat-block + .market-stat-block {
    grid-template-rows: 28px 42px minmax(30px, auto);
    min-height: 116px;
  }
  .market-stat-block > span { min-height: 28px; }
  .market-stat-block > strong,
  .market-stat-value { min-height: 42px; }
}

/* Structure icon precision */
.structure-kpis .metric-icon {
  width: 42px;
  height: 42px;
  min-width: 42px;
  flex: 0 0 42px;
  aspect-ratio: 1;
  border: 1px solid #d6ecdf;
  border-radius: 50%;
  color: #168958;
  background: #edf8f2;
  box-shadow: none;
}
.structure-kpis .metric-icon svg {
  width: 22px;
  height: 22px;
  stroke-width: 1.5;
}
.structure-kpis .metric-icon .icon-roof {
  width: 23px;
  height: 23px;
  stroke-width: 1.4;
}
.structure-kpis .metric-icon .icon-accessible {
  width: 23px;
  height: 23px;
  stroke-width: 1.45;
}
.structure-kpis .kpi-card > div:last-of-type { min-width: 0; }

/* Functional document filters */
.document-category-tabs button { transition: color .15s ease, border-color .15s ease, background .15s ease; }
.document-table tbody tr[hidden] { display: none; }
.document-table-footer {
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 !important;
  padding: 9px 16px;
  border-top: 1px solid #e7ecf1;
  color: #687791;
  font-size: 9.5px;
  font-weight: 430;
}
.document-table-footer span:last-child { color: var(--page-accent); }

/* Review cards with SPORTIA Agent synthesis */
.review-insight-card,
.review-topics-card { min-width: 0; }
.review-card-body,
.review-topics-body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.review-card-body { min-height: 268px; }
.review-card-body > .review-overview,
.review-card-body > .rating-list { flex: 1 1 auto; }
.review-card-body > .rating-list { align-content: start; }
.review-topics-body > .bar-list { flex: 0 0 auto; }
.sportia-agent-quote {
  min-width: 0;
  margin: auto 0 0 !important;
  padding: 10px 11px;
  border: 1px solid #dcebe3;
  border-left: 3px solid #59b887;
  border-radius: 6px;
  color: #52647f;
  background: #f6faf8;
}
.sportia-agent-quote > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #177b52;
  font-size: 8.8px;
  font-weight: 620;
  letter-spacing: 0;
  text-transform: uppercase;
}
.sportia-agent-quote > span svg { width: 14px; height: 14px; stroke-width: 1.55; }
.sportia-agent-quote p {
  margin: 5px 0 0;
  color: #405574;
  font-size: 9.4px;
  font-weight: 420;
  line-height: 1.48;
}
.review-topics-card .review-topics-body { min-height: 390px; }
.review-topics-card .sportia-agent-quote { margin-top: 10px !important; }
.review-topics-card .outline-action { margin-top: auto; }

/* Keep matrix markers clear of quadrant titles */
.priority-quadrant { padding-top: 13px; }
.priority-point { z-index: 4; }

@media (max-width: 1180px) {
  .review-card-body { min-height: 250px; }
  .review-topics-card .review-topics-body { min-height: 330px; }
}

@media (max-width: 820px) {
  .review-card-body,
  .review-topics-card .review-topics-body { min-height: 0; }
  .document-table-footer { position: sticky; left: 0; width: min(100%, 100vw); }
}

@media (max-width: 540px) {
  .structure-kpis .metric-icon {
    width: 40px;
    height: 40px;
    min-width: 40px;
    flex-basis: 40px;
  }
  .document-table-footer { align-items: flex-start; flex-direction: column; gap: 3px; }
  .sportia-agent-quote p { font-size: 9.8px; }
}

/* Opportunity funnel and effort matrix */
.opportunity-analytics > .card:nth-child(1),
.opportunity-analytics > .card:nth-child(2) { overflow: hidden; }
.opportunity-analytics .funnel-module {
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  align-items: center;
  gap: 16px;
}
.opportunity-analytics .funnel {
  min-width: 0;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 5px;
}
.opportunity-analytics .funnel > div {
  width: var(--stage-width) !important;
  height: 43px;
  padding: 0;
  clip-path: polygon(0 0, 100% 0, 88% 100%, 12% 100%);
  border-radius: 3px;
  background: var(--stage-color) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.2);
}
.opportunity-analytics .funnel > div strong { font-size: 21px; font-weight: 590; }
.opportunity-analytics .funnel-details { gap: 12px; }
.opportunity-analytics .funnel-details li { grid-template-columns: 11px minmax(0, 1fr); gap: 8px; }
.opportunity-analytics .funnel-details span { min-width: 0; }
.opportunity-analytics .funnel-details strong,
.opportunity-analytics .funnel-details small { overflow-wrap: anywhere; }
.opportunity-analytics .funnel-details i { width: 10px; height: 10px; }
.opportunity-analytics .funnel-details strong { color: #243b65; font-size: 10px; font-weight: 570; }
.opportunity-analytics .funnel-details small { font-size: 9px; }
.opportunity-analytics .funnel-rate {
  justify-content: flex-start;
  margin-top: 12px !important;
  padding-top: 10px;
}
.opportunity-analytics .funnel-rate span { color: #344a6d; font-size: 9.5px; }
.opportunity-analytics .funnel-rate strong { color: var(--sportia-green); font-size: 16px; font-weight: 620; }

.opportunity-analytics .modern-matrix {
  position: relative;
  min-height: 248px;
  padding: 18px 12px 30px 36px;
  gap: 5px;
  overflow: visible;
}
.opportunity-analytics .modern-matrix .q {
  position: relative;
  min-height: 0;
  place-items: start center;
  align-content: start;
  padding: 10px 8px;
  border: 0;
  text-align: center;
}
.opportunity-analytics .modern-matrix .q:nth-of-type(1) { background: #edf8f3; }
.opportunity-analytics .modern-matrix .q:nth-of-type(2) { background: #f2f6fc; }
.opportunity-analytics .modern-matrix .q:nth-of-type(3) { background: #edf8f3; }
.opportunity-analytics .modern-matrix .q:nth-of-type(4) { background: #f2f6fc; }
.opportunity-analytics .modern-matrix .q:nth-of-type(5) { place-items: end center; align-content: end; background: #fafbfc; }
.opportunity-analytics .modern-matrix .q:nth-of-type(6) { place-items: end center; align-content: end; background: #f8fafc; }
.opportunity-analytics .modern-matrix .q strong {
  position: relative;
  z-index: 2;
  color: #243b69;
  font-size: 10.5px;
  font-weight: 580;
}
.opportunity-analytics .modern-matrix .q:nth-of-type(3) strong { color: #168958; }
.opportunity-analytics .modern-matrix .matrix-point {
  z-index: 4;
  width: 27px;
  height: 27px;
  font-size: 11px;
  font-weight: 620;
}
.modern-matrix .matrix-bound {
  position: absolute;
  z-index: 3;
  color: #445675;
  font-size: 8.5px;
  font-weight: 500;
  transform: none;
}
.modern-matrix .matrix-y-high { left: 5px; top: 9px; }
.modern-matrix .matrix-y-low { left: 4px; bottom: 27px; }
.modern-matrix .matrix-x-low { left: 36px; bottom: 4px; }
.modern-matrix .matrix-x-high { right: 8px; bottom: 4px; }

/* Financial revenue mix: larger and vertically centered */
.revenue-mix-card { overflow: hidden; }
.revenue-mix-card > .financial-donut {
  min-height: 184px;
  align-items: center;
  margin-top: 4px !important;
  margin-bottom: 8px !important;
}
.revenue-mix-card .donut-center strong { font-size: 14px; }
.revenue-mix-card .donut-center span { font-size: 9.5px; }
.revenue-mix-card .donut-legend {
  align-content: center;
  gap: 8px;
}
.revenue-mix-card .donut-legend li {
  grid-template-columns: 8px minmax(0, 1fr) 25px;
  gap: 6px;
  font-size: 9.2px;
  line-height: 1.25;
}
.revenue-mix-card .donut-legend li strong { text-align: right; font-variant-numeric: tabular-nums; }

@media (min-width: 1181px) {
  .finance-reference-top > .card { height: 260px; min-height: 260px; }
  .finance-reference-top .chart svg { height: 190px; }
  .revenue-mix-card > .financial-donut {
    grid-template-columns: minmax(170px, 184px) minmax(0, 1fr);
    gap: 9px;
    height: 190px;
  }
  .revenue-mix-card .donut-figure {
    width: 180px;
    max-width: 180px;
    justify-self: center;
  }
}

@media (max-width: 1180px) and (min-width: 821px) {
  .revenue-mix-card > .financial-donut { grid-template-columns: minmax(145px, 160px) minmax(0, 1fr); }
  .revenue-mix-card .donut-figure { width: 155px; max-width: 155px; }
}

@media (max-width: 820px) {
  .opportunity-analytics .funnel-module { grid-template-columns: minmax(130px, .9fr) minmax(125px, 1.1fr); }
  .revenue-mix-card > .financial-donut { grid-template-columns: minmax(170px, 205px) minmax(0, 1fr); }
  .revenue-mix-card .donut-figure { width: 190px; max-width: 190px; }
}

@media (max-width: 540px) {
  .opportunity-analytics .funnel-module { grid-template-columns: 1fr 1fr; gap: 10px; }
  .opportunity-analytics .funnel > div { height: 40px; }
  .opportunity-analytics .modern-matrix { min-height: 300px; padding-left: 33px; }
  .revenue-mix-card > .financial-donut { grid-template-columns: 1fr; height: auto; justify-items: center; }
  .revenue-mix-card .donut-figure { width: min(62vw, 205px); max-width: 205px; }
  .revenue-mix-card .donut-legend { width: 100%; }
  .review-list-card .pill-tabs.inline {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
    overflow: visible;
  }
  .review-list-card .pill-tabs.inline button {
    width: 100%;
    min-width: 0;
    padding-inline: 6px;
    white-space: normal;
    text-align: center;
  }
}

@media (max-width: 540px) {
  .main-content[data-page="opportunita"] .opportunity-analytics {
    grid-template-columns: 1fr !important;
    gap: 10px;
  }
  .main-content[data-page="opportunita"] .opportunity-analytics > .card {
    width: 100%;
    min-width: 0;
    height: auto;
    min-height: 0;
  }
  .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) {
    min-height: 270px;
    overflow: hidden;
  }
  .main-content[data-page="opportunita"] .opportunity-analytics .big-money {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    font-size: clamp(22px, 7vw, 27px);
    line-height: 1.12;
  }
  .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .insight-list {
    min-width: 0;
    gap: 8px;
  }
  .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .insight-list li {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 8px;
    font-size: 10px;
    line-height: 1.35;
  }
  .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .insight-list span {
    min-width: 0;
    overflow-wrap: anywhere;
  }
  .main-content[data-page="opportunita"] .opportunity-analytics .funnel-module {
    grid-template-columns: minmax(132px, .9fr) minmax(0, 1.1fr);
  }
  .main-content[data-page="opportunita"] .page-grid.with-rail {
    grid-template-columns: 1fr !important;
  }
  .main-content[data-page="opportunita"] .right-rail {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .main-content[data-page="opportunita"] .right-rail > .card {
    width: 100%;
    min-width: 0;
  }
}

/* Definitive responsive alignment overrides */
.main-content[data-page="dashboard"] .dashboard-secondary {
  grid-template-columns: minmax(0, calc((100% - 20px) / 3)) minmax(0, 1fr) !important;
}

.main-content[data-page="mappa"] .map-layout {
  align-items: stretch;
}
.main-content[data-page="mappa"] .map-layout > .stack {
  height: 100%;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 12px;
}
.main-content[data-page="mappa"] .map-distance-card {
  height: 100%;
}
.main-content[data-page="mappa"] .map-distance-card .distance-list {
  height: calc(100% - 42px);
  align-content: start;
}

.main-content[data-page="market-insights"] .market-reference-top {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(280px, 1.08fr);
  align-items: stretch;
}
.main-content[data-page="market-insights"] .split-2-1 {
  grid-template-columns: minmax(0, 2fr) minmax(280px, 1.06fr) !important;
}
.main-content[data-page="market-insights"] .market-seasonality,
.main-content[data-page="market-insights"] .market-insights-card {
  width: 100%;
}
.main-content[data-page="market-insights"] .market-insights-card {
  min-height: 260px;
}

.main-content[data-page="opportunita"] .opportunity-analytics {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(245px, .78fr) !important;
  align-items: stretch;
}
.main-content[data-page="opportunita"] .opportunity-analytics > .card {
  min-width: 0;
}

.main-content[data-page="report"] .preview-radar .radar-chart {
  padding-inline: 10px;
}

/* Final map minimalization pass */
.main-content[data-page="mappa"] .map-card {
  border-color: #dfe8f1 !important;
  box-shadow: 0 12px 26px rgba(15, 38, 80, .055) !important;
}

.main-content[data-page="mappa"] .map-mock.map-live.large {
  min-height: 570px !important;
  border-radius: 8px !important;
  background:
    radial-gradient(circle at 78% 34%, rgba(191, 229, 204, .38), transparent 18%),
    linear-gradient(180deg, #f8fbfb 0%, #f2f7f6 57%, #bfe4fb 57%, #a8d9f7 100%) !important;
}

.main-content[data-page="mappa"] .map-live.leaflet-loaded .leaflet-host {
  background: #f5f8f9 !important;
}

.main-content[data-page="mappa"] .map-live.leaflet-loaded::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 402;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .14), rgba(255, 255, 255, .02) 45%, rgba(183, 222, 248, .08)),
    radial-gradient(circle at 73% 39%, rgba(225, 244, 231, .22), transparent 20%);
  mix-blend-mode: screen;
}

.main-content[data-page="mappa"] .map-live.leaflet-loaded .osm-fallback,
.main-content[data-page="mappa"] .map-live.leaflet-loaded .osm-frame,
.main-content[data-page="mappa"] .map-live.leaflet-loaded .map-location-badge,
.main-content[data-page="mappa"] .map-live.leaflet-loaded .map-attribution {
  display: none !important;
}

.main-content[data-page="mappa"] .map-live.leaflet-loaded .leaflet-tile-pane {
  filter: saturate(.68) contrast(.88) brightness(1.1) opacity(.86) !important;
}

.main-content[data-page="mappa"] .map-live.leaflet-loaded .leaflet-overlay-pane,
.main-content[data-page="mappa"] .map-live.leaflet-loaded .leaflet-marker-pane,
.main-content[data-page="mappa"] .map-live.leaflet-loaded .leaflet-tooltip-pane {
  filter: saturate(.9);
}

.main-content[data-page="mappa"] .leaflet-bottom.leaflet-right .leaflet-control-zoom {
  margin-right: 22px !important;
  margin-bottom: 66px !important;
  border: 1px solid #dfe8f1 !important;
  border-radius: 9px !important;
  overflow: hidden !important;
  box-shadow: 0 10px 24px rgba(17, 45, 82, .08) !important;
}

.main-content[data-page="mappa"] .leaflet-control-zoom a {
  width: 39px !important;
  height: 39px !important;
  line-height: 38px !important;
  color: #071447 !important;
  background: rgba(255, 255, 255, .95) !important;
  border-bottom-color: #e4ebf3 !important;
  font-size: 20px !important;
  font-weight: 360 !important;
}

.main-content[data-page="mappa"] .map-expand-control {
  position: absolute;
  right: 22px;
  bottom: 20px;
  z-index: 505;
  display: inline-grid;
  width: 39px;
  height: 39px;
  place-items: center;
  border: 1px solid #dfe8f1;
  border-radius: 9px;
  color: #071447;
  background: rgba(255, 255, 255, .95);
  box-shadow: 0 10px 24px rgba(17, 45, 82, .08);
  cursor: pointer;
}

.main-content[data-page="mappa"] .map-expand-control:hover {
  border-color: rgba(0, 143, 70, .36);
  color: var(--sportia-green);
}

.main-content[data-page="mappa"] .sportia-map-pin {
  width: 36px !important;
  height: 36px !important;
  border-width: 5px !important;
  background: #008f46 !important;
  box-shadow: 0 12px 22px rgba(0, 108, 55, .22) !important;
}

.main-content[data-page="mappa"] .sportia-map-pin::after {
  left: 11px !important;
  top: 11px !important;
  width: 8px !important;
  height: 8px !important;
}

.main-content[data-page="mappa"] .sportia-map-tooltip {
  margin-left: 2px !important;
  border: 0 !important;
  color: #008246 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 13px !important;
  font-weight: 650 !important;
  line-height: 1.18 !important;
}

.main-content[data-page="mappa"] .sportia-map-tooltip::before {
  display: none !important;
}

.main-content[data-page="mappa"] .sportia-map-label-icon span {
  color: rgba(7, 20, 71, .38) !important;
  font-size: 13px !important;
  font-weight: 430 !important;
  letter-spacing: .08em !important;
}

.main-content[data-page="mappa"] .sportia-map-label-icon.major span {
  color: rgba(7, 20, 71, .68) !important;
  font-size: 21px !important;
  font-weight: 520 !important;
}

.main-content[data-page="mappa"] .sportia-map-label-icon.lake span {
  color: rgba(16, 78, 140, .68) !important;
  font-size: 13px !important;
  font-weight: 370 !important;
  letter-spacing: 0 !important;
}

.main-content[data-page="mappa"] .sportia-poi-marker {
  gap: 5px !important;
}

.main-content[data-page="mappa"] .sportia-poi-marker span {
  width: 11px !important;
  height: 11px !important;
  flex-basis: 11px !important;
  border-width: 2px !important;
  opacity: .88 !important;
}

.main-content[data-page="mappa"] .sportia-poi-marker strong {
  color: rgba(7, 20, 71, .56) !important;
  font-size: 10px !important;
  font-weight: 400 !important;
}

.main-content[data-page="mappa"] .map-actions {
  left: 22px !important;
  bottom: 20px !important;
  gap: 14px !important;
}

.main-content[data-page="mappa"] .map-actions a,
.main-content[data-page="mappa"] .map-actions button {
  min-height: 41px !important;
  padding: 0 18px !important;
  border: 1px solid #dfe8f1 !important;
  border-radius: 9px !important;
  color: #12307f !important;
  background: rgba(255, 255, 255, .96) !important;
  box-shadow: 0 10px 22px rgba(17, 45, 82, .08) !important;
  font-size: 12px !important;
  font-weight: 480 !important;
}

.main-content[data-page="mappa"] .map-position-card,
.main-content[data-page="mappa"] .map-distance-card {
  border-color: #dfe8f1 !important;
  border-radius: 8px !important;
  box-shadow: 0 10px 24px rgba(15, 38, 80, .045) !important;
}

.main-content[data-page="mappa"] .map-layout > .stack {
  height: 570px !important;
  min-height: 0 !important;
  grid-template-rows: 312px minmax(0, 1fr) !important;
}

.main-content[data-page="mappa"] .map-position-card,
.main-content[data-page="mappa"] .map-distance-card {
  min-height: 0 !important;
}

.main-content[data-page="mappa"] .map-position-card .card-title h2,
.main-content[data-page="mappa"] .map-distance-card .card-title h2 {
  font-size: 22px !important;
  font-weight: 690 !important;
  letter-spacing: -.01em !important;
}

.main-content[data-page="mappa"] .map-position-list {
  gap: 19px !important;
  padding-top: 4px !important;
}

.main-content[data-page="mappa"] .map-position-list li {
  grid-template-columns: 28px minmax(0, 1fr) !important;
  color: var(--navy) !important;
  font-size: 14px !important;
  font-weight: 430 !important;
  line-height: 1.38 !important;
}

.main-content[data-page="mappa"] .map-position-list svg {
  width: 22px !important;
  height: 22px !important;
  stroke-width: 1.7 !important;
}

.main-content[data-page="mappa"] .map-distance-card .distance-list {
  gap: 13px !important;
}

.main-content[data-page="mappa"] .map-distance-card .distance-list div {
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 16px !important;
}

.main-content[data-page="mappa"] .map-distance-card .distance-list dt,
.main-content[data-page="mappa"] .map-distance-card .distance-list dd {
  font-size: 14px !important;
  font-weight: 430 !important;
}

.main-content[data-page="mappa"] .map-distance-card .distance-list dd {
  font-weight: 520 !important;
}

@media (max-width: 720px) {
  .main-content[data-page="mappa"] .map-mock.map-live.large {
    min-height: 420px !important;
  }

  .main-content[data-page="mappa"] .map-layout > .stack {
    height: auto !important;
    grid-template-rows: auto auto !important;
  }

  .main-content[data-page="mappa"] .map-actions {
    left: 12px !important;
    right: 62px !important;
    bottom: 12px !important;
    gap: 8px !important;
  }

  .main-content[data-page="mappa"] .map-actions a,
  .main-content[data-page="mappa"] .map-actions button {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    padding: 0 10px !important;
  }

  .main-content[data-page="mappa"] .map-expand-control {
    right: 12px !important;
    bottom: 12px !important;
  }

  .main-content[data-page="mappa"] .leaflet-bottom.leaflet-right .leaflet-control-zoom {
    margin-right: 12px !important;
    margin-bottom: 58px !important;
  }
}
.main-content[data-page="report"] .preview-radar .radar-label {
  font-size: 8.2px;
  line-height: 1;
}
.main-content[data-page="report"] .preview-radar .radar-label tspan {
  paint-order: stroke fill;
  stroke: rgba(255,255,255,.96);
  stroke-width: 4px;
}

.review-card-body { min-height: 0; }

/* System map modal and reusable soft map controls */
body.modal-open { overflow: hidden; }
.map-expand-control {
  position: absolute;
  right: 12px;
  bottom: 12px;
  z-index: 505;
  display: inline-grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid #dfe8f1;
  border-radius: 9px;
  color: #071447;
  background: rgba(255, 255, 255, .95);
  box-shadow: 0 10px 24px rgba(17, 45, 82, .08);
  cursor: pointer;
}
.map-expand-control:hover {
  border-color: rgba(0, 143, 70, .36);
  color: var(--sportia-green);
}
.map-live.leaflet-loaded::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 402;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .12), rgba(255, 255, 255, .03) 46%, rgba(183, 222, 248, .08)),
    radial-gradient(circle at 72% 38%, rgba(225, 244, 231, .2), transparent 20%);
  mix-blend-mode: screen;
}
.map-live.leaflet-loaded .leaflet-tile-pane {
  filter: saturate(.68) contrast(.88) brightness(1.1) opacity(.86) !important;
}
.map-live.leaflet-loaded .leaflet-control-container,
.map-live.leaflet-loaded .leaflet-marker-pane,
.map-live.leaflet-loaded .leaflet-tooltip-pane {
  position: relative;
  z-index: 504;
}
.main-content[data-page="mappa"] .map-expand-control {
  right: 22px;
  bottom: 20px;
}
.map-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: clamp(14px, 3vw, 34px);
}
.map-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7, 20, 71, .36);
  backdrop-filter: blur(8px);
}
.map-modal-panel {
  position: relative;
  z-index: 1;
  width: min(1120px, 100%);
  max-height: min(820px, calc(100vh - 34px));
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(221, 230, 240, .95);
  border-radius: 12px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 30px 80px rgba(7, 20, 71, .22);
}
.map-modal-panel header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.map-modal-panel header span {
  color: var(--sportia-green);
  font-size: 11px;
  font-weight: 600;
}
.map-modal-panel header h2 {
  margin: 2px 0 0;
  color: var(--navy);
  font-size: clamp(20px, 2vw, 28px);
}
.map-modal-panel header button {
  width: 38px;
  height: 38px;
  border: 1px solid var(--border);
  border-radius: 9px;
  color: var(--navy);
  background: #fff;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}
.map-modal-map {
  min-height: 0;
}
.map-modal-map .map-mock {
  height: min(66vh, 650px);
  min-height: 360px !important;
}
.map-modal .map-expand-control { display: none !important; }

/* Network: ecosystem-first layout */
.main-content[data-page="network"] .network-overview {
  height: auto !important;
}
.ecosystem-full-card,
.network-geo-wide-card {
  width: 100%;
  min-width: 0;
}
.ecosystem-full-card {
  overflow: hidden;
}
.ecosystem-integrated {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(260px, .75fr);
  gap: 14px;
  align-items: stretch;
}
.ecosystem-integrated .ecosystem-map {
  min-height: 470px;
  padding: 34px 4px 2px;
  border: 1px solid #e5edf4;
  border-radius: 8px;
  background: linear-gradient(180deg, #fff 0%, #f8fbfc 100%);
}
.ecosystem-donut-panel {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 12px;
  padding: 16px;
  border: 1px solid #e5edf4;
  border-radius: 8px;
  background: #fbfdfc;
}
.ecosystem-donut-panel h3 {
  margin: 0;
  color: var(--navy);
  font-size: 15px;
  font-weight: 650;
}
.ecosystem-donut-panel .donut-module {
  grid-template-columns: minmax(120px, 150px) minmax(0, 1fr);
  gap: 12px;
}
.ecosystem-donut-panel .donut-figure {
  width: 145px;
  max-width: 145px;
}
.network-geo-wide-card {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
}
.network-geo-wide-card .detailed-partner-map {
  position: relative;
  min-height: 340px;
  overflow: hidden;
  border-radius: 8px;
}
.network-geo-wide-card .map-live {
  min-height: 340px !important;
}
.partner-map-legend {
  position: absolute;
  left: 16px;
  top: 14px;
  z-index: 506;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 8px 10px;
  border: 1px solid rgba(221, 230, 240, .9);
  border-radius: 8px;
  list-style: none;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 10px 24px rgba(17, 45, 82, .08);
  color: #243b65;
  font-size: 10px;
  font-weight: 520;
}
.partner-map-legend li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.partner-map-legend i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--sportia-green);
}
.partner-map-legend i.potential { background: #3a7fc1; }
.partner-map-legend i.club { background: #071447; }
.sportia-partner-pin {
  background: transparent;
}
.sportia-partner-pin span {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 50%;
  color: #fff;
  background: var(--sportia-green);
  box-shadow: 0 8px 18px rgba(0, 108, 55, .26);
  font-size: 12px;
  font-weight: 700;
}
.sportia-partner-pin.potential span {
  background: #2f7dc9;
  box-shadow: 0 8px 18px rgba(47, 125, 201, .22);
}
.sportia-partner-tooltip {
  border: 0 !important;
  border-radius: 7px !important;
  color: #173263 !important;
  background: rgba(255, 255, 255, .94) !important;
  box-shadow: 0 8px 18px rgba(17, 45, 82, .1) !important;
  font-size: 10px !important;
  font-weight: 560 !important;
}

/* Documents: action cards below table */
.document-action-grid {
  margin-top: 12px;
}

/* Opportunity relation and funnel controls */
.opportunity-analytics .funnel > button {
  width: var(--stage-width) !important;
  height: 43px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 3px;
  clip-path: polygon(0 0, 100% 0, 88% 100%, 12% 100%);
  color: #fff;
  background: var(--stage-color) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.22);
  cursor: help;
}
.opportunity-analytics .funnel > button strong {
  font-size: 21px;
  font-weight: 590;
}
.opportunity-analytics .funnel-details li {
  cursor: help;
}
.opportunity-analytics .modern-matrix .matrix-point {
  cursor: help;
}

@media (max-width: 980px) {
  .ecosystem-integrated {
    grid-template-columns: 1fr;
  }
  .ecosystem-donut-panel .donut-module {
    grid-template-columns: minmax(140px, 170px) minmax(0, 1fr);
  }
}

@media (max-width: 640px) {
  .map-modal {
    padding: 10px;
  }
  .map-modal-panel {
    max-height: calc(100vh - 20px);
    padding: 12px;
  }
  .map-modal-map .map-mock {
    height: min(64vh, 520px);
    min-height: 330px !important;
  }
  .ecosystem-integrated .ecosystem-map {
    min-height: 390px;
    padding-top: 46px;
  }
  .ecosystem-donut-panel .donut-module {
    grid-template-columns: 1fr;
    justify-items: center;
  }
  .network-geo-wide-card .detailed-partner-map,
  .network-geo-wide-card .map-live {
    min-height: 310px !important;
  }
  .partner-map-legend {
    left: 10px;
    right: 10px;
    top: 10px;
    justify-content: center;
  }
}
.review-summary-grid > .review-insight-card {
  min-height: 318px;
}
.review-insight-card .sportia-agent-quote p {
  font-size: 9.6px;
  line-height: 1.52;
}

.network-partner-types > .donut-module {
  grid-template-columns: minmax(104px, 116px) minmax(0, 1fr);
  align-items: center;
  gap: 13px;
}
.network-partner-types .donut-figure { width: 112px; max-width: 112px; justify-self: center; }
.network-partner-types .donut-legend { gap: 7px; }
.network-partner-types .donut-legend li {
  grid-template-columns: 8px minmax(0, 1fr) 30px;
  gap: 7px;
  font-size: 9.2px;
  line-height: 1.25;
}
.network-partner-types .donut-legend li p,
.revenue-mix-card .donut-legend li p {
  min-width: 0;
  padding-right: 3px;
  overflow-wrap: anywhere;
}
.network-partner-types .donut-legend li strong,
.revenue-mix-card .donut-legend li strong {
  min-width: 30px;
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.revenue-mix-card > .financial-donut { gap: 12px; }
.revenue-mix-card .donut-legend { gap: 8px; }
.revenue-mix-card .donut-legend li {
  grid-template-columns: 8px minmax(0, 1fr) 31px;
  gap: 7px;
  font-size: 9px;
  line-height: 1.25;
}

.opportunity-analytics .modern-matrix .q { position: relative; }
.opportunity-analytics .modern-matrix .q strong {
  position: absolute;
  z-index: 2;
  left: 6px;
  right: 6px;
  top: 9px;
  color: #243b69;
  font-size: 10px;
  font-weight: 580;
  line-height: 1.25;
  text-align: center;
  white-space: nowrap;
}
.opportunity-analytics .modern-matrix .q:nth-of-type(3) strong { color: #168958; }
.opportunity-analytics .modern-matrix .q:nth-of-type(5) strong,
.opportunity-analytics .modern-matrix .q:nth-of-type(6) strong { top: auto; bottom: 9px; }
.opportunity-analytics .modern-matrix .matrix-bound {
  left: auto;
  right: auto;
  top: auto;
  bottom: auto;
  transform: none;
}
.opportunity-analytics .modern-matrix .axis-y {
  left: 8px;
  top: 50%;
  transform: translate(-50%, -50%) rotate(-90deg);
}
.opportunity-analytics .modern-matrix .axis-x {
  left: 50%;
  bottom: 3px;
  transform: translateX(-50%);
}
.opportunity-analytics .modern-matrix .matrix-y-high { left: 5px; top: 7px; }
.opportunity-analytics .modern-matrix .matrix-y-low { left: 4px; bottom: 28px; }
.opportunity-analytics .modern-matrix .matrix-x-low { left: 36px; bottom: 3px; }
.opportunity-analytics .modern-matrix .matrix-x-high { right: 8px; bottom: 3px; }

@media (min-width: 1181px) {
  .revenue-mix-card > .financial-donut {
    grid-template-columns: minmax(154px, 166px) minmax(0, 1fr);
    height: 190px;
  }
  .revenue-mix-card .donut-figure { width: 164px; max-width: 164px; }
}

@media (max-width: 1180px) and (min-width: 821px) {
  .network-partner-types > .donut-module {
    grid-template-columns: minmax(98px, 108px) minmax(0, 1fr);
    gap: 9px;
  }
  .network-partner-types .donut-figure { width: 104px; max-width: 104px; }
  .revenue-mix-card > .financial-donut { grid-template-columns: minmax(136px, 148px) minmax(0, 1fr); }
  .revenue-mix-card .donut-figure { width: 144px; max-width: 144px; }
}

@media (max-width: 820px) {
  .network-partner-types > .donut-module { grid-template-columns: minmax(125px, 155px) minmax(0, 1fr); }
  .network-partner-types .donut-figure { width: 145px; max-width: 145px; }
}

@media (max-width: 540px) {
  .network-partner-types > .donut-module { grid-template-columns: 1fr; justify-items: center; }
  .network-partner-types .donut-figure { width: min(54vw, 170px); max-width: 170px; }
  .network-partner-types .donut-legend { width: 100%; }
  .opportunity-analytics .modern-matrix .q strong { font-size: 9px; white-space: normal; }
}

/* Final override: Potenziale complessivo must stay inside the card at every width. */
.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) {
  container-type: inline-size;
  overflow: hidden !important;
}

.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .big-money {
  display: flex !important;
  width: auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
  flex-wrap: wrap !important;
  align-items: baseline !important;
  gap: 0 7px !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  font-size: clamp(18px, 1.55vw, 23px) !important;
  line-height: 1.12 !important;
  letter-spacing: 0 !important;
}

.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .big-money span {
  max-width: 100%;
  white-space: nowrap;
}

.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .insight-list,
.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .insight-list span {
  min-width: 0 !important;
}

.main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .insight-list li {
  grid-template-columns: 34px minmax(0, 1fr) !important;
}

@container (max-width: 285px) {
  .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .big-money {
    font-size: clamp(17px, 7.4cqw, 20px) !important;
  }
}

@media (max-width: 540px) {
  body .main-content[data-page="opportunita"] .opportunity-analytics {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    gap: 10px !important;
    height: auto !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics > .card {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics > .card:nth-child(3) .big-money {
    font-size: clamp(20px, 5.6vw, 23px) !important;
  }
}

/* True closing mobile polish: this block intentionally stays at EOF. */
@media (max-width: 540px) {
  body .main-content[data-page="market-insights"] .split-2-1 {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
  }

  body .main-content[data-page="market-insights"] .benchmark-card,
  body .main-content[data-page="market-insights"] .market-insights-card {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
  }

  body .main-content[data-page="market-insights"] .benchmark-card {
    overflow-x: auto !important;
  }

  body .main-content[data-page="report"] .report-layout,
  body .main-content[data-page="report"] .report-layout-secondary,
  body .main-content[data-page="report"] .report-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  body .main-content[data-page="report"] .page-primary {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }

  body .main-content[data-page="report"] .page-grid.with-rail,
  body .main-content[data-page="report"] .right-rail {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }

  body .main-content[data-page="report"] .executive-summary .kpi-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
  }

  body .main-content[data-page="report"] .report-layout > .card,
  body .main-content[data-page="report"] .report-layout-secondary > .card,
  body .main-content[data-page="report"] .report-grid > .card,
  body .main-content[data-page="report"] .executive-summary,
  body .main-content[data-page="report"] .right-rail > .card,
  body .main-content[data-page="report"] .report-preview,
  body .main-content[data-page="report"] .timeline-card {
    width: 100% !important;
    min-width: 0 !important;
    grid-column: 1 / -1 !important;
  }

  body .main-content[data-page="report"] .report-preview .preview-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
    min-height: 0 !important;
  }

  body .main-content[data-page="report"] .preview-panel + .preview-panel {
    border-left: 0 !important;
    border-top: 1px solid var(--border) !important;
    padding-top: 12px !important;
  }
}
@media (max-width: 540px) {
  .back-to-top {
    right: 14px;
    bottom: calc(16px + env(safe-area-inset-bottom));
    width: 44px;
    height: 44px;
  }

  body .main-content[data-page="market-insights"] .market-reference-top {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
  }

  body .main-content[data-page="market-insights"] .market-reference-top > .card {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    height: auto !important;
    gap: 8px !important;
    padding: 0 !important;
  }

  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot > .market-stat-block,
  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot > .market-stat-block + .market-stat-block {
    min-height: 88px !important;
    display: grid !important;
    grid-template-rows: 18px 31px auto !important;
    align-content: center !important;
    gap: 5px !important;
    padding: 12px 10px !important;
    border: 1px solid #e8edf4 !important;
    border-radius: 8px !important;
    background: #fbfcfd !important;
  }

  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot span,
  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot strong,
  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot small {
    width: 100% !important;
    min-height: 0 !important;
    text-align: left !important;
  }

  body .main-content[data-page="market-insights"] .market-panorama .market-snapshot strong {
    font-size: 25px !important;
    line-height: 1 !important;
  }

  body .main-content[data-page="market-insights"] .market-demand-content {
    height: auto !important;
    display: grid !important;
    grid-template-rows: auto 168px !important;
    gap: 8px !important;
  }

  body .main-content[data-page="market-insights"] .market-demand-content .line-chart,
  body .main-content[data-page="market-insights"] .market-demand-content .line-chart svg {
    width: 100% !important;
    height: 168px !important;
    max-height: 168px !important;
    min-height: 0 !important;
  }

  body .main-content[data-page="market-insights"] .market-seasonality-content .donut-module {
    display: grid !important;
    grid-template-columns: minmax(118px, 142px) minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 10px !important;
  }

  body .main-content[data-page="market-insights"] .market-seasonality-content .donut-figure {
    width: min(38vw, 142px) !important;
    max-width: 142px !important;
    justify-self: center !important;
  }

  body .main-content[data-page="market-insights"] .market-seasonality-content .donut-legend li {
    grid-template-columns: 9px minmax(0, 1fr) 33px !important;
    gap: 7px !important;
    font-size: 9.4px !important;
    line-height: 1.25 !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    gap: 10px !important;
    height: auto !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics > .card {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
  }

  body .main-content[data-page="opportunita"] .opportunity-analytics > .card:first-child {
    min-height: 292px !important;
  }

  body .main-content[data-page="opportunita"] .funnel-module {
    display: grid !important;
    grid-template-columns: minmax(132px, .95fr) minmax(0, 1.05fr) !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    min-height: 208px !important;
  }

  body .main-content[data-page="opportunita"] .funnel-visual {
    width: 100% !important;
    max-width: 158px !important;
    justify-self: center !important;
  }

  body .main-content[data-page="opportunita"] .funnel-stage {
    height: 43px !important;
    font-size: 25px !important;
  }

  body .main-content[data-page="opportunita"] .funnel-legend {
    width: 100% !important;
    gap: 11px !important;
    align-self: center !important;
  }

  body .main-content[data-page="opportunita"] .funnel-rate {
    grid-column: 1 / -1 !important;
    margin-top: 2px !important;
  }

  body .main-content[data-page="report"] .timeline-card {
    min-height: 0 !important;
    height: auto !important;
  }

  body .main-content[data-page="report"] .timeline-card .timeline {
    min-height: 0 !important;
    height: auto !important;
    display: grid !important;
    gap: 8px !important;
    padding: 4px 0 2px 18px !important;
  }

  body .main-content[data-page="report"] .timeline-card .timeline li {
    min-height: 0 !important;
    padding: 8px 8px 8px 0 !important;
    grid-template-columns: 66px minmax(0, 1fr) !important;
    gap: 9px !important;
  }
}
/* Admin profile review */
.admin-profile-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.admin-profile-kpis article { padding:18px; border:1px solid var(--border); border-radius:16px; background:var(--surface); display:grid; gap:5px; }
.admin-profile-kpis span,.admin-profile-kpis small { color:var(--muted); font-size:12px; }
.admin-profile-kpis strong { font-size:30px; line-height:1; color:var(--ink); }
.admin-profile-toolbar { display:flex; gap:10px; align-items:end; flex-wrap:wrap; margin-bottom:16px; }
.admin-profile-toolbar label { display:grid; gap:5px; color:var(--muted); font-size:11px; font-weight:700; }
.admin-profile-toolbar input,.admin-profile-toolbar select { min-height:40px; border:1px solid var(--border); border-radius:10px; background:var(--surface); padding:0 12px; color:var(--ink); }
.admin-profile-search { position:relative; flex:1; min-width:240px; }
.admin-profile-search svg { position:absolute; left:12px; bottom:11px; color:var(--muted); }
.admin-profile-search input { padding-left:38px; width:100%; }
.admin-profile-toolbar button,.admin-profile-approve { min-height:40px; border:0; border-radius:10px; padding:0 15px; background:var(--accent); color:white; font-weight:800; display:inline-flex; align-items:center; justify-content:center; gap:7px; cursor:pointer; }
.admin-profile-toolbar button.secondary,.admin-profile-confirm button.secondary { background:var(--surface-soft); color:var(--ink); border:1px solid var(--border); }
.admin-profile-results { display:flex; justify-content:space-between; gap:12px; align-items:center; margin:-4px 2px 12px; font-size:12px; }
.admin-profile-results span { color:var(--muted); }
.admin-profile-workspace { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(300px,.8fr); gap:16px; align-items:start; }
.admin-profile-table-wrap { overflow:auto; border:1px solid var(--border); border-radius:14px; }
.admin-profile-table { width:100%; border-collapse:collapse; min-width:760px; }
.admin-profile-table th { padding:11px 13px; text-align:left; background:var(--surface-soft); color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.04em; }
.admin-profile-table td { padding:13px; border-top:1px solid var(--border); font-size:13px; }
.admin-profile-table td:first-child { display:grid; gap:3px; }
.admin-profile-table td small { color:var(--muted); }
.admin-profile-quality-mini { display:block; margin-top:5px; font-size:10px; }
.admin-profile-table tr[data-admin-profile-open] { cursor:pointer; transition:.18s ease; }
.admin-profile-table tr[data-admin-profile-open]:hover,.admin-profile-table tr.selected { background:color-mix(in srgb,var(--accent) 7%,transparent); }
.admin-profile-table td:last-child button { border:0; background:transparent; color:var(--accent); cursor:pointer; }
.admin-profile-status,.admin-profile-detail-meta > span { display:inline-flex; padding:5px 9px; border-radius:999px; font-size:11px; font-weight:800; }
.admin-profile-status.approved,.admin-profile-detail-meta > span.approved { background:#e7f8ee; color:#187342; }
.admin-profile-status.review,.admin-profile-detail-meta > span.review { background:#fff3dd; color:#9a5c00; }
.admin-profile-empty { text-align:center; color:var(--muted); padding:30px !important; }
.admin-profile-empty.error { color:#a12b2b; }
.admin-profile-detail { border:1px solid var(--border); border-radius:14px; padding:18px; background:var(--surface); position:sticky; top:88px; display:grid; gap:17px; }
.admin-profile-detail-empty { min-height:250px; display:grid; place-content:center; justify-items:center; text-align:center; color:var(--muted); gap:8px; }
.admin-profile-detail-empty p { max-width:260px; margin:0; }
.admin-profile-detail header { display:flex; gap:12px; align-items:center; }
.admin-profile-detail header h3,.admin-profile-detail header p { margin:2px 0 0; }
.admin-profile-detail header small,.admin-profile-detail header p { color:var(--muted); }
.admin-profile-avatar { width:46px; height:46px; display:grid; place-items:center; border-radius:13px; background:var(--accent); color:white; font-weight:900; }
.admin-profile-detail-meta { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.admin-profile-detail-meta small { color:var(--muted); max-width:60%; overflow:hidden; text-overflow:ellipsis; }
.admin-profile-detail section { border-top:1px solid var(--border); padding-top:14px; }
.admin-profile-detail h4 { margin:0 0 10px; }
.admin-profile-quality > div { display:flex; justify-content:space-between; align-items:center; }
.admin-profile-quality > div h4 { margin:0; }
.admin-profile-quality > div strong { color:var(--accent); font-size:18px; }
.admin-profile-quality > span { display:block; height:7px; border-radius:999px; background:var(--surface-soft); overflow:hidden; margin:9px 0 6px; }
.admin-profile-quality > span i { display:block; height:100%; border-radius:inherit; background:var(--accent); }
.admin-profile-quality > small { color:var(--muted); }
.admin-profile-field-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.admin-profile-field-grid div { padding:9px; border-radius:9px; background:var(--surface-soft); display:grid; gap:3px; min-width:0; }
.admin-profile-field-grid span,.admin-profile-audit span { color:var(--muted); font-size:10px; text-transform:capitalize; }
.admin-profile-field-grid strong { font-size:12px; overflow-wrap:anywhere; }
.admin-profile-audit p { display:flex; justify-content:space-between; gap:12px; margin:7px 0; font-size:12px; }
.admin-profile-narrative div { margin-top:10px; }
.admin-profile-narrative span { color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; }
.admin-profile-narrative p { margin:4px 0 0; font-size:12px; line-height:1.55; }
.admin-profile-sources > div { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.admin-profile-sources > div h4 { margin:0; }
.admin-profile-sources > div strong { color:var(--accent); font-size:11px; }
.admin-profile-sources a { display:grid; gap:3px; margin-top:8px; padding:9px; border:1px solid var(--border); border-radius:9px; background:var(--surface-soft); }
.admin-profile-sources a span { display:flex; align-items:center; gap:6px; color:var(--ink); font-size:11px; font-weight:800; }
.admin-profile-sources a small { color:var(--muted); font-size:10px; }
.admin-profile-approved { border-radius:10px; padding:12px; display:flex; align-items:center; gap:8px; background:#e7f8ee; color:#187342; font-weight:800; font-size:12px; }
.admin-profile-approve:disabled { opacity:.55; cursor:wait; }
.admin-profile-confirm { padding:13px; border:1px solid #f0d7a7; border-radius:11px; background:#fff9ee; }
.admin-profile-confirm p { margin:5px 0 12px; color:var(--muted); font-size:12px; line-height:1.45; }
.admin-profile-confirm > div { display:flex; gap:8px; justify-content:flex-end; }
.admin-profile-confirm button { min-height:36px; border:0; border-radius:9px; padding:0 12px; background:var(--accent); color:white; font-weight:800; display:inline-flex; align-items:center; gap:6px; }
@media (max-width:1100px) { .admin-profile-workspace { grid-template-columns:1fr; } .admin-profile-detail { position:static; } }
@media (max-width:760px) { .admin-profile-kpis { grid-template-columns:1fr 1fr; } .admin-profile-toolbar label { width:100%; } .admin-profile-field-grid { grid-template-columns:1fr; } }

/* Login amministratore */
.public-login { text-decoration:none; }
.sportia-login-page { min-height:calc(100vh - 150px); display:grid; grid-template-columns:minmax(0,1.05fr) minmax(340px,.72fr); gap:clamp(30px,7vw,100px); align-items:center; max-width:1180px; margin:0 auto; padding:70px 28px; }
.sportia-login-intro > span { display:inline-flex; align-items:center; gap:8px; color:var(--accent); font-weight:800; font-size:13px; }
.sportia-login-intro h1 { max-width:650px; margin:16px 0; font-size:clamp(38px,5vw,66px); line-height:1.02; letter-spacing:-.04em; }
.sportia-login-intro p { max-width:590px; color:var(--muted); font-size:17px; line-height:1.65; }
.sportia-login-intro ul { display:grid; gap:12px; padding:0; margin:28px 0 0; list-style:none; }
.sportia-login-intro li { display:flex; gap:9px; align-items:center; font-weight:700; }
.sportia-login-intro li svg { color:var(--accent); }
.sportia-login-card { border:1px solid var(--border); border-radius:22px; padding:30px; background:var(--surface); box-shadow:0 22px 65px rgba(22,40,29,.11); display:grid; gap:15px; }
.sportia-login-card[hidden],.sportia-login-choice[hidden] { display:none; }
.sportia-login-choice { border:1px solid var(--border); border-radius:22px; padding:30px; background:var(--surface); box-shadow:0 22px 65px rgba(22,40,29,.11); }
.sportia-login-choice > small { color:var(--accent); text-transform:uppercase; letter-spacing:.08em; font-weight:900; }
.sportia-login-choice > h2 { margin:7px 0 8px; font-size:28px; }
.sportia-login-choice > p { margin:0; color:var(--muted); line-height:1.5; }
.sportia-login-choice-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:22px; }
.sportia-login-choice-grid > button { position:relative; min-width:0; min-height:250px; padding:20px; border:1px solid var(--border); border-radius:16px; display:flex; flex-direction:column; align-items:flex-start; gap:8px; background:linear-gradient(145deg,#fbfdfc,#f3f8f5); color:var(--ink); text-align:left; cursor:pointer; transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease; overflow:hidden; }
.sportia-login-choice-grid > button::after { content:""; position:absolute; inset:auto -30px -45px auto; width:110px; height:110px; border-radius:50%; background:rgba(21,139,83,.06); pointer-events:none; }
.sportia-login-choice-grid > button[data-login-role-option="admin"] { background:linear-gradient(145deg,#fbfcff,#f2f5fb); }
.sportia-login-choice-grid > button[data-login-role-option="admin"]::after { background:rgba(17,54,112,.06); }
.sportia-login-choice-grid > button:hover,.sportia-login-choice-grid > button:focus-visible { transform:translateY(-3px); border-color:color-mix(in srgb,var(--accent) 58%,var(--border)); box-shadow:0 14px 30px rgba(22,40,29,.11); outline:none; background:#fff; }
.sportia-login-choice-grid strong { font-size:17px; line-height:1.2; }
.sportia-login-choice-grid small { color:var(--accent); font-weight:800; }
.sportia-login-choice-grid p { margin:3px 0 auto; color:var(--muted); line-height:1.45; }
.sportia-login-choice-grid b { position:relative; z-index:1; min-height:34px; margin-top:4px; padding:0 12px; border:1px solid color-mix(in srgb,var(--accent) 22%,var(--border)); border-radius:999px; display:flex; align-items:center; gap:6px; color:var(--accent); background:rgba(255,255,255,.72); font-size:12px; }
.sportia-login-choice-icon { width:46px; height:46px; border-radius:13px; display:grid; place-items:center; color:white; background:var(--accent); margin-bottom:5px; }
.sportia-login-choice-grid > button[data-login-role-option="admin"] .sportia-login-choice-icon { background:#173970; }
.sportia-login-back { width:max-content; min-height:38px; padding:0 13px 0 10px; border:1px solid #d7e3dc; border-radius:999px; display:flex; align-items:center; gap:7px; background:#f6faf7; color:#416052; font:inherit; font-size:12px; font-weight:800; cursor:pointer; transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease; }
.sportia-login-back svg { width:15px; height:15px; }
.sportia-login-back:hover,.sportia-login-back:focus-visible { transform:translateX(-2px); border-color:color-mix(in srgb,var(--accent) 42%,#d7e3dc); background:#edf7f1; color:var(--accent); outline:none; }
.sportia-login-back:focus-visible { box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent); }
.sportia-login-card[data-login-role="admin"] { border-color:#d8e0ee; background:linear-gradient(155deg,#fff 0%,#f7f9fd 100%); box-shadow:0 22px 65px rgba(24,57,112,.12); }
.sportia-login-card[data-login-role="admin"] .sportia-login-mark { background:#173970; }
.sportia-login-card[data-login-role="admin"] > small { color:#173970; }
.sportia-login-card[data-login-role="admin"] input:focus { outline-color:rgba(23,57,112,.2); border-color:#31578e; }
.sportia-login-card[data-login-role="admin"] > button[type="submit"] { background:#173970; }
.sportia-login-card[data-login-role="admin"] .sportia-demo-credentials { border-color:#cdd8e9; background:rgba(239,244,251,.7); }
.sportia-login-card[data-login-role="admin"] .sportia-demo-credentials code { color:#173970; }
.sportia-login-card[data-login-role="admin"] .sportia-login-back { border-color:#d1dbea; background:#f2f5fa; color:#405778; }
.sportia-login-card[data-login-role="admin"] .sportia-login-back:hover,.sportia-login-card[data-login-role="admin"] .sportia-login-back:focus-visible { border-color:#7890b2; background:#e9eef6; color:#173970; }
.sportia-login-card[data-login-role="admin"] > a { color:#173970; }
.sportia-login-card[data-login-role="user"] { border-color:#d4e7dc; background:linear-gradient(155deg,#fff 0%,#f5faf7 100%); box-shadow:0 22px 65px rgba(21,117,72,.1); }
.sportia-login-card[data-login-role="user"] .sportia-login-mark { background:#178553; }
.sportia-login-card[data-login-role="user"] > small { color:#178553; }
.sportia-login-card[data-login-role="user"] input:focus { outline-color:rgba(23,133,83,.18); border-color:#4a9a72; }
.sportia-login-card[data-login-role="user"] > button[type="submit"] { background:#178553; }
.sportia-login-card[data-login-role="user"] .sportia-demo-credentials { border-color:#d2e1d9; background:rgba(239,246,242,.72); }
.sportia-login-card[data-login-role="user"] .sportia-demo-credentials code { color:#147548; }
.sportia-login-card[data-login-role="user"] .sportia-login-back { border-color:#d5e2da; background:#f3f7f5; color:#587064; }
.sportia-login-card[data-login-role="user"] .sportia-login-back:hover,.sportia-login-card[data-login-role="user"] .sportia-login-back:focus-visible { border-color:#74ad90; background:#e9f4ed; color:#147548; }
.sportia-login-card[data-login-role="user"] > a { color:#178553; }
.sportia-login-choice-grid > button[data-login-role-option="user"] .sportia-login-choice-icon { background:#178553; }
.sportia-login-choice-grid > button[data-login-role-option="user"] small,.sportia-login-choice-grid > button[data-login-role-option="user"] b { color:#178553; }
.sportia-login-choice-grid > button[data-login-role-option="user"] b { border-color:#cfdfd6; background:#f7faf8; }
.sportia-login-choice-grid em { position:relative; z-index:1; color:#587064; font-size:11px; font-style:normal; line-height:1.35; }
.sportia-login-role-switch { display:grid; grid-template-columns:1fr 1fr; gap:6px; padding:5px; border-radius:13px; background:var(--surface-soft); border:1px solid var(--border); }
.sportia-login-role-switch button { min-height:42px; border:0; border-radius:9px; display:flex; align-items:center; justify-content:center; gap:7px; background:transparent; color:var(--muted); font:inherit; font-size:12px; font-weight:850; cursor:pointer; }
.sportia-login-role-switch button.active { background:var(--surface); color:var(--accent); box-shadow:0 3px 12px rgba(22,40,29,.09); }
.sportia-login-mark { width:52px; height:52px; border-radius:15px; display:grid; place-items:center; color:white; background:var(--accent); margin-bottom:3px; }
.sportia-login-card > small { color:var(--accent); text-transform:uppercase; letter-spacing:.08em; font-weight:900; }
.sportia-login-card h2,.sportia-login-card p { margin:0; }
.sportia-login-card > p { color:var(--muted); }
.sportia-login-card label { display:grid; gap:7px; font-size:12px; font-weight:800; }
.sportia-login-card input { min-height:48px; border:1px solid var(--border); border-radius:11px; padding:0 13px; background:var(--surface-soft); color:var(--ink); font:inherit; }
.sportia-login-card input:focus { outline:2px solid color-mix(in srgb,var(--accent) 30%,transparent); border-color:var(--accent); }
.sportia-login-card > button { min-height:50px; border:0; border-radius:11px; display:flex; align-items:center; justify-content:center; gap:8px; background:var(--accent); color:white; font-weight:900; cursor:pointer; }
.sportia-login-error { padding:10px 12px; border-radius:9px; background:#fff0f0; color:#a12b2b !important; font-size:12px; font-weight:800; }
.sportia-demo-credentials { border:1px dashed var(--border); border-radius:11px; padding:12px; display:grid; grid-template-columns:1fr 1fr; gap:5px 12px; font-size:12px; color:var(--muted); }
.sportia-demo-credentials strong { grid-column:1/-1; color:var(--ink); }
.sportia-demo-credentials code { color:var(--accent); font-weight:900; }
.sportia-demo-credentials small { grid-column:1/-1; padding-top:5px; border-top:1px solid var(--border); }
.sportia-login-card > a { text-align:center; color:var(--accent); font-size:12px; font-weight:800; text-decoration:none; }
@media (max-width:820px) { .sportia-login-page { grid-template-columns:1fr; padding:40px 18px; } .sportia-login-intro h1 { font-size:38px; } }
@media (max-width:520px) { .sportia-login-choice-grid { grid-template-columns:1fr; } .sportia-login-choice-grid > button { min-height:210px; } }
.admin-sidebar-logout { width:100%; border:0; background:transparent; text-align:left; cursor:pointer; font:inherit; color:inherit; }
.admin-profile-credentials { min-width:130px; }
.admin-profile-credentials code { display:block; color:var(--accent); font-size:12px; font-weight:900; }
.admin-profile-credentials small { display:block; margin-top:3px; color:var(--muted); font-size:10px; }
.admin-profile-demo-access { padding:13px; border:1px solid #d9e9df; border-radius:11px; background:#f5faf7; }
.admin-profile-demo-access > div { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.admin-profile-demo-access h4,.admin-profile-demo-access small { margin:0; }
.admin-profile-demo-access > div > small { color:var(--muted); font-size:10px; }
.admin-profile-demo-access dl { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:11px 0 0; }
.admin-profile-demo-access dl div { padding:8px 9px; border-radius:8px; background:white; }
.admin-profile-demo-access dt { color:var(--muted); font-size:10px; }
.admin-profile-demo-access dd { margin:3px 0 0; }
.admin-profile-demo-access code { color:var(--accent); font-weight:900; }
.header-profile-menu { position:relative; display:flex; align-items:center; gap:7px; }
.header-profile-menu .avatar { border:0; cursor:pointer; font:inherit; }
.profile-summary-popover { position:absolute; z-index:120; top:calc(100% + 14px); right:0; width:min(330px,calc(100vw - 24px)); padding:17px; border:1px solid var(--border); border-radius:16px; background:var(--surface); box-shadow:0 20px 50px rgba(22,40,29,.18); }
.profile-summary-popover[hidden] { display:none; }
.profile-summary-head { display:flex; align-items:center; gap:11px; padding-bottom:13px; border-bottom:1px solid var(--border); }
.profile-summary-head > span { width:42px; height:42px; flex:0 0 42px; border-radius:50%; display:grid; place-items:center; background:var(--accent); color:white; font-weight:900; font-size:12px; }
.profile-summary-head div { min-width:0; display:grid; gap:3px; }
.profile-summary-head strong,.profile-summary-head small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.profile-summary-head small { color:var(--muted); }
.profile-summary-popover dl { display:grid; gap:8px; margin:13px 0; }
.profile-summary-popover dl div { display:flex; justify-content:space-between; gap:16px; font-size:12px; }
.profile-summary-popover dt { color:var(--muted); }
.profile-summary-popover dd { margin:0; max-width:190px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:800; text-align:right; }
.profile-summary-popover > a,.profile-summary-popover > button { width:100%; min-height:40px; margin-top:6px; padding:0 11px; border:1px solid var(--border); border-radius:9px; display:flex; align-items:center; gap:8px; background:var(--surface-soft); color:var(--ink); text-decoration:none; font:inherit; font-size:12px; font-weight:800; cursor:pointer; }
.profile-summary-popover > button { color:#8b3535; }
.public-session-profile { z-index:130; }
.public-profile-avatar { display:grid; place-items:center; background:var(--accent); color:white; }
.public-actions .profile-summary-popover { text-align:left; }
.public-drawer-actions button.public-register { border:0; font:inherit; cursor:pointer; }

/* Profili pubblici approvati */
.public-approved-profile { max-width:1180px; margin:0 auto; padding:44px 24px 80px; }
.public-approved-loading,.public-approved-not-found { min-height:55vh; display:grid; place-content:center; justify-items:center; gap:10px; text-align:center; color:var(--muted); }
.public-approved-hero { position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr) 190px; gap:26px; align-items:end; padding:18px; border:1px solid #cfe6da; border-radius:24px; color:var(--navy); background:linear-gradient(135deg,#f5fbf7 0%,#e5f6ec 100%); box-shadow:0 22px 60px rgba(7,20,71,.08); }
.public-approved-cover { position:relative; height:310px; margin:0; overflow:hidden; border-radius:17px; background:#dbe9e1; }
.public-approved-cover img { width:100%; height:100%; object-fit:cover; display:block; }
.public-approved-cover::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 58%,rgba(7,20,71,.66)); pointer-events:none; }
.public-approved-cover figcaption { position:absolute; z-index:1; left:14px; bottom:12px; display:flex; align-items:center; gap:6px; color:white; font-size:11px; font-weight:800; }
.public-approved-hero > div { padding:12px 0; }
.public-approved-hero h1 { margin:14px 0 8px; font-size:clamp(36px,5vw,64px); line-height:1; letter-spacing:-.04em; }
.public-approved-hero p { margin:0 0 15px; color:var(--navy-muted); }
.public-approved-hero .database-back-link { color:var(--sportia-green-dark); }
.public-approved-hero .hero-kicker { display:inline-flex; gap:7px; align-items:center; margin-top:24px; color:var(--sportia-green-dark); font-weight:800; }
.public-approved-hero aside { padding:20px 14px; border:1px solid #b9dcc9; border-radius:16px; background:rgba(255,255,255,.8); display:grid; text-align:center; box-shadow:0 10px 25px rgba(0,108,55,.07); }
.public-approved-hero aside strong { font-size:42px; color:var(--sportia-green); }
.public-approved-hero aside span { font-weight:800; }
.public-approved-hero aside small { margin-top:5px; color:var(--navy-muted); }
.public-approved-actions { display:flex; gap:9px; flex-wrap:wrap; margin-top:20px; }
.public-approved-actions a { min-height:42px; padding:0 14px; font-size:11px; }
.public-approved-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:16px 0; }
.public-approved-kpis article { padding:17px; border:1px solid var(--border); border-radius:14px; background:var(--surface); display:grid; gap:4px; }
.public-approved-kpis article svg { color:var(--accent); }
.public-approved-kpis article span,.public-approved-kpis article small { color:var(--muted); font-size:11px; }
.public-approved-kpis article strong { font-size:20px; }
.public-approved-gallery { margin:16px 0; padding:22px; border:1px solid var(--border); border-radius:18px; background:var(--surface); }
.public-approved-gallery-heading { display:flex; justify-content:space-between; align-items:end; gap:18px; margin-bottom:16px; }
.public-approved-gallery-heading span { color:var(--sportia-green-dark); text-transform:uppercase; letter-spacing:.08em; font-size:10px; font-weight:900; }
.public-approved-gallery-heading h2 { margin:5px 0 0; font-size:22px; }
.public-approved-gallery-heading a { display:flex; align-items:center; gap:6px; color:var(--sportia-green-dark); font-size:11px; font-weight:800; }
.public-approved-gallery-grid { display:grid; grid-template-columns:1.25fr 1fr 1fr; gap:10px; }
.public-approved-gallery-grid figure { position:relative; min-height:205px; margin:0; overflow:hidden; border-radius:13px; background:var(--sportia-green-soft); }
.public-approved-gallery-grid img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
.public-approved-gallery-grid figure:hover img { transform:scale(1.025); }
.public-approved-gallery-grid figcaption { position:absolute; left:10px; bottom:9px; padding:5px 8px; border-radius:7px; color:white; background:rgba(7,20,71,.72); backdrop-filter:blur(5px); font-size:10px; font-weight:700; }
.public-approved-case-intro { display:grid; grid-template-columns:1fr 360px; gap:24px; align-items:center; margin:16px 0; padding:25px; border-radius:18px; color:white; background:var(--navy); }
.public-approved-case-intro span,.public-approved-section-heading > span { color:#75d5a4; text-transform:uppercase; letter-spacing:.09em; font-size:10px; font-weight:900; }
.public-approved-case-intro h2 { margin:7px 0; font-size:25px; }
.public-approved-case-intro p { margin:0; color:rgba(255,255,255,.72); line-height:1.55; }
.public-approved-case-intro dl { display:grid; grid-template-columns:repeat(3,1fr); margin:0; border:1px solid rgba(255,255,255,.17); border-radius:13px; overflow:hidden; }
.public-approved-case-intro dl div { padding:15px 9px; text-align:center; background:rgba(255,255,255,.06); }
.public-approved-case-intro dl div + div { border-left:1px solid rgba(255,255,255,.15); }
.public-approved-case-intro dt { color:rgba(255,255,255,.65); font-size:9px; }
.public-approved-case-intro dd { margin:5px 0 0; color:#75d5a4; font-size:23px; font-weight:900; }
.public-approved-case-section { margin:16px 0; padding:26px; border:1px solid var(--border); border-radius:18px; background:var(--surface); }
.public-approved-section-heading { max-width:760px; margin-bottom:18px; }
.public-approved-section-heading > span { color:var(--sportia-green-dark); }
.public-approved-section-heading h2 { margin:6px 0; font-size:25px; }
.public-approved-section-heading p { margin:0; color:var(--muted); line-height:1.55; }
.public-approved-overview { display:grid; grid-template-columns:1fr 1fr 1.2fr; gap:12px; }
.public-approved-overview > article { padding:18px; border-radius:14px; background:var(--surface-soft); }
.public-approved-overview h3,.public-approved-reputation h3 { display:flex; align-items:center; gap:7px; margin:0 0 13px; font-size:15px; }
.public-approved-overview h3 svg,.public-approved-reputation h3 svg { color:var(--accent); }
.public-approved-overview dl { display:grid; gap:8px; margin:0; }
.public-approved-overview dl div { display:grid; gap:2px; padding-bottom:7px; border-bottom:1px solid var(--border); }
.public-approved-overview dt { color:var(--muted); font-size:9px; }
.public-approved-overview dd { margin:0; font-size:11px; font-weight:750; }
.public-approved-overview ul { display:grid; gap:9px; margin:0; padding:0; list-style:none; }
.public-approved-overview li { display:flex; gap:8px; align-items:flex-start; font-size:11px; }
.public-approved-overview li b { min-width:60px; color:var(--navy); }
.public-approved-overview li span { color:var(--muted); }
.public-approved-services li svg { flex:0 0 auto; color:var(--accent); }
.public-approved-quality { background:linear-gradient(135deg,#f7fbf9,#edf8f2); border-color:#cfe6da; }
.public-approved-quality-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.public-approved-quality-grid article { padding:18px; border:1px solid #d4eadd; border-radius:13px; background:rgba(255,255,255,.82); }
.public-approved-quality-grid small { display:block; color:var(--sportia-green-dark); font-weight:850; }
.public-approved-quality-grid strong { display:block; margin:7px 0; color:var(--navy); font-size:31px; }
.public-approved-quality-grid strong i { font-size:13px; font-style:normal; }
.public-approved-quality-grid p { margin:0; color:var(--muted); font-size:10px; line-height:1.45; }
.public-approved-reputation-grid { display:grid; grid-template-columns:.8fr 1fr 1fr; gap:12px; }
.public-approved-reputation-grid article { padding:19px; border-radius:14px; background:var(--surface-soft); }
.public-approved-reputation-grid article > strong { display:block; color:var(--accent); font-size:38px; }
.public-approved-reputation-grid article > span { font-weight:800; }
.public-approved-reputation-grid p { color:var(--muted); font-size:11px; line-height:1.55; }
.public-approved-reputation-grid a { color:var(--sportia-green-dark); font-size:11px; font-weight:800; }
.public-approved-cta { margin-top:16px; border-radius:18px; }
.club-logo-initials { display:grid; place-items:center; color:white; background:linear-gradient(135deg,var(--sportia-green),var(--sportia-green-dark)); }
.club-logo-initials strong { font-size:22px; letter-spacing:.04em; }
.module-alignment-grid { align-items:stretch; }
.module-available-card,.module-required-card { min-height:250px; }
.module-empty-state { min-height:175px; display:grid; place-content:center; justify-items:center; gap:9px; text-align:center; color:var(--muted); }
.module-empty-state svg { color:var(--accent); }
.module-empty-state strong { color:var(--navy); font-size:16px; }
.module-empty-state p { max-width:330px; margin:0; font-size:11px; }
.module-required-list { display:grid; gap:8px; margin:0; padding:0; list-style:none; }
.module-required-list li { display:grid; grid-template-columns:20px 1fr auto; gap:8px; align-items:center; padding:11px; border:1px solid var(--border); border-radius:10px; background:var(--surface-soft); font-size:11px; }
.module-required-list li svg { color:var(--warning); }
.module-required-list li b { padding:4px 7px; border-radius:6px; color:#805d1e; background:#fff2cf; font-size:9px; }
.module-method-card { display:flex; gap:16px; align-items:flex-start; padding:5px 0; }
.module-method-card > span { width:52px; height:52px; flex:0 0 auto; display:grid; place-items:center; border-radius:14px; color:var(--accent); background:var(--sportia-green-soft); }
.module-method-card h3 { margin:0 0 5px; font-size:16px; }
.module-method-card p { margin:0; color:var(--muted); font-size:11px; line-height:1.6; }
.module-output-panel { margin-top:16px; }
.source-row { display:flex; gap:9px; align-items:center; padding:10px; border-bottom:1px solid var(--border); color:var(--navy); }
.source-row svg { color:var(--accent); }
.source-row span { display:grid; gap:2px; }
.source-row small { color:var(--muted); }
.nd-preview { min-height:150px; display:grid; grid-template-columns:42px 1fr auto; grid-template-rows:auto auto 1fr; gap:3px 10px; align-content:center; align-items:center; padding:16px; border:1px dashed #cfdce8; border-radius:12px; background:var(--surface-soft); }
.nd-preview > span { grid-row:1 / span 2; width:42px; height:42px; display:grid; place-items:center; border-radius:11px; color:var(--accent); background:var(--sportia-green-soft); }
.nd-preview > strong { color:var(--navy); font-size:12px; }
.nd-preview > b { grid-column:3; grid-row:1 / span 2; color:var(--muted); font-size:22px; }
.nd-preview > p { grid-column:2 / -1; margin:4px 0 0; color:var(--muted); font-size:10px; line-height:1.45; }
.owner-community-feed > .nd-preview { margin-top:14px; }
.aligned-nd-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.aligned-nd-grid .aligned-nd-primary { grid-column:1 / -1; }
.aligned-nd-card { min-width:0; }
.aligned-nd-card .nd-preview { min-height:190px; }
.aligned-nd-grid-foto-video .aligned-nd-card:nth-child(-n+2),
.aligned-nd-grid-network .aligned-nd-card:nth-child(-n+2),
.aligned-nd-grid-report .aligned-nd-card:last-child,
.aligned-nd-grid-dati-finanziari .aligned-nd-card:nth-child(-n+4) { grid-column:1 / -1; }
.aligned-nd-kpis .kpi-card strong { white-space:normal; }
.sidebar .side-link.is-frozen-preview {
  color:#98a1ac;
  background:#f3f5f7;
  border-color:#e4e8ec;
}
.sidebar .side-link.is-frozen-preview svg { color:#afb6bf; }
.sidebar .side-link.is-frozen-preview:hover { color:#6f7984; background:#eceff2; }
.sidebar .side-link.is-frozen-preview.active {
  color:#626d79;
  background:#e7eaee;
  box-shadow:inset 3px 0 #a9b1bb;
}
.menu-preview-badge {
  margin-left:auto;
  padding:3px 5px;
  border:1px solid #d8dde3;
  border-radius:5px;
  color:#8a939e;
  background:#fff;
  font-size:7px;
  font-weight:850;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.profile-tab.is-frozen-preview { color:#9aa3ae; background:#f4f6f7; }
.profile-tab.is-frozen-preview:hover { color:#707a85; background:#eceff2; }
.profile-tab.is-frozen-preview.active {
  color:#626d79;
  border-color:#aeb6c0;
  background:#e8ebee;
}
.tab-preview-badge {
  margin-left:5px;
  padding:2px 4px;
  border-radius:4px;
  color:#858e99;
  background:#e0e4e8;
  font-size:7px;
  font-weight:850;
  text-transform:uppercase;
}
.main-content .card { min-width:0; }
.main-content .card p,
.main-content .card li,
.main-content .card dd,
.main-content .card small,
.main-content .icon-list li { overflow-wrap:anywhere; word-break:normal; }
.main-content .icon-list li { min-width:0; }
.main-content .icon-list li svg { flex:0 0 auto; }
.main-content .table-scroll { min-width:0; max-width:100%; overflow-x:auto; }
.main-content .structure-verification-card > .table-scroll { width:100%; max-width:100%; }
.main-content .kpi-card strong { max-width:100%; overflow-wrap:anywhere; line-height:1.08; }
@media (max-width:820px) {
  .page-grid.with-rail,
  .content-grid.two,
  .content-grid.three,
  .split-2-1,
  .split-1-2,
  .ranking-grid,
  .module-alignment-grid { grid-template-columns:1fr !important; }
  .page-grid.with-rail > .right-rail { width:100%; min-width:0; }
  .main-content .card { width:100%; max-width:100%; }
  .main-content .table-scroll { margin-inline:0; }
  .main-content .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .main-content[data-page="struttura-servizi"] .structure-kpis { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  .main-content[data-page="struttura-servizi"] .facility-row {
    grid-template-columns:36px minmax(0,1fr) !important;
    min-height:0;
    height:auto;
    gap:4px 10px;
    align-items:start;
    padding-block:13px;
  }
  .main-content[data-page="struttura-servizi"] .facility-row-icon {
    grid-row:1 / span 2;
    width:34px;
    height:34px;
  }
  .main-content[data-page="struttura-servizi"] .facility-status {
    grid-column:2;
    justify-self:start;
    margin-top:4px;
    white-space:normal;
  }
  .main-content[data-page="struttura-servizi"] .services-grid {
    grid-template-columns:1fr !important;
  }
  .main-content[data-page="struttura-servizi"] .service-tile {
    width:100%;
    min-height:64px;
    height:auto;
    padding:12px;
  }
  .main-content[data-page="struttura-servizi"] .service-tile strong {
    font-size:12px;
    line-height:1.35;
  }
  .main-content[data-page="struttura-servizi"] .service-tile small {
    line-height:1.4;
  }
  .aligned-nd-grid { grid-template-columns:1fr; }
  .aligned-nd-grid .aligned-nd-card { grid-column:auto !important; }
}
@media (max-width:430px) {
  .main-content .kpi-grid { grid-template-columns:1fr; }
  .main-content[data-page="struttura-servizi"] .structure-kpis { grid-template-columns:1fr !important; }
  .module-method-card { flex-direction:column; }
  .nd-preview { grid-template-columns:38px 1fr; }
  .nd-preview > b { grid-column:2; grid-row:2; justify-self:start; font-size:18px; }
  .nd-preview > p { grid-column:1 / -1; }
  .main-content[data-page="struttura-servizi"] .structure-kpis .kpi-card {
    min-height:92px;
  }
}
.public-approved-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.public-approved-grid > section,.public-approved-pending { padding:22px; border:1px solid var(--border); border-radius:16px; background:var(--surface); }
.public-approved-grid h2,.public-approved-pending h2 { margin:0 0 14px; font-size:20px; }
.public-approved-grid dl { margin:0; display:grid; gap:9px; }
.public-approved-grid dl div { display:grid; grid-template-columns:120px 1fr; gap:12px; padding-bottom:9px; border-bottom:1px solid var(--border); }
.public-approved-grid dt { color:var(--muted); font-size:11px; }
.public-approved-grid dd { margin:0; font-weight:700; font-size:12px; }
.public-approved-grid > section > p { color:var(--muted); line-height:1.55; }
.public-approved-sources { display:grid; gap:8px; }
.public-approved-sources a { display:flex; gap:9px; align-items:center; padding:10px; border-radius:10px; background:var(--surface-soft); }
.public-approved-sources a svg { color:var(--accent); }
.public-approved-sources a span { display:grid; gap:2px; }
.public-approved-sources a small { color:var(--muted); }
.public-approved-pending { margin-top:16px; }
.public-approved-pending ul { list-style:none; padding:0; margin:0; display:flex; gap:10px; flex-wrap:wrap; }
.public-approved-pending li { padding:8px 10px; border-radius:9px; background:#fff8e8; color:#805d1e; display:flex; align-items:center; gap:6px; font-size:11px; font-weight:700; }
@media (max-width:1000px) { .public-approved-hero { grid-template-columns:1fr 1fr; } .public-approved-cover { grid-column:1/-1; height:360px; } .public-approved-overview { grid-template-columns:1fr 1fr; } .public-approved-services { grid-column:1/-1; } .public-approved-quality-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:800px) { .public-approved-hero,.public-approved-grid,.public-approved-case-intro,.public-approved-overview,.public-approved-reputation-grid { grid-template-columns:1fr; } .public-approved-cover { grid-column:auto; height:250px; } .public-approved-kpis { grid-template-columns:1fr 1fr; } .public-approved-case-intro dl { grid-template-columns:repeat(3,1fr); } .public-approved-services { grid-column:auto; } .public-approved-gallery-heading { align-items:start; flex-direction:column; } .public-approved-gallery-grid { grid-template-columns:1fr; } .public-approved-gallery-grid figure { min-height:230px; } }
@media (max-width:520px) { .public-approved-quality-grid,.public-approved-kpis { grid-template-columns:1fr; } .public-approved-case-intro dl { grid-template-columns:1fr; } .public-approved-case-intro dl div + div { border-left:0; border-top:1px solid rgba(255,255,255,.15); } }
