/* IPBA UI System: scoped event-page presentation overrides.
   Load after evento.aspx inline CSS. No data, permission or workflow changes. */
body.ipba-event-page {
  --event-bg: #ecf0f5;
  --event-surface: #fff;
  --event-muted-surface: #fafafa;
  --event-field: #fff;
  --event-border: #ddd;
  --event-border-strong: #bbc5ca;
  --event-text: #333;
  --event-muted: #626b70;
  --event-label: #505b61;
  --event-accent: #00acd6;
  --event-accent-text: #006b83;
  --event-accent-border: #00a5bb;
  --event-info-bg: #edf8fb;
  --event-info-border: #bddfe7;
  --event-success: #087942;
  --event-success-bg: #e9f8f0;
  --event-success-border: #b9dec9;
  --event-warning: #855600;
  --event-warning-bg: #fff3dc;
  --event-warning-border: #e4cc97;
  --event-danger: #ad3027;
  --event-danger-bg: #fff0ee;
  --event-danger-border: #e5b7b1;
  --event-violet: #605ca8;
  --event-violet-bg: #eeedf8;
  background: var(--event-bg);
  color: var(--event-text);
}
html[data-ipba-theme="dark"] body.ipba-event-page {
  --event-bg: #172126;
  --event-surface: #223038;
  --event-muted-surface: #293840;
  --event-field: #1b272d;
  --event-border: #3a4a52;
  --event-border-strong: #51636c;
  --event-text: #e7eef1;
  --event-muted: #aebdc4;
  --event-label: #c6d1d6;
  --event-accent: #29c3e6;
  --event-accent-text: #78deef;
  --event-accent-border: #29c3e6;
  --event-info-bg: #203f49;
  --event-info-border: #386471;
  --event-success: #91e0b3;
  --event-success-bg: #1e4033;
  --event-success-border: #3c7158;
  --event-warning: #f1d893;
  --event-warning-bg: #44391f;
  --event-warning-border: #796331;
  --event-danger: #ffb5ac;
  --event-danger-bg: #4b2c2a;
  --event-danger-border: #85544e;
  --event-violet: #c5bffc;
  --event-violet-bg: #37334d;
  color-scheme: dark;
}

/* Keep the AdminLTE sidebar offsets while using the available content width. */
body.ipba-event-page > .wrapper,
body.ipba-event-page > .wrapper > .right-side,
body.ipba-event-page > .wrapper > .right-side > .content,
body.ipba-event-page .content-wrapper {
  background: var(--event-bg);
  color: var(--event-text);
  min-width: 0;
}
body.ipba-event-page > .wrapper > .right-side > .content { padding: 10px; }
/* Bootstrap rows use -15px; keep the outer grid inside Compact padding. */
body.ipba-event-page #eventoPageV2 > .row { margin-left: -10px; margin-right: -10px; }
@media(max-width:767px){body.ipba-event-page #eventoPageV2 > .row { margin-left:-8px; margin-right:-8px; }}
body.ipba-event-page #eventoPageV2 {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  min-width: 0;
  color: var(--event-text);
  font: 13px/1.4 Arial, Helvetica, sans-serif;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body.ipba-event-page #eventoPageV2 :is(.box-body, .event-panel-body, .event-editorial-body) {
  font-family: inherit;
  font-size: 13px;
  line-height: 1.4;
}
body.ipba-event-page #eventoPageV2 :is(h1, h2, h3, h4, h5, h6) { color: var(--event-text); }
body.ipba-event-page #eventoPageV2 a:where(:not(.btn):not(.event-status):not(.event-live-badge)) { color: var(--event-accent-text); }
body.ipba-event-page #eventoPageV2 a:hover { text-decoration: underline; }
body.ipba-event-page #eventoPageV2 :is(a, button, input, select, textarea, summary, [tabindex]):focus,
body.ipba-event-page .event-roster-modal :is(a, button, input, select, textarea, [tabindex]):focus {
  outline: 2px solid var(--event-accent-border);
  outline-offset: 2px;
}

