/* ============================================================
   EasyPass Prenotazioni – Frontend CSS v3.1
   Brand: Green #7cd656 | Dark #2a3035
   ============================================================ */

:root {
  --ep-green:       #7cd656;
  --ep-green-dark:  #5aba30;
  --ep-green-light: #eef9e5;
  --ep-dark:        #2a3035;
  --ep-navy:        #2a3035;
  --ep-bg:          #F7F9FC;
  --ep-white:       #FFFFFF;
  --ep-border:      #DDE4EC;
  --ep-text:        #1E2D3D;
  --ep-muted:       #6B7C8E;
  --ep-error:       #D63031;
  --ep-error-bg:    #FFF5F5;
  --ep-shadow:      0 4px 24px rgba(0,0,0,0.10);
  --ep-radius:      12px;
  --ep-radius-sm:   8px;
  --ep-tr:          0.18s ease;
}

/* ============================================================
   RESET DI ISOLAMENTO – previene interferenze tema
   ============================================================ */
.ep-wrap,
.ep-wrap * {
  box-sizing: border-box !important;
}
/* Neutralizza override SVG del tema */
.ep-wrap svg {
  display: inline-block !important;
  width: auto !important;
  height: auto !important;
  max-width: none !important;
  max-height: none !important;
}

/* ============================================================
   WRAPPER
   ============================================================ */
.ep-wrap {
  max-width: 680px !important;
  margin: 0 auto !important;
  padding: 0 16px 48px !important;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
  color: var(--ep-text) !important;
  -webkit-font-smoothing: antialiased;
}

/* ============================================================
   STEPPER – orizzontale, resistente agli override del tema
   ============================================================ */
.ep-stepper {
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-align-items: flex-start !important;
  align-items: flex-start !important;
  -webkit-justify-content: center !important;
  justify-content: center !important;
  margin: 32px 0 28px !important;
  padding: 0 !important;
  list-style: none !important;
  background: none !important;
  border: none !important;
}

.ep-stepper__item {
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-flex-direction: column !important;
  flex-direction: column !important;
  -webkit-align-items: center !important;
  align-items: center !important;
  gap: 8px !important;
  -webkit-flex: 0 0 auto !important;
  flex: 0 0 auto !important;
  position: relative !important;
  z-index: 1 !important;
  float: none !important;
}

.ep-stepper__circle {
  width: 42px !important;
  height: 42px !important;
  border-radius: 50% !important;
  background: #E0E6EC !important;
  color: var(--ep-muted) !important;
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-align-items: center !important;
  align-items: center !important;
  -webkit-justify-content: center !important;
  justify-content: center !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  line-height: 1 !important;
  transition: background var(--ep-tr), box-shadow var(--ep-tr) !important;
  border: 3px solid transparent !important;
  text-align: center !important;
  flex-shrink: 0 !important;
}

.ep-stepper__item--active .ep-stepper__circle {
  background: var(--ep-green) !important;
  color: #fff !important;
  border-color: var(--ep-green) !important;
  box-shadow: 0 4px 14px rgba(124,214,86,.35) !important;
}

.ep-stepper__item--done .ep-stepper__circle {
  background: var(--ep-green-dark) !important;
  color: #fff !important;
  border-color: var(--ep-green-dark) !important;
}
.ep-stepper__item--done .ep-stepper__circle span { font-size: 0 !important; }
.ep-stepper__item--done .ep-stepper__circle span::before {
  content: '✓';
  font-size: 18px !important;
}

.ep-stepper__label {
  font-size: 11px !important;
  font-weight: 700 !important;
  color: var(--ep-muted) !important;
  text-transform: uppercase !important;
  letter-spacing: .6px !important;
  white-space: nowrap !important;
  text-align: center !important;
  display: block !important;
  line-height: 1.2 !important;
}
.ep-stepper__item--active .ep-stepper__label { color: var(--ep-green-dark) !important; }
.ep-stepper__item--done   .ep-stepper__label { color: var(--ep-green-dark) !important; }

.ep-stepper__line {
  -webkit-flex: 1 !important;
  flex: 1 !important;
  height: 3px !important;
  background: #E0E6EC !important;
  margin: 20px 8px 0 !important;
  border-radius: 2px !important;
  display: block !important;
  min-width: 20px !important;
  float: none !important;
}

/* ============================================================
   CARD
   ============================================================ */
.ep-card {
  background: var(--ep-white) !important;
  border-radius: var(--ep-radius) !important;
  box-shadow: var(--ep-shadow) !important;
  border: 1px solid var(--ep-border) !important;
  overflow: hidden !important;
  margin-bottom: 0 !important;
}

