/* Bootstrap 5.3 ritematizzato sui token Baboo. Solo variabili --bs-* e pochi override. */
:root{
  --bs-body-font-family: var(--font-text);
  --bs-body-font-size: 1rem;
  --bs-body-line-height: 1.6;
  --bs-body-color: var(--ink);
  --bs-body-bg: var(--white);
  --bs-secondary-color: var(--ink-soft);
  --bs-tertiary-bg: var(--light);
  --bs-border-color: var(--line);
  --bs-border-radius: 4px;
  --bs-border-radius-sm: 2px;
  --bs-border-radius-lg: 4px;
  --bs-border-radius-pill: 2px;          /* niente pillole: badge e chip rettangolari */
  --bs-font-monospace: var(--font-mono);
  --bs-primary: #4E7FA3;
  --bs-primary-rgb: 78,127,163;
  --bs-primary-text-emphasis: #3F6A8A;
  --bs-primary-bg-subtle: #EFF4F8;
  --bs-primary-border-subtle: #A0BED2;
  --bs-secondary: #374350;
  --bs-secondary-rgb: 55,67,80;
  --bs-success: #3F6A8A; --bs-success-rgb: 63,106,138;       /* "ok" = accento, non verde */
  --bs-info: #4E7FA3;    --bs-info-rgb: 78,127,163;
  --bs-warning: #5B6670; --bs-warning-rgb: 91,102,112;       /* "in attesa" = neutro */
  --bs-danger: #9B3D31;  --bs-danger-rgb: 155,61,49;
  --bs-light: #EFF4F8;   --bs-light-rgb: 239,244,248;
  --bs-dark: #374350;    --bs-dark-rgb: 55,67,80;
  --bs-link-color: #3F6A8A; --bs-link-color-rgb: 63,106,138;
  --bs-link-hover-color: #374350; --bs-link-hover-color-rgb: 55,67,80;
  --bs-focus-ring-color: rgba(160,190,210,.6);
  --bs-success-bg-subtle:#EFF4F8;--bs-success-border-subtle:#A0BED2;--bs-success-text-emphasis:#3F6A8A;
  --bs-info-bg-subtle:#EFF4F8;--bs-info-border-subtle:#A0BED2;--bs-info-text-emphasis:#3F6A8A;
  --bs-warning-bg-subtle:#F4F6F8;--bs-warning-border-subtle:#D6E1EA;--bs-warning-text-emphasis:#5B6670;
  --bs-danger-bg-subtle:#F6ECEA;--bs-danger-border-subtle:#D9A9A2;--bs-danger-text-emphasis:#7E3127;
  --bs-secondary-bg-subtle:#EFF4F8;--bs-secondary-text-emphasis:#374350;--bs-primary-border-subtle:#A0BED2;
  /* Stati dei campi: errore = --crit, valido = accento (niente verde né rosso Bootstrap) */
  --bs-form-invalid-color:#9B3D31;--bs-form-invalid-border-color:#9B3D31;
  --bs-form-valid-color:#3F6A8A;--bs-form-valid-border-color:#3F6A8A;
}
body{font-feature-settings:"kern";-webkit-font-smoothing:antialiased}
h1,h2,h3,.h1,.h2,.h3{font-family:var(--font-display);font-weight:300;letter-spacing:0}
h4,h5,h6,.h4,.h5,.h6{font-family:var(--font-display);font-weight:500}
h4,h5,.fw-bold,.fw-semibold{letter-spacing:-.01em}
/* Bootstrap 5 non imposta cursor:pointer sui controlli che non sono link */
.btn,button:not(:disabled),[role="button"],.accordion-button,.nav-link,.page-link,summary,label.form-check-label{cursor:pointer}
:focus-visible{outline:3px solid var(--blue-deep);outline-offset:3px}
code,kbd,samp,.font-monospace{font-family:var(--font-mono)}
/* Pulsanti (baboo .btn: maiuscolo, 0,84rem, 500, raggio 2px) */
.btn{--bs-btn-font-family:var(--font-text);--bs-btn-font-weight:500;--bs-btn-font-size:.84rem;
  --bs-btn-padding-x:1.25rem;--bs-btn-padding-y:.7rem;--bs-btn-border-radius:2px;
  --bs-btn-focus-shadow-rgb:63,106,138;
  letter-spacing:.08em;text-transform:uppercase;transition:background-color .35s var(--ease-out),color .35s var(--ease-out),border-color .35s var(--ease-out)}