/* Neutral surfaces. Semantic states are assigned below these defaults. */
body.ipba-event-page #eventoPageV2 :is(
  .box, .event-panel, .event-toolbar, .event-summary-card,
  .event-editorial-panel, .event-course-sessions-panel, .event-course-session-card,
  .event-course-materials-panel, .event-course-teachers-panel,
  .event-course-material-card, .event-course-teacher-card, .event-weather-panel,
  .event-live-panel, .event-virtual-podium-group, .event-player-award-card,
  .event-award-card, .event-stats-panel, .event-stats-summary article,
  .event-press-panel, .event-captain-panel, .event-guest-teams,
  .event-subevents-panel, .event-subevent-card, .event-subevents-link-form,
  .event-ops-panel, .event-ops-group, .event-ops-brief > div,
  .event-national-external-teams article, .event-national-external-roster article,
  .event-national-external-matches article, .event-national-external-stats article,
  .event-national-external-logistics a, .event-national-layouts > a,
  .event-national-ranking-cards article, .event-national-ranking-full,
  .event-live-stream-button, .event-feedback-files span
) { background: var(--event-surface); border-color: var(--event-border); color: var(--event-text); }
body.ipba-event-page #eventoPageV2 :is(
  .box-header, .event-panel-header, .event-editorial-panel > header,
  .event-course-sessions-panel > header, .event-course-materials-panel > header,
  .event-course-teachers-panel > header, .event-weather-panel-header,
  .event-live-header, .event-live-switcher, .event-virtual-podium-header,
  .event-player-award-group > header, .event-player-award-group,
  .event-stats-header, .event-stats-highlights article, .event-press-header,
  .event-press-draft, .event-press-draft > header, .event-press-data,
  .event-captain-header, .event-captain-summary article, .event-guest-teams > header,
  .event-subevents-header, .event-subevents-admin, .event-subevents-admin-head,
  .event-subevent-stats span, .event-ops-group-head, .event-ops-person-note,
  .event-social-upload-form, .event-social-actionbar.is-disabled,
  .event-national-form, .event-national-match-filter, .event-national-ranking-full[open] summary,
  .event-national-layouts > a > span, .event-awards-empty, .event-stats-empty,
  .event-stats-unavailable, .event-national-external-empty,
  .event-course-session-action, .event-course-materials-empty, .event-course-teachers-empty
) { background: var(--event-muted-surface); border-color: var(--event-border); color: var(--event-text); }
body.ipba-event-page #eventoPageV2 .event-ops-panel-head,
body.ipba-event-page #eventoPageV2 .event-weather-day {
  background: var(--event-muted-surface);
  border-color: var(--event-border);
}
body.ipba-event-page #eventoPageV2 .event-hero .inner { padding: 12px 14px; }
body.ipba-event-page #eventoPageV2 .event-hero {
  background: var(--event-surface);
  border-top-color: var(--event-border);
  border-right-color: var(--event-border);
  border-bottom-color: var(--event-border);
}
body.ipba-event-page #eventoPageV2 :is(.box.box-primary, .event-editorial-panel,
  .event-course-sessions-panel, .event-course-materials-panel, .event-course-teachers-panel,
  .event-weather-panel, .event-stats-panel, .event-press-panel, .event-captain-panel,
  .event-subevents-panel, .event-ops-panel) { border-top-color: var(--event-accent-border); }
body.ipba-event-page #eventoPageV2 :is(.event-toolbar, .event-course-session-card,
  .event-course-material-card, .event-course-teacher-card, .event-award-card,
  .event-stats-summary article, .event-guest-teams, .event-subevent-card) { border-left-color: var(--event-accent-border); }
body.ipba-event-page #eventoPageV2 .event-live-panel { border-top-color: #d82b2b; }
body.ipba-event-page #eventoPageV2 .event-live-planned { border-top-color: var(--event-accent-border); }
body.ipba-event-page #eventoPageV2 .event-live-replay { border-top-color: var(--event-muted); }
body.ipba-event-page #eventoPageV2 .event-hero p { color: var(--event-muted); }
body.ipba-event-page #eventoPageV2 .event-hero .small-box-footer { color: #fff; }
body.ipba-event-page #eventoPageV2 .event-quicknav {
  background: var(--event-surface);
  border-color: var(--event-border);
  border-top-color: var(--event-accent-border);
  flex-wrap: wrap;
  align-items: stretch;
  overflow: visible;
}
body.ipba-event-page #eventoPageV2 .event-quicknav a {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex: 0 0 auto;
  min-width: 0;
  max-width: 100%;
  min-height: 30px;
  font-size: 12px;
  line-height: 1.35;
  white-space: normal;
  overflow-wrap: anywhere;
}
body.ipba-event-page #eventoPageV2 .event-quicknav a i {
  flex: 0 0 auto;
}
body.ipba-event-page #eventoPageV2 .event-quicknav a:focus-visible {
  outline: 2px solid var(--event-accent-border);
  outline-offset: 2px;
}
@media (max-width: 600px) {
  body.ipba-event-page #eventoPageV2 .event-quicknav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  body.ipba-event-page #eventoPageV2 .event-quicknav a {
    min-height: 44px;
  }
}
body.ipba-event-page #eventoPageV2 :is(.event-quicknav a, .event-collapse-toggle) {
  background: var(--event-muted-surface);
  border-color: var(--event-border-strong);
  color: var(--event-text);
}
body.ipba-event-page #eventoPageV2 :is(.box-body, .event-panel-body, .event-editorial-body) { padding: 10px; }
body.ipba-event-page #eventoPageV2 :is(.event-program-item, .event-program-note, .event-info-list li,
  .event-podium-roster, .event-podium-roster li, .event-podium-roster-empty,
  .event-awards-subtitle, .event-ops-person, .event-national-external-matches,
  .event-national-ranking-full summary, .event-press-draft > footer,
  .event-press-data-actions) { border-color: var(--event-border); }