.ep-card__header {
  background: linear-gradient(135deg, var(--ep-dark) 0%, #1e2428 100%) !important;
  padding: 22px 28px !important;
  border-bottom: none !important;
}

.ep-card__title {
  margin: 0 0 4px !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  color: #fff !important;
  line-height: 1.2 !important;
}

.ep-card__sub {
  margin: 0 !important;
  font-size: 13px !important;
  color: rgba(255,255,255,.65) !important;
}

.ep-card__body {
  padding: 24px 28px 28px !important;
}

/* ============================================================
   ALERTS
   ============================================================ */
.ep-alert {
  border-radius: var(--ep-radius-sm) !important;
  padding: 12px 16px !important;
  margin-bottom: 16px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  /* NON forziamo display:block qui: lasciamo che style="display:none" funzioni */
}
.ep-alert--error {
  background: var(--ep-error-bg) !important;
  color: var(--ep-error) !important;
  border: 1px solid #F8C8C8 !important;
}
.ep-alert--success {
  background: #F0FDF4 !important;
  color: #166534 !important;
  border: 1px solid #BBF7D0 !important;
}

/* ============================================================
   FORM FIELDS
   ============================================================ */
.ep-field-row {
  display: -webkit-flex !important;
  display: flex !important;
  gap: 16px !important;
  flex-wrap: wrap !important;
}
.ep-field-row > .ep-field {
  -webkit-flex: 1 1 200px !important;
  flex: 1 1 200px !important;
  min-width: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.ep-field {
  display: block !important;
  margin-bottom: 18px !important;
}

.ep-label {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: var(--ep-text) !important;
  margin-bottom: 6px !important;
  display: block !important;
  line-height: 1.4 !important;
}

.ep-required { color: var(--ep-error) !important; }

.ep-input {
  display: block !important;
  width: 100% !important;
  height: 48px !important;
  border: 1.5px solid var(--ep-border) !important;
  border-radius: var(--ep-radius-sm) !important;
  padding: 0 14px !important;
  font-size: 15px !important;
  color: var(--ep-text) !important;
  background: var(--ep-white) !important;
  outline: none !important;
  transition: border-color var(--ep-tr), box-shadow var(--ep-tr) !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}
.ep-input:focus {
  border-color: var(--ep-green) !important;
  box-shadow: 0 0 0 3px rgba(124,214,86,.15) !important;
}
.ep-input--mono {
  font-family: 'Courier New', Courier, monospace !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
}
/* Select campo – ripristina freccia nativa */
select.ep-campo-select {
  appearance: auto !important;
  -webkit-appearance: auto !important;
  padding-right: 14px !important;
  cursor: pointer !important;
  height: auto !important;
  min-height: 48px !important;
}

.ep-input-wrap { position: relative !important; display: block !important; }
.ep-input-wrap .ep-input { padding-right: 200px !important; }

.ep-hint {
  margin: 5px 0 0 !important;
  font-size: 12px !important;
  color: var(--ep-muted) !important;
  display: block !important;
  line-height: 1.4 !important;
}

/* CF Badge */
.ep-cf-badge {
  position: absolute !important;
  right: 10px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  padding: 4px 10px !important;
  border-radius: 20px !important;
  white-space: nowrap !important;
  pointer-events: none !important;
}
.ep-cf-badge--residente {
  background: var(--ep-green-light) !important;
  color: var(--ep-green-dark) !important;
  border: 1px solid #B7E5BC !important;
}
.ep-cf-badge--nonresidente {
  background: #FFF8E6 !important;
  color: #8A6200 !important;
  border: 1px solid #F0D98C !important;
}
.ep-cf-badge--checking {
  background: #E8F0F6 !important;
  color: var(--ep-navy) !important;
  border: 1px solid #C0D4E8 !important;
}

/* ============================================================
   BUTTONS
   ============================================================ */
.ep-actions {
  display: -webkit-flex !important;
  display: flex !important;
  gap: 12px !important;
  -webkit-align-items: center !important;
  align-items: center !important;
  margin-top: 28px !important;
  padding: 24px 28px !important;
  border-top: 1px solid var(--ep-border) !important;
  flex-wrap: wrap !important;
}

.ep-btn {
  display: -webkit-inline-flex !important;
  display: inline-flex !important;
  -webkit-align-items: center !important;
  align-items: center !important;
  -webkit-justify-content: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 0 28px !important;
  height: 50px !important;
  border-radius: 50px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  border: 2px solid transparent !important;
  transition: all var(--ep-tr) !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  line-height: 1 !important;
  letter-spacing: .2px !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

.ep-btn--primary {
  background: var(--ep-green) !important;
  color: #fff !important;
  border-color: var(--ep-green) !important;
}
.ep-btn--primary:hover:not(:disabled) {
  background: var(--ep-green-dark) !important;
  border-color: var(--ep-green-dark) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 20px rgba(124,214,86,.35) !important;
  color: #fff !important;
}

.ep-btn--green {
  background: var(--ep-green) !important;
  color: #fff !important;
  border-color: var(--ep-green) !important;
}

.ep-btn--ghost {
  background: transparent !important;
  color: var(--ep-text) !important;
  border-color: var(--ep-border) !important;
}
.ep-btn--ghost:hover:not(:disabled) {
  background: var(--ep-bg) !important;
  border-color: #bbb !important;
  color: var(--ep-text) !important;
}

.ep-btn--full { width: 100% !important; }
.ep-btn--confirm { min-width: 200px !important; }

.ep-btn:disabled {
  opacity: .45 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

/* ============================================================
   SPINNER
   ============================================================ */
.ep-spinner {
  display: inline-block !important;
  width: 22px !important; height: 22px !important;
  border: 3px solid rgba(255,255,255,.3) !important;
  border-top-color: #fff !important;
  border-radius: 50% !important;
  animation: ep-spin .7s linear infinite !important;
  flex-shrink: 0 !important;
}
.ep-spinner--inline {
  width: 16px !important; height: 16px !important;
  border-color: rgba(124,214,86,.2) !important;
  border-top-color: var(--ep-green) !important;
}
@keyframes ep-spin { to { transform: rotate(360deg); } }

/* ============================================================
   CALENDARIO
   ============================================================ */
.ep-cal-nav {
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-align-items: center !important;
  align-items: center !important;
  -webkit-justify-content: space-between !important;
  justify-content: space-between !important;
  margin-bottom: 14px !important;
  padding: 0 28px !important;
}

.ep-cal-nav__title {
  font-size: 17px !important;
  font-weight: 800 !important;
  color: var(--ep-dark) !important;
  text-transform: capitalize !important;
}

.ep-cal-nav__btn {
  width: 38px !important; height: 38px !important;
  border-radius: 50% !important;
  background: var(--ep-bg) !important;
  border: 1.5px solid var(--ep-border) !important;
  color: var(--ep-dark) !important;
  cursor: pointer !important;
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-align-items: center !important;
  align-items: center !important;
  -webkit-justify-content: center !important;
  justify-content: center !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  transition: all var(--ep-tr) !important;
  padding: 0 !important;
}
.ep-cal-nav__btn:hover {
  background: var(--ep-green) !important;
  color: #fff !important;
  border-color: var(--ep-green) !important;
}

.ep-calendario {
  background: var(--ep-bg) !important;
  border-radius: var(--ep-radius-sm) !important;
  padding: 10px 28px !important;
  margin: 0 0 12px !important;
}

.ep-cal-grid {
  display: -ms-grid !important;
  display: grid !important;
  grid-template-columns: repeat(7, 1fr) !important;
  gap: 4px !important;
}

.ep-cal-hdr {
  text-align: center !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: var(--ep-muted) !important;
  padding: 6px 0 !important;
  text-transform: uppercase !important;
  letter-spacing: .5px !important;
  display: block !important;
}

.ep-cal-cell {
  aspect-ratio: 1 !important;
  border-radius: 8px !important;
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-flex-direction: column !important;
  flex-direction: column !important;
  -webkit-align-items: center !important;
  align-items: center !important;
  -webkit-justify-content: center !important;
  justify-content: center !important;
  gap: 2px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  cursor: default !important;
  transition: all var(--ep-tr) !important;
  min-height: 40px !important;
  text-align: center !important;
}

.ep-cal-cell--empty    { background: transparent !important; }
.ep-cal-cell--disabled { color: #CED4DA !important; background: transparent !important; }

.ep-cal-cell--busy {
  background: #FFF0F0 !important;
  color: #C8B0B0 !important;
  text-decoration: line-through !important;
}

.ep-cal-cell--free {
  background: var(--ep-white) !important;
  color: var(--ep-text) !important;
  cursor: pointer !important;
  border: 1.5px solid var(--ep-border) !important;
  box-shadow: 0 1px 4px rgba(0,0,0,.07) !important;
}
.ep-cal-cell--free:hover {
  background: var(--ep-green-light) !important;
  border-color: var(--ep-green) !important;
  color: var(--ep-green-dark) !important;
  transform: translateY(-1px) scale(1.04) !important;
  box-shadow: 0 4px 12px rgba(124,214,86,.2) !important;
}

.ep-cal-cell--partial {
  border-color: #F0B429 !important;
}
.ep-cal-cell--partial:hover {
  background: #FFFBEB !important;
  border-color: #C89D10 !important;
}

.ep-cal-cell--selected {
  background: var(--ep-green) !important;
  color: #fff !important;
  border-color: var(--ep-green) !important;
  box-shadow: 0 4px 14px rgba(124,214,86,.4) !important;
  transform: scale(1.06) !important;
}

.ep-cal-cell__day   { font-weight: 700 !important; line-height: 1 !important; display: block !important; }
.ep-cal-cell__slots { font-size: 9px !important; color: var(--ep-green) !important; font-weight: 700 !important; line-height: 1 !important; display: block !important; }
.ep-cal-cell--selected .ep-cal-cell__slots { color: rgba(255,255,255,.8) !important; }

.ep-cal-loading {
  text-align: center !important;
  padding: 32px !important;
  color: var(--ep-muted) !important;
  font-size: 14px !important;
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-align-items: center !important;
  align-items: center !important;
  -webkit-justify-content: center !important;
  justify-content: center !important;
  gap: 10px !important;
}
.ep-cal-error { text-align: center !important; padding: 20px !important; color: var(--ep-error) !important; font-size: 14px !important; }

/* Legenda */
.ep-cal-legend {
  display: -webkit-flex !important;
  display: flex !important;
  gap: 16px !important;
  flex-wrap: wrap !important;
  padding: 0 28px 16px !important;
}
.ep-legend-item {
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-align-items: center !important;
  align-items: center !important;
  gap: 6px !important;
  font-size: 12px !important;
  color: var(--ep-muted) !important;
  font-weight: 500 !important;
}
.ep-legend-dot { width: 10px !important; height: 10px !important; border-radius: 3px !important; display: inline-block !important; flex-shrink: 0 !important; }
.ep-legend-dot--free    { background: var(--ep-white) !important; border: 1.5px solid var(--ep-border) !important; }
.ep-legend-dot--partial { background: #FFFBEB !important; border: 1.5px solid #F0B429 !important; }
.ep-legend-dot--busy    { background: #FFF0F0 !important; border: 1.5px solid #F8C8C8 !important; }

/* ============================================================
   SLOT PICKER
   ============================================================ */
.ep-slot-picker {
  background: linear-gradient(135deg, #F8FCFA 0%, var(--ep-green-light) 100%) !important;
  border: 2px solid var(--ep-green) !important;
  border-radius: var(--ep-radius) !important;
  padding: 20px 28px !important;
  margin: 0 28px 12px !important;
  animation: ep-fadein .22s ease !important;
}
@keyframes ep-fadein {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

.ep-slot-picker__header {
  margin-bottom: 14px !important;
}

.ep-slot-picker__date {
  font-size: 16px !important;
  font-weight: 800 !important;
  color: var(--ep-dark) !important;
  display: block !important;
  margin-bottom: 3px !important;
}

.ep-slot-picker__subtitle {
  font-size: 13px !important;
  color: var(--ep-muted) !important;
  display: block !important;
}

.ep-slot-picker__options {
  display: -webkit-flex !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin-bottom: 14px !important;
}

.ep-slot-btn {
  display: -webkit-inline-flex !important;
  display: inline-flex !important;
  -webkit-align-items: center !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 12px 24px !important;
  border-radius: 50px !important;
  border: 2px solid var(--ep-border) !important;
  background: var(--ep-white) !important;
  color: var(--ep-text) !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  cursor: pointer !important;
  transition: all var(--ep-tr) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.07) !important;
  letter-spacing: .5px !important;
  white-space: nowrap !important;
}
.ep-slot-btn__time { display: inline !important; }
.ep-slot-btn__sep  { color: var(--ep-muted) !important; font-weight: 400 !important; display: inline !important; }
.ep-slot-btn:hover {
  border-color: var(--ep-green) !important;
  color: var(--ep-green-dark) !important;
  background: var(--ep-green-light) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 14px rgba(124,214,86,.2) !important;
}
.ep-slot-btn--active {
  background: var(--ep-green) !important;
  border-color: var(--ep-green) !important;
  color: #fff !important;
  box-shadow: 0 4px 16px rgba(124,214,86,.4) !important;
}
.ep-slot-btn--active .ep-slot-btn__sep { color: rgba(255,255,255,.6) !important; }
.ep-slot-btn--active:hover {
  background: var(--ep-green-dark) !important;
  border-color: var(--ep-green-dark) !important;
  transform: translateY(-1px) !important;
}

.ep-slot-none {
  font-size: 13px !important;
  color: var(--ep-error) !important;
  margin: 0 !important;
  display: block !important;
}

.ep-slot-picker__note {
  font-size: 12px !important;
  color: var(--ep-muted) !important;
  margin: 0 !important;
  padding-top: 12px !important;
  border-top: 1px solid rgba(124,214,86,.2) !important;
  line-height: 1.55 !important;
  display: block !important;
}

/* ============================================================
   RIEPILOGO
   ============================================================ */
.ep-recap {
  border: 1.5px solid var(--ep-border) !important;
  border-radius: var(--ep-radius-sm) !important;
  overflow: hidden !important;
  margin: 20px 28px 0 !important;
}
.ep-recap__row {
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-align-items: center !important;
  align-items: center !important;
  padding: 13px 18px !important;
  border-bottom: 1px solid var(--ep-border) !important;
  gap: 10px !important;
}
.ep-recap__row:last-child { border-bottom: none !important; }
.ep-recap__row--total { background: var(--ep-dark) !important; }

.ep-recap__label {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: var(--ep-muted) !important;
  -webkit-flex: 0 0 150px !important;
  flex: 0 0 150px !important;
  display: block !important;
  line-height: 1.3 !important;
}
.ep-recap__row--total .ep-recap__label { color: rgba(255,255,255,.6) !important; }

.ep-recap__value {
  font-size: 15px !important;
  font-weight: 500 !important;
  color: var(--ep-text) !important;
  -webkit-flex: 1 !important;
  flex: 1 !important;
  min-width: 0 !important;
  overflow-wrap: break-word !important;
  display: block !important;
  line-height: 1.4 !important;
}
.ep-recap__value--mono      { font-family: 'Courier New', monospace !important; letter-spacing: 1px !important; }
.ep-recap__value--highlight { color: var(--ep-green-dark) !important; font-weight: 800 !important; }
.ep-recap__value--price     { font-size: 22px !important; font-weight: 900 !important; color: #fff !important; }

/* ============================================================
   SUCCESS
   ============================================================ */
.ep-success {
  text-align: center !important;
  padding: 40px 28px !important;
}

.ep-success__icon {
  width: 72px !important; height: 72px !important;
  background: var(--ep-green-light) !important;
  border-radius: 50% !important;
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-align-items: center !important;
  align-items: center !important;
  -webkit-justify-content: center !important;
  justify-content: center !important;
  margin: 0 auto 20px !important;
  font-size: 34px !important;
  color: var(--ep-green) !important;
  line-height: 1 !important;
}

.ep-success__title { font-size: 24px !important; font-weight: 900 !important; color: var(--ep-dark) !important; margin: 0 0 8px !important; }
.ep-success__msg   { font-size: 15px !important; color: var(--ep-muted) !important; margin: 0 0 24px !important; }

.ep-pin-box {
  background: var(--ep-dark) !important;
  border-radius: var(--ep-radius) !important;
  padding: 22px 28px !important;
  margin: 0 auto 20px !important;
  max-width: 280px !important;
  display: block !important;
}
.ep-pin-box__label {
  font-size: 11px !important;
  color: rgba(255,255,255,.6) !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  font-weight: 700 !important;
  margin-bottom: 8px !important;
  display: block !important;
}
.ep-pin-box__code {
  font-size: 40px !important;
  font-weight: 900 !important;
  color: #fff !important;
  letter-spacing: 10px !important;
  font-family: 'Courier New', Courier, monospace !important;
  line-height: 1 !important;
  display: block !important;
}

.ep-success__note { font-size: 13px !important; color: var(--ep-muted) !important; margin: 0 !important; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 600px) {
  .ep-wrap {
    padding: 0 10px 32px !important;
  }

  /* ── Stepper ── */
  .ep-stepper {
    margin: 20px 0 18px !important;
  }
  .ep-stepper__circle {
    width: 34px !important;
    height: 34px !important;
    font-size: 14px !important;
  }
  .ep-stepper__label { display: none !important; }
  .ep-stepper__line  { margin-top: 16px !important; min-width: 16px !important; }

  /* ── Card header ── */
  .ep-card__header {
    padding: 16px 18px !important;
  }
  .ep-card__title {
    font-size: 17px !important;
  }
  .ep-card__sub {
    font-size: 12px !important;
  }

  /* ── Card body padding ── */
  .ep-card__body {
    padding: 18px 16px 20px !important;
  }

  /* ── Fields: fix flex-basis in column direction ──
     flex-basis:200px in column = min-height 200px → huge gap.
     Reset to auto so height is content-driven.           */
  .ep-field-row {
    -webkit-flex-direction: column !important;
    flex-direction: column !important;
    gap: 0 !important;
  }
  .ep-field-row > .ep-field {
    -webkit-flex: 0 0 auto !important;
    flex: 0 0 auto !important;
    width: 100% !important;
  }

  /* ── Input / badge ── */
  .ep-input {
    height: 46px !important;
    font-size: 14px !important;
  }
  .ep-input-wrap .ep-input {
    padding-right: 14px !important;
  }
  .ep-cf-badge {
    position: static !important;
    transform: none !important;
    display: inline-block !important;
    margin-top: 6px !important;
  }

  /* ── Calendario ── */
  .ep-cal-nav {
    padding: 0 16px !important;
  }
  .ep-calendario {
    padding: 8px 10px !important;
  }
  .ep-cal-legend {
    padding: 0 16px 12px !important;
    gap: 10px !important;
  }
  .ep-cal-cell {
    min-height: 34px !important;
    font-size: 12px !important;
    border-radius: 6px !important;
  }
  .ep-cal-cell__slots { display: none !important; }

  /* ── Slot picker ── */
  .ep-slot-picker {
    margin: 0 0 12px !important;
    padding: 14px 16px !important;
  }
  .ep-slot-btn {
    -webkit-flex: 1 1 auto !important;
    flex: 1 1 auto !important;
    min-width: 120px !important;
    padding: 10px 16px !important;
    font-size: 14px !important;
    -webkit-justify-content: center !important;
    justify-content: center !important;
  }

  /* ── Riepilogo ── */
  .ep-recap {
    margin: 16px 0 0 !important;
  }
  .ep-recap__row {
    -webkit-flex-direction: column !important;
    flex-direction: column !important;
    -webkit-align-items: flex-start !important;
    align-items: flex-start !important;
    gap: 2px !important;
    padding: 11px 14px !important;
  }
  .ep-recap__label {
    -webkit-flex: none !important;
    flex: none !important;
    font-size: 11px !important;
  }
  .ep-recap__value {
    font-size: 14px !important;
  }
  .ep-recap__value--price {
    font-size: 20px !important;
  }

  /* ── Actions / buttons ── */
  .ep-actions {
    -webkit-flex-direction: column-reverse !important;
    flex-direction: column-reverse !important;
    padding: 16px !important;
    gap: 10px !important;
    margin-top: 0 !important;
  }
  .ep-btn {
    width: 100% !important;
    height: 48px !important;
    font-size: 14px !important;
  }

  /* ── Success ── */
  .ep-success { padding: 28px 16px !important; }
}

@media (max-width: 380px) {
  .ep-wrap { padding: 0 8px 28px !important; }
  .ep-card__header { padding: 14px 14px !important; }
  .ep-card__body   { padding: 14px 12px 16px !important; }
  .ep-pin-box__code { font-size: 28px !important; letter-spacing: 5px !important; }
  .ep-cal-cell { min-height: 30px !important; font-size: 11px !important; }
}

/* ============================================================
   PARCHEGGIO – COMPONENTI SPECIFICI
   ============================================================ */

/* Alias classi bottone con singolo trattino (compatibilità form parcheggio) */
.ep-btn.ep-btn--primary,
.ep-btn.ep-btn-primary {
  background: var(--ep-green) !important;
  color: #fff !important;
  border-color: var(--ep-green) !important;
}
.ep-btn.ep-btn--primary:hover:not(:disabled),
.ep-btn.ep-btn-primary:hover:not(:disabled) {
  background: var(--ep-green-dark) !important;
  border-color: var(--ep-green-dark) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 20px rgba(124,214,86,.35) !important;
  color: #fff !important;
}
.ep-btn.ep-btn--ghost,
.ep-btn.ep-btn-ghost {
  background: transparent !important;
  color: var(--ep-text) !important;
  border-color: var(--ep-border) !important;
}
.ep-btn.ep-btn--ghost:hover:not(:disabled),
.ep-btn.ep-btn-ghost:hover:not(:disabled) {
  background: var(--ep-bg) !important;
  border-color: #bbb !important;
  color: var(--ep-text) !important;
}

/* Card footer */
.ep-card__footer {
  padding: 16px 28px 20px !important;
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-justify-content: flex-end !important;
  justify-content: flex-end !important;
  gap: 10px !important;
  border-top: 1px solid var(--ep-border) !important;
  background: var(--ep-bg) !important;
  flex-wrap: wrap !important;
}
.ep-card__footer--split {
  -webkit-justify-content: space-between !important;
  justify-content: space-between !important;
}

/* Select */
.ep-select {
  display: block !important;
  width: 100% !important;
  height: 48px !important;
  border: 1.5px solid var(--ep-border) !important;
  border-radius: var(--ep-radius-sm) !important;
  padding: 0 40px 0 14px !important;
  font-size: 15px !important;
  color: var(--ep-text) !important;
  background: var(--ep-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236B7C8E' d='M6 8L0 0h12z'/%3E%3C/svg%3E") no-repeat right 14px center !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  outline: none !important;
  cursor: pointer !important;
  transition: border-color var(--ep-tr), box-shadow var(--ep-tr) !important;
}
.ep-select:focus {
  border-color: var(--ep-green) !important;
  box-shadow: 0 0 0 3px rgba(124,214,86,.15) !important;
}

/* Info box area */
.ep-info-box {
  background: var(--ep-bg) !important;
  border: 1px solid var(--ep-border) !important;
  border-radius: var(--ep-radius-sm) !important;
  padding: 14px 18px !important;
  margin-bottom: 18px !important;
  animation: ep-fadein .2s ease !important;
}
.ep-info-box__desc {
  margin: 0 0 6px !important;
  font-size: 14px !important;
  color: var(--ep-text) !important;
}
.ep-info-box__meta {
  margin: 0 !important;
  font-size: 13px !important;
  color: var(--ep-muted) !important;
}

/* ── Tariff grid (selezione tariffa) ── */
.ep-tariff-grid {
  display: -webkit-flex !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin-top: 4px !important;
}

.ep-tariff-card {
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-flex-direction: column !important;
  flex-direction: column !important;
  -webkit-align-items: center !important;
  align-items: center !important;
  gap: 4px !important;
  -webkit-flex: 1 1 120px !important;
  flex: 1 1 120px !important;
  min-width: 100px !important;
  padding: 14px 12px !important;
  border: 2px solid var(--ep-border) !important;
  border-radius: var(--ep-radius-sm) !important;
  background: var(--ep-white) !important;
  cursor: pointer !important;
  transition: all var(--ep-tr) !important;
  text-align: center !important;
  position: relative !important;
  box-shadow: 0 1px 4px rgba(0,0,0,.06) !important;
}
.ep-tariff-card:hover {
  border-color: var(--ep-green) !important;
  background: var(--ep-green-light) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 16px rgba(124,214,86,.18) !important;
}
.ep-tariff-card--active {
  border-color: var(--ep-green) !important;
  background: var(--ep-green-light) !important;
  box-shadow: 0 4px 16px rgba(124,214,86,.22) !important;
}
.ep-tariff-card--active::after {
  content: '✓' !important;
  position: absolute !important;
  top: 6px !important;
  right: 8px !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  color: var(--ep-green-dark) !important;
}
.ep-tariff-card__icon {
  font-size: 22px !important;
  line-height: 1 !important;
  display: block !important;
}
.ep-tariff-card__name {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: var(--ep-text) !important;
  display: block !important;
  line-height: 1.2 !important;
}
.ep-tariff-card--active .ep-tariff-card__name {
  color: var(--ep-green-dark) !important;
}
.ep-tariff-card__price {
  font-size: 16px !important;
  font-weight: 900 !important;
  color: var(--ep-dark) !important;
  display: block !important;
  letter-spacing: -.3px !important;
}
.ep-tariff-card--active .ep-tariff-card__price {
  color: var(--ep-green-dark) !important;
}

/* ── Availability box ── */
.ep-avail-box {
  background: var(--ep-white) !important;
  border: 1.5px solid var(--ep-border) !important;
  border-radius: var(--ep-radius-sm) !important;
  overflow: hidden !important;
  margin-top: 4px !important;
  animation: ep-fadein .2s ease !important;
}
.ep-avail-box__dates {
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-align-items: center !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 14px 18px !important;
  background: var(--ep-bg) !important;
  border-bottom: 1px solid var(--ep-border) !important;
  flex-wrap: wrap !important;
}
.ep-avail-box__date-item {
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-flex-direction: column !important;
  flex-direction: column !important;
  gap: 2px !important;
}
.ep-avail-box__date-label {
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .6px !important;
  color: var(--ep-muted) !important;
}
.ep-avail-box__date-value {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--ep-text) !important;
}
.ep-avail-box__sep {
  font-size: 18px !important;
  color: var(--ep-muted) !important;
  -webkit-flex: 1 !important;
  flex: 1 !important;
  text-align: center !important;
}
.ep-avail-box__status {
  padding: 10px 18px !important;
  margin: 0 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  border-bottom: 1px solid var(--ep-border) !important;
}
.ep-avail-box__status--free  { color: #166534 !important; background: #f0fdf4 !important; }
.ep-avail-box__status--busy  { color: var(--ep-error) !important; background: var(--ep-error-bg) !important; }
.ep-avail-box__price {
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-align-items: center !important;
  align-items: center !important;
  -webkit-justify-content: space-between !important;
  justify-content: space-between !important;
  padding: 14px 18px !important;
}
.ep-avail-box__price-label {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: var(--ep-muted) !important;
}
.ep-avail-box__price-amount {
  font-size: 24px !important;
  font-weight: 900 !important;
  color: var(--ep-dark) !important;
  letter-spacing: -.5px !important;
}

/* ── Riepilogo parcheggio ── */
.ep-recap-park {
  border: 1.5px solid var(--ep-border) !important;
  border-radius: var(--ep-radius-sm) !important;
  overflow: hidden !important;
}
.ep-recap-park__row {
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-align-items: center !important;
  align-items: center !important;
  padding: 12px 18px !important;
  border-bottom: 1px solid var(--ep-border) !important;
  gap: 10px !important;
}
.ep-recap-park__row:last-child { border-bottom: none !important; }
.ep-recap-park__row--total {
  background: var(--ep-dark) !important;
  padding: 16px 18px !important;
}
.ep-recap-park__label {
  font-size: 12px !important;
  font-weight: 700 !important;
  color: var(--ep-muted) !important;
  -webkit-flex: 0 0 130px !important;
  flex: 0 0 130px !important;
  text-transform: uppercase !important;
  letter-spacing: .4px !important;
  display: block !important;
}
.ep-recap-park__row--total .ep-recap-park__label {
  color: rgba(255,255,255,.6) !important;
}
.ep-recap-park__value {
  font-size: 15px !important;
  font-weight: 500 !important;
  color: var(--ep-text) !important;
  -webkit-flex: 1 !important;
  flex: 1 !important;
  min-width: 0 !important;
  overflow-wrap: break-word !important;
  display: block !important;
}
.ep-recap-park__price {
  font-size: 26px !important;
  font-weight: 900 !important;
  color: var(--ep-green) !important;
  -webkit-flex: 1 !important;
  flex: 1 !important;
  text-align: right !important;
  letter-spacing: -.5px !important;
  display: block !important;
}

/* Mono (targa) */
.ep-mono {
  font-family: 'Courier New', Courier, monospace !important;
  letter-spacing: 2px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
}

/* ── Responsive parcheggio ── */
@media (max-width: 600px) {
  .ep-card__footer {
    padding: 12px 16px 14px !important;
    gap: 8px !important;
  }
  .ep-tariff-grid { gap: 8px !important; }
  .ep-tariff-card {
    -webkit-flex: 1 1 90px !important;
    flex: 1 1 90px !important;
    padding: 12px 8px !important;
  }
  .ep-tariff-card__icon  { font-size: 18px !important; }
  .ep-tariff-card__price { font-size: 14px !important; }
  .ep-avail-box__sep { display: none !important; }
  .ep-avail-box__dates { gap: 12px !important; }
  .ep-avail-box__price-amount { font-size: 20px !important; }
  .ep-recap-park__row { flex-direction: column !important; align-items: flex-start !important; gap: 2px !important; padding: 10px 14px !important; }
  .ep-recap-park__label { flex: none !important; font-size: 10px !important; }
  .ep-recap-park__value { font-size: 14px !important; }
  .ep-recap-park__price { font-size: 22px !important; text-align: left !important; }
}

/* ── Pass Personalizzati – info card ─────────────────────────────── */
.ep-pass-card {
  background: var(--ep-white) !important;
  border: 1.5px solid var(--ep-border) !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  margin-bottom: 18px !important;
  box-shadow: 0 2px 12px rgba(0,0,0,.07) !important;
  animation: ep-fadein .2s ease !important;
}

.ep-pass-card__chips {
  display: flex;
  flex-wrap: wrap !important;
  gap: 8px !important;
  padding: 14px 18px 0 !important;
}

.ep-chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  padding: 4px 12px !important;
  border-radius: 999px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .3px !important;
  text-transform: uppercase !important;
}
.ep-chip--cat {
  background: #f3eafc !important;
  color: #7b2da8 !important;
  border: 1px solid #d9b8f5 !important;
}
.ep-chip--cat::before {
  content: '🏷';
  font-size: 11px !important;
}
.ep-chip--zona {
  background: #e8f4fd !important;
  color: #1a6fa8 !important;
  border: 1px solid #aad4f0 !important;
}
.ep-chip--zona::before {
  content: '📍';
  font-size: 11px !important;
}

.ep-pass-card__desc {
  margin: 0 !important;
  padding: 14px 18px 4px !important;
  font-size: 14px !important;
  color: var(--ep-text) !important;
  line-height: 1.55 !important;
}
.ep-pass-card__desc:empty {
  display: none !important;
}

.ep-pass-card__extra {
  display: flex;
  align-items: flex-start !important;
  gap: 8px !important;
  margin: 10px 18px !important;
  padding: 10px 14px !important;
  background: #fffbec !important;
  border: 1px solid #ffe88a !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  color: #7a5c00 !important;
  line-height: 1.5 !important;
}
.ep-pass-card__extra svg {
  flex-shrink: 0 !important;
  margin-top: 1px !important;
  color: #c89800 !important;
}

.ep-pass-card__footer {
  display: flex !important;
  align-items: stretch !important;
  border-top: 1.5px solid var(--ep-border) !important;
  margin-top: 12px !important;
}
.ep-pass-card__stat {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  padding: 14px 12px !important;
  gap: 3px !important;
}
.ep-pass-card__divider {
  width: 1px !important;
  background: var(--ep-border) !important;
  margin: 10px 0 !important;
}
.ep-pass-card__stat-label {
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  color: var(--ep-muted) !important;
}
.ep-pass-card__stat-value {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--ep-dark) !important;
}
.ep-pass-card__stat--price .ep-pass-card__stat-value {
  font-size: 18px !important;
  color: #8e44ad !important;
}
.ep-pass-card__price-res {
  font-size: 12px !important;
  font-weight: 600 !important;
  color: var(--ep-green-dark) !important;
}

/* ── Pass – campi aggiuntivi dinamici ─────────────────────────────── */
#ep-pass-campi-extra .ep-field {
  margin-bottom: 14px !important;
}
#ep-pass-campi-extra .ep-checkbox-wrap {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 14px !important;
  cursor: pointer !important;
}
#ep-pass-campi-extra .ep-checkbox-wrap input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  accent-color: var(--ep-green) !important;
  cursor: pointer !important;
}

/* ─── Campo Selector Cards ───────────────────────────────────────────── */
.ep-campo-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)) !important;
  gap: 12px !important;
  margin-top: 8px !important;
}
.ep-campo-card {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 14px 14px !important;
  background: #fff !important;
  border: 2px solid #e8ecf0 !important;
  border-radius: 12px !important;
  cursor: pointer !important;
  transition: border-color .18s, background .18s, box-shadow .18s !important;
  position: relative !important;
  user-select: none !important;
  outline: none !important;
  text-align: left !important;
}
.ep-campo-card:hover,
.ep-campo-card:focus {
  border-color: #7cd656 !important;
  background: #f7fdf2 !important;
  box-shadow: 0 2px 12px rgba(124,214,86,.15) !important;
}
.ep-campo-card--active {
  border-color: #7cd656 !important;
  background: #f0fde8 !important;
  box-shadow: 0 0 0 3px rgba(124,214,86,.22) !important;
}
.ep-campo-card__icon {
  font-size: 26px !important;
  flex-shrink: 0 !important;
  line-height: 1 !important;
}
.ep-campo-card__body {
  flex: 1 !important;
  min-width: 0 !important;
}
.ep-campo-card__nome {
  font-weight: 700 !important;
  font-size: 14px !important;
  color: #1e2d3d !important;
  word-wrap: break-word !important;
  overflow-wrap: break-word !important;
}
.ep-campo-card__sport {
  font-size: 11px !important;
  color: #6b7c8e !important;
  margin-top: 2px !important;
  text-transform: uppercase !important;
  letter-spacing: .5px !important;
}
.ep-campo-card__prezzo {
  font-size: 12px !important;
  color: #5aba30 !important;
  font-weight: 700 !important;
  margin-top: 5px !important;
}
.ep-campo-card__check {
  width: 22px !important;
  height: 22px !important;
  border-radius: 50% !important;
  background: #7cd656 !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  opacity: 0 !important;
  transition: opacity .15s !important;
  line-height: 1 !important;
}
.ep-campo-card--active .ep-campo-card__check {
  opacity: 1 !important;
}

/* ─── Campo Picker (dropdown ricercabile per >6 campi) ──────────────── */
.ep-campo-picker {
  position: relative !important;
}
.ep-campo-picker__input-wrap {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 10px 14px !important;
  background: #fff !important;
  border: 1.5px solid #d0d8e4 !important;
  border-radius: 10px !important;
  cursor: pointer !important;
  transition: border-color .18s, box-shadow .18s !important;
  user-select: none !important;
}
.ep-campo-picker__input-wrap:hover,
.ep-campo-picker--open .ep-campo-picker__input-wrap {
  border-color: #7cd656 !important;
  box-shadow: 0 0 0 3px rgba(124,214,86,.12) !important;
}
.ep-campo-picker__icon {
  font-size: 18px !important;
  flex-shrink: 0 !important;
}
.ep-campo-picker__search {
  flex: 1 !important;
  border: none !important;
  outline: none !important;
  font-size: 14px !important;
  color: #1e2d3d !important;
  background: transparent !important;
  cursor: pointer !important;
  min-width: 0 !important;
  padding: 0 !important;
}
.ep-campo-picker__search::placeholder {
  color: #9aa8b4 !important;
}
.ep-campo-picker__arrow {
  font-size: 10px !important;
  color: #9aa8b4 !important;
  transition: transform .2s !important;
  flex-shrink: 0 !important;
}
.ep-campo-picker--open .ep-campo-picker__arrow {
  transform: rotate(180deg) !important;
}
.ep-campo-picker__dropdown {
  position: absolute !important;
  top: calc(100% + 4px) !important;
  left: 0 !important;
  right: 0 !important;
  background: #fff !important;
  border: 1.5px solid #dde4ec !important;
  border-radius: 10px !important;
  box-shadow: 0 8px 32px rgba(42,48,53,.13) !important;
  z-index: 1000 !important;
  max-height: 300px !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
}
.ep-campo-picker__option {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 11px 16px !important;
  cursor: pointer !important;
  transition: background .12s !important;
  gap: 12px !important;
  border-bottom: 1px solid #f0f4f8 !important;
}
.ep-campo-picker__option:last-child {
  border-bottom: none !important;
}
.ep-campo-picker__option:hover,
.ep-campo-picker__option--active {
  background: #f0fde8 !important;
}
.ep-campo-picker__opt-info {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
  min-width: 0 !important;
}
.ep-campo-picker__opt-nome {
  font-weight: 700 !important;
  font-size: 14px !important;
  color: #1e2d3d !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
.ep-campo-picker__opt-sport {
  font-size: 11px !important;
  color: #6b7c8e !important;
  text-transform: uppercase !important;
  letter-spacing: .5px !important;
}
.ep-campo-picker__opt-price {
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #5aba30 !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}
/* Preview bar dopo selezione */
.ep-campo-picker__preview {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin-top: 10px !important;
  padding: 12px 16px !important;
  background: #f0fde8 !important;
  border: 1.5px solid #7cd656 !important;
  border-radius: 10px !important;
}
.ep-campo-picker__prev-main {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex: 1 !important;
  min-width: 0 !important;
}
.ep-campo-picker__prev-icon {
  font-size: 20px !important;
  flex-shrink: 0 !important;
}
.ep-campo-picker__prev-nome {
  font-weight: 700 !important;
  font-size: 14px !important;
  color: #1e2d3d !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
.ep-campo-picker__prev-sport {
  font-size: 11px !important;
  color: #6b7c8e !important;
  text-transform: uppercase !important;
  letter-spacing: .5px !important;
  margin-top: 2px !important;
}
.ep-campo-picker__prev-price {
  font-weight: 700 !important;
  font-size: 13px !important;
  color: #5aba30 !important;
  flex-shrink: 0 !important;
}
.ep-campo-picker__prev-change {
  background: none !important;
  border: 1.5px solid #7cd656 !important;
  border-radius: 6px !important;
  padding: 4px 10px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #3d8b0f !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
  transition: background .15s, color .15s !important;
}
.ep-campo-picker__prev-change:hover {
  background: #7cd656 !important;
  color: #fff !important;
}

/* ─── Slot counter badge ─────────────────────────────────────────────── */
.ep-slot-counter {
  display: inline-block !important;
  margin-top: 10px !important;
  padding: 5px 14px !important;
  background: #f0fde8 !important;
  border: 1.5px solid #7cd656 !important;
  border-radius: 20px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #3d8b0f !important;
}
.ep-slot-counter--empty {
  background: #f7f9fc !important;
  border-color: #e8ecf0 !important;
  color: #9aa8b4 !important;
}

/* Utility – deve stare in fondo per vincere su tutti i display !important */
.ep-hide { display: none !important; }
