/* =====================================================================
   PISTEKART ITALIA — WHITE EDITION
   Shared, presentation-only stylesheet. Original DOM layout, IDs, forms,
   Thymeleaf attributes, service calls and dynamic data are left unchanged.
   Palette: warm off-white / racing blue / muted garnet.
   ===================================================================== */
:root {
  --bg: #f7f5f0;
  --panel: #fffefa;
  --panel-soft: #f2f4f4;
  --text: #1a2d3b;
  --muted: #667582;
  --line: #dce2e2;
  --red: #823342;
  --red2: #692632;
  --blue: #274d67;
  --blue-dark: #19364b;
  --blue-soft: #eaf0f3;
  --radius: 12px;
  --shadow-clean: 0 3px 14px rgba(22, 43, 57, .045);
  --font-display: 'Teko', sans-serif;
  --font-body: 'Inter', sans-serif;
}
html { scroll-behavior: smooth; }
body:not(.promotion-management) {
  background: var(--bg) !important;
  color: var(--text);
  font-family: var(--font-body);
  accent-color: var(--red);
}
body:not(.promotion-management)::before,
body:not(.promotion-management)::after { box-shadow: none !important; }
body:not(.promotion-management) a { text-underline-offset: 3px; }
body:not(.promotion-management) :is(a, button, input, select, textarea):focus-visible {
  outline: 2px solid var(--blue) !important;
  outline-offset: 3px;
}
body:not(.promotion-management) :is(button, .login-btn, .hero-btn, .filter-btn, .section-link,
 .selected-track-action, .event-card-button, .btn-red, .btn-ghost):hover {
  box-shadow: none !important;
  filter: none;
}
body:not(.promotion-management) :is(.hero-btn, .filter-btn, .login-btn, .event-card-moderno,
 .hero-mini-event, .track-row, .video-item, .card, .kart-item):hover {
  transform: none !important;
}
/* ---------------------------------------------------------------------
   Single global navigation and accessible mobile menu
   --------------------------------------------------------------------- */
.main-content > .site-navbar,
.site-navbar {
  position: relative !important;
  top: 0 !important;
  left: auto !important;
  right: auto !important;
  height: 76px !important;
  min-height: 76px;
  width: 100%;
  padding: 0 max(24px, 4.5vw) !important;
  background: var(--blue-dark) !important;
  border: 0 !important;
  border-bottom: 3px solid var(--red) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  z-index: 1100 !important;
}
.site-navbar .navbar-brand { display: flex; align-items: center; flex: 0 0 auto; padding: 0; min-width: 0; }
.site-navbar .logo { display: inline-flex !important; align-items: center; text-decoration: none; }
.site-navbar .logo img { display: block; width: auto; height: 43px !important; max-width: 183px; object-fit: contain; }
.site-navbar .navbar-links { display: flex !important; flex-flow: row nowrap; align-items: center; gap: clamp(12px, 1.8vw, 29px); padding: 0; margin: 0; list-style: none; }
.site-navbar .navbar-links li { flex: 0 0 auto; }
.site-navbar .navbar-links li.desktop-only { display: list-item; }
.site-navbar .navbar-links a:not(.login-btn) {
  color: #e3eaf0 !important;
  font-family: var(--font-display);
  font-style: normal;
  font-weight: 600;
  font-size: 1.13rem;
  line-height: 1;
  letter-spacing: .025em;
  text-decoration: none;
  text-transform: uppercase;
  padding: 27px 0 21px !important;
  text-shadow: none !important;
}
.site-navbar .navbar-links a:not(.login-btn)::after {
  background: #c7858d !important;
  bottom: 16px !important;
  height: 2px !important;
  box-shadow: none !important;
}
.site-navbar .navbar-links a:not(.login-btn).active,
.site-navbar .navbar-links a:not(.login-btn):hover { color: #ffffff !important; }
.site-navbar .login-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 39px !important;
  min-width: 100px !important;
  padding: 0 14px;
  border: 1px solid #a76571 !important;
  border-radius: 7px !important;
  background: var(--red) !important;
  color: #fff !important;
  box-shadow: none !important;
  text-decoration: none;
  font-family: var(--font-display);
  font-size: 1.08rem;
  text-shadow: none !important;
}
.site-navbar .login-btn span { display: inline; }
.site-navbar .login-btn:hover { background: var(--red2) !important; }
.site-menu-toggle, .site-mobile-menu { display: none; }
/* ---------------------------------------------------------------------
   Hero blocks: the original photographs stay, but no dark glow or haze
   --------------------------------------------------------------------- */