/* Explicit text roles avoid changing icons and semantic status badges. */
body.ipba-event-page #eventoPageV2 :is(
  .event-summary-card strong, .event-program-item > div, .event-course-session-main strong,
  .event-course-material-copy strong, .event-course-teacher-copy strong,
  .event-weather-day-header strong, .event-live-stream-button span,
  .event-podium-card strong, .event-podium-roster li, .event-podium-roster li span,
  .event-player-award-copy > strong, .event-award-copy strong, .event-awards-empty strong,
  .event-stats-summary strong, .event-stats-highlights strong,
  .event-stats-empty strong, .event-stats-unavailable strong,
  .event-captain-summary strong, .event-subevent-stats strong,
  .event-ops-person-role strong, .event-social-empty strong, .event-social-copy p,
  .event-national-external-stats strong, .event-national-external-logistics strong,
  .event-national-match-state.is-final
) { color: var(--event-text); }
body.ipba-event-page #eventoPageV2 :is(
  .event-summary-card span, .event-summary-card small, .box-title small, .event-panel-title small,
  .event-editorial-panel header span, .event-weather-panel-header span,
  .event-course-sessions-panel > header span, .event-course-session-meta,
  .event-course-materials-panel > header span, .event-course-teachers-panel > header span,
  .event-course-session-copy p,
  .event-course-session-private, .event-course-material-copy p, .event-course-material-copy small,
  .event-course-teacher-copy p, .event-course-teacher-copy small,
  .event-weather-day-header span, .event-weather-description, .event-weather-note,
  .event-live-header p, .event-live-stream-button small, .event-live-stream-button em,
  .event-schedule-meta, .event-schedule-break, .event-duty-role, .event-base-team-origin,
  .event-public-roster-empty, .event-team-readiness-unavailable,
  .event-virtual-podium-header span, .event-podium-card span, .event-podium-position,
  .event-podium-roster-empty, .event-player-award-group > header span,
  .event-player-award-team, .event-award-category, .event-award-copy p,
  .event-stats-header div > span, .event-stats-summary span, .event-stats-summary small,
  .event-stats-highlights .event-stat-highlight-label, .event-stats-highlights small,
  .event-press-header p, .event-press-draft header span, .event-press-draft > footer small,
  .event-press-data summary small, .event-feedback-attachments small, .event-feedback-files,
  .event-gallery-upload small, .event-gallery-upload-status, .event-captain-header p,
  .event-captain-summary span, .event-captain-summary small, .event-captain-table td small,
  .event-guest-teams p, .event-guest-team-table td small, .event-subevents-header p,
  .event-subevent-meta, .event-subevent-stats span, .event-subevents-admin-head p,
  .event-subevents-form-actions span, .event-national-link small,
  .event-ops-panel-head p, .event-ops-brief small, .event-ops-person-role span,
  .event-ops-empty-note, .event-social-empty, .event-social-copy ul,
  .event-social-actionbar.is-disabled span, .event-national-external-source span,
  .event-national-external-teams article > div > span, .event-national-external-roster span,
  .event-national-match-filter span, .event-national-external-matches time,
  .event-national-match-copy span, .event-national-match-copy small,
  .event-national-match-state.is-planned, .event-national-external-stats span,
  .event-national-external-logistics span, .event-national-layouts small,
  .event-national-layout-source, .event-national-layout-status span,
  .event-national-ranking-cards article > div span, .event-national-ranking-cards p,
  .event-national-ranking-cards small, .event-national-ranking-full summary span
) { color: var(--event-muted); }
body.ipba-event-page #eventoPageV2 .event-podium-roster-title { color: var(--event-muted) !important; }
body.ipba-event-page #eventoPageV2 :is(label, .event-national-form label,
  .event-subevents-form label, .event-subevents-link-form label, .event-social-upload-form label) { color: var(--event-label); }

/* Information panels and navigation. */
body.ipba-event-page #eventoPageV2 :is(
  .event-referee-board-launch, .event-duty-times span, .event-program-heading,
  .event-program-subitem, .event-info-list .event-info-heading, .event-info-list .event-info-subitem,
  .event-virtual-series-note, .event-stats-progress, .event-stats-phases span,
  .event-stats-method, .event-press-note, .event-feedback-attachments, .event-feedback-status,
  .event-captain-empty, .event-captain-error, .event-subevents-empty, .event-subevents-schema,
  .event-national-link, .event-social-actionbar, .event-roster-jpeg, .event-broadcast-roster-link,
  .event-national-external-source, .event-national-layout-status,
  .event-course-session-card > time, .event-course-access, .event-public-roster-button,
  .event-live-room-link, .event-national-match-room, .event-national-match-graphic,
  .event-national-match-source, .event-live-stream-button.is-active,
  .event-ops-person.is-current
) { background: var(--event-info-bg); border-color: var(--event-info-border); color: var(--event-accent-text); }
body.ipba-event-page #eventoPageV2 :is(
  .event-referee-board-launch span, .event-duty-times strong, .event-weather-temperature,
  .event-virtual-series-note strong, .event-stats-progress strong, .event-stats-phases strong,
  .event-press-note strong, .event-social-actionbar span, .event-live-stream-button.is-active span,
  .event-live-stream-button.is-active em, .event-course-session-card > time strong,
  .event-national-ranking-cards article > div strong, .event-national-external-roster b
) { color: var(--event-accent-text); }
body.ipba-event-page #eventoPageV2 :is(
  .event-section-title-icon, .box-title > .event-section-title-icon, .event-panel-title > i,
  .event-editorial-panel > header > i, .event-weather-panel-header > i, .event-live-title-icon,
  .event-info-list i, .event-course-sessions-panel > header > i, .event-course-material-icon,
  .event-course-materials-panel > header > i, .event-course-teachers-panel > header > i,
  .event-course-teacher-icon, .event-national-external-logistics i,
  .event-weather-icon, .event-player-award-group > header > i, .event-award-icon,
  .event-stats-header > i, .event-stats-summary article > i, .event-press-header > i,
  .event-press-draft > header > i, .event-captain-team > i, .event-subevents-icon,
  .event-ops-group-title .event-ops-icon
) { background: var(--event-info-bg); color: var(--event-accent-text); }
body.ipba-event-page #eventoPageV2 :is(.event-quicknav a, .event-collapse-toggle, .event-team-menu-toggle,
  .event-course-access, .event-public-roster-button, .event-live-room-link,
  .event-national-match-room, .event-national-match-graphic, .event-national-match-source,
  .event-broadcast-roster-link, .event-roster-jpeg, .event-live-stream-button):is(:hover, :focus) {
  background: var(--event-info-bg);
  border-color: var(--event-accent-border);
  color: var(--event-accent-text);
}

