html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem var(--cosmo-primario, #1D4ED8);
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}

/* Validazione jQuery Unobtrusive: evidenzia campi con errore */
.form-control.input-validation-error,
.form-select.input-validation-error {
  border-color: var(--bs-danger);
  box-shadow: 0 0 0 0.05rem rgba(var(--bs-danger-rgb), 0.35);
}

.cosmo-stato-pratica-banner {
  box-shadow: 0 0 0 0.125rem rgba(var(--bs-warning-rgb), 0.45);
}

.cosmo-stato-sottotitolo {
  letter-spacing: 0.01em;
}

.cosmo-install-modal .modal-content {
  border: 0;
  border-radius: 1.25rem;
  box-shadow: 0 1.5rem 3rem rgba(15, 23, 42, 0.18);
}

.cosmo-install-modal .modal-body {
  padding: 1.5rem;
}

.cosmo-install-modal__subtitle {
  color: var(--bs-secondary-color);
  font-size: 1rem;
}

.cosmo-install-modal__steps {
  margin: 0;
  padding-left: 1.25rem;
  color: var(--bs-body-color);
}

.cosmo-install-modal__steps li + li {
  margin-top: 0.75rem;
}

@media (display-mode: standalone) {
  .cosmo-hide-in-standalone {
    display: none !important;
  }
}

.cosmo-tablet-passkey-prompt {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.cosmo-tablet-passkey-silent-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  color: var(--bs-secondary-color);
  text-decoration: none;
}

.cosmo-tablet-passkey-silent-trigger:hover,
.cosmo-tablet-passkey-silent-trigger:focus-visible {
  color: var(--cosmo-primario, #1D4ED8);
  background-color: rgba(29, 78, 216, 0.08);
}

/* Autocomplete comuni Italia (form candidato) */
.cosmo-comuni-suggest {
  z-index: 1060;
  max-height: 220px;
  overflow-y: auto;
}

.cosmo-comuni-suggest .list-group-item.active {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}

/* Documenti legali consultabili (Privacy, Codice deontologico) */
.cosmo-doc-legale {
  line-height: 1.65;
}

.cosmo-doc-legale .card-body {
  padding: 1.25rem 1.5rem;
}

.cosmo-doc-legale h2.h5 {
  margin-top: 1.5rem;
  margin-bottom: 0.75rem;
  font-size: 1.05rem;
}

.cosmo-doc-legale p,
.cosmo-doc-legale li {
  margin-bottom: 0.75rem;
}

.cosmo-doc-legale ul {
  padding-left: 1.25rem;
}

.cosmo-doc-legale-intro {
  color: var(--bs-secondary-color);
}

@media (max-width: 575.98px) {
  .cosmo-doc-legale .card-body {
    padding: 1rem;
  }

  .cosmo-doc-legale h2.h5 {
    font-size: 1rem;
  }
}