/* Correzioni di accessibilità (WCAG 2.2 AA). Caricato dopo gli altri CSS. */

/* Skip link: visibile quando riceve il focus */
.skip-link {
  position: absolute;
  left: -10000px;
  top: 0;
  z-index: 10000;
  padding: .5rem 1rem;
  background: #004996;
  color: #fff;
}
.skip-link:focus {
  left: .5rem;
  top: .5rem;
  color: #fff;
}
main:focus { outline: none; }

/* Nome del sito: non più <h1> (un solo h1 per pagina) */
#site_name { display: block; }

/* Contrasto testo >= 4.5:1 */
.breadcrumb,
.breadcrumb-item,
.breadcrumb-item.active,
.breadcrumb-item + .breadcrumb-item::before { color: #595959; }
.breadcrumb a { color: #0a58ca; }
ul.nav-tabs.reader .nav.gray,
ul.nav-tabs.reader a.gray,
.reader .gray,
.reader a { color: #0a58ca; }
.btn-success {
  --bs-btn-bg: #146c43;
  --bs-btn-border-color: #146c43;
  --bs-btn-hover-bg: #0f5132;
  --bs-btn-hover-border-color: #0f5132;
  --bs-btn-active-bg: #0f5132;
  --bs-btn-active-border-color: #0f5132;
  --bs-btn-disabled-bg: #146c43;
  --bs-btn-disabled-border-color: #146c43;
}
.btn-outline-primary { --bs-btn-color: #0a58ca; --bs-btn-border-color: #0a58ca; }
.text-muted { color: #595959 !important; }

/* Focus sempre visibile (contrasto >= 3:1) */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible,
.button-as-link:focus-visible {
  outline: 3px solid #1d4ed8 !important;
  outline-offset: 2px;
  box-shadow: none;
}

/* Target di almeno 24x24px (WCAG 2.5.8) */
#footer .menu a,
#footer .footer-bottom a,
header .menu a,
header .menu .logout {
  display: inline-block;
  min-height: 24px;
  min-width: 24px;
  padding-top: 2px;
  padding-bottom: 2px;
}
.btn-action { min-width: 24px; min-height: 24px; }

/* Messaggi di stato (sostituiscono alert()) */
.a11y-toast {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 2000;
  max-width: 28rem;
}
.a11y-toast:empty { display: none; }
.a11y-toast > div {
  background: #212529;
  color: #fff;
  padding: .75rem 1rem;
  border-radius: .375rem;
  box-shadow: 0 .25rem .75rem rgba(0,0,0,.3);
}
.a11y-toast > div.error { background: #842029; }

/* <details> usato come alternativa no-JS alle modali */
details > summary { display: inline-block; }

/* pulsanti piccoli delle tabelle del CV: almeno 24x24px */
.btn.actionicon, .btn.saveicon, .btn-sm { min-height: 24px; min-width: 24px; }
td .btn + .btn, td .btn + form, td form + .btn { margin-left: 2px; }