/* Forms, Bootstrap menus and neutral buttons. */
body.ipba-event-page #eventoPageV2 :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
  background: var(--event-field);
  border-color: var(--event-border-strong);
  color: var(--event-text);
  min-height: 30px;
}
body.ipba-event-page #eventoPageV2 :is(input, textarea)::placeholder { color: var(--event-muted); opacity: 1; }
body.ipba-event-page #eventoPageV2 :is(input, select, textarea):disabled,
body.ipba-event-page #eventoPageV2 :is(input, textarea)[readonly] { background: var(--event-muted-surface); color: var(--event-muted); }
body.ipba-event-page #eventoPageV2 .dropdown-menu { background: var(--event-surface); border-color: var(--event-border-strong); }
body.ipba-event-page #eventoPageV2 .dropdown-menu > li > a { color: var(--event-text); }
body.ipba-event-page #eventoPageV2 .dropdown-menu > li > a:is(:hover, :focus),
body.ipba-event-page #eventoPageV2 .dropdown-menu > .active > a { background: var(--event-info-bg); color: var(--event-accent-text); }
body.ipba-event-page #eventoPageV2 .dropdown-menu > .dropdown-header { background: var(--event-muted-surface); color: var(--event-accent-text); }
body.ipba-event-page #eventoPageV2 .dropdown-menu > .divider { background: var(--event-border); }
body.ipba-event-page #eventoPageV2 .dropdown-menu > .disabled > a { color: var(--event-muted); }
body.ipba-event-page #eventoPageV2 .btn { min-height: 30px; white-space: normal; }
body.ipba-event-page #eventoPageV2 .btn-default,
body.ipba-event-page .event-roster-modal .btn-default { background: var(--event-muted-surface); border-color: var(--event-border-strong); color: var(--event-text); }
body.ipba-event-page #eventoPageV2 .btn-info { background: var(--event-accent); border-color: var(--event-accent-border); color: #07333d; }
body.ipba-event-page #eventoPageV2 .btn-warning { background: #f39c12; border-color: #bc7607; color: #402900; }
body.ipba-event-page #eventoPageV2 .btn-success { background: #008548; border-color: #00773f; color: #fff; }
body.ipba-event-page #eventoPageV2 .btn-danger { background: #bc3a2c; border-color: #a42d21; color: #fff; }

/* Table contrast also covers tables inserted by server-side includes. */
body.ipba-event-page #eventoPageV2 table { background: var(--event-surface); color: var(--event-text); }
body.ipba-event-page #eventoPageV2 table :is(th, td) { border-color: var(--event-border); }
body.ipba-event-page #eventoPageV2 table th { background: var(--event-muted-surface); color: var(--event-label); font-size: 11px; }
body.ipba-event-page #eventoPageV2 table td { color: var(--event-text); font-size: 12px; }
body.ipba-event-page #eventoPageV2 .table-striped > tbody > tr:nth-of-type(odd) > td { background: var(--event-muted-surface); }
body.ipba-event-page #eventoPageV2 .table-hover > tbody > tr:hover > td { background: var(--event-info-bg); }
body.ipba-event-page #eventoPageV2 :is(.event-table-scroll, .event-training-scroll) { scrollbar-color: var(--event-border-strong) var(--event-muted-surface); }
body.ipba-event-page #eventoPageV2 :is(.event-table-scroll, .table-responsive)::-webkit-scrollbar-track { background: var(--event-muted-surface); }
body.ipba-event-page #eventoPageV2 :is(.event-table-scroll, .table-responsive)::-webkit-scrollbar-thumb { background: var(--event-border-strong); }
body.ipba-event-page #eventoPageV2 .event-standing-points { background: var(--event-info-bg) !important; color: var(--event-accent-text) !important; }
body.ipba-event-page #eventoPageV2 .event-stat-series { color: var(--event-accent-text) !important; }
body.ipba-event-page #eventoPageV2 .event-national-ranking-full tr.is-italy td { background: var(--event-info-bg) !important; color: var(--event-accent-text); }