.btn:focus-visible,.nav-link:focus-visible,.page-link:focus-visible,.form-check-input:focus-visible,.accordion-button:focus-visible,.dropdown-item:focus-visible{outline:2px solid var(--blue-deep);outline-offset:2px}
:is(.band-cta,.site-footer) :is(*,.btn,.nav-link,.dropdown-item):focus-visible{outline-color:var(--swan)}
.btn-sm{--bs-btn-font-size:.74rem;--bs-btn-padding-x:.85rem;--bs-btn-padding-y:.5rem;--bs-btn-border-radius:2px}
.btn-lg{--bs-btn-font-size:.9rem;--bs-btn-padding-x:1.6rem;--bs-btn-padding-y:.9rem;--bs-btn-border-radius:2px}
@media (pointer:coarse){.btn{min-height:44px}}
.btn-primary{--bs-btn-bg:#4E7FA3;--bs-btn-border-color:#4E7FA3;--bs-btn-color:#fff;
  --bs-btn-hover-bg:#3F6A8A;--bs-btn-hover-border-color:#3F6A8A;--bs-btn-hover-color:#fff;
  --bs-btn-active-bg:#3F6A8A;--bs-btn-active-border-color:#3F6A8A;--bs-btn-disabled-bg:#4E7FA3;--bs-btn-disabled-border-color:#4E7FA3}
.btn-outline-primary,.btn-outline-secondary,.btn-outline-dark{--bs-btn-color:#374350;--bs-btn-border-color:#374350;
  --bs-btn-hover-bg:#374350;--bs-btn-hover-border-color:#374350;--bs-btn-hover-color:#fff;
  --bs-btn-active-bg:#374350;--bs-btn-active-border-color:#374350;--bs-btn-active-color:#fff}
.btn-secondary,.btn-dark{--bs-btn-bg:#374350;--bs-btn-border-color:#374350;--bs-btn-color:#fff;--bs-btn-hover-bg:#2B3540;--bs-btn-hover-border-color:#2B3540}
.btn-light{--bs-btn-bg:#fff;--bs-btn-border-color:var(--line);--bs-btn-color:#374350;--bs-btn-hover-bg:var(--light);--bs-btn-hover-border-color:#3F6A8A}
.btn-success{--bs-btn-bg:#3F6A8A;--bs-btn-border-color:#3F6A8A;--bs-btn-color:#fff;--bs-btn-hover-bg:#374350;--bs-btn-hover-border-color:#374350}
.btn-danger{--bs-btn-bg:#9B3D31;--bs-btn-border-color:#9B3D31;--bs-btn-color:#fff;--bs-btn-hover-bg:#7E3127;--bs-btn-hover-border-color:#7E3127}
.btn-outline-danger{--bs-btn-color:#9B3D31;--bs-btn-border-color:#9B3D31;--bs-btn-hover-bg:#9B3D31;--bs-btn-hover-border-color:#9B3D31;--bs-btn-hover-color:#fff}
.btn-link{text-transform:none;letter-spacing:0;--bs-btn-color:#3F6A8A}
.btn-warning{--bs-btn-bg:#fff;--bs-btn-border-color:#5B6670;--bs-btn-color:#5B6670;--bs-btn-hover-bg:#EFF4F8;--bs-btn-hover-border-color:#5B6670;--bs-btn-hover-color:#5B6670;--bs-btn-active-bg:#EFF4F8;--bs-btn-active-border-color:#5B6670;--bs-btn-active-color:#5B6670;border-style:dashed}
.btn-info{--bs-btn-bg:#4E7FA3;--bs-btn-border-color:#4E7FA3;--bs-btn-color:#fff;--bs-btn-hover-bg:#3F6A8A;--bs-btn-hover-border-color:#3F6A8A;--bs-btn-hover-color:#fff;--bs-btn-active-bg:#3F6A8A;--bs-btn-active-border-color:#3F6A8A}
.btn-outline-warning{--bs-btn-color:#5B6670;--bs-btn-border-color:#5B6670;--bs-btn-hover-bg:#5B6670;--bs-btn-hover-border-color:#5B6670;--bs-btn-hover-color:#fff}
.btn-outline-info{--bs-btn-color:#3F6A8A;--bs-btn-border-color:#3F6A8A;--bs-btn-hover-bg:#3F6A8A;--bs-btn-hover-border-color:#3F6A8A;--bs-btn-hover-color:#fff}
.btn-outline-success{--bs-btn-color:#3F6A8A;--bs-btn-border-color:#3F6A8A;--bs-btn-hover-bg:#3F6A8A;--bs-btn-hover-border-color:#3F6A8A;--bs-btn-hover-color:#fff}
/* Badge: rettangolari, maiuscoli, piccoli (forma = stato, vedi .st in components.css) */
.badge{--bs-badge-font-size:.68rem;--bs-badge-font-weight:500;--bs-badge-padding-x:.6em;--bs-badge-padding-y:.5em;
  --bs-badge-border-radius:2px;letter-spacing:.1em;text-transform:uppercase;font-family:var(--font-text)}
.badge.rounded-pill{border-radius:2px!important}
.badge.bg-warning,.badge.text-bg-warning{background:#fff!important;color:var(--ink-soft)!important;border:1px dashed var(--ink-soft)}
.badge.bg-light,.badge.text-bg-light{background:#fff!important;color:var(--ink-soft)!important;border:1px solid var(--line)}
.badge.bg-info,.badge.text-bg-info{background:#fff!important;color:#3F6A8A!important;border:1px solid #4E7FA3}
/* Card, tabelle, form, nav, alert, dropdown, modal */
.card{--bs-card-border-color:var(--line);--bs-card-border-radius:4px;--bs-card-inner-border-radius:3px;--bs-card-cap-bg:#fff;box-shadow:none}
.table{--bs-table-color:var(--ink);--bs-table-border-color:var(--line);--bs-table-hover-bg:var(--acc-a);--bs-table-striped-bg:transparent}
.table>thead th,.table>thead td{font:400 .7rem/1.2 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--swan);white-space:nowrap}
.table-success,.table-info{--bs-table-bg:#EFF4F8;--bs-table-color:var(--ink);--bs-table-hover-bg:#E3ECF2;--bs-table-border-color:#D6E1EA;--bs-table-striped-bg:#EFF4F8}
.table-warning{--bs-table-bg:#F4F6F8;--bs-table-color:var(--ink);--bs-table-hover-bg:#EAEEF2;--bs-table-border-color:#D6E1EA;--bs-table-striped-bg:#F4F6F8}
.table-danger{--bs-table-bg:#F6ECEA;--bs-table-color:var(--ink);--bs-table-hover-bg:#EFDFDC;--bs-table-border-color:#D6E1EA;--bs-table-striped-bg:#F6ECEA}
.form-control,.form-select{border:1px solid var(--line);border-radius:2px;padding:.65rem .85rem;font-family:var(--font-text);color:var(--ink)}
.form-control-sm,.form-select-sm{padding:.4rem .6rem;font-size:.84rem}
.form-control-lg,.form-select-lg{padding:.8rem 1rem;font-size:1.05rem}
.form-select{padding-right:2.5rem}
.form-select-sm{padding-right:2rem}
/* Rete di sicurezza: una tendina scritta per errore con form-control (appearance:none) ha
   comunque la freccia. Chevron in CSS con i token, senza immagini. I form usano form-select. */
select.form-control:not([multiple]):not([size]){background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-repeat:no-repeat;background-position:calc(100% - 1.15rem) 50%,calc(100% - .8rem) 50%;background-size:.35rem .35rem;padding-right:2.5rem}
.form-control:focus,.form-select:focus{border-color:#4E7FA3;box-shadow:0 0 0 3px rgba(160,190,210,.4)}
/* Errore: bordo e messaggio restano, via l'icona rossa di Bootstrap. Sulla select si toglie
   solo l'icona (--bs-form-select-bg-icon), non la freccia della tendina. */
.form-control.is-invalid,textarea.form-control.is-invalid{background-image:none;padding-right:.85rem}
.form-select.is-invalid:not([multiple]):not([size]){--bs-form-select-bg-icon:none;padding-right:2.5rem;background-position:right .75rem center}
/* Validazione: l'unico colore semantico è --crit. Niente icone di Bootstrap né verde
   per i campi validi (bordo --line come a riposo); il -sm tiene il suo padding compatto. */
:root{--bs-form-valid-color:var(--ink-soft);--bs-form-valid-border-color:var(--line);--bs-form-invalid-color:var(--crit);--bs-form-invalid-border-color:var(--crit)}
.was-validated .form-control:invalid,.was-validated .form-control:valid,.was-validated textarea.form-control:invalid,.was-validated textarea.form-control:valid,.form-control.is-valid,textarea.form-control.is-valid{background-image:none;padding-right:.85rem}
.was-validated .form-control-sm:invalid,.was-validated .form-control-sm:valid,.form-control-sm.is-invalid,.form-control-sm.is-valid{padding-right:.6rem}
.was-validated .form-control-lg:invalid,.was-validated .form-control-lg:valid,.form-control-lg.is-invalid,.form-control-lg.is-valid{padding-right:1rem}
.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon:none;padding-right:2.5rem;background-position:right .75rem center;background-size:16px 12px}
.was-validated .form-select-sm:invalid:not([multiple]):not([size]),.was-validated .form-select-sm:valid:not([multiple]):not([size]),.form-select-sm.is-invalid:not([multiple]):not([size]),.form-select-sm.is-valid:not([multiple]):not([size]){padding-right:2rem}
.was-validated .form-control:valid,.was-validated .form-select:valid,.form-control.is-valid,.form-select.is-valid{border-color:var(--line)}
.was-validated .form-control:invalid,.was-validated .form-select:invalid{border-color:var(--crit)}
.was-validated .form-control:valid:focus,.was-validated .form-select:valid:focus,.form-control.is-valid:focus,.form-select.is-valid:focus{border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--swan) 40%,transparent)}
.was-validated .form-control:invalid:focus,.was-validated .form-select:invalid:focus,.form-control.is-invalid:focus,.form-select.is-invalid:focus{border-color:var(--crit);box-shadow:0 0 0 3px color-mix(in srgb,var(--crit) 25%,transparent)}
.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--bs-border-color)}
.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--blue);border-color:var(--blue)}
.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:inherit}
.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--swan) 40%,transparent)}
.form-label{font:400 .74rem/1.2 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.45rem}
.form-check-input:checked{background-color:var(--blue);border-color:var(--blue)}
.form-check-input{border-radius:2px}
.form-check-input[type=radio]{border-radius:50%}
.form-check-input:focus{box-shadow:0 0 0 3px rgba(160,190,210,.4);border-color:#4E7FA3}
.accordion-button:focus{box-shadow:0 0 0 3px rgba(160,190,210,.4)}
.nav-tabs{--bs-nav-tabs-border-color:transparent;gap:8px;border:0}
.nav-tabs .nav-link{border:1px solid var(--line);border-radius:2px;color:var(--ink);font-weight:500;font-size:.9rem;padding:.55rem .9rem}
.nav-tabs .nav-link:hover{border-color:#4E7FA3;color:var(--ink)}
.nav-tabs .nav-link.active{background:#374350;border-color:#374350;color:#fff}
.alert{--bs-alert-border-radius:0 4px 4px 0;border:0;border-left:3px solid #4E7FA3;background:var(--light);color:var(--ink-soft)}
.alert-danger{border-left-color:#9B3D31}
.alert-error{border-left-color:#9B3D31}
.alert-warning{border-left-color:var(--ink-soft)}
.dropdown-menu{--bs-dropdown-border-color:var(--line);--bs-dropdown-border-radius:4px;--bs-dropdown-link-active-bg:#4E7FA3;box-shadow:0 18px 40px rgba(55,67,80,.14)}
.modal{--bs-modal-border-radius:4px;--bs-modal-border-color:var(--line)}
.list-group{--bs-list-group-border-color:var(--line);--bs-list-group-border-radius:4px;--bs-list-group-active-bg:#4E7FA3;--bs-list-group-active-border-color:#4E7FA3}
.list-group-item-success,.list-group-item-info{--bs-list-group-color:#3F6A8A;--bs-list-group-bg:#EFF4F8}
.list-group-item-warning{--bs-list-group-color:#5B6670;--bs-list-group-bg:#F4F6F8}
.list-group-item-danger{--bs-list-group-color:#7E3127;--bs-list-group-bg:#F6ECEA}
.pagination{--bs-pagination-color:#374350;--bs-pagination-border-radius:2px;--bs-pagination-active-bg:#374350;--bs-pagination-active-border-color:#374350;--bs-pagination-font-size:.9rem;font-family:var(--font-mono)}
.progress{--bs-progress-bar-bg:#4E7FA3;--bs-progress-border-radius:2px}
.text-primary{color:#3F6A8A!important}
.text-success{color:#3F6A8A!important}
.text-danger{color:#9B3D31!important}
.text-warning{color:var(--ink-soft)!important}
.text-muted{color:var(--ink-soft)!important}
