/*
 * CMGIS v1.25.99 - rifinitura grafica trasversale icone/testi.
 * Obiettivo: nessuna sovrapposizione tra label e icone nei controlli condivisi,
 * mantenendo Bootstrap Italia/AgID e senza alterare la semantica delle pagine.
 */

/* I controlli con icona e testo devono riservare spazio reale a entrambi. */
.cmgis-content .btn,
.cmgis-login .btn,
.navbar .btn,
.cmgis-content .dropdown-item,
.cmgis-content .list-group-item-action {
  align-items: center;
  gap: .38rem;
  line-height: 1.2;
  max-width: 100%;
  white-space: normal;
}

.cmgis-content .btn,
.cmgis-login .btn,
.navbar .btn {
  display: inline-flex;
  justify-content: center;
  vertical-align: middle;
}

.cmgis-content .dropdown-item,
.cmgis-content .list-group-item-action {
  display: flex;
  min-width: 0;
}

/* Nav/tab: icona e label nello stesso flusso, con wrapping controllato. */
.cmgis-content .nav-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .42rem;
  min-width: 0;
  line-height: 1.22;
  overflow-wrap: anywhere;
}

/* Sidebar: non comprimere mai l'icona dentro il testo. */
.sidebar-link {
  align-items: center;
  gap: .55rem;
}
.sidebar-link > i.bi {
  width: 1.15rem;
  text-align: center;
}

/*
 * Bootstrap Icons dentro controlli azionabili: sempre nel normale flusso.
 * Questo neutralizza position/offset/font-size ereditati che possono portare
 * l'icona sotto la label o farla invadere il testo.
 */
.cmgis-content .btn > i.bi,
.cmgis-login .btn > i.bi,
.cmgis-content .nav-link > i.bi,
.cmgis-content .dropdown-item > i.bi,
.cmgis-content .list-group-item-action > i.bi,
.cmgis-content .accordion-button > i.bi,
.sidebar-link > i.bi,
.navbar .btn > i.bi,
.navbar a.btn > i.bi {
  position: static !important;
  inset: auto !important;
  float: none !important;
  flex: 0 0 auto;
  display: inline-block;
  width: auto;
  height: auto;
  margin: 0 !important;
  font-size: 1em !important;
  line-height: 1 !important;
  vertical-align: -0.125em;
}


/* Testo e icona restano due elementi distinti anche nei controlli compatti. */
.cmgis-content .btn > span,
.cmgis-login .btn > span,
.navbar .btn > span,
.cmgis-content .nav-link > span,
.cmgis-content .dropdown-item > span {
  min-width: 0;
  line-height: inherit;
}

/* Le icone non devono mai finire dietro una label per shrink o offset ereditati. */
.cmgis-content .btn > i.bi,
.cmgis-login .btn > i.bi,
.navbar .btn > i.bi,
.cmgis-content .nav-link > i.bi,
.cmgis-content .dropdown-item > i.bi,
.sidebar-link > i.bi {
  z-index: auto !important;
  transform: none !important;
}

/* Immagini usate come icone dentro pulsanti/nav: dimensione coerente col testo. */
.cmgis-content .btn > img,
.cmgis-content .nav-link > img,
.cmgis-content .dropdown-item > img,
.sidebar-link > img {
  flex: 0 0 auto;
  width: auto;
  max-width: 1.35em;
  height: auto;
  max-height: 1.35em;
  object-fit: contain;
}

/* Link testuali con icona diretta: l'icona resta allineata alla baseline. */
.cmgis-content a > i.bi {
  position: static;
  float: none;
  vertical-align: -0.125em;
  line-height: 1;
}

/* Help inline: il min-height globale dei link NON deve trasformare l'icona in un blocco alto 38/44 px. */
.cmgis-help-icon {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 0;
  min-height: 0 !important;
  height: 1.15em;
  margin-left: .28rem;
  padding: 0;
  line-height: 1;
  vertical-align: -0.12em;
}
.cmgis-help-icon > i.bi {
  position: static !important;
  inset: auto !important;
  margin: 0 !important;
  font-size: .9em !important;
  line-height: 1 !important;
}

/* Help icon accanto alle label/titoli: mai sotto/sopra il testo del campo. */
.form-label .cmgis-help-icon,
.form-check-label .cmgis-help-icon,
h1 .cmgis-help-icon,
h2 .cmgis-help-icon,
h3 .cmgis-help-icon,
h4 .cmgis-help-icon,
h5 .cmgis-help-icon,
h6 .cmgis-help-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 0 !important;
  line-height: 1;
  vertical-align: middle;
}

/* Header di card e righe azioni: wrapping prevedibile, niente collisioni. */
.card-header,
.card-body,
.page-card {
  min-width: 0;
}
.card-header .d-flex,
.card-body > .d-flex.align-items-center.justify-content-between,
.page-card > .d-flex.align-items-center.justify-content-between {
  gap: .6rem;
  flex-wrap: wrap;
}
.card-body > .d-flex.align-items-center.justify-content-between > *,
.page-card > .d-flex.align-items-center.justify-content-between > * {
  min-width: 0;
}
.card-body > .d-flex.align-items-center.justify-content-between > .text-end,
.page-card > .d-flex.align-items-center.justify-content-between > .text-end {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: .35rem;
}