/* Calendar: retain distinct slots and readable scores in both themes. */
body.ipba-event-page #eventoPageV2 .event-schedule-score { background: var(--event-surface); color: var(--event-text); }
body.ipba-event-page #eventoPageV2 .event-schedule-score span { color: var(--event-muted); }
body.ipba-event-page #eventoPageV2 .event-schedule-match { border-color: var(--event-border); }
html[data-ipba-theme="dark"] body.ipba-event-page #eventoPageV2 .event-schedule-slot-0 { background: #23353f; border-color: #405763; }
html[data-ipba-theme="dark"] body.ipba-event-page #eventoPageV2 .event-schedule-slot-1 { background: #36352a; border-color: #5b5843; }
html[data-ipba-theme="dark"] body.ipba-event-page #eventoPageV2 .event-schedule-slot-2 { background: #263a31; border-color: #455e50; }
html[data-ipba-theme="dark"] body.ipba-event-page #eventoPageV2 .event-schedule-slot-3 { background: #382f3c; border-color: #5b4b61; }
body.ipba-event-page #eventoPageV2 .event-schedule-slot:is(:hover, :focus-within) { background: var(--event-info-bg); border-color: var(--event-accent-border); }
body.ipba-event-page #eventoPageV2 .event-schedule-tools a { color: var(--event-accent-text); }

/* Preserve semantic meaning and medal borders instead of flattening statuses. */
body.ipba-event-page #eventoPageV2 :is(
  .event-status-open, .event-team-state.is-ok, .event-team-readiness.is-ready,
  .event-team-readiness-chip.is-ok, .event-captain-status.is-ready, .event-captain-summary article.is-ready,
  .event-press-state.is-ready, .event-press-copy-status, .event-ops-state.is-live,
  .event-national-layout-provider.is-pb, .event-national-ranking-status.is-final,
  .event-stats-table .is-positive
) { background: var(--event-success-bg); color: var(--event-success); border-color: var(--event-success-border); }
body.ipba-event-page #eventoPageV2 :is(
  .event-team-state.is-warning, .event-team-readiness:not(.is-ready), .event-team-readiness-chip:not(.is-ok),
  .event-captain-status.is-warning, .event-captain-note, .event-captain-summary article.is-warning,
  .event-press-state.is-warning, .event-ops-state.is-draft, .event-ops-person-note.is-empty,
  .event-ops-schema-warning, .event-national-layout-provider.is-manual,
  .event-national-ranking-status.is-live, .event-podium-roster li small
) { background: var(--event-warning-bg); color: var(--event-warning); border-color: var(--event-warning-border); }
body.ipba-event-page #eventoPageV2 .event-stat-penalties { background: var(--event-warning-bg); color: var(--event-warning) !important; }
body.ipba-event-page #eventoPageV2 :is(.event-status-live, .event-stats-table .is-negative, .event-subevents-empty.is-error,
  .event-national-external-matches article.is-live) { background: var(--event-danger-bg); color: var(--event-danger); border-color: var(--event-danger-border); }
body.ipba-event-page #eventoPageV2 :is(.event-status-planned, .event-virtual-podium-header small,
  .event-player-award-series) { background: var(--event-info-bg); color: var(--event-accent-text); }
body.ipba-event-page #eventoPageV2 :is(.event-status-closed, .event-team-state.is-neutral, .event-award-series) { background: var(--event-muted-surface); color: var(--event-muted); }
body.ipba-event-page #eventoPageV2 :is(.event-stats-table .is-win, .event-standing-diff-positive,
  .event-gallery-upload-status.is-complete) { color: var(--event-success); }
body.ipba-event-page #eventoPageV2 :is(.event-stats-table .is-loss, .event-standing-diff-negative,
  .event-gallery-upload-status.is-error, .event-national-match-state.is-live) { color: var(--event-danger); }
body.ipba-event-page #eventoPageV2 :is(.event-captain-missing, .event-ops-person-role span.is-pending,
  .event-ops-schema-warning span, .event-schedule-tools a.is-missing) { color: var(--event-warning); }
body.ipba-event-page #eventoPageV2 :is(.event-stats-table .is-neutral, .event-standing-diff-zero) { color: var(--event-muted); }
body.ipba-event-page #eventoPageV2 .event-player-award-rookie > header > i { background: var(--event-violet-bg); color: var(--event-violet); }
body.ipba-event-page #eventoPageV2 .event-podium-card { background: var(--event-muted-surface); color: var(--event-text); border-right-color: var(--event-border); border-bottom-color: var(--event-border); border-left-color: var(--event-border); }
body.ipba-event-page #eventoPageV2 .event-gallery-upload { background: var(--event-info-bg) !important; border-color: var(--event-info-border) !important; color: var(--event-accent-text); }
body.ipba-event-page #eventoPageV2 .event-social-preview { background: var(--event-muted-surface); border-color: var(--event-border); }
body.ipba-event-page #eventoPageV2 .event-national-match-room.is-live { background: #bc3a2c; border-color: #a42d21; color: #fff; }
body.ipba-event-page #eventoPageV2 .event-social-actionbar.is-disabled { background: var(--event-muted-surface); border-color: var(--event-border); border-left-color: var(--event-warning); color: var(--event-muted); }
body.ipba-event-page #eventoPageV2 .event-weather-stats span { background: var(--event-surface); border-color: var(--event-border); color: var(--event-muted); }
body.ipba-event-page #eventoPageV2 :is(.event-course-session-kicker, .event-course-teacher-copy > span,
  .event-press-kicker, .event-subevent-format, .event-subevents-kicker,
  .event-subevents-admin-head span, .event-ops-kicker) { color: var(--event-accent-text); }