body:not(.promotion-management) :is(.hero-catch, .page-hero) {
  background-image:
    linear-gradient(90deg, rgba(247,245,240,.99) 0%, rgba(247,245,240,.96) 38%, rgba(247,245,240,.73) 67%, rgba(247,245,240,.24) 100%),
    url('/sfondo.png') !important;
  background-position: center, right center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  color: var(--text) !important;
  box-shadow: none !important;
}
body:not(.promotion-management) :is(.hero-catch, .page-hero)::after { background: none !important; content: none !important; }
body:not(.promotion-management) .hero-title {
  color: var(--blue-dark) !important;
  font-style: normal !important;
  text-shadow: none !important;
  letter-spacing: -.025em !important;
}
body:not(.promotion-management) .hero-title span { color: var(--red) !important; text-shadow: none !important; }
body:not(.promotion-management) .hero-subtitle { color: #435764 !important; font-weight: 500; text-shadow: none !important; }
body:not(.promotion-management) .hero-btn,
body:not(.promotion-management) .filter-btn,
body:not(.promotion-management) .selected-track-action,
body:not(.promotion-management) .btn-red {
  background: var(--blue) !important;
  border: 1px solid var(--blue) !important;
  color: #fff !important;
  border-radius: 7px !important;
  box-shadow: none !important;
  text-shadow: none !important;
  clip-path: none !important;
}
body:not(.promotion-management) .hero-btn.primary { background: var(--red) !important; border-color: var(--red) !important; }
body:not(.promotion-management) .hero-btn.secondary,
body:not(.promotion-management) .btn-ghost {
  background: var(--panel) !important;
  color: var(--blue) !important;
  border: 1px solid #becbd2 !important;
}
body:not(.promotion-management) .hero-btn:hover,
body:not(.promotion-management) .filter-btn:hover,
body:not(.promotion-management) .selected-track-action:hover { opacity: .91; }
body:not(.promotion-management) .hero-btn::before,
body:not(.promotion-management) .filter-btn::before { display: none !important; }
/* ---------------------------------------------------------------------
   Public pages / cards / explanatory sections
   --------------------------------------------------------------------- */
body:not(.promotion-management) :is(.home-shell, .page-shell) { color: var(--text); }
body:not(.promotion-management) :is(.home-panel, .page-panel, .card, .info-card,
 .filter-section, .results-tab, .track-info-panel, .calendar-container,
 .fleet-panel, .events-panel, .faq-panel, .media-panel) {
  background: var(--panel) !important;
  color: var(--text) !important;
  border: 1px solid var(--line) !important;
  box-shadow: var(--shadow-clean) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
body:not(.promotion-management) .home-panel,
body:not(.promotion-management) .page-panel { border-radius: 12px !important; }
body:not(.promotion-management) :is(.section-title, .card-title, .subsection-title,
 .filter-section h3, .track-info-panel h3, .track-detail-title,
 .track-panel-kicker, .calendar-header h5, .contact-title, .section-headline h2) {
  color: var(--blue-dark) !important;
  font-style: normal !important;
  text-shadow: none !important;
}
body:not(.promotion-management) :is(.section-title, .section-headline h2) { letter-spacing: -.012em !important; }
body:not(.promotion-management) :is(.section-link, .back-link, .section-pill,
 .desktop-hero-events-link) { color: var(--red) !important; text-shadow: none !important; }
body:not(.promotion-management) .info-card p,
body:not(.promotion-management) .feature-row span,
body:not(.promotion-management) .description-text { color: var(--muted) !important; text-shadow: none !important; }
body:not(.promotion-management) .feature-row { border-bottom: 1px solid var(--line) !important; }
body:not(.promotion-management) .feature-row strong { color: var(--blue-dark) !important; }
body:not(.promotion-management) .feature-row i,
body:not(.promotion-management) .card-title i,
body:not(.promotion-management) .track-detail-title i { color: var(--red) !important; text-shadow: none !important; }
body:not(.promotion-management) footer {
  background: #e9edec !important;
  border-top: 1px solid var(--line) !important;
  color: #647380 !important;
  text-shadow: none !important;
}
/* Keep advertising skins and dynamic banners functional, adapt their dimming. */
body:not(.promotion-management) :is(.home-promotion-skin-area, .public-promotion-skin-area,
 .track-promotion-skin-area) { background: transparent !important; }
body:not(.promotion-management) :is(.home-promotion-skin-area.has-promotion-background,
 .public-promotion-skin-area.has-promotion-background,
 .track-promotion-skin-area.has-promotion-background)::before {
  background: rgba(247,245,240,.72) !important;
}
body:not(.promotion-management) :is(.home-promotion-background-skin,
 .public-promotion-background-skin, .track-promotion-background-skin) { opacity: .44 !important; }
body:not(.promotion-management) .promotion-banner { border-radius: 9px; box-shadow: none !important; }
body:not(.promotion-management) .promotion-banner:focus-visible { outline-color: var(--blue) !important; }
/* ---------------------------------------------------------------------
   Search, result list, data blocks and Leaflet
   --------------------------------------------------------------------- */
body:not(.promotion-management) :is(.filter-section, .track-info-panel,
 .filters-bar, .filter-group, .results-tab) { color: var(--text); }
body:not(.promotion-management) :is(.field-label, .filter-group label) {
  color: #546b78 !important; text-transform: uppercase; letter-spacing: .04em;
}
body:not(.promotion-management) :is(.filter-section input, .filter-section select,
 .filter-group input, .filter-group select, .filters-inner input, .filters-inner select) {
  background: #ffffff !important;
  color: var(--text) !important;
  border: 1px solid #cbd5d8 !important;
  border-radius: 7px !important;
  box-shadow: none !important;
}
body:not(.promotion-management) :is(.filter-section select, .filter-group select) option { background: white !important; color: var(--text) !important; }
body:not(.promotion-management) :is(.filter-section input, .filter-group input)::placeholder { color: #829099 !important; }
body:not(.promotion-management) :is(.filter-section input, .filter-section select,
 .filter-group input, .filter-group select):focus { border-color: var(--blue) !important; outline: 1px solid var(--blue) !important; }
body:not(.promotion-management) .filters-bar { background: var(--panel) !important; border-color: var(--line) !important; }
body:not(.promotion-management) .track-row {
  background: transparent !important;
  border-color: var(--line) !important;
  color: var(--text) !important;
  box-shadow: none !important;
}
body:not(.promotion-management) .track-row:hover,
body:not(.promotion-management) .track-row.selected { background: var(--blue-soft) !important; border-color: #a8bbc5 !important; }
body:not(.promotion-management) .track-row strong { color: var(--blue-dark) !important; text-shadow: none !important; }
body:not(.promotion-management) .track-row span,
body:not(.promotion-management) .track-empty-state span { color: var(--muted) !important; text-shadow: none !important; }
body:not(.promotion-management) .track-badge,
body:not(.promotion-management) .track-panel-kicker {
  color: var(--red) !important; background: #f8ebee !important;
  border-color: #e8cbd0 !important; box-shadow: none !important;
}
body:not(.promotion-management) :is(.track-note-box, .track-detail-block,
 .mini-list-row, .kart-mini-card, .track-panel-head, .track-panel-meta) {
  color: var(--text) !important; border-color: var(--line) !important; text-shadow: none !important;
}
body:not(.promotion-management) :is(.track-note-box, .track-detail-block, .kart-mini-card) {
  background: #f6f8f7 !important; box-shadow: none !important;
}
body:not(.promotion-management) :is(.track-note-box strong, .track-detail-block strong,
 .mini-list-row strong, .track-panel-meta strong, .track-empty-state strong) { color: var(--blue-dark) !important; }
body:not(.promotion-management) :is(#map, #track-map, .leaflet-map) {
  background: #e9eff0 !important; border: 1px solid #d1dce0 !important;
  box-shadow: none !important;
}
body:not(.promotion-management) #map::after { display: none !important; }
body:not(.promotion-management) #map .leaflet-tile { filter: none !important; }
body:not(.promotion-management) .leaflet-container { font-family: var(--font-body) !important; }
body:not(.promotion-management) .leaflet-control-zoom a {
  background: #fffefa !important; border-color: #d8e0e3 !important;
  color: var(--blue-dark) !important; box-shadow: none !important;
}
body:not(.promotion-management) .leaflet-control-attribution { background: rgba(255,254,250,.93) !important; color: #677784 !important; }
body:not(.promotion-management) .leaflet-popup-content-wrapper,
body:not(.promotion-management) .leaflet-popup-tip { background: #fffefa !important; color: var(--text) !important; box-shadow: 0 2px 12px rgba(18,43,61,.10) !important; }
/* The map-style switch is keyboard operable and independent of the API. */
.pki-map-style-control.leaflet-bar { background: #fffefa; border: 1px solid #b9c9d1; border-radius: 7px; box-shadow: 0 2px 8px rgba(25,54,75,.09); overflow: hidden; }
.pki-map-style-trigger { appearance: none; display: block; min-height: 38px; width: auto; padding: 8px 12px; border: 0; background: #fffefa; color: #19364b; font: 600 12px/1.2 Inter,sans-serif; cursor: pointer; white-space: nowrap; }
.pki-map-style-trigger::after { content: '⌄'; display: inline-block; margin-left: 7px; color: #823342; font-weight: 800; }
.pki-map-style-options { display: grid; border-top: 1px solid #dce2e2; background: #fffefa; }
.pki-map-style-options[hidden] { display: none !important; }
.pki-map-style-option { padding: 10px 13px; text-align: left; border: 0; border-bottom: 1px solid #e9ebeb; color: #253b4b; background: #fffefa; font: 500 12px Inter,sans-serif; cursor: pointer; }
.pki-map-style-option:last-child { border-bottom: 0; }
.pki-map-style-option:hover, .pki-map-style-option[aria-pressed="true"] { background: #eaf0f3; color: #823342; }
/* ---------------------------------------------------------------------
   Events: preserve photo-card layout; remove artificial glows and jagged UI.
   --------------------------------------------------------------------- */
body:not(.promotion-management) :is(.events-grid, .events-block, .events-section) { color: var(--text); }
body:not(.promotion-management) .event-card-moderno {
  border: 1px solid #d3dce0 !important;
  border-radius: 11px !important;
  box-shadow: none !important;
  filter: none !important;
}
body:not(.promotion-management) .event-card-moderno::after { box-shadow: none !important; }
body:not(.promotion-management) .event-card-moderno:hover { border-color: #aebfc7 !important; }
body:not(.promotion-management) :is(.event-card-date, .hero-mini-date) {
  background: var(--red) !important;
  color: #fff !important;
  box-shadow: none !important;
  border-radius: 6px !important;
  text-shadow: none !important;
}
body:not(.promotion-management) :is(.event-card-title, .event-card-track,
 .event-card-full-date, .event-card-content, .event-card-copy,
 .event-session-body strong, .event-session-meta, .hero-mini-title, .hero-mini-meta) {
  text-shadow: none !important;
}
body:not(.promotion-management) .event-card-gradient {
  background: linear-gradient(180deg, transparent 0%, rgba(12,30,41,.37) 26%, rgba(12,30,41,.93) 100%) !important;
}
body:not(.promotion-management) .event-card-copy {
  background: rgba(19,46,63,.86) !important;
  border: 1px solid rgba(255,255,255,.20) !important;
  border-radius: 7px !important;
  box-shadow: none !important;
}
body:not(.promotion-management) .event-detail-chip {
  background: rgba(29,60,80,.92) !important;
  border: 1px solid rgba(227,235,240,.3) !important;
  border-radius: 6px !important;
  box-shadow: none !important;
  clip-path: none !important;
}
body:not(.promotion-management) .event-detail-chip span,
body:not(.promotion-management) .event-detail-chip i { text-shadow: none !important; }
body:not(.promotion-management) .event-session-row,
body:not(.promotion-management) .event-session-row:nth-child(2n+1) {
  background: rgba(22,49,67,.94) !important;
  border: 1px solid rgba(238,242,244,.20) !important;
  border-radius: 7px !important;
  clip-path: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
body:not(.promotion-management) .event-session-row:nth-child(2n+1) { background: rgba(52,70,79,.96) !important; }
body:not(.promotion-management) .event-session-time { border-radius: 6px !important; box-shadow: none !important; }
body:not(.promotion-management) .event-card-button {
  background: var(--red) !important;
  border: 1px solid var(--red) !important;
  border-radius: 6px !important;
  box-shadow: none !important;
  color: #fff !important;
  clip-path: none !important;
}
body:not(.promotion-management) :is(.event-price-hero, .event-type-hero) { box-shadow: none !important; text-shadow: none !important; border-radius: 6px !important; }
body:not(.promotion-management) :is(.events-scrollbar, .video-indicator) { background: #dee5e7 !important; }
body:not(.promotion-management) :is(.events-scrollbar-thumb, .video-indicator.active) { background: var(--red) !important; box-shadow: none !important; }
body:not(.promotion-management) :is(.video-wrapper, .videos-container, .video-item) { border-color: var(--line) !important; box-shadow: none !important; }
body:not(.promotion-management) :is(.videos-nav-btn, .mute-btn) {
  background: var(--panel) !important; color: var(--blue-dark) !important;
  border: 1px solid var(--line) !important; box-shadow: none !important;
}
body:not(.promotion-management) :is(.empty-state, .no-events-message) { color: var(--muted) !important; }
/* ---------------------------------------------------------------------
   Track detail: white editorial layout with retained video and carousel.
   --------------------------------------------------------------------- */
body:not(.promotion-management) .track-top-stage {
  background: var(--bg) !important;
  color: var(--blue-dark) !important;
}
body:not(.promotion-management) .track-top-bg { opacity: .35 !important; filter: saturate(.65) !important; transform: none !important; }
body:not(.promotion-management) .track-top-stage::before {
  background: linear-gradient(90deg, rgba(247,245,240,.99) 0%, rgba(247,245,240,.95) 40%, rgba(247,245,240,.72) 66%, rgba(247,245,240,.85) 100%) !important;
}
body:not(.promotion-management) .track-top-stage::after { background: linear-gradient(180deg, transparent, var(--bg)) !important; }
body:not(.promotion-management) :is(.track-title, .track-identity h1) { color: var(--blue-dark) !important; text-shadow: none !important; font-style: normal !important; }
body:not(.promotion-management) .title-underline { background: var(--red) !important; box-shadow: none !important; }
body:not(.promotion-management) .hero-social-btn {
  color: var(--blue-dark) !important; background: rgba(255,254,250,.9) !important;
  border: 1px solid #bac9cf !important; border-radius: 7px !important;
  box-shadow: none !important; backdrop-filter: none !important;
}
body:not(.promotion-management) .hero-social-btn i { color: var(--blue) !important; }
body:not(.promotion-management) .hero-edit-btn { background: var(--red) !important; color: #fff !important; border-color: var(--red) !important; }
body:not(.promotion-management) .hero-edit-btn i { color: #fff !important; }
body:not(.promotion-management) .hero-fact > i { color: var(--red) !important; text-shadow: none !important; }
body:not(.promotion-management) .hero-fact strong { color: var(--blue-dark) !important; }
body:not(.promotion-management) .hero-fact small { color: var(--muted) !important; }
body:not(.promotion-management) .video-frame { border: 1px solid #b7c8cf !important; border-radius: 9px !important; box-shadow: none !important; }
body:not(.promotion-management) .video-frame::after { box-shadow: none !important; }
body:not(.promotion-management) .desktop-hero-events {
  background: #fffefa !important; border: 1px solid var(--line) !important;
  border-radius: 10px !important; box-shadow: var(--shadow-clean) !important;
  backdrop-filter: none !important;
}
body:not(.promotion-management) .desktop-hero-events-title { color: var(--blue-dark) !important; }
body:not(.promotion-management) .hero-mini-event { border: 1px solid #cfdae0 !important; border-radius: 8px !important; box-shadow: none !important; }
body:not(.promotion-management) .hero-mini-event::after { box-shadow: none !important; }
body:not(.promotion-management) .hero-mini-event:not(.has-photo) {
  background: var(--blue) !important; color: #fff !important;
}
body:not(.promotion-management) .stat-box,
body:not(.promotion-management) .address-box,
body:not(.promotion-management) .listino-item,
body:not(.promotion-management) .orari-item,
body:not(.promotion-management) .kart-item,
body:not(.promotion-management) .calendar-date,
body:not(.promotion-management) .faq-item,
body:not(.promotion-management) .comunicazione-item {
  background: #f7f9f8 !important;
  color: var(--text) !important;
  border-color: var(--line) !important;
  box-shadow: none !important;
}
body:not(.promotion-management) :is(.stat-value, .listino-price, .orari-time,
 .kart-modello, .calendar-header h5, .calendar-date, .faq-question, .address-text,
 .listino-name, .orari-day) { color: var(--blue-dark) !important; text-shadow: none !important; }
body:not(.promotion-management) :is(.stat-label, .kart-specifiche, .kart-stat-label,
 .kart-stat-value) { color: var(--muted) !important; text-shadow: none !important; }
body:not(.promotion-management) .kart-stat-fill { background: var(--blue) !important; box-shadow: none !important; }
body:not(.promotion-management) .calendar-date.today { border-color: var(--blue) !important; }
body:not(.promotion-management) .calendar-date.selected,
body:not(.promotion-management) .calendar-date.has-event { background: #f3e8ea !important; color: var(--red) !important; border-color: #dbb7bf !important; }
body:not(.promotion-management) .calendar-nav,
body:not(.promotion-management) .calendar-view-option,
body:not(.promotion-management) .calendar-event-nav {
  background: #fffefa !important; color: var(--blue-dark) !important;
  border: 1px solid var(--line) !important; box-shadow: none !important;
}
body:not(.promotion-management) .calendar-view-option.active { background: var(--blue) !important; color: #fff !important; }
body:not(.promotion-management) .faq-question { background: transparent !important; }
body:not(.promotion-management) .faq-answer { color: var(--muted) !important; }
body:not(.promotion-management) .swiper-pagination-bullet-active { background: var(--red) !important; box-shadow: none !important; }
/* ---------------------------------------------------------------------
   Public mobile, with 6 consistent site destinations and proper tap sizes.
   Track detail retains its dedicated in-page mobile section anchors.
   --------------------------------------------------------------------- */
@media (max-width: 1080px) {
  .site-navbar .navbar-links { gap: 14px; }
  .site-navbar .navbar-links a:not(.login-btn) { font-size: 1.02rem; }
}
@media (max-width: 920px) {
  .site-navbar, .main-content > .site-navbar {
    position: sticky !important; top: 0 !important; height: 64px !important;
    min-height: 64px !important; padding: 0 15px !important; gap: 11px;
  }
  .site-navbar .logo img { height: 34px !important; max-width: 148px; }
  .site-navbar .navbar-links { margin-left: auto; }
  .site-navbar .navbar-links li.desktop-only { display: none !important; }
  .site-navbar .login-btn { width: 39px !important; min-width: 39px !important; height: 39px !important; padding: 0 !important; }
  .site-navbar .login-btn span { display: none !important; }
  .site-menu-toggle {
    display: flex; flex: 0 0 39px; height: 39px; flex-direction: column;
    align-items: center; justify-content: center; gap: 5px;
    order: 3; background: transparent; border: 1px solid #607b8e;
    border-radius: 7px; cursor: pointer;
  }
  .site-menu-toggle span { display: block; width: 18px; height: 2px; background: #fff; border-radius: 2px; }
  .site-mobile-menu:not([hidden]) {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    position: absolute; top: calc(100% + 2px); left: 0; right: 0;
    background: #fffefa; border-bottom: 1px solid #c9d5da; padding: 10px 13px;
    box-shadow: 0 8px 20px rgba(25,54,75,.10); gap: 5px;
  }
  .site-mobile-menu a {
    display: flex; align-items: center; justify-content: center; min-height: 43px;
    border-radius: 6px; color: var(--blue-dark); text-decoration: none;
    font: 600 1rem/1 var(--font-display); text-transform: uppercase;
  }
  .site-mobile-menu a[aria-current="page"] { background: #f4e9eb; color: var(--red); }
  body:not(.promotion-management) { padding-bottom: max(68px, env(safe-area-inset-bottom)) !important; }
  body:not(.promotion-management) .mobile-bottom-nav {
    position: fixed !important; bottom: 0 !important; left: 0; right: 0;
    z-index: 1000; display: flex !important; width: 100%; height: 63px !important;
    padding: 2px max(4px, env(safe-area-inset-left)) max(2px, env(safe-area-inset-bottom)) max(4px, env(safe-area-inset-right)) !important;
    background: #fffefa !important; border-top: 1px solid #cbd7dc !important;
    box-shadow: 0 -2px 12px rgba(25,54,75,.04) !important;
    backdrop-filter: none !important;
  }
  body:not(.promotion-management) .mobile-nav-item {
    flex: 1 1 0; min-width: 0; display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 3px;
    color: #70828f !important; text-decoration: none; border-radius: 5px;
    font: 600 .73rem/1 var(--font-display);
  }
  body:not(.promotion-management) .mobile-nav-item i { font-size: 1rem !important; }
  body:not(.promotion-management) .mobile-nav-item span { font-size: .75rem !important; letter-spacing: 0 !important; text-transform: none; }
  body:not(.promotion-management) .mobile-nav-item.active { color: var(--red) !important; background: #f8eeef; }
  body:not(.promotion-management) :is(.hero-catch, .page-hero) {
    background-image: linear-gradient(90deg, rgba(247,245,240,.97), rgba(247,245,240,.84)), url('/sfondo.png') !important;
    padding-top: 65px !important;
  }
  body:not(.promotion-management) .track-top-stage::before { background: rgba(247,245,240,.87) !important; }
  body:not(.promotion-management) .track-top-bg { opacity: .22 !important; }
  body:not(.promotion-management) .page-panel { border-radius: 10px !important; }
  body:not(.promotion-management) #map .leaflet-top { display: block !important; }
  body:not(.promotion-management) .pki-map-style-control { margin: 8px !important; }
  body:not(.promotion-management) .filters-bar.mobile-open .filters-inner {
    background: var(--panel) !important; color: var(--text) !important;
  }
  body:not(.promotion-management) .mobile-filter-open,
  body:not(.promotion-management) .mobile-filter-close button { color: var(--blue-dark) !important; border-color: var(--line) !important; }
}
@media (max-width: 540px) {
  .site-navbar .logo img { height: 29px !important; max-width: 128px; }
  body:not(.promotion-management) :is(.hero-catch, .page-hero) { min-height: 325px !important; }
  body:not(.promotion-management) .hero-title { letter-spacing: -.035em !important; }
  body:not(.promotion-management) :is(.home-panel, .page-panel) { padding-left: 14px !important; padding-right: 14px !important; }
  body:not(.promotion-management) .site-bottom-nav .mobile-nav-item span { font-size: .70rem !important; }
  body:not(.promotion-management) .pki-map-style-trigger,
  body:not(.promotion-management) .pki-map-style-option { min-height: 38px; }
  body:not(.promotion-management) .track-top-stage { padding-top: 48px !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
/* ---------------------------------------------------------------------
   Administration and track editor — no forms, routes or IDs altered.
   --------------------------------------------------------------------- */
body:has(.admin-header), body:has(.page-header) {
  background: var(--bg) !important;
  color: var(--text) !important;
  font-family: 'Inter', sans-serif;
}
body:has(.admin-header) .admin-header,
body:has(.page-header) .page-header {
  background: var(--blue-dark) !important;
  color: #fff !important;
  border-bottom: 3px solid var(--red) !important;
  box-shadow: none !important;
}
body:has(.admin-header) .admin-header h1,
body:has(.page-header) .page-header h1 { color: #fff !important; text-shadow: none !important; }
body:has(.admin-header) .admin-header span { color: #c5d2dc !important; }
body:has(.admin-header) :is(.section-card, .accordion-item, .promo-item, .video-item, .slide-preview),
body:has(.page-header) :is(.main-section, .item-card, .unified-save-group, .accordion-item) {
  background: var(--panel) !important;
  color: var(--text) !important;
  border-color: var(--line) !important;
  border-radius: 10px !important;
  box-shadow: var(--shadow-clean) !important;
}
body:has(.admin-header) .section-card h2 { color: var(--blue) !important; letter-spacing: .05em !important; }
body:has(.page-header) .section-header { background: var(--blue) !important; border: 0; color: #fff !important; }
body:has(.page-header) .section-header i { color: #d7e3e9 !important; }
body:has(.page-header) .unified-save-group { background: #edf2f3 !important; border: 1px solid #cbd7dc !important; }
body:has(.admin-header) :is(.form-control, .form-select),
body:has(.page-header) :is(.form-control, .form-select, .ql-toolbar, .ql-container) {
  background: white !important;
  color: var(--text) !important;
  border: 1px solid #cbd7dc !important;
  box-shadow: none !important;
}
body:has(.admin-header) :is(.form-control, .form-select):focus,
body:has(.page-header) :is(.form-control, .form-select):focus {
  border-color: var(--blue) !important;
  box-shadow: 0 0 0 2px rgba(39,77,103,.12) !important;
}
body:has(.admin-header) :is(.form-label, .form-text, .promo-meta),
body:has(.page-header) :is(.form-label, .form-text, .text-muted) { color: var(--muted) !important; }
body:has(.admin-header) :is(.form-select option),
body:has(.page-header) :is(.form-select option) { background: white !important; color: var(--text) !important; }
body:has(.admin-header) .btn-red, body:has(.page-header) .unified-save-btn {
  background: var(--blue) !important; border-color: var(--blue) !important; color: #fff !important;
  box-shadow: none !important;
}
body:has(.admin-header) .btn-ghost, body:has(.page-header) .btn-back {
  background: transparent !important; border: 1px solid #9eb2be !important; color: var(--blue-dark) !important;
  box-shadow: none !important;
}
body:has(.page-header) .page-header .btn-back { color: #fff !important; border-color: #8ea3b0 !important; }
body:has(.admin-header) :is(.admin-pill, .promo-slide-badge, .badge-pos),
body:has(.page-header) .badge { background: #edf1f4 !important; color: var(--blue-dark) !important; border-color: #cbd7dc !important; box-shadow: none !important; }
body:has(.admin-header) .admin-table { color: var(--text) !important; border-color: var(--line) !important; }
body:has(.admin-header) .admin-table th { background: #edf1f4 !important; color: var(--blue-dark) !important; }
body:has(.admin-header) :is(.promo-title, .video-title) { color: var(--blue-dark) !important; }
body:has(.admin-header) .accordion-button,
body:has(.page-header) .accordion-button { background: #f4f6f6 !important; color: var(--blue-dark) !important; box-shadow: none !important; }
body:has(.admin-header) .accordion-button:not(.collapsed),
body:has(.page-header) .accordion-button:not(.collapsed) { background: #e7eff2 !important; }
body:has(.admin-header) .accordion-body,
body:has(.page-header) .accordion-body { background: var(--panel) !important; color: var(--text) !important; }
body:has(.page-header) .btn-success { background: var(--blue) !important; border-color: var(--blue) !important; }
body:has(.page-header) .btn-outline-primary { border-color: var(--blue) !important; color: var(--blue) !important; }
body:has(.page-header) .btn-outline-primary:hover { background: var(--blue) !important; color: #fff !important; }
body:has(.page-header) .ql-editor { color: var(--text) !important; background: white !important; }
body:has(.page-header) .ql-snow .ql-stroke { stroke: var(--blue) !important; }
body:has(.page-header) .ql-snow .ql-fill { fill: var(--blue) !important; }
body:has(.page-header) .modal-content { color: var(--text) !important; background: var(--panel) !important; border: 1px solid var(--line) !important; }
/* Promotion console: a compact warm-light variant of the same design system. */
:root {
  --pm-bg: #f7f5f0;
  --pm-panel: #fffefa;
  --pm-panel-2: #f2f4f4;
  --pm-line: #dce2e2;
  --pm-text: #1a2d3b;
  --pm-muted: #667582;
  --pm-accent: #274d67;
  --pm-ok: #247654;
  --pm-warn: #96671c;
  --pm-danger: #823342;
}
body.promotion-management { background: var(--pm-bg) !important; color: var(--pm-text) !important; }
body.promotion-management :is(.pm-header, .pm-card, .pm-workspace-card,
 .pm-rule-card, .pm-list-item, .pm-kpi, .pm-collection-card,
 .pm-section-nav, .pm-choice-grid, .pm-slot-grid, .pm-fieldset,
 .pm-rule-grid>div, .pm-collection-empty) {
  background: var(--pm-panel) !important;
  color: var(--pm-text) !important;
  border: 1px solid var(--pm-line) !important;
  box-shadow: none !important;
}
body.promotion-management .pm-header { padding:18px 21px; border-left: 4px solid var(--red) !important; border-radius: 8px !important; }
body.promotion-management :is(.pm-header h1, .pm-card h2,
 .pm-step-heading h2, .pm-section-heading h2, .pm-rule-grid strong,
 .pm-collection-card h3) { color: var(--blue-dark) !important; }
body.promotion-management :is(.pm-header p, .pm-step-heading p, .pm-section-heading p,
 .pm-collection-card small, .pm-collection-meta, .pm-field-help,
 .pm-field-label, .pm-field label, .pm-live-row) { color: var(--pm-muted) !important; }
body.promotion-management :is(.pm-field input, .pm-field select, .pm-field textarea,
 .pm-readonly, .pm-selection-summary, .pm-picker-results,
 .pm-entity-add-row input) {
  background: #fff !important; color: var(--pm-text) !important;
  border: 1px solid #cbd7dc !important; box-shadow: none !important;
}
body.promotion-management :is(.pm-field input, .pm-field select, .pm-field textarea):focus {
  border-color: var(--blue) !important; box-shadow: 0 0 0 2px rgba(39,77,103,.13) !important;
}
body.promotion-management :is(.pm-btn, .pm-section-tab, .pm-step-heading>span, .pm-section-heading span) {
  box-shadow: none !important; transform: none !important;
}
body.promotion-management .pm-btn { background: #fff !important; color: var(--blue) !important; border-color: #c2d0d6 !important; border-radius: 7px !important; }
body.promotion-management :is(.pm-btn.primary, .pm-section-tab.active) { background: var(--blue) !important; border-color: var(--blue) !important; color: #fff !important; }
body.promotion-management .pm-btn.danger { color: var(--red) !important; border-color: #d6aab4 !important; background: #faeff1 !important; }
body.promotion-management .pm-step-heading>span,
body.promotion-management .pm-section-heading span { background: #eaf0f3 !important; border: 1px solid #cfdae0 !important; color: var(--blue-dark) !important; }
body.promotion-management .pm-section-tab:hover { background: #eaf0f3 !important; color: var(--blue) !important; }
body.promotion-management .pm-section-tab.active:hover { background: var(--blue) !important; color: #fff !important; }
body.promotion-management :is(.pm-choice, .pm-entity-chip, .pm-badge, .pm-pill, .pm-policy-auto-badge) {
  background: #eef2f4 !important; color: var(--blue-dark) !important; border-color: #cad8de !important;
}
body.promotion-management .pm-choice:has(input:checked),
body.promotion-management .pm-collection-card.selected { background: #f6edee !important; border-color: var(--red) !important; box-shadow: none !important; }
body.promotion-management :is(.pm-note, .pm-effective-summary, .pm-review-notice) {
  background: #eef3f4 !important; color: var(--blue-dark) !important; border-color: #cedde2 !important;
}
body.promotion-management .pm-note.warning { background: #fbf2df !important; color: #7c561b !important; border-color: #e6d2a3 !important; }
body.promotion-management .pm-table th { background: #edf2f3 !important; color: var(--blue-dark) !important; }
body.promotion-management :is(.pm-picker-option, .pm-picker-option strong) { color: var(--blue-dark) !important; }
body.promotion-management :is(.pm-picker-option:hover, .pm-picker-option:focus) { background: #eef3f5 !important; }
body.promotion-management .pm-picker-results { box-shadow: 0 5px 20px rgba(25,54,75,.10) !important; }
body.promotion-management .pm-nav-count { background: #eff1f4 !important; color: var(--blue-dark) !important; }
body.promotion-management :is(.pm-status.ok, .pm-badge.ok) { color: #247654 !important; }
body.promotion-management :is(.pm-status.error, .pm-badge.error) { color: var(--red) !important; }
@media (max-width: 760px) {
  body.promotion-management .pm-shell { width: calc(100% - 20px); }
  body.promotion-management .pm-header { padding: 14px; }
  body.promotion-management .pm-section-nav { overflow-x: auto; overscroll-behavior-x: contain; }
  body:has(.admin-header) .admin-header { gap: 12px; flex-wrap: wrap; }
  body:has(.admin-header) .admin-body { padding: 16px 12px; }
  body:has(.admin-header) .section-card { padding: 16px; }
  body:has(.page-header) .section-body { padding: 15px; }
}
/* Final contrast pass: photo-backed elements retain light text. */
body:not(.promotion-management) .kart-item { background: #183449 !important; }
body:not(.promotion-management) .kart-item :is(.kart-modello, .kart-stat-value) { color: #fff !important; }
body:not(.promotion-management) .kart-item :is(.kart-specifiche, .kart-stat-label) { color: #e2e9ef !important; }
body:not(.promotion-management) .kart-item .kart-stat-bar { background: rgba(255,255,255,.23) !important; }
body:not(.promotion-management) .kart-item .kart-stat-fill { background: #c58893 !important; }
body:not(.promotion-management) .calendar-day { color: #647888 !important; }
body:not(.promotion-management) .contact-chip,
body:not(.promotion-management) .hero-contact-panel {
  background: var(--panel) !important; color: var(--blue-dark) !important;
  border: 1px solid var(--line) !important; box-shadow: none !important;
}
body:not(.promotion-management) .contact-chip i { color: var(--red) !important; }
body:not(.promotion-management) .comunicazioni-container { background: #f7ebed !important; border: 1px solid #ead2d7 !important; }
body:not(.promotion-management) .comunicazione-item { color: var(--text) !important; border-bottom-color: #ead2d7 !important; }
body:not(.promotion-management) .no-events-message { background: #f2f6f6 !important; border-color: var(--line) !important; }
body:not(.promotion-management) .map-image-wrap { background: #e7eff1 !important; border-color: var(--line) !important; }
body:not(.promotion-management) .map-image-label { color: white !important; text-shadow: 0 1px 3px rgba(0,0,0,.3) !important; }
body:not(.promotion-management) .map-image-wrap:hover img { transform: none !important; }
body:not(.promotion-management) .hero-mini-empty { background: #f2f6f6 !important; color: var(--muted) !important; border-color: var(--line) !important; }
body:not(.promotion-management) .empty-state i { color: var(--red) !important; text-shadow: none !important; }
/* Dynamic inline legacy map placeholders still get the same neutral color. */
body:not(.promotion-management) .map-placeholder { color: #596b79 !important; }
/* Extended event calendar and session timeline (track detail). */
body:not(.promotion-management) .event-view-switch,
body:not(.promotion-management) .calendar-view-switch {
  background: #edf2f3 !important;
  border: 1px solid var(--line) !important;
  border-radius: 8px !important;
  box-shadow: none !important;
}
body:not(.promotion-management) .event-view-btn { background: transparent !important; color: var(--blue-dark) !important; font-style: normal !important; border-radius: 6px !important; }
body:not(.promotion-management) .event-view-btn.active {
  background: var(--blue) !important; color: #fff !important;
  box-shadow: none !important;
}
body:not(.promotion-management) .sessions-gantt-container {
  background: var(--panel) !important; border: 1px solid var(--line) !important;
  border-radius: 10px !important; box-shadow: none !important;
}
body:not(.promotion-management) .gantt-header,
body:not(.promotion-management) .gantt-axis { border-bottom-color: var(--line) !important; }
body:not(.promotion-management) .gantt-title,
body:not(.promotion-management) .gantt-session-name { color: var(--blue-dark) !important; font-style: normal !important; }
body:not(.promotion-management) .gantt-kicker { color: var(--red) !important; }
body:not(.promotion-management) .gantt-count,
body:not(.promotion-management) .gantt-axis-label,
body:not(.promotion-management) .gantt-event-name { color: var(--muted) !important; }
body:not(.promotion-management) .gantt-row-label,
body:not(.promotion-management) .gantt-track,
body:not(.promotion-management) .gantt-empty {
  background: #f2f5f5 !important; border: 1px solid var(--line) !important;
  border-radius: 7px !important; box-shadow: none !important; clip-path: none !important;
}
body:not(.promotion-management) .gantt-bar {
  background: var(--red) !important; border-color: #cfa9b1 !important;
  box-shadow: none !important; border-radius: 6px !important; clip-path: none !important;
  font-style: normal !important; color: #fff !important;
}
body:not(.promotion-management) .calendar-view-option { border-radius: 6px !important; font-style: normal !important; }
body:not(.promotion-management) .calendar-view-option.active { background: var(--blue) !important; }
/* Existing text glow was scattered across old inline CSS; neutralize at source-independent level. */
body:not(.promotion-management) * { text-shadow: none !important; }

/* ========================================================================
   RACINGUNITE / WHITE EDITION 2 — inspired by the visual discipline of
   The Racing Hub, not its page structure.  UI-only: no data or API changes.
   Paper-white canvas; restrained navy + wine accents; no glow/emoji effects.
   Loaded after the original page styles through racingunite-clean.css.
   ======================================================================== */
:root {
  color-scheme: light;
  --bg: #ffffff;
  --panel: #ffffff;
  --panel-soft: #f6f8fa;
  --text: #203746;
  --muted: #5c6e7a;
  --line: #dce4e8;
  --red: #812f43;
  --red2: #682436;
  --blue: #27516e;
  --blue-dark: #18394f;
  --blue-soft: #eef3f6;
  --radius: 9px;
  --shadow-clean: none;
  --pm-bg: #ffffff;
  --pm-panel: #ffffff;
  --pm-panel-2: #f6f8fa;
  --pm-line: #dce4e8;
  --pm-text: #203746;
  --pm-muted: #5c6e7a;
  --pm-accent: #27516e;
  --pm-danger: #812f43;
}
html { background: #fff; scroll-padding-top: 90px; }
*, *::before, *::after { box-sizing: border-box; }
body:not(.promotion-management),
body:has(.admin-header), body:has(.page-header), body.promotion-management {
  background: #fff !important;
  background-image: none !important;
  color: var(--text) !important;
}
body:not(.promotion-management) :is(.main-content, .home-shell, .page-shell,
 .page-main, .public-promotion-main, .home-promotion-main,
 .track-promotion-main, .content-wrapper) {
  background-color: transparent !important;
  background-image: none !important;
}
body:not(.promotion-management) :is(.home-panel, .page-panel, .card,
 .info-card, .filter-section, .results-tab, .track-info-panel, .calendar-container,
 .fleet-panel, .events-panel, .faq-panel, .media-panel,
 .sessions-gantt-container, .desktop-hero-events) {
  background: #fff !important;
  border-color: var(--line) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
body:not(.promotion-management) :is(.home-panel, .page-panel) { border-radius: 8px !important; }
body:not(.promotion-management) :is(.filter-section, .results-tab, .track-info-panel,
 .events-block, .videos-carousel, .sessions-gantt-container) {
  min-width: 0;
  max-width: 100%;
}
body:not(.promotion-management) :is(.main-content, .home-promotion-skin-area,
 .public-promotion-skin-area, .track-promotion-skin-area) { min-width: 0; }
/* Advertising skin still works: it cannot replace the white site canvas. */
body:not(.promotion-management) :is(.home-promotion-skin-area.has-promotion-background,
 .public-promotion-skin-area.has-promotion-background,
 .track-promotion-skin-area.has-promotion-background)::before {
  background: rgba(255,255,255,.87) !important;
}
body:not(.promotion-management) :is(.home-promotion-background-skin,
 .public-promotion-background-skin, .track-promotion-background-skin) {
  opacity: .18 !important;
}
/* White masthead. The original white-on-transparent logo sits on a small
   solid navy nameplate, avoiding a forced logo/image recolour. */
.site-navbar, .main-content > .site-navbar {
  position: sticky !important;
  top: 0 !important;
  z-index: 1100 !important;
  background: #fff !important;
  background-image: none !important;
  color: var(--blue-dark) !important;
  border: 0 !important;
  border-bottom: 2px solid var(--red) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  isolation: isolate;
}
.site-navbar .navbar-brand { min-width: 0; }
.site-navbar .logo {
  background: var(--blue-dark) !important;
  border-radius: 5px !important;
  padding: 7px 12px !important;
  min-height: 51px;
  justify-content: center;
}
.site-navbar .logo img { height: 36px !important; width: auto !important; }
.site-navbar .navbar-links a:not(.login-btn) {
  color: var(--blue-dark) !important;
  text-shadow: none !important;
}
.site-navbar .navbar-links a:not(.login-btn):is(:hover,.active,[aria-current="page"]) {
  color: var(--red) !important;
}
.site-navbar .navbar-links a:not(.login-btn)::after { background: var(--red) !important; }
.site-navbar .login-btn { background: var(--red) !important; border-color: var(--red) !important; }
.site-navbar .login-btn:hover { background: var(--red2) !important; }
.site-navbar .site-menu-toggle { border-color: #d5e0e5 !important; background: #fff !important; }
.site-navbar .site-menu-toggle span { background: var(--blue-dark) !important; }
.site-navbar .site-mobile-menu:not([hidden]) {
  background: #fff !important;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 12px 22px rgba(25,54,75,.08) !important;
}
.site-navbar .site-mobile-menu a:is(:hover,[aria-current="page"]) {
  color: var(--red) !important;
  background: #f6eff1 !important;
}
/* Editorial rhythm: adjacent panels meet in normal flow, never as overlays. */
body:not(.promotion-management) .home-shell {
  position: relative;
  margin-top: 0 !important;
  padding-top: 24px !important;
  z-index: auto !important;
}
body:not(.promotion-management) .page-shell {
  position: relative;
  margin-top: 0 !important;
  padding-top: 24px !important;
  z-index: auto !important;
}
body:not(.promotion-management) :is(.home-panel, .page-panel) {
  position: relative;
  z-index: auto;
  margin-bottom: 22px !important;
}
body:not(.promotion-management) :is(.section-headline, .section-header,
 .section-heading, .page-heading) {
  min-width: 0;
  gap: 12px;
}
body:not(.promotion-management) :is(.section-title, .section-headline h2,
 .section-header h2, .page-title) { color: var(--blue-dark) !important; }
body:not(.promotion-management) :is(.section-headline .section-link,
 .section-headline .section-pill) { flex-shrink: 0; }
body:not(.promotion-management) :is(.section-link, .back-link, .page-breadcrumb a,
 .track-panel-kicker) { color: var(--red) !important; }
/* White-first hero; original imagery retained only as a subtle right detail. */
body:not(.promotion-management) :is(.hero-catch, .page-hero) {
  background-color: #fff !important;
  background-image: linear-gradient(90deg,#fff 0%,#fff 40%,rgba(255,255,255,.96) 56%,rgba(255,255,255,.58) 78%,rgba(255,255,255,.52) 100%),url('/sfondo.png') !important;
  color: var(--text) !important;
  border-bottom: 1px solid var(--line);
  box-shadow: none !important;
  isolation: isolate;
}
body:not(.promotion-management) :is(.hero-catch, .page-hero)::before,
body:not(.promotion-management) :is(.hero-catch, .page-hero)::after {
  box-shadow: none !important;
}
body:not(.promotion-management) :is(.hero-catch-inner, .page-hero-inner) {
  min-width: 0;
  max-width: min(700px, 100%);
}
body:not(.promotion-management) .hero-title { color: var(--blue-dark) !important; }
body:not(.promotion-management) .hero-title span { color: var(--red) !important; }
body:not(.promotion-management) .hero-subtitle { color: #4d626f !important; }
body:not(.promotion-management) .hero-btn { min-width: 0; }
/* Detail hero remains readable without darkening the entire screen. */
body:not(.promotion-management) .track-top-stage {
  background: #fff !important;
  color: var(--blue-dark) !important;
  border-bottom: 1px solid var(--line);
}
body:not(.promotion-management) .track-top-stage::before {
  background: linear-gradient(90deg,rgba(255,255,255,.98),rgba(255,255,255,.94) 53%,rgba(255,255,255,.69)) !important;
}
body:not(.promotion-management) .track-top-stage::after {
  background: linear-gradient(180deg,transparent 0%,#fff 100%) !important;
}
body:not(.promotion-management) .track-top-bg { opacity: .20 !important; }
/* Photo-based cards retain a contrasting dark caption, but the page stays white. */
body:not(.promotion-management) .event-card-moderno {
  background: var(--blue-dark) !important;
  border: 1px solid #d8e2e7 !important;
  border-radius: 7px !important;
  box-shadow: none !important;
  min-width: 0;
}
body:not(.promotion-management) .event-card-moderno.is-expanded {
  border-color: #a6bac4 !important;
  box-shadow: none !important;
}
body:not(.promotion-management) .event-card-copy,
body:not(.promotion-management) .event-detail-chip { backdrop-filter: none !important; }
body:not(.promotion-management) :is(.event-price-hero, .event-type-hero) { font-style: normal !important; }
body:not(.promotion-management) :is(.event-card-image, .hero-mini-event img) { filter: none !important; }
body:not(.promotion-management) :is(.event-card-moderno:hover .event-card-image,
 .event-card-moderno.is-expanded .event-card-image) { transform: none !important; }
/* Neutral tables, navigation chips and filters; burgundy only for selected state. */
body:not(.promotion-management) :is(.filters-bar, .filters-inner,
 .filter-section, .track-note-box, .track-detail-block, .kart-mini-card,
 .gantt-track, .gantt-row-label, .gantt-empty, .event-view-switch,
 .calendar-view-switch, .no-events-message) {
  background: #fff !important;
  color: var(--text) !important;
  box-shadow: none !important;
}
body:not(.promotion-management) :is(.track-row:hover, .track-row.selected,
 .calendar-date.selected, .calendar-date.has-event) {
  background: var(--blue-soft) !important;
  color: var(--blue-dark) !important;
}
body:not(.promotion-management) :is(.filter-section, .filters-bar,
 .results-tab, .track-info-panel, .track-row, .stat-box, .kart-mini-card,
 .event-view-switch, .calendar-view-switch, .gantt-track) {
  border-color: var(--line) !important;
}
body:not(.promotion-management) :is(.filter-group input, .filter-group select,
 .filter-section input, .filter-section select, .filters-inner input,
 .filters-inner select) { background: #fff !important; color: var(--blue-dark) !important; }
body:not(.promotion-management) .filter-actions {
  background: #fff !important;
  background-image: none !important;
}
body:not(.promotion-management) .mobile-filter-close { color: var(--blue-dark) !important; }
body:not(.promotion-management) .mobile-filter-open {
  background: var(--blue) !important;
  color: #fff !important;
  border: 1px solid var(--blue) !important;
  box-shadow: none !important;
}
body:not(.promotion-management) .mobile-filter-close button {
  background: #fff !important; color: var(--blue-dark) !important;
  border-color: var(--line) !important;
}
/* Calm lower navigation; active destination uses a thin accent, not a filled tile. */
body:not(.promotion-management) .mobile-bottom-nav {
  background: #fff !important;
  border-top: 1px solid var(--line) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
body:not(.promotion-management) .mobile-nav-item.active {
  background: transparent !important;
  color: var(--red) !important;
  box-shadow: inset 0 2px var(--red);
}
body:not(.promotion-management) footer {
  background: #f7f9fa !important;
  color: #526873 !important;
  border-top: 1px solid var(--line) !important;
}
/* Leaflet stays a genuine interactive map; compact controls won't cover cards. */
body:not(.promotion-management) :is(#map, #track-map, .leaflet-map) {
  background: #eef3f6 !important;
  border-color: var(--line) !important;
  border-radius: 6px !important;
  max-width: 100%;
}
.pki-map-style-control.leaflet-bar {
  background: #fff !important;
  border: 1px solid #b8cbd5 !important;
  border-radius: 6px !important;
  box-shadow: 0 2px 9px rgba(30,53,68,.1) !important;
}
.pki-map-style-trigger, .pki-map-style-option { background: #fff !important; }
.pki-map-style-option[aria-pressed="true"] { background: #eef3f6 !important; color: var(--red) !important; }
/* Admin + forms share the white canvas and line-based hierarchy. */
body:has(.admin-header) .admin-header,
body:has(.page-header) .page-header {
  background: #fff !important;
  color: var(--blue-dark) !important;
  border-bottom: 2px solid var(--red) !important;
}
body:has(.admin-header) .admin-header h1,
body:has(.page-header) .page-header h1,
body:has(.admin-header) .admin-header span { color: var(--blue-dark) !important; }
body:has(.admin-header) :is(.section-card, .accordion-item, .promo-item,
 .video-item, .slide-preview),
body:has(.page-header) :is(.main-section, .item-card,
 .unified-save-group, .accordion-item),
body.promotion-management :is(.pm-header, .pm-card, .pm-workspace-card,
 .pm-rule-card, .pm-list-item, .pm-kpi, .pm-collection-card,
 .pm-section-nav, .pm-choice-grid, .pm-slot-grid, .pm-fieldset,
 .pm-rule-grid>div, .pm-collection-empty) {
  background: #fff !important;
  box-shadow: none !important;
  border-color: var(--line) !important;
}
body.promotion-management .pm-header { border-left: 3px solid var(--red) !important; }
body.promotion-management .pm-shell { min-width: 0; }
/* Shared responsive safety nets: avoid sideways scroll, not clipping overlays. */
body:not(.promotion-management) :is(.events-grid, .piste-layout,
 .track-content-mosaic, .track-row, .track-panel-head, .videos-track,
 .hero-actions, .hero-mini-events, .event-session-row, .gantt-row,
 .event-card-content, .event-card-copy) { min-width: 0; }
body:not(.promotion-management) :is(.section-title, .page-title,
 .event-card-title, .track-title, .track-detail-title, .track-row strong) {
  overflow-wrap: anywhere;
}
@media (max-width: 1080px) {
  .site-navbar, .main-content > .site-navbar { height: 64px !important; min-height: 64px !important; padding: 0 15px !important; }
  .site-navbar .logo { min-height: 44px; padding: 5px 9px !important; }
  .site-navbar .logo img { height: 32px !important; max-width: 145px; }
  .site-navbar .site-menu-toggle { display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 5px; width: 40px; height: 40px; flex: 0 0 40px; order: 3; }
  .site-navbar .navbar-links li.desktop-only { display: none !important; }
  .site-navbar .navbar-links { margin-left: auto; gap: 0; }
  .site-navbar .site-mobile-menu:not([hidden]) { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); position: absolute; top: 100%; left: 0; right: 0; padding: 10px 14px; gap: 5px; }
  .site-navbar .site-mobile-menu a { min-width: 0; min-height: 46px; }
  body:not(.promotion-management) .home-shell { padding-top: 14px !important; }
  body:not(.promotion-management) :is(.hero-catch, .page-hero) {
    background-color: #fff !important;
    background-image: none !important;
    min-height: 0 !important;
    padding-top: 56px !important;
    padding-bottom: 55px !important;
  }
  body:not(.promotion-management) .track-top-stage::before {
    background: rgba(255,255,255,.88) !important;
  }
  body:not(.promotion-management) :is(.home-panel,.page-panel) { margin-bottom: 15px !important; }
  body:not(.promotion-management) :is(.events-block, #piste-section, .videos-carousel) {
    background: #fff !important;
    border: 1px solid var(--line) !important;
    backdrop-filter: none !important;
  }
  body:not(.promotion-management) .home-shell,
  body:not(.promotion-management) .page-shell {
    padding-left: 14px !important;
    padding-right: 14px !important;
    margin-top: 0 !important;
    gap: 14px !important;
  }
  body:not(.promotion-management) :is(.events-grid, .piste-layout,
   .track-content-mosaic) { max-width: 100%; }
  body:not(.promotion-management) .filters-bar.mobile-open .filters-inner {
    background: #fff !important;
    color: var(--text) !important;
    max-height: calc(100dvh - 110px);
    overflow-y: auto;
  }
  body:not(.promotion-management) .filter-actions { background: #fff !important; }
  body:not(.promotion-management) .mobile-bottom-nav {
    padding-bottom: max(3px,env(safe-area-inset-bottom)) !important;
  }
}
@media (min-width: 901px) and (max-width: 1080px) {
  body:not(.promotion-management) .mobile-bottom-nav { display: none !important; }
  body:not(.promotion-management) { padding-bottom: 0 !important; }
}
@media (max-width: 600px) {
  .site-navbar .logo { min-height: 42px; }
  .site-navbar .logo img { height: 28px !important; max-width: 122px !important; }
  .site-navbar .login-btn { height: 40px !important; min-width: 40px !important; width: 40px !important; }
  body:not(.promotion-management) :is(.hero-catch,.page-hero) {
    padding-left: 17px !important; padding-right: 17px !important;
    padding-top: 42px !important; padding-bottom: 44px !important;
  }
  body:not(.promotion-management) .hero-title { font-size: clamp(2.8rem, 13.8vw, 4.8rem) !important; line-height: .94 !important; }
  body:not(.promotion-management) :is(.home-panel,.page-panel) {
    padding-left: 13px !important; padding-right: 13px !important;
    border-radius: 7px !important;
  }
  body:not(.promotion-management) :is(.section-headline,.section-header,.section-heading) {
    flex-wrap: wrap;
    align-items: flex-start;
  }
  body:not(.promotion-management) .section-title { font-size: clamp(1.75rem,8vw,2.22rem) !important; }
  body:not(.promotion-management) .hero-actions { gap: 10px !important; }
  body:not(.promotion-management) .event-card-moderno { max-width: 100%; }
  body:not(.promotion-management) :is(.home-panel,.page-panel,
   .event-card-moderno,.event-entry-home,.track-row,.filter-group) { min-width: 0; }
  body:not(.promotion-management) .pki-map-style-control { margin: 7px !important; }
  .pki-map-style-trigger { max-width: min(172px, 50vw); overflow: hidden; text-overflow: ellipsis; }
  /* Keep the lower bar off the content at every device safe-area size. */
  body:not(.promotion-management) { padding-bottom: calc(72px + env(safe-area-inset-bottom)) !important; }
}
@media (prefers-reduced-motion: reduce) {
  body:not(.promotion-management) :is(.hero-catch,.page-hero,.event-card-moderno) { transition: none !important; }
}
/* WHITE EDITION 2.1 — contrast and navigation polish after visual inspection. */
@media (max-width: 1080px) {
  .site-navbar .login-btn { min-width: 74px !important; width: auto !important; padding: 0 10px !important; }
  .site-navbar .login-btn span { display: inline !important; font-size: .92rem; }
  .site-navbar .login-btn i { display: none !important; }
}
@media (max-width: 350px) {
  .site-navbar, .main-content > .site-navbar { padding-inline: 10px !important; gap: 6px !important; }
  .site-navbar .logo { padding-inline: 7px !important; }
  .site-navbar .logo img { max-width: 105px !important; height: 26px !important; }
  .site-navbar .login-btn { min-width: 65px !important; font-size: .91rem; }
}
/* Admin: page-specific inline styles were written for charcoal and need a
   complete contrast reset, including inline-coloured header links/alerts. */
body:has(.admin-header) :is(.admin-header, .admin-body, .section-card) { color: var(--text) !important; }
body:has(.admin-header) .admin-header { gap: 12px; flex-wrap: wrap; }
body:has(.admin-header) .admin-header a[href] {
  color: var(--blue-dark) !important;
  background: #fff !important;
  border-color: var(--line) !important;
  text-decoration: none !important;
}
body:has(.admin-header) .admin-header a[href="/admin/promotions"] {
  color: var(--red) !important;
  background: #f9f1f3 !important;
  border-color: #e7cdd4 !important;
}
body:has(.admin-header) .admin-header a[href]:hover { color: var(--red) !important; }
body:has(.admin-header) :is(.alert-secondary,.alert-warning) {
  color: var(--text) !important;
  background: #f6f8fa !important;
  border: 1px solid var(--line) !important;
}
body:has(.admin-header) .alert-warning { background: #fffaee !important; border-color: #ecd8aa !important; }
body:has(.admin-header) :is(.accordion-button,.admin-accordion .accordion-button:not(.collapsed)) {
  background: #f5f8fa !important;
  color: var(--blue-dark) !important;
  border: 1px solid var(--line) !important;
  box-shadow: none !important;
}
body:has(.admin-header) .admin-accordion .accordion-button:not(.collapsed) {
  background: #edf3f6 !important;
  border-left: 3px solid var(--red) !important;
}
body:has(.admin-header) .admin-accordion .accordion-button::after { filter: none !important; }
body:has(.admin-header) :is(.form-control,.form-select) {
  background: #fff !important;
  color: var(--text) !important;
  border-color: #cbd8df !important;
}
body:has(.admin-header) :is(.form-control,.form-select):focus {
  background: #fff !important;
  color: var(--text) !important;
  border-color: var(--blue) !important;
  box-shadow: 0 0 0 2px rgba(39,81,110,.12) !important;
}
body:has(.admin-header) :is(.form-label,.subtle-note,.empty-admin-row,
 .promo-meta,.event-item .meta,.promo-item .promo-meta) { color: var(--muted) !important; }
body:has(.admin-header) .form-select option { background: #fff !important; color: var(--text) !important; }
body:has(.admin-header) :is(.promo-title,.promo-item .promo-title,
 .event-item h6,.admin-table td,.admin-table th) { color: var(--blue-dark) !important; }
body:has(.admin-header) :is(.event-item,.promo-item) {
  background: #fff !important;
  color: var(--text) !important;
  border: 1px solid var(--line) !important;
}
body:has(.admin-header) .admin-table td { background: #fff !important; border-color: var(--line) !important; }
body:has(.admin-header) .admin-table th { color: var(--muted) !important; }
body:has(.admin-header) :is(.btn-red,.btn-ghost,.btn-danger-soft) {
  min-height: 35px;
  box-shadow: none !important;
  border-radius: 6px !important;
}
body:has(.admin-header) .btn-red { background: var(--blue) !important; color: #fff !important; border-color: var(--blue) !important; }
body:has(.admin-header) .btn-ghost { background: #fff !important; color: var(--blue) !important; border-color: #b8cbd5 !important; }
body:has(.admin-header) .btn-danger-soft { background: #fbf0f2 !important; color: var(--red) !important; border-color: #e1c4cb !important; }
body:has(.admin-header) :is(.slide-chip,.admin-pill,.promo-slide-badge,.badge-pos) {
  background: #f9eef1 !important;
  color: var(--red) !important;
  border-color: #e8cbd2 !important;
}
body:has(.admin-header) .promo-item .drag-handle { color: var(--muted) !important; }
@media (max-width: 760px) {
  body:has(.admin-header) .admin-header { padding: 12px !important; }
  body:has(.admin-header) .admin-header a[href] { max-width: 100%; }
  body:has(.admin-header) .admin-body { padding: 16px 12px !important; }
  body:has(.admin-header) .admin-table { display: block; max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
  body:has(.admin-header) .section-card { min-width: 0; max-width: 100%; }
}
/* Keep legal text and status labels legible on the white promotion desk. */
body.promotion-management :is(.pm-fieldset legend, .pm-field output) { color: var(--blue-dark) !important; }
body.promotion-management :is(.pm-section-heading p, .pm-header p, .pm-header p strong) { color: var(--muted) !important; }
body.promotion-management .pm-header .pm-btn.ghost { color: var(--blue-dark) !important; background: #fff !important; border-color: var(--line) !important; }
body.promotion-management .pm-step-heading > span { color: var(--blue-dark) !important; }
/* Final mobile detail-page legibility: visible contact names, not icon-only chips. */
@media (max-width: 768px) {
  body:not(.promotion-management) .track-top-stage .hero-social-row {
    display: flex !important;
    flex-wrap: wrap !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    gap: 8px !important;
    margin-bottom: 22px !important;
  }
  body:not(.promotion-management) .track-top-stage .hero-social-btn {
    display: inline-flex !important;
    width: auto !important;
    min-width: 0 !important;
    height: 37px !important;
    padding: 0 11px !important;
    flex: 0 1 auto;
    font-size: .83rem !important;
  }
  body:not(.promotion-management) .track-top-stage .hero-social-btn > span:not(.copy-feedback) {
    display: inline !important;
  }
  body:not(.promotion-management) .track-top-stage .hero-social-btn .copy-feedback { display: none !important; }
  body:not(.promotion-management) .track-top-stage .hero-facts {
    gap: 17px 12px !important;
    margin-bottom: 4px;
  }
  body:not(.promotion-management) .track-top-stage .hero-fact:nth-child(n+3) strong {
    white-space: nowrap !important;
  }
  body:not(.promotion-management) .track-top-stage .hero-fact small { line-height: 1.3 !important; }
}
body.promotion-management .pm-section-heading {
  background: #f5f8fa !important;
  background-image: none !important;
  color: var(--blue-dark) !important;
  border: 1px solid var(--line) !important;
  border-left: 3px solid var(--red) !important;
  box-shadow: none !important;
}
body.promotion-management .pm-section-heading h2 { color: var(--blue-dark) !important; }
body.promotion-management .pm-section-heading p { color: var(--muted) !important; }
body.promotion-management .pm-section-heading > div { min-width: 0; }
body.promotion-management .pm-section-heading h2 { overflow-wrap: anywhere; }
/* Numeric hero facts must keep value and unit together even on 320px phones. */
body:not(.promotion-management) .track-top-stage .hero-fact strong > span {
  display: inline !important;
  align-items: initial !important;
  white-space: nowrap !important;
}