/* Testi lunghi in badge/azioni: non possono uscire o coprire elementi adiacenti. */
.cmgis-content .badge,
.cmgis-content .btn,
.cmgis-content .nav-link,
.cmgis-content .dropdown-item,
.sidebar-link span {
  overflow-wrap: anywhere;
}

/* Le icone decorative grandi restano grandi solo se NON sono dentro un controllo. */
.cmgis-content .text-center > i.bi,
.cmgis-content .cmgis-decorative-icon > i.bi {
  position: static;
  display: inline-block;
  line-height: 1;
}

@media (max-width: 767.98px) {
  .cmgis-content .btn {
    gap: .3rem;
  }
  .cmgis-content .nav-link {
    gap: .3rem;
    line-height: 1.15;
  }
  .card-body > .d-flex.align-items-center.justify-content-between > .text-end,
  .page-card > .d-flex.align-items-center.justify-content-between > .text-end {
    width: 100%;
    justify-content: flex-start;
  }
}

/* Header schede di dettaglio (interventi/record): titolo e azioni non si sovrappongono. */
.cmgis-detail-header {
  flex-wrap: wrap;
  gap: .75rem 1rem;
}
.cmgis-detail-heading {
  flex: 1 1 320px;
  min-width: 0;
}
.cmgis-detail-heading > * {
  overflow-wrap: anywhere;
}
.cmgis-detail-actions {
  display: flex;
  flex: 0 1 auto;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: .35rem;
}
@media (max-width: 767.98px) {
  .cmgis-detail-heading,
  .cmgis-detail-actions {
    flex: 1 1 100%;
    width: 100%;
  }
  .cmgis-detail-actions {
    justify-content: flex-start;
  }
}


/* ============================================================
 * CMGIS v1.26.00 - hardening alert Bootstrap Italia
 *
 * Bootstrap Italia disegna l'icona degli alert contestuali con un
 * pseudo-elemento posizionato nella fascia sinistra. Le utility px-*
 * e i vecchi override CMGIS del padding potevano sottrarre tale fascia,
 * facendo sovrapporre il testo all'icona. Il gutter qui sotto viene
 * applicato DOPO Bootstrap Italia e prevale sulle utility orizzontali.
 * ============================================================ */
.cmgis-content .alert.alert-primary,
.cmgis-content .alert.alert-secondary,
.cmgis-content .alert.alert-success,
.cmgis-content .alert.alert-danger,
.cmgis-content .alert.alert-warning,
.cmgis-content .alert.alert-info,
.cmgis-content .alert.alert-dark,
.cmgis-login .alert.alert-primary,
.cmgis-login .alert.alert-secondary,
.cmgis-login .alert.alert-success,
.cmgis-login .alert.alert-danger,
.cmgis-login .alert.alert-warning,
.cmgis-login .alert.alert-info,
.cmgis-login .alert.alert-dark {
  position: relative;
  box-sizing: border-box;
  padding-left: 3.75rem !important;
  line-height: 1.35;
  min-width: 0;
  overflow-wrap: anywhere;
}

/* Mantiene il glifo di Bootstrap Italia confinato nel proprio gutter. */
.cmgis-content .alert.alert-primary::before,
.cmgis-content .alert.alert-secondary::before,
.cmgis-content .alert.alert-success::before,
.cmgis-content .alert.alert-danger::before,
.cmgis-content .alert.alert-warning::before,
.cmgis-content .alert.alert-info::before,
.cmgis-content .alert.alert-dark::before,
.cmgis-login .alert.alert-primary::before,
.cmgis-login .alert.alert-secondary::before,
.cmgis-login .alert.alert-success::before,
.cmgis-login .alert.alert-danger::before,
.cmgis-login .alert.alert-warning::before,
.cmgis-login .alert.alert-info::before,
.cmgis-login .alert.alert-dark::before {
  left: 1rem !important;
  right: auto !important;
  pointer-events: none;
}

/* Le varianti neutre/light non riservano inutilmente lo spazio icona. */
.cmgis-content .alert.alert-light,
.cmgis-login .alert.alert-light {
  overflow-wrap: anywhere;
}

/* Alert compatti: si riduce solo la verticale, mai il gutter icona. */
.cmgis-content .alert.py-1,
.cmgis-login .alert.py-1 {
  padding-top: .35rem !important;
  padding-bottom: .35rem !important;
}
.cmgis-content .alert.py-2,
.cmgis-login .alert.py-2 {
  padding-top: .55rem !important;
  padding-bottom: .55rem !important;
}

@media (max-width: 767.98px) {
  .cmgis-content .alert.alert-primary,
  .cmgis-content .alert.alert-secondary,
  .cmgis-content .alert.alert-success,
  .cmgis-content .alert.alert-danger,
  .cmgis-content .alert.alert-warning,
  .cmgis-content .alert.alert-info,
  .cmgis-content .alert.alert-dark,
  .cmgis-login .alert.alert-primary,
  .cmgis-login .alert.alert-secondary,
  .cmgis-login .alert.alert-success,
  .cmgis-login .alert.alert-danger,
  .cmgis-login .alert.alert-warning,
  .cmgis-login .alert.alert-info,
  .cmgis-login .alert.alert-dark {
    padding-left: 3.5rem !important;
  }
}