body.ipba-event-page #eventoPageV2 :is(.event-course-material-kicker span,
  .event-course-material-badges > span, .event-course-material-state.is-archived) { background: var(--event-muted-surface); color: var(--event-muted); }
body.ipba-event-page #eventoPageV2 :is(.event-course-material-card.is-complete,
  .event-course-material-card.is-complete .event-course-material-icon,
  .event-course-material-state.is-published, .event-course-material-badges .event-course-material-done,
  .alert.alert-success) { background: var(--event-success-bg); border-color: var(--event-success-border); color: var(--event-success); }
body.ipba-event-page #eventoPageV2 :is(.event-course-material-state.is-draft,
  .event-course-material-badges .event-course-material-required, .alert.alert-warning) { background: var(--event-warning-bg); border-color: var(--event-warning-border); color: var(--event-warning); }
body.ipba-event-page #eventoPageV2 :is(.event-course-material-state.is-review, .alert.alert-info) { background: var(--event-info-bg); border-color: var(--event-info-border); color: var(--event-accent-text); }
body.ipba-event-page #eventoPageV2 .alert.alert-danger { background: var(--event-danger-bg); border-color: var(--event-danger-border); color: var(--event-danger); }

body.ipba-event-page .right-side > .content-header {
  background: var(--event-muted-surface);
  border-bottom: 1px solid var(--event-border);
  color: var(--event-text);
}
body.ipba-event-page .right-side > .content-header :is(h1, .breadcrumb) { color: var(--event-text); }
body.ipba-event-page .right-side > .content-header :is(small, .breadcrumb > .active) { color: var(--event-muted); }
body.ipba-event-page .right-side > .content-header .breadcrumb a { color: var(--event-accent-text); }

/* The public roster modal is a sibling of the event container. */
body.ipba-event-page .event-roster-modal { color: var(--event-text); font: 13px/1.4 Arial, Helvetica, sans-serif; }
body.ipba-event-page .event-roster-modal :is(.modal-content, .modal-body, .event-roster-public-list li) { background: var(--event-surface); border-color: var(--event-border); color: var(--event-text); }
body.ipba-event-page .event-roster-modal :is(.modal-header, .modal-footer, .event-roster-public-summary article) { background: var(--event-muted-surface); border-color: var(--event-border); }
body.ipba-event-page .event-roster-modal .modal-header { border-top-color: var(--event-accent-border); }
body.ipba-event-page .event-roster-modal :is(.modal-title, .event-roster-public-head h4,
  .event-roster-public-summary strong, .event-roster-public-player-name strong) { color: var(--event-text); }
body.ipba-event-page .event-roster-modal :is(.event-roster-loading, .event-roster-public-head small,
  .event-roster-public-summary span, .event-roster-public-player-name small) { color: var(--event-muted); }
body.ipba-event-page .event-roster-modal :is(.event-roster-public-head, .event-roster-public-message) { background: var(--event-info-bg); border-color: var(--event-info-border); color: var(--event-accent-text); }
body.ipba-event-page .event-roster-modal .event-roster-public-head > div > span { color: var(--event-accent-text); }
body.ipba-event-page .event-roster-modal :is(.event-roster-public-summary article.is-captain,
  .event-roster-public-summary article.is-warning, .event-roster-public-captain) { background: var(--event-warning-bg); border-color: var(--event-warning-border); color: var(--event-warning); }
body.ipba-event-page .event-roster-modal .event-roster-public-message.is-error { background: var(--event-danger-bg); border-color: var(--event-danger-border); color: var(--event-danger); }
body.ipba-event-page .event-roster-modal .close { color: var(--event-text); opacity: 1; text-shadow: none; }
body.ipba-event-page .event-roster-modal .event-roster-public-player-name strong { font-size: 13px; line-height: 1.35; }
body.ipba-event-page .event-roster-modal :is(.event-roster-public-head small, .event-roster-public-summary span,
  .event-roster-public-player-name small, .event-roster-public-captain) { font-size: 12px; }

/* Footer belongs to the shared include, so scope it to this body only. */
body.ipba-event-page .footer.footer-dati { background: #4e4e4e; border-top: 1px solid var(--event-border); color: #fff; padding: 12px; }
body.ipba-event-page .footer.footer-dati :is(a, .ipba-cookie-settings-link) { color: #fff; text-decoration: underline; }
html[data-ipba-theme="dark"] body.ipba-event-page .footer.footer-dati { background: var(--event-muted-surface); color: var(--event-muted); }
html[data-ipba-theme="dark"] body.ipba-event-page .footer.footer-dati :is(a, .ipba-cookie-settings-link) { color: var(--event-accent-text); }
body.ipba-event-page .footer.footer-dati table { max-width: 100%; }

/* Keep the same training controls and table on desktop; stack slots on phones. */
@media (max-width: 767px) {
  body.ipba-event-page #eventoPageV2 .event-training-scroll { overflow: visible; border: 0; }
  body.ipba-event-page #eventoPageV2 .event-training-table { display: block; min-width: 0; width: 100%; border: 0; }
  body.ipba-event-page #eventoPageV2 .event-training-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  body.ipba-event-page #eventoPageV2 .event-training-table tbody { display: block; }
  body.ipba-event-page #eventoPageV2 .event-training-table tbody > tr { display: block; margin-bottom: 10px; border: 1px solid var(--event-border); background: var(--event-surface); }
  body.ipba-event-page #eventoPageV2 .event-training-table tbody > tr > td { display: block; width: auto; min-width: 0; border: 0; border-top: 1px solid var(--event-border); padding: 8px; text-align: left; white-space: normal; overflow-wrap: anywhere; }
  body.ipba-event-page #eventoPageV2 .event-training-table tbody > tr > td:first-child { border-top: 0; background: var(--event-muted-surface); font-weight: bold; }
  body.ipba-event-page #eventoPageV2 .event-training-table td::before { content: attr(data-label); display: block; margin-bottom: 4px; color: var(--event-label); font-size: 11px; font-weight: bold; }
  body.ipba-event-page #eventoPageV2 .event-training-table .row { margin: 0; }
  body.ipba-event-page #eventoPageV2 .event-training-table .form-group { padding: 0; margin: 0 0 6px; }
  body.ipba-event-page #eventoPageV2 .event-training-table .form-group:empty { display: none; }
  body.ipba-event-page #eventoPageV2 .event-training-table :is(select, .btnPrenota, .btnPagamento, .btnRimuoviPrenotazione) { min-height: 44px; }
  body.ipba-event-page #eventoPageV2 .event-training-table select { width: 100%; font-size: 16px; }
  body.ipba-event-page #eventoPageV2 .event-training-table :is(.btnPrenota, .btnPagamento, .btnRimuoviPrenotazione) { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; white-space: normal; }
}

@media (max-width: 1024px) {
  body.ipba-event-page #eventoPageV2 :is(.event-stats-summary, .event-summary-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.ipba-event-page #eventoPageV2 .event-schedule-list { padding-right: 5px; padding-left: 5px; }
}
@media (max-width: 767px) {
  body.ipba-event-page > .wrapper > .right-side > .content { padding: 8px; }
  body.ipba-event-page #eventoPageV2 { font-size: 14px; line-height: 1.45; }
  body.ipba-event-page #eventoPageV2 :is(.box-body, .event-panel-body, .event-editorial-body) { padding: 8px; font-size: 14px; line-height: 1.45; }
  body.ipba-event-page #eventoPageV2 :is(.event-hero .inner, .event-weather-grid, .event-course-sessions-list) { padding: 10px; }
  body.ipba-event-page #eventoPageV2 .event-hero h3 { font-size: 21px; }
  body.ipba-event-page #eventoPageV2 .event-collapse-header { padding-right: 10px !important; padding-left: 10px !important; }
  body.ipba-event-page #eventoPageV2 :is(.event-program-item > div, .event-program-note, .event-info-list li,
    .event-award-copy p, .event-awards-empty span, .event-social-copy p, .event-social-copy ul,
    .event-social-actionbar span, .event-schedule-meta, .event-schedule-team,
    .event-schedule-team a, .event-entity-with-thumb a, .event-schedule-break) { font-size: 14px; line-height: 1.4; }
  body.ipba-event-page #eventoPageV2 :is(.event-summary-card span, .event-summary-card small,
    .box-title small, .event-panel-title small, .event-editorial-panel header span,
    .event-weather-panel-header span, .event-weather-note, .event-weather-stats span,
    .event-live-header p, .event-stats-summary span, .event-stats-summary small,
    .event-stats-highlights small, .event-stats-method, .event-feedback-files,
    .event-feedback-status, .event-captain-summary span, .event-captain-summary small,
    .event-captain-note, .event-team-readiness-chip, .event-team-readiness small,
    .event-public-roster-empty, .event-course-session-meta, .event-subevent-meta,
    .event-national-external-roster span, .event-national-match-copy span,
    .event-national-match-copy small, .event-national-ranking-cards small) { font-size: 12px; line-height: 1.4; }
  body.ipba-event-page #eventoPageV2 :is(.event-summary-card strong, .event-team-readiness-title,
    .event-public-roster-button, .event-team-state, .event-captain-status,
    .event-weather-description, .event-duty-role, .event-collapse-toggle,
    .event-main-dropdown > li > a, .event-team-dropdown > li > a,
    .event-section-dropdown > li > a, .event-toolbar .btn) { font-size: 13px; }
  body.ipba-event-page #eventoPageV2 .event-schedule-list { padding-right: 0; padding-left: 0; }
  body.ipba-event-page #eventoPageV2 .event-schedule-slot { padding: 4px; }
  body.ipba-event-page #eventoPageV2 .event-schedule-match { padding: 8px 3px; gap: 8px; }
  body.ipba-event-page #eventoPageV2 .event-schedule-contest { grid-template-columns: minmax(0, 1fr) 48px minmax(0, 1fr); }
  body.ipba-event-page #eventoPageV2 .event-schedule-team .event-entity-with-thumb { flex-wrap: wrap; }
  body.ipba-event-page #eventoPageV2 .event-schedule-team-home .event-entity-with-thumb { justify-content: flex-end; }
  body.ipba-event-page #eventoPageV2 .event-schedule-score { font-size: 15px; }
  body.ipba-event-page #eventoPageV2 .event-schedule-tools a { background: var(--event-surface); border-color: var(--event-border-strong); }
  body.ipba-event-page #eventoPageV2 .event-program-subitem { margin-left: 16px; }
  body.ipba-event-page #eventoPageV2 :is(.event-podium-roster li, .event-podium-roster li span) { font-size: 13px !important; line-height: 1.4; }
  body.ipba-event-page #eventoPageV2 .event-podium-roster ul { max-height: none; }
  body.ipba-event-page #eventoPageV2 .event-team-list-table > tbody > tr > th:last-child { width: auto !important; }
  body.ipba-event-page #eventoPageV2 .event-team-dropdown { min-width: 220px; max-width: calc(100vw - 40px); }
  body.ipba-event-page #eventoPageV2 .event-team-dropdown > li > a { white-space: normal; overflow-wrap: anywhere; }
  body.ipba-event-page #eventoPageV2 .event-duty-header .event-duty-times { width: 100%; margin-left: 0; }
  body.ipba-event-page #eventoPageV2 :is(.event-stats-progress, .event-press-state, .event-captain-print) { margin-left: 0; }
  body.ipba-event-page .footer.footer-dati table,
  body.ipba-event-page .footer.footer-dati tbody { display: block; width: 100%; }
  body.ipba-event-page .footer.footer-dati tr { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
  body.ipba-event-page .footer.footer-dati td { display: block; max-width: 100%; padding: 0 !important; text-align: center; overflow-wrap: anywhere; }
  body.ipba-event-page .footer.footer-dati img { max-width: 100%; margin: 0 !important; }
}
@media (max-width: 420px) {
  body.ipba-event-page #eventoPageV2 .event-summary-grid { grid-template-columns: 1fr; }
  body.ipba-event-page #eventoPageV2 .event-stats-summary { grid-template-columns: 1fr; }
  body.ipba-event-page #eventoPageV2 .event-stats-highlights { grid-template-columns: 1fr; }
}
@media (pointer: coarse), (max-width: 600px) {
  body.ipba-event-page #eventoPageV2 :is(.btn, button, summary, .event-quicknav a,
    .event-main-dropdown > li > a, .event-team-dropdown > li > a, .event-section-dropdown > li > a,
    .event-team-menu-toggle, .event-course-access, .event-national-map-link,
    .event-live-room-link, .event-roster-jpeg, .event-broadcast-roster-link,
    .event-national-match-room, .event-national-match-graphic, .event-national-match-source,
    .event-schedule-tools a, .event-section-action),
  body.ipba-event-page .event-roster-modal :is(button, .btn) {
    box-sizing: border-box;
    min-height: 44px;
    touch-action: manipulation;
  }
  body.ipba-event-page #eventoPageV2 :is(.event-team-menu-toggle, .event-schedule-tools a,
    .event-section-action, .event-national-match-source),
  body.ipba-event-page .event-roster-modal .close { min-width: 44px; }
  body.ipba-event-page #eventoPageV2 :is(.event-quicknav a, .event-national-map-link,
    .event-course-access, .event-section-action) { display: inline-flex; align-items: center; }
  body.ipba-event-page #eventoPageV2 :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
    min-height: 44px;
    font-size: 16px;
    line-height: 1.4;
  }
  body.ipba-event-page #eventoPageV2 :is(.event-social-upload-form .form-control, .event-national-match-filter select) { height: auto; }
  body.ipba-event-page #eventoPageV2 .event-national-match-source { flex-basis: 44px; }
  body.ipba-event-page #eventoPageV2 .event-schedule-slot:is(:hover, :focus-within) { transform: none; }
  body.ipba-event-page .footer.footer-dati :is(a, .ipba-cookie-settings-link) { display: inline-flex; min-height: 44px; align-items: center; }
}
@media (prefers-reduced-motion: reduce) {
  body.ipba-event-page #eventoPageV2 .event-schedule-slot { transition: none; }
}
/* Keep the main dropdown inside the content toolbar, never behind the sidebar. */
body.ipba-event-page #eventoPageV2 .event-main-menu { position: static; }
body.ipba-event-page #eventoPageV2 .event-main-dropdown {
  left: 6px; right: auto; min-width: 0; width: 340px;
  max-width: calc(100% - 16px); box-sizing: border-box;
  overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain;
}
body.ipba-event-page #eventoPageV2 .event-main-dropdown > li > a {
  white-space: normal; overflow-wrap: anywhere;
}
@media (max-width: 767px) {
  body.ipba-event-page #eventoPageV2 .event-main-dropdown > li > a { min-height: 44px; }
}
