/* ========================================================================== */
/* Consavio CSS – versione consolidata                                        */
/* ========================================================================== */


@font-face{
  font-family: "Noto Sans";
  src: url("fonts/NotoSans-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face{
  font-family: "Noto Sans";
  src: url("fonts/NotoSans-Italic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face{
  font-family: "Noto Sans";
  src: url("fonts/NotoSans-Bold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

/* -------------------------------------------------------------------------- */
/* Variabili da PHP → CSS                                                     */
/* -------------------------------------------------------------------------- */
:root{
  --c-primary: #2563EB;
  --c-primary-h: #2563EB;
  --c-text: #3F3F46;
  --c-text-menu: #3F3F46;
  --c-gray-100: #FAFAFA;
  --c-gray-300: #E4E4E7;
  --c-blue-600: #2563eb;
  --c-blue-600-h: #1d4ed8;
  --c-green-500: #22c55e;
  --c-green-600: #16a34a;
  --c-danger: #dc3545;
  --c-success: #28a745;

  --radius-sm: .4rem;
  --radius-md: .6rem;
  --radius-lg: .8rem;

  --shadow-sm: 0 2px 6px rgba(0,0,0,.08);
  --shadow-md: 0 4px 14px rgba(0,0,0,.08);
  --shadow-blue: 0 2px 6px rgba(2,117,216,.25);

  --fz-12: 1.2rem;
  --fz-13: 1.3rem;
  --fz-14: 1.4rem;
  --fz-15: 1.5rem;
  --fz-16: 1.6rem;
  --fz-18: 1.8rem;
  --fz-20: 2.0rem;
  --fz-24: 2.4rem;
  --fz-30: 3.0rem;
  --fz-35: 3.5rem;


  --bg:#fff;
  --text:#18181b;
  --muted:#62626c;
  --border:#e4e4e7;
  --badge:#f1f5f9;
  --ok:#065f46;
  --err:#b91c1c;
  --warn:#92400e;
  --info:#1d4ed8;
  --link:#1d4ed8;


  --toolbar-h: 68px;
  --side-w: 250px;
  --app-page-max-width: 1200px;
  --app-page-pad: 24px;
  --gutter-desktop: 0px;
  --gutter-mobile: 0px;
}

/* -------------------------------------------------------------------------- */
/* Reset & base                                                               */
/* -------------------------------------------------------------------------- */
*{ box-sizing: border-box; }

html, body{
  height: auto;
  min-height: 100%;
  margin: 0 0 0 0;
  padding: 0;
  font-size: 62.5%;
  background: #fff;
  font-family: var(--cv-font,system-ui);
  color: var(--c-text);
}

html{
  overflow-y: scroll;
  scrollbar-gutter: stable;
}

body{
  font-size:var(--fz-16);
  font-weight:400;
 
}

a{
  color:var(--c-primary);
  text-decoration:none;
  font-weight:600;
}
a:hover{
  color:var(--c-primary-h);
  text-decoration:none;
}

h1,h2,h3,h4,h5{ margin:0; font-weight:600; }
h1{
  position:relative; width:100%;
  padding:1rem 0;
  color:var(--c-primary);
  font-size:var(--fz-30);
  border-bottom:.1rem solid var(--c-primary);
  margin-bottom:2rem;
}
h2{ padding:5rem 0 1rem; font-size:var(--fz-24); }
h3,h4,h5{ padding:2.4rem 0 .5rem; font-size:1.8rem; }

p{ margin:8px 8px 8px 0; }
.textRight{ text-align:right; }
.textCenter,.text-center{ text-align:center; }

/* -------------------------------------------------------------------------- */
/* Layout base & sticky footer                                                */
/* -------------------------------------------------------------------------- */
#container{
  display:flex; flex-direction:column;
  min-height:100vh; width:100%;
}

#contenitore{
  flex:1 1 auto;
  width:100%; margin:0 auto; padding:0;
}

.contenitore {
  max-width: var(--app-page-max-width);
  margin: 0 auto;
  padding: 0 var(--app-page-pad) 40px;
}

.app-section-header,
.app-header,
.wizard-page-header{
  width:100%;
  margin:0 0 2rem 0;
}

.app-header-inner,
.app-header-texts{
  width:100%;
}

/* Footer */
#fine{
  width:100%; color:#3f3f46;
  border-top:.1rem solid var(--c-gray-300);
  background-color:#F9F9F9;
  padding:2rem 10%;
  text-align:center; font-size:var(--fz-15);
  display:flex; justify-content:center; align-items:center;
  position:relative;
}
#fineContatti{ width:100%; padding:4rem 5%; text-align:center; }
#fineInfo{ width:100%; padding:2rem 5%; text-align:center; font-size:1.4rem; }
#fineDati{ width:100%; padding:2rem 10%; text-align:center; font-size:1.5rem; }

.fineBox{
  position:relative; margin:0 1.5%; font-size:1.4rem; width:100%;
  display:flex; justify-content:center; align-items:center; flex-direction:column;
}
.fineBoxLeft{ text-align:left!important; width:25.3%; }
.fineBoxRight{ text-align:right!important; width:25.3%; }
.fineBox h2{ text-transform:lowercase; }
.fineBox h1{ color:#fff; text-transform:uppercase; margin:0; padding:0; }
.fineBox a, .fineBox a:hover{ text-decoration:none; font-weight:normal; }

@media (max-width: 767px){
  #fineDati{ padding:2rem 2%; }
  .fineBox{ width:100%; margin:2rem 0; text-align:center; font-size:1.3rem; }
  .fineBoxLeft, .fineBoxRight{ text-align:center!important; margin:0; }
}

/* -------------------------------------------------------------------------- */
/* Menu utente                                                                */
/* -------------------------------------------------------------------------- */
.menuUtente{
  display:flex; justify-content:flex-end; align-items:center;
  width:100%; padding:1rem 4rem 1rem 0; font-size:var(--fz-14);
}
.menuUtente ul{ display:flex; gap:1rem; margin:0; padding:0; list-style:none; }
.menuUtente ul li{ margin:0; padding:0; }
.menuUtente ul li a{
  display:flex; align-items:center; justify-content:center;
  padding:.6rem 1.2rem; font-weight:600; text-decoration:none;
  border-radius:5px; font-size:var(--fz-14);
  transition: background-color .3s, border-color .3s, text-decoration .3s;
}
.menuUtente ul li a.link-login{
  background:var(--c-blue-600); color:#fff; border:2px solid var(--c-blue-600);
}
.menuUtente ul li a.link-login:hover{ background:var(--c-blue-600-h); border-color:var(--c-blue-600-h); }
.menuUtente ul li a.link-login2{
  background:#fff; color:var(--c-blue-600); border:2px solid var(--c-blue-600);
}
.menuUtente ul li a.link-login2:hover{
  background:#e0e0e0; border-color:var(--c-blue-600); color:var(--c-blue-600);
}
@media (max-width:767px){
  .menuUtente{ justify-content:center; padding:1rem 0; }
  .menuUtente ul{ flex-wrap:wrap; justify-content:center; gap:.8rem; }
}

/* -------------------------------------------------------------------------- */
/* Logo                                                                       */
/* -------------------------------------------------------------------------- */
#logo{
  width:100%; height:10rem; color:#18181b; text-align:center;
  font-size:2rem; margin-top:10rem!important; margin-bottom:25px!important; padding:1.2rem 0 11rem;
}
#logo img{ width:35%; display:inline-block; }
@media (max-width:767px){
  #logo img{ width:80%; }
  #logo{ margin-top:1rem; }
}

/* -------------------------------------------------------------------------- */
/* Utility                                                                    */
/* -------------------------------------------------------------------------- */
.vuoto{ clear:both; }
.visible-mob{ display:none; }
.hidden-mob{ display:block; }
@media (max-width:767px){
  .visible-mob{ display:block; }
  .hidden-mob{ display:none; }
}

/* -------------------------------------------------------------------------- */
/* Componenti riusabili                                                       */
/* -------------------------------------------------------------------------- */
/* Pulsanti */
.tasto, .tasto200, .tasto-google, .btn-google{
  display:inline-block; text-align:center; cursor:pointer; text-decoration:none;
  border-radius:var(--radius-md);
  transition: background .2s, border-color .2s, box-shadow .2s, transform .05s;
}

/* Primario pieno */
.tasto {
  width:100%; padding:14px 0; font-size:var(--fz-16);
  background:var(--c-blue-600); color:#fff; border:2px solid var(--c-blue-600);
  box-shadow:var(--shadow-blue);
}
.tasto:hover { background:var(--c-blue-600-h); border-color:var(--c-blue-600-h); box-shadow:0 4px 10px rgba(2,117,216,.30); }
.tasto:disabled, .tastoTB:disabled{ opacity:.55; cursor:not-allowed; }


/* Pulsante compatto / alternativo */
.tasto200{
  width:auto; margin:2.5rem 0 2.5rem 1%; padding:.8rem 2rem; font-size:var(--fz-20);
  background:var(--c-blue-600); color:#fff; border:2px solid var(--c-blue-600);
}
.tasto200:hover{ background:var(--c-blue-600-h); border-color:var(--c-blue-600-h); box-shadow:0 4px 12px rgba(0,123,255,.2); }

.BottoneCreaConsavio{
  appearance:none;
  border:1px solid #1d4ed8;
  background:#1d4ed8;
  color:#fff;
  border-radius:999px;
  padding:8px 12px;
  min-height:40px;
  font-weight:600;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-size:1.45rem;
  line-height:1;
  box-sizing:border-box;
  text-decoration:none;
}
.BottoneCreaConsavio:hover{ filter:brightness(.95); color:#fff; text-decoration:none; }
.BottoneCreaConsavio:disabled{ opacity:.55; cursor:not-allowed; }
.fc .fc-button.BottoneCreaConsavio{
  border:1px solid #1d4ed8;
  background:#1d4ed8;
  color:#fff;
  border-radius:999px;
  padding:8px 12px;
  min-height:40px;
  font-weight:600;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-size:1.45rem;
  line-height:1;
}
.fc .fc-button.BottoneCreaConsavio:hover{
  background:#1d4ed8;
  border-color:#1d4ed8;
  color:#fff;
  filter:brightness(.95);
}

/* Google */
.tasto-google, .btn-google{ 
  display: inline-flex;
  align-items: center;      /* centro verticale */
  justify-content: center;  
  width:100%; gap:8px; background:#fff; color:#444; border:1px solid #ccc; font-weight:500; padding:14px 0;
}


/* Link principali */
.link-primary, .link{ color:var(--c-blue-600); text-decoration:none; }
.link-primary:hover, .link:hover{ text-decoration:underline; }

/* Messaggi */
.message-box{
  background:#f8f9fa; border-left:4px solid var(--c-blue-600);
  padding:15px; margin-bottom:20px; border-radius:4px;
}
.message-box a{ color:var(--c-blue-600); font-weight:600; text-decoration:none; }
.message-box a:hover{ text-decoration:underline; }
.error-box{ border-left-color:var(--c-danger); }
.success-box{ border-left-color:var(--c-success); }

/* Form generico */
form label{ display:block; font-weight:600; margin-bottom:-.9rem; }
form input, form textarea, form select{
  display:block; width:100%; font-size:2rem; padding:.5rem 1%;
  border:.1rem solid #ccc; border-radius:var(--radius-sm); margin-bottom:.6rem; color:#444; line-height:1.2;
}
form input:focus, form textarea:focus, form select:focus{
  border-color:#2563eb; box-shadow:0 4px 12px rgba(0,123,255,.2); outline:none;
}
form textarea[name="condizioni"], form textarea[name="condizioni_particolari"], form textarea{
  padding:1rem; min-height:16rem;
}
textarea[name="condizioni"]{ font-family:var(--cv-font,system-ui); font-size:2rem; color:#444; line-height:1.2; }
form input[type="submit"]:hover, form input[type="reset"]:hover, form button[type="submit"]:hover, form button[type="reset"]:hover{
  background:#1d4ed8; border-color:#1d4ed8; color:#fff;
}

/* Radio inline */
form input[type="radio"]{ display:inline-block; width:auto; margin:0 .2rem 0 0; vertical-align:middle; cursor:pointer; }
form input[type="radio"] + label{ display:inline-block; vertical-align:middle; font-size:1.9rem; font-weight:normal; margin-right:.6rem; cursor:pointer; }
form label input[type="radio"]{ margin-right:.3rem; }

/* Errori */
.errore, span.errore{ color:#cf3838; }
span.errore{ font-size:1.3rem; }

/* Campi wizard/password */
.field-with-toggle, .password-wrapper{ position:relative; }
.with-toggle, .password-wrapper input[type="password"], .password-wrapper input[type="text"]{ padding-right:40px; }
.togglePassword, .toggle-password{
  position:absolute; right:12px; top:50%; transform:translateY(-50%); background:none; border:none; cursor:pointer; padding:0; line-height:0;
}
.eye-icon{ width:20px; height:20px; fill:#555; display:block; }
          
@media (max-width: 576px) {
  form input,
  form textarea,
  form select, 
  textarea[name="condizioni"]{
    font-size: 1.6rem;
  }
}

/* -------------------------------------------------------------------------- */
/* Wizard (Registrazione / Login / Recupero) — unificato                      */
/* -------------------------------------------------------------------------- */
.wizard-container{
  max-width:420px; margin:25px auto; background:#fff; padding:30px 28px;
  border-radius:var(--radius-lg); box-shadow:var(--shadow-md);
}
.wizard-progress{ display:none; }
.wizard-field{ margin-bottom:14px; }
.wizard-field input[type="text"],
.wizard-field input[type="password"],
.wizard-field input[type="email"],
.wizard-container input[type="text"],
.wizard-container input[type="password"],
.wizard-container input[type="email"]{
  width:100%; padding:14px 16px; font-size:16px;
  border:1px solid #cfd2d6; border-radius:6px; transition:border .2s ease;
}
.wizard-field input:focus, .wizard-container input:focus{ outline:none; border-color:var(--c-blue-600); }
.wizard-field.forgot-wrap{  margin-top: 14px; }
.center-email{ text-align:center; margin-bottom:18px; }
.small{ font-size:13px; }
.title-auth, .page-title{ text-align:center; margin-top:40px; font-family:var(--cv-font,system-ui); }
.subtitle-center{ text-align:center; margin:0 0 12px; }
.terms-note{ font-size:14px; color:#555; text-align:center; }
.signup-note{ text-align:center; padding-top: 0px; padding-bottom: 28px; font-size:16px; font-weight:600;}
.below-text { text-align:center; padding-top: 14px;}

.divider{ text-align:center; margin:15px 0; font-family:var(--cv-font,system-ui); color:#999; }

/* Codice verifica */
#codeFields{ display:flex; justify-content:center; gap:8px; margin:20px 0; }
#codeFields input{
  width:56px; height:56px; text-align:center; font-size:22px; border:1px solid #cfd2d6; border-radius:6px;
}
            
#emailSubmit, #continuePass, #confirmCode, #resetPass {font-weight: 600;}          
/* Google wrap */
.google-wrap{ margin-top:20px; text-align:center; }
.google-logo{ width:20px; height:20px; vertical-align:middle; }
.google-text{ font-size:15px; }

/* -------------------------------------------------------------------------- */
/* Barra di ricerca                                                           */
/* -------------------------------------------------------------------------- */
#navRicerca{
  position:relative; margin:0 auto; text-align:center; width:50%;
  padding:5rem 3rem 2.5rem 0;
}
#navRicercaTesta{ width:200px; margin:0 auto; text-align:center; padding:10px 0; }
#navRicerca form{ position:relative; display:block; margin-bottom:1rem; }
#navRicerca form input[type="text"]{
  width:100%; margin:0; font-size:1.7rem; border-radius:8px; line-height:2.4rem;
  border:1px solid #ddd; padding:1rem 2rem 1rem 3.5rem; background:#f9f9f9;
  transition:all .3s; box-shadow:0 4px 8px rgba(0,0,0,.1);
}
#navRicerca form input[type="text"]:focus{
  border-color:#2563eb; box-shadow:0 4px 12px rgba(0,123,255,.2); outline:none;
}
#navRicerca .search-icon{
  position:absolute; left:.9rem; top:50%; transform:translateY(-50%);
  display:flex; align-items:center; pointer-events:none; font-size:1.4rem; color:#bbb; line-height:1;
}
@media (max-width:576px){
  #navRicerca{
    flex:0 0 100%; display:flex; justify-content:center; align-items:center;
    width:100%; margin:0 auto!important; padding:1rem 0!important;
  }
  #navRicerca form{ width:min(420px, 92vw); flex:0 1 auto; margin-bottom:1rem; }
  #navRicerca form input[type="text"]{ font-size:1.6rem; padding:.9rem 1rem .9rem 2.6rem; margin:0; }
  #navRicerca .search-icon{ left:.8rem; font-size:1.3rem; }
  .contenitore{ padding:0 12px; }
}

/* -------------------------------------------------------------------------- */
/* Procedure / risultati                                                      */
/* -------------------------------------------------------------------------- */
.risultati{ margin:0 auto; width:60%; font-size:1.7rem; background:transparent; }
.procedure{
  width:100%; margin:1rem 0 1.5rem 0; background:#f9f9f9; padding:1rem;
  border-radius:8px; box-shadow:0 4px 8px rgba(0,0,0,.1);
}
.procedure span{ font-size:1.3rem; color:#333; }
@media (max-width:767px){
  .risultati{ width:clamp(280px, 90vw, 1200px); margin:0 auto; }
}

/* -------------------------------------------------------------------------- */
/* Toolbar wizard                                                             */
/* -------------------------------------------------------------------------- */
.toolbar{
  position:fixed; left:0; right:0; bottom:0; z-index:9999;
  display:flex; gap:12px; align-items:center; justify-content:flex-end;
  padding:12px 16px; border-top:1px solid #d6dee6;
  background:rgba(249,249,249,.95); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  box-shadow:0 -6px 16px rgba(0,0,0,.10); min-height:var(--toolbar-h);
  padding-left:max(16px, env(safe-area-inset-left)); padding-right:max(16px, env(safe-area-inset-right));
}
.toolbar__status{
  margin-right:auto; display:flex; align-items:center; gap:.6rem;
  font-size:1.8rem; font-weight:600; color:#000; letter-spacing:.2px;
}
.status-ico{
  font-size:1.8rem; line-height:1; color:var(--c-green-500);
  filter:drop-shadow(0 0 2px rgba(34,197,94,.2)); position:relative;
}
.status-ico::after{
  content:""; position:absolute; inset:0; border-radius:50%;
  box-shadow:0 0 0 0 rgba(34,197,94,.35); animation:pulse 1.8s ease-out infinite;
}
@keyframes pulse{
  0%{ box-shadow:0 0 0 0 rgba(34,197,94,.35); }
  70%{ box-shadow:0 0 0 8px rgba(34,197,94,0); }
  100%{ box-shadow:0 0 0 0 rgba(34,197,94,0); }
}
@media (prefers-reduced-motion:reduce){ .status-ico::after{ animation:none; } }

                
/* === Bottoni toolbar === */
.tastoTB{
  width: auto;                 /* larghezza automatica */
  display: inline-block; 
  margin:0;
  padding:.9rem 1.6rem;
  font-size:1.6rem;
  border-radius:.6rem;
  border:2px solid #2563eb;
  background:#2563eb; color:#fff; font-weight:600; cursor:pointer;
  transition:transform .05s ease, box-shadow .2s ease, background .2s, border-color .2s;
  box-shadow:0 2px 6px rgba(2,117,216,.25);
}
.tastoTB:hover{
  background:#1d4ed8; border-color:#1d4ed8; box-shadow:0 4px 10px rgba(2,117,216,.30);
}
.tastoTB:active{ transform: translateY(1px); }

/* Varianti */
.tastoTB--ghost{
  background:#fff; color:#2563eb; border-color:#2563eb; box-shadow:none;
}
.tastoTB--ghost:hover{ background:#eff6ff; }

.tastoTB--accent{
  background:#22c55e; border-color:#22c55e;   /* verde wizard */
}
.tastoTB--accent:hover{
  background:#16a34a; border-color:#16a34a;   /* tonalità hover più scura */
}


/* Mobile */
@media (max-width: 768px){
  .toolbar{
    flex-wrap: wrap;           /* consente il ritorno a capo */
    justify-content: center;
    gap: 8px 10px;
  }

  /* Riga del testo */
  .toolbar__status{
    flex: 0 0 100%;            /* occupa l'intera larghezza */
    text-align: center;
    justify-content: center;   /* centra icona + testo */
    margin: 0 0 10px 0;        /* spazio sotto il testo */
  }

  /* Riga dei bottoni */
  .toolbar button{
    flex: 0 0 auto;            /* mantieni dimensioni naturali */
  }
}
                
/* ================================
   Tooltip Informativo BOTTONE
   ================================= */

/* Pulsante informativo */
.pulsante-info{
  border:0;
  background:transparent;
  padding:0;
  margin:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:18px;
  width:18px;
  height:18px;
  color:currentColor;
  cursor:pointer;
  position:relative;
}

.pulsante-info i{
  font-size:14px;
  pointer-events:none;
  color:currentColor;
}

/* Contenitore tooltip */
.tooltip-informativo{
  position:fixed;
  z-index:4000;
  max-width:min(320px, 92vw);
  background:#18181b;
  color:#fff;
  padding:8px 10px;
  border-radius:8px;
  font-size:12px;
  line-height:1.25;
  box-shadow:0 6px 16px rgba(0,0,0,.18);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .12s ease, visibility .12s ease;
}

/* Stato visibile */
.tooltip-informativo.aperto{
  opacity:1;
  visibility:visible;
}

@media (prefers-color-scheme: dark){
  .tooltip-informativo{
    background:#18181b;
    box-shadow:0 6px 16px rgba(0,0,0,.55);
  }
}
/* -------------------------------------------------------------------------- */
/* ARCHIVIO ***********  (BLOCCO UNICO DA SOSTITUIRE)                          */
/* -------------------------------------------------------------------------- */

/* ---- Componenti base archivio ---- */
.archivio-btn{
  appearance:none;
  border:1px solid #7aa8ff;
  background:#eff6ff;
  color:var(--link);
  border-radius:999px;
  padding:8px 12px;
  font-weight:600;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  box-sizing:border-box;
}
.archivio-btn:hover{ background:#e1edff; }

.archivio-btn-danger{
  appearance:none;
  border:1px solid #f1b0b7;
  background:#fdecee;
  color:#8a0c11;
  border-radius:999px;
  padding:8px 12px;
  font-weight:600;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  box-sizing:border-box;
}
.archivio-btn-danger:hover{ background:#f9d7da; }

/* ---- Tabella archivio ---- */
.archivioTabelle table{
  width:100%;
  border-collapse:collapse;
}
.archivioTabelle th,
.archivioTabelle td{
  border-bottom:1px solid var(--border);
  padding:10px 8px;
  text-align:left;
  vertical-align:top;
  font-size:14px;
}
.archivioTabelle th{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.02em;
  color:var(--muted);
}

/* Utility testo archivio */
.archivio-muted{ color:var(--muted); font-size:12px; }
.archivio-right{ text-align:right; }
.archivio-mono{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:12px;
}

/* sr-only dedicato all’archivio */
.archivio-sr-only{
  position:absolute;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* Pillole di stato */
.archivio-pill{
  display:inline-block;
  padding:6px 12px;
  border-radius:999px;
  background:#f1f5f9;
  font-weight:600;
  font-size:14px;
  margin-top:8px;
}
.archivio-pill.pending{ background:#d5eaff; color:#055160; border-color:#055160; }
.archivio-pill.completed{ background:#edf7f0; color:#0f5132; border-color:#0f5132; }
.archivio-pill.declined{ background:#fef2f2; color:#842029; border-color:#842029; }
.archivio-pill.expired{ background:#f4f4f5; color:#1f2937; border-color:#1f2937; }

/* CHIP */
.archivio-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:none;
  background:transparent;
  padding:0;
  border-radius:0;
  font-weight:600;
  font-size:14px;
  color:inherit;
}
.archivio-chip i{ font-size:14px; }

/* Link file */
.archivio-links a{
  display:inline;
  margin:0 10px 0 0;
  text-decoration:none;
  border:none;
  background:transparent;
  border-radius:0;
  padding:0;
  font-size:12px;
  color:var(--link);
  font-weight:600;
}
.archivio-links a:hover{ opacity:.85; }
.archivio-links a + a{ display:block; margin-top:12px; }

.archivio-foot{ margin-top:10px; color:var(--muted); font-size:12px; }


/* -------------------------------------------------------------------------- */
/* INPUT FILTRI                                                               */
/* -------------------------------------------------------------------------- */
.archivio-campoRicerca input,
.archivio-campoRicerca select,
.archivio-campoRicerca textarea,
.archivio-input{
  height:40px;
  padding:0 12px;              /* no padding verticale */
  border:1px solid var(--border);
  border-radius:8px;
  font-size:14px;
  box-sizing:border-box;
  line-height:40px;            /* centra testo */
  transition:border-color .15s ease, box-shadow .15s ease;
}
.archivio-campoRicerca input:focus,
.archivio-campoRicerca select:focus,
.archivio-campoRicerca textarea:focus,
.archivio-input:focus{
  border-color:#2563eb;
  box-shadow:0 4px 12px rgba(0,123,255,.2);
  outline:none;
}


/* -------------------------------------------------------------------------- */
/* TOOLBAR ANAGRAFICHE (form con input + reset + nuovo nello stesso contenitore)
   HTML: <form class="archivio-toolbar-form"> ... </form>
   -------------------------------------------------------------------------- */
.archivio-toolbar-form{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:nowrap;
  width:100%;
}

/* wrapper filtro generato dal PHP (ha float inline) */
.archivio-toolbar-form .campoRicerca{
  float:none !important;
  margin:0 !important;
  width:210px !important;
}

/* nascondi label se presente */
.archivio-toolbar-form .archivio-campoRicerca label{ display:none; }

/* reset allineato */
.archivio-toolbar-form #_reset{
  height:40px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-left:6px;
  line-height:1;
}

/* bottone nuova anagrafica a destra */
.archivio-toolbar-form .archivio-btn-new{ margin-left:auto; }


/* -------------------------------------------------------------------------- */
/* TOOLBAR ARCHIVIO DOCUMENTI (SERVE WRAPPER)
   HTML consigliato:
   <div class="archivio-toolbar">
      <div class="archivio-campoRicerca"...>...</div>
      <div class="archivio-campoRicerca"...>...</div>
      <button id="_reset">...</button>
   </div>
   -------------------------------------------------------------------------- */
.archivio-toolbar{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:nowrap;
  width:100%;
  margin:12px 0 16px;
}

/* nei tuoi filtri archivio documenti ci sono float inline */
.archivio-toolbar .archivio-campoRicerca{
  float:none !important;
  margin:0 !important;
}

/* reset allineato dentro la toolbar */
.archivio-toolbar #_reset{
  height:40px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  line-height:1;
}


/* -------------------------------------------------------------------------- */
/* AZIONI TABELLA (ANAGRAFICA)                                                */
/* -------------------------------------------------------------------------- */
.anag-azioni{
  display:inline-flex;
  justify-content:flex-end;
  align-items:center;
  gap:12px;
}

/* la td resta table-cell, ma allinea come nel tuo attuale */
#grid td.archivio-right{
  text-align:left;
  white-space:nowrap;
}

/* icone “piatte” solo nella tabella */
#grid .archivio-btn-danger{
  border:none;
  background:transparent;
  color:#000;
  padding:0;
  height:auto;              /* non forzare 40px in tabella */
}
#grid .archivio-btn-danger:hover{ background:transparent; }
#grid .archivio-btn-danger i{
  font-size:14px;
  color:#000;
}

#grid td._azioni button{
  margin-left: 12px;     
}

#grid td._azioni button:first-child{
  margin-left: 0;
}
                    
/* -------------------------------------------------------------------------- */
/* MODALE CONFERMA ARCHIVIO (isolato, non si rompe)                            */
/* -------------------------------------------------------------------------- */
.archivio-modal-backdrop{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.4);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:1000;
}
.archivio-modal-backdrop[aria-hidden="false"]{ display:flex; }

.archivio-modal{
  background:#fff;
  border:1px solid var(--border);
  border-radius:12px;
  padding:16px;
  width:min(480px,92vw);
  box-shadow:0 10px 30px rgba(0,0,0,.12);
}
.archivio-modal h2{
  margin:0 0 10px;
  font-size:16px;
}
.archivio-modal p{
  margin:0 0 16px;
  color:var(--muted);
}
.archivio-modal .actions{
  display:flex;
  gap:10px;
  justify-content:flex-end;
}

/* bottoni SI/NO: volutamente separati dai bottoni “pill” toolbar */
.archivio-modal .archivio-btn-no,
.archivio-modal .archivio-btn-yes{
  appearance:none;
  border:1px solid var(--border);
  background:#fafafa;
  border-radius:8px;
  padding:8px 14px;
  font-weight:600;
  cursor:pointer;
  height:auto;
}
.archivio-modal .archivio-btn-yes{
  border-color:#f1b0b7;
  background:#fdecee;
  color:#8a0c11;
}
.archivio-modal .archivio-btn-no:hover{ background:#fafafa; }
.archivio-modal .archivio-btn-yes:hover{ background:#f9d7da; }


/* -------------------------------------------------------------------------- */
/* RESPONSIVE                                                                 */
/* -------------------------------------------------------------------------- */
@media (min-width:721px){
  #grid{
    margin-top:28px;
    clear:both;
  }
}

@media (max-width:720px){

  /* Anagrafiche: toolbar va a capo */
  .archivio-toolbar-form{
    flex-wrap:wrap;
  }
  .archivio-toolbar-form .campoRicerca{
    width:100% !important;
  }
  .archivio-toolbar-form .archivio-btn-new{
    margin-left:0;
  }
  #_reset{
    margin-left:0;
  }

  /* Archivio documenti: toolbar va a capo */
  .archivio-toolbar{
    flex-wrap:wrap;
  }
  .archivio-toolbar .archivio-campoRicerca{
    width:100% !important;
  }

  /* Tabella archivio in card */
  .archivioTabelle table,
  .archivioTabelle thead,
  .archivioTabelle tbody,
  .archivioTabelle th,
  .archivioTabelle td,
  .archivioTabelle tr{
    display:block;
  }

  .archivioTabelle thead{
    position:absolute;
    left:-9999px;
    top:-9999px;
    height:0;
    width:0;
    overflow:hidden;
  }

  .archivioTabelle tbody{
    display:grid;
    gap:12px;
  }

  .archivioTabelle tr{
    border:1px solid var(--border);
    border-radius:12px;
    padding:10px;
    box-shadow:0 1px 0 rgba(15,23,42,0.02);
  }

  .archivioTabelle td{
    border:none;
    padding:8px 0;
  }

  .archivioTabelle td::before{
    content:attr(data-label);
    display:block;
    color:var(--muted);
    text-transform:uppercase;
    letter-spacing:.02em;
    font-size:14px;
    margin-bottom:4px;
  }

  .archivio-right{
    text-align:left;
  }

  .archivio-links a{
    display:inline;
  }
  .archivio-links a + a{
    display:block;
    margin-top:12px;
  }

  #grid{
    clear:both;
  }
}
                      
               
/* Larghezze colonne: prime 3 più strette, Condizioni più larga */
table.grid-anagrafica th:nth-child(1),
table.grid-anagrafica td:nth-child(1){ width: 170px; }  /* Cognome */

table.grid-anagrafica th:nth-child(2),
table.grid-anagrafica td:nth-child(2){ width: 110px; }  /* Nome */

table.grid-anagrafica th:nth-child(3),
table.grid-anagrafica td:nth-child(3){ width: 90px; }  /* Nascita/Genere */

table.grid-anagrafica th:nth-child(4),
table.grid-anagrafica td:nth-child(4){ width: 250px; }  /* Condizioni (più spazio) */

table.grid-anagrafica th:nth-child(5),
table.grid-anagrafica td:nth-child(5){ width: 180px; }  /* Recapiti */

table.grid-anagrafica th:nth-child(6),
table.grid-anagrafica td:nth-child(6){ width: 90px; }   /* Azioni */

@media (max-width:720px){
/* Larghezze colonne: prime 3 più strette, Condizioni più larga */
table.grid-anagrafica th:nth-child(1),
table.grid-anagrafica td:nth-child(1){ width: 100%; }  /* Cognome */

table.grid-anagrafica th:nth-child(2),
table.grid-anagrafica td:nth-child(2){ width: 100%; }  /* Nome */

table.grid-anagrafica th:nth-child(3),
table.grid-anagrafica td:nth-child(3){ width: 100%; }  /* Nascita/Genere */

table.grid-anagrafica th:nth-child(4),
table.grid-anagrafica td:nth-child(4){ width: 100%; }  /* Condizioni (più spazio) */

table.grid-anagrafica th:nth-child(5),
table.grid-anagrafica td:nth-child(5){ width: 100%; }  /* Recapiti */

table.grid-anagrafica th:nth-child(6),
table.grid-anagrafica td:nth-child(6){ width: 100%; }   /* Azioni */
}

/* -------------------------------------------------------------------------- */
/* Esperimenti / home                                                         */
/* -------------------------------------------------------------------------- */
.contenitoreTesto{ display:flex; justify-content:center; align-items:center; }
.testo-centrato{
  position:relative; width:695px; text-align:center; padding:6.5rem 0 4.5rem;
  font-size:var(--fz-35); font-weight:500;
}
.typing{
  display:inline-block; white-space:nowrap; overflow:hidden;
  animation:typing 2s steps(40,end), removeBorder 0s forwards 2s;
  border-right:2px solid black;
}
.cursor{ display:inline-block; animation:blink 1s step-end infinite; }
@keyframes typing{ from{width:0} to{width:100%} }
@keyframes removeBorder{ from{border-right:2px solid black} to{border-right:none} }
@keyframes blink{ 50%{opacity:0} }

@media (max-width:767px){
  .testo-centrato{ width:360px; font-size:1.85rem; padding:4.5rem 0 2.5rem; }
}

.spaziovuoto{ height:20vh; width:100%; }
.spaziovuoto5{ height:14vh; width:100%; }

.box-home{ display:flex; justify-content:space-between; flex-wrap:wrap; width:80%; margin:0 auto; align-items:flex-start; }
.box-homeg{
  display:flex; flex-wrap:nowrap; justify-content:space-between; align-items:center;
  width:100%; margin:0 auto; padding:20px; background:#f9f9f9; border-radius:10px; box-shadow:0 4px 10px rgba(0,0,0,.1);
}
.textoboxhome{
  width:55%; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; text-align:left; word-wrap:break-word;
}
.videoboxhome{
  width:45%; max-width:500px; aspect-ratio:1; display:flex; justify-content:center; align-items:center;
}
.videoboxhome video{ width:100%; height:auto; max-height:400px; }
@media (max-width:975px){
  .box-homeg{ flex-direction:column; align-items:center; }
  .textoboxhome, .videoboxhome{ width:100%; }
  .videoboxhome{ margin-top:20px; }
}
.immagineboxhome{ width:18%; display:flex; justify-content:center; align-items:center; }
.textoboxhome h2{ font-size:3rem; padding:1rem; }
.textoboxhome p{ font-size:1.8rem; }
.immaginehome{ width:100%; text-align:center; }
.immaginehome img{ width:100%; margin:0 auto; }

@media (max-width:975px){
  .box-home{ flex-direction:column; width:100%; align-items:center; }
  .textoboxhome, .videoboxhome, .immaginehome{ width:100%; margin:10px 0; }
  .textoboxhome h2{ font-size:1.5em; }
  .textoboxhome p{ font-size:1em; }
  .immagineboxhome{ margin-bottom:15px; }
}

/* Elenchi a righe / cards */
.contenitore-tabella{
  display:flex; flex-direction:column; gap:20px; padding:20px; max-width:800px; margin:0 auto;
  background:#f9f9f9; border-radius:10px; box-shadow:0 4px 10px rgba(0,0,0,.1);
}
.riga{
  display:flex; align-items:center; justify-content:space-between; background:#fff; padding:20px;
  border-radius:10px; box-shadow:0 2px 5px rgba(0,0,0,.1); transition: transform .2s, box-shadow .2s;
}
.riga:hover{ transform:translateY(-5px); box-shadow:0 4px 15px rgba(0,0,0,.15); }
.icona{ width:100px; height:100px; }
.testo{ flex:1; margin-left:20px; color:#333; font-family:var(--cv-font,system-ui); }
.testo strong{ font-size:18px; color:#333; }
.testo p{ font-size:14px; color:#666; }
.stato{ display:flex; flex-direction:column; align-items:center; font-size:14px; font-weight:600; text-align:center; width:150px; }
.stato-verde{ color:#4CAF50; } .stato-giallo{ color:#FFC107; } .stato-arancione{ color:#FF5722; }

@media (max-width:600px){
  .riga{ flex-direction:column; align-items:center; }
  .testo{ text-align:center; margin-left:0; }
}

/* Immagine responsive multipla */
.immagineresponsive{ width:33%; float:left; padding:10px; font-size:1.4rem; height:auto; }
@media (max-width:768px){
  .immagineresponsive{ width:100%!important; float:none!important; padding:10px; height:auto; }
}

/* -------------------------------------------------------------------------- */
/* Fix layout sidebar                                                         */
/* -------------------------------------------------------------------------- */
html, body{ overflow-x:hidden; }
body.side-mounted #container,
body:has(.side-nav) #container{ width:100%!important; margin:0!important; padding-left:var(--side-w)!important; }
@media (max-width:992px){
  body.side-mounted #container,
  body:has(.side-nav) #container{ padding-left:0!important; }
}
.side-spacer{ display:none!important; }

/* -------------------------------------------------------------------------- */
/* Piccole utilità finali                                                     */
/* -------------------------------------------------------------------------- */
.mt-12{ margin-top:12px; } .mt-18{ margin-top:18px; } .mt-20{ margin-top:20px; } .mt-40{ margin-top:40px; }
.mb-18{ margin-bottom:18px; }
.text-right{ text-align:right; }

/* -------------------------------------------------------------------------- */
/* Animazioni usate altrove                                                   */
/* -------------------------------------------------------------------------- */
@keyframes typing{ 0%{width:0} 100%{width:100%} }
@keyframes removeBorder{ 0%{border-right:2px solid black} 100%{border-right:none} }
@keyframes blink{ 50%{opacity:0} }
             
/* Popup: evita restringimenti e gestisce bene il layout flex */
#popUpContenuto{
  background: #fff;
  width: min(90vw, 1250px);
  min-width: min(90vw, 900px);
  min-height: 500px;
  max-height: 90vh;

  border-radius: 0.5rem;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);

  display: flex;
  flex-direction: column;

  overflow: hidden;

  opacity: 0;
  visibility: hidden;
  transition: opacity 2s ease, visibility 0s linear 2s;

  margin: 0 auto;
}

/* Nei flex container evita “shrink” strani dei figli */
#popUpContenuto > *{
  min-width: 0;
}

/* Area risultati: piena larghezza e scroll interno */
#_risultati{
  overflow: visible;
  min-height: auto;
}

.archivioTabelle,
.grid-anagrafica{
  width: 100%;
}

._paziente{
  cursor:pointer;
  transition:background-color .2s ease;
}
._paziente:hover{
  background-color:#f0f3f8;
}       

.hidden{ display:none; }
       /* Consavio / UI 2026.09 — sistema visivo comune.
 * Inter locale; superfici neutre; blu riservato alle azioni.
 * I selettori conservano classi, stati JS e geometria dei documenti.
 * Questo foglio non va caricato nei template di stampa/PDF.
 */
@font-face{font-family:ConsavioInter;src:url(fonts/InterVariable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

@media screen{
  html:root{
    --cv-font:ConsavioInter,Inter,"Noto Sans",system-ui,sans-serif;
    --cv-ink:#18181b;--cv-text:#3f3f46;--cv-muted:#62626c;
    --cv-line:#e4e4e7;--cv-control:#d4d4d8;--cv-soft:#f5f5f6;--cv-sidebar:#fafafa;
    --cv-blue:#2563eb;--cv-blue-hover:#1d4ed8;--cv-blue-soft:#eff6ff;
    --cv-radius:10px;--cv-panel:16px;
    --cv-shadow:0 1px 3px rgba(24,24,27,.04);
    --cv-popup:0 16px 56px rgba(24,24,27,.14);
    --c-primary:var(--cv-blue);--c-primary-h:var(--cv-blue-hover);
    --c-blue-600:var(--cv-blue);--c-blue-600-h:var(--cv-blue-hover);
    --c-text:var(--cv-text);--c-text-menu:var(--cv-text);
    --c-gray-100:var(--cv-soft);--c-gray-300:var(--cv-line);
    --bg:#fff;--text:var(--cv-text);--muted:var(--cv-muted);
    --border:var(--cv-line);--line:var(--cv-line);--hover:var(--cv-soft);
    --brand:var(--cv-blue);--link:var(--cv-blue-hover);--primary:var(--cv-blue);
    --side-bg:var(--cv-sidebar);--badge:var(--cv-soft);
    --ci-active:var(--cv-line);--ci-border:var(--cv-line);--ci-shadow:none;
    --radius-sm:6px;--radius-md:10px;--radius-lg:16px;
    --shadow:var(--cv-shadow);--shadow-sm:var(--cv-shadow);
    --shadow-md:0 6px 24px rgba(24,24,27,.06);--shadow-blue:var(--cv-shadow);
    --w2-label-bg:#fafafa;--w2-border:1px solid var(--cv-control);
    --w2-radius:8px;--w2-focus-border:var(--cv-blue);
    --w2-focus-shadow:0 0 0 3px rgba(37,99,235,.12);
  }
  html body{font-family:var(--cv-font);color:var(--cv-text);background:#fff}
  body :is(button,input,select,textarea,.title-auth,.page-title,.divider,.testo):not(:where(.nuovo-a4 *,.page *)){font-family:var(--cv-font)}
  body a{font-weight:500}
  body :is(h1,h2,h3,h4,h5){color:var(--cv-ink);font-weight:600;letter-spacing:-.025em}
  body h1{border-bottom:0;padding:12px 0 4px;margin-bottom:18px;font-size:30px;line-height:1.25}
  body :is(.app-header,.app-section-header,.wizard-page-header){margin-bottom:28px}
  body :is(.app-header p,.app-section-header p,.contratti-head p){color:var(--cv-muted);line-height:1.6}
  body :is(.contenitore){padding-top:24px}
  body :is(.menuUtente ul li a,.signup-note,.message-box a){font-weight:500}
  body :is(.title-auth,.page-title){font-size:26px;font-weight:600;letter-spacing:-.03em}
  body :is(.wizard-container){border:1px solid var(--cv-line);border-radius:20px;box-shadow:var(--shadow-md);padding:32px}
  body :is(.divider,.terms-note,.below-text){color:var(--cv-muted)}

  /* Navigazione: riscrittura visiva sui selettori reali. */
  body .side-nav{background:var(--cv-sidebar);border-right:1px solid var(--cv-line);box-shadow:none}
  body .side-brand{padding:14px 12px;border-bottom-color:transparent}
  body .side-menu{padding-left:10px;padding-right:10px;gap:4px}
  body .side-item{padding:11px 12px;border-radius:9px;color:var(--cv-text);font-size:14px;font-weight:400}
  body .side-menu .side-item .title{font-weight:450}
  body .side-item i{color:#71717a;opacity:1;font-size:14px}
  body .side-item:hover,body .side-item:hover i{color:var(--cv-ink);background-color:transparent}
  body .side-item:hover{background:#f0f0f2}
  body .side-item.corrente{background:#eeeef0;color:var(--cv-ink);box-shadow:none}
  body .side-item.corrente .title{font-weight:550}
  body .side-item.corrente i{color:var(--cv-ink)}
  body .user-toggle{background:#f1f1f3;border-color:transparent;border-radius:12px;padding:10px}
  body :is(.user-email,.mobile-email,.user-toggle .fa-user){color:var(--cv-text)}
  body .user-menu{border-color:var(--cv-line);border-radius:12px;box-shadow:var(--cv-popup);padding:5px}
  body .user-menu a{color:var(--cv-text);font-weight:400;border-radius:7px}
  body .side-help{border-top-color:var(--cv-line);padding:16px 10px;gap:10px}
  body .side-help .help-email{background:transparent;border-color:var(--cv-line);border-radius:8px}
  body .topbar{background:rgba(255,255,255,.98);border-bottom:1px solid var(--cv-line);padding:14px 24px;min-height:60px}
  body .sector-label{color:var(--cv-muted);font-size:12px;font-weight:450;letter-spacing:.015em}
  body .sector-logo{height:25px}
  body .top-right-sector{gap:14px;flex-wrap:wrap}
  body .selected-pro-label,body .selected-pro-label:visited{color:var(--cv-text);background:#fff;border-color:var(--cv-line);font-weight:500;border-radius:7px;padding:5px 9px}
  body .abb-label,body .abb-label:visited{color:var(--cv-text);background:var(--cv-soft);border-color:transparent;letter-spacing:0;font-weight:500;font-size:12px;border-radius:6px;padding:5px 8px}
  body .abb-label i{color:var(--cv-muted)}
  body .abb-label:hover{background:#eeeef0;border-color:var(--cv-line)}
  body .burger{color:var(--cv-ink)}

  /* Azioni e controlli: le varianti di pericolo/successo restano distinte. */
  body :is(.tasto,.tasto200,.tastoTB,.BottoneCreaConsavio,.fc .fc-button.BottoneCreaConsavio){
    border-radius:9px;font-weight:500;box-shadow:var(--cv-shadow);font-size:14px;
  }
  body :is(.tasto,.tasto200,.tastoTB,.BottoneCreaConsavio,.fc .fc-button.BottoneCreaConsavio){background:var(--cv-blue);border-color:var(--cv-blue);color:#fff;text-decoration:none}
  body :is(.tasto,.tasto200,.tastoTB,.BottoneCreaConsavio,.fc .fc-button.BottoneCreaConsavio):hover{background:var(--cv-blue-hover);border-color:var(--cv-blue-hover);color:#fff;text-decoration:none;box-shadow:var(--cv-shadow)}
  body :is(.archivio-btn,.ci-btn-outline,.reset-container .btn,.archivio-btn-secondary,.tastoTB--ghost){
    background:#fff;color:var(--cv-text);border:1px solid var(--cv-control);border-radius:8px;font-size:14px;font-weight:500;box-shadow:var(--cv-shadow);
  }
  body :is(.archivio-btn,.ci-btn-outline,.reset-container .btn,.archivio-btn-secondary,.tastoTB--ghost):hover{background:var(--cv-soft);border-color:#bfbfc7;color:var(--cv-ink);box-shadow:none}
  body :is(.archivio-btn-danger,.archivio-modal .archivio-btn-no,.archivio-modal .archivio-btn-yes){border-radius:8px;font-weight:500}
  body .procedure-card .card-actions a.btn{border-radius:8px;background:#fff;border-color:var(--cv-control)}
  body :is(#emailSubmit,#continuePass,#confirmCode,#resetPass){font-weight:500}
  body :is(.btn-google,.tasto-google){border-color:var(--cv-line);border-radius:9px;font-weight:500}
  body :is(a,button,input,textarea,select,[tabindex]):focus-visible{outline:2px solid var(--cv-blue);outline-offset:3px}
  body :is(button,input,select,textarea):disabled{cursor:not-allowed}

  /* Campi testuali: esclusi radio, switch, file, campi nascosti e fogli documento. */
  body form :is(input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=date],input[type=search],input[type=url],select,textarea):not(:where(.nuovo-a4 *,.page *)){
    border-color:var(--cv-control);border-radius:8px;font-size:16px;line-height:1.45;box-shadow:none;min-height:42px;padding:8px 12px;
  }
  body form label:not(:where(.nuovo-a4 *,.page *)){font-weight:500;margin-bottom:6px}
  body form input.with-toggle,body .password-wrapper input:is([type=password],[type=text]){padding-right:44px}
  body :is(.archivio-input,.archivio-campoRicerca input,.archivio-campoRicerca select,.filter-group input,.filter-group select){
    border:1px solid var(--cv-control);border-radius:9px;background:#fff;color:var(--cv-text);font-size:14px;box-shadow:none;
  }
  body :is(input,textarea)::placeholder{color:#75757f;opacity:1}
  body form :is(input,textarea,select):focus,body :is(.archivio-input,.archivio-campoRicerca input,.archivio-campoRicerca select,.filter-group input,.filter-group select):focus{
    border-color:var(--cv-blue);box-shadow:0 0 0 3px rgba(37,99,235,.12);
  }
  body .filters{background:transparent;padding:0;margin:24px 0 16px;gap:16px;box-shadow:none}
  body .filter-group label{font-size:13px;font-weight:500;color:var(--cv-muted);margin-bottom:8px}
  body .filter-group :is(select,input){min-height:42px}
  body .archivio-toolbar{margin-top:24px;margin-bottom:28px}
  body #navRicerca form input[type=text]{background:#fff;border-color:var(--cv-control);box-shadow:var(--cv-shadow);border-radius:10px}

  /* Tab e schede: superfici neutre, senza cornici sovrapposte. */
  body .ci-tabs{border:0;border-bottom:1px solid var(--cv-line);gap:24px;align-items:stretch;flex-wrap:wrap}
  body .ci-tab{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--cv-muted);padding:12px 2px;border-radius:0;font-size:14px;font-weight:500;margin-bottom:-1px}
  body .ci-tab[aria-selected=true]{background:transparent;color:var(--cv-ink);border-color:var(--cv-ink);margin-bottom:-1px}
  body .ci-tab:hover{color:var(--cv-ink)}
  body .ci-tabpanes{border:0;border-radius:0;padding:24px 0;background:#fff;box-shadow:none}
  body .procedure-list{gap:20px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
  body .procedure-card{padding:22px;border:1px solid var(--cv-line);border-radius:16px;box-shadow:none}
  body .procedure-card:hover{transform:none;border-color:#c9c9d1;box-shadow:var(--cv-shadow)}
  body .procedure-card a{color:var(--cv-ink);font-size:16px;font-weight:550;line-height:1.5}
  body .procedure-card .descr{font-size:14px;color:var(--cv-muted);line-height:1.65;margin-top:8px}
  body :is(.ci-meta,.ci-lastedit,.ci-owner){font-size:12px;color:var(--cv-muted)}
  body .procedure-card .card-actions{border-top-color:#efeff1;padding-top:16px;gap:14px}
  body :is(.contratto-template-label,.contratto-sector-label,.contratto-sign-label){font-size:12px;font-weight:500;border-radius:6px}

  /* Archivio: gerarchia sobria, stati leggibili. */
  body .archivioTabelle th{font-size:12px;text-transform:none;font-weight:500;letter-spacing:0;color:var(--cv-muted);background:#fafafa}
  body .archivioTabelle td{font-size:14px;line-height:1.6;border-bottom-color:#eeeef0;overflow-wrap:anywhere}
  body .archivioTabelle td :is(strong,b){font-weight:550}
  body :is(.archivio-chip,.archivio-links a){font-weight:500}
  body .archivio-muted{font-size:12px;line-height:1.6;color:var(--cv-muted)}
  body .archivio-links a{font-size:12px}
  body .archivio-links a:hover{text-decoration:underline}
  body .archivio-pill{font-size:12px;font-weight:500;padding:4px 9px;border-radius:6px;line-height:1.5}
  body .archivio-pill.completed{background:#edf7f0;color:#166534}
  body .archivio-pill.pending{background:#eff6ff;color:#1e40af}
  body .archivio-pill.opened{background:#f5f3ff;color:#6d28d9}
  body .archivio-pill.declined{background:#fef2f2;color:#991b1b}
  body .archivio-pill.expired{background:#f4f4f5;color:#52525b}
  body #grid .archivio-btn-danger,body #grid .archivio-btn-danger i{color:#62626c}
  body #grid .archivio-btn-danger:hover,body #grid .archivio-btn-danger:hover i{color:#b91c1c}

  /* Profilo e wizard: schede ariose, progressione riconoscibile. */
  body .section-box{border-color:var(--cv-line);border-radius:16px;padding:24px;margin-bottom:24px}
  body .section-box .section-title{color:var(--cv-ink);font-size:18px;margin:0 0 20px;padding:0}
  body .radio-inline label{border-radius:8px;font-size:14px;font-weight:400}
  body .radio-inline label:has(input:checked){background:var(--cv-blue-soft);border-color:#93b4fa}
  body :is(#professione_id,#specializzazione_id,.select-azzurro){border-color:var(--cv-control);background-color:#fff;color:var(--cv-text)}
  body .danger-zone{border-color:#fecaca;border-radius:12px;background:#fffafa}
  body .danger-zone .section-title{color:#991b1b}
  body .wizard-header .step{border-width:1px;border-color:var(--cv-line);border-radius:10px;box-shadow:none;color:var(--cv-muted);font-size:14px}
  body .wizard-header .step .badge{background:var(--cv-soft);color:var(--cv-muted);font-size:13px;font-weight:500}
  body .wizard-header .step.active{background:var(--cv-blue-soft);border-color:#bfdbfe;color:var(--cv-blue-hover)}
  body .wizard-header .step.active .badge{background:var(--cv-blue);color:#fff}
  body .wizard-header .step.done{background:#fff;border-color:var(--cv-line);color:#166534}
  body .wizard-header .step.done .badge{background:#edf7f0;color:#166534}
  body .stepper-progress{height:3px;box-shadow:none;margin:12px 0 24px}
  body .wizard-content{align-items:flex-start;gap:28px}
  body .wizard-content textarea#annotazioni,body .wizard-content textarea[name=annotazioni]{font-family:var(--cv-font)}
  body .toolbar{background:rgba(255,255,255,.98);border-top-color:var(--cv-line);box-shadow:0 -2px 12px rgba(24,24,27,.04)}
  body .toolbar__status{font-size:14px;font-weight:500;letter-spacing:0}
  body .status-ico{filter:none}
  body .status-ico::after{animation:none}

  /* Documenti: solo cornice applicativa, mai foglio A4 o coordinate firma. */
  body :is(.contratti-upload,.contratto-panel){border:1px solid var(--cv-line);border-radius:14px;background:#fff;box-shadow:none}
  body .contratto-panel{padding:20px}
  body .contratto-panel h2{font-size:17px;font-weight:550;color:var(--cv-ink)}
  body .contratti-field label{color:var(--cv-muted);font-size:13px;font-weight:500}
  body .contratto-paziente{background:var(--cv-soft);border-color:var(--cv-line);border-radius:9px}
  body :is(.contratto-note,.storage-widget){color:var(--cv-muted);font-size:12px}
  body .nuovo-edit-toolbar-sticky .edit-page-tools{border-color:var(--cv-line);border-radius:9px;background:#fafafa}
  body .nuovo-edit-toolbar-sticky .edit-page-tools button{font-family:var(--cv-font);border-radius:6px}
  body .nuovo-variable-menu{border-color:var(--cv-line);border-radius:10px;box-shadow:var(--cv-popup)}
  body .storage-bar{background:var(--cv-soft)}
  body .storage-bar span{background:var(--cv-blue)}
  body .storage-widget.storage-full .storage-bar span{background:#b91c1c}

  /* Firma e finestre: stile condiviso per consensi, privacy e documenti. */
  body :is(.archivio-modal,.archivio-events-modal,.agenda-dialog){border:1px solid var(--cv-line);border-radius:18px;box-shadow:var(--cv-popup)}
  body .archivio-modal h2{padding:0;font-size:18px;line-height:1.4}
  body #popUpContenuto{border-radius:18px;box-shadow:var(--cv-popup)}

  /* Quando la finestra di firma e' aperta, la toolbar sottostante non deve sovrapporsi. */
  body:has(.firma-modal) .toolbar{display:none !important}

  /* Base comune: firma dei consensi + privacy + firma dei documenti. */
  body .firma-modal{font:16px/1.5 var(--cv-font);color:var(--cv-text)}
  body .firma-modal,body .firma-modal *{box-sizing:border-box}
  body .firma-modal .wrap{display:flex;justify-content:center;align-items:center;padding:0}
  body .firma-modal .card{width:75%;max-height:80vh;background:#fff;border-radius:12px}
  body .firma-modal .card-inner{padding:18px 24px;overflow:auto}
  body .firma-modal h1{color:var(--cv-ink);font-weight:600;font-size:22px;line-height:1.3;border:0;margin:.2rem 0 1rem;padding:0}
  body .firma-modal .tipo-title{font-weight:600;margin:0 0 .5rem}

  /* Tipologia di firma. */
  body .firma-modal .pills{display:inline-flex;gap:.6rem;align-items:center}
  body .firma-modal .pill{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .80rem;border-radius:999px;background:#f3f4f6;font-size:13px;font-weight:600}
  body .firma-modal .pill--active{background:#eff6ff;color:#1d4ed8}
  body .firma-modal .pill--disabled{opacity:.5;cursor:not-allowed}

  /* Campi: un'unica resa visiva per entrambe le finestre di firma. */
  body .firma-modal .label{display:block;font-weight:600;color:var(--cv-text);margin:.25rem 0 .35rem}
  body .firma-modal :is(.input,.prefix){height:46px;padding:8px 12px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:var(--cv-text);font-size:16px;line-height:1.45;box-shadow:none}
  body .firma-modal .input{width:100%}
  body .firma-modal .prefix{padding-left:10px;padding-right:10px;min-width:86px;width:auto}
  /* Focus documenti: stessa resa di consensi/privacy.
     La regola .input e piu specifica del focus globale, quindi replichiamo
     esplicitamente bordo e anello interno; l'outline esterno resta quello globale. */
  body .firma-modal :is(.input,.prefix):focus{border-color:var(--cv-blue);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
  body .firma-modal .phone-line{display:flex;gap:10px;align-items:stretch}
  body .firma-modal .phone{flex:1 1 auto}

  /* Errori. */
  body .firma-modal .err-msg{color:#d00;font-size:.9em;margin-top:.25rem;display:none}
  body .firma-modal .contratti-err{padding:12px 14px;border:1px solid #fecaca;background:#fef2f2;color:#991b1b;border-radius:8px;margin:0 0 16px}

  /* Azioni comuni. */
  body :is(#_frmFirma,#_frmFirmaContratto) .actions{text-align:right;margin-top:20px;padding-right:10px}
  body :is(#_frmFirma,#_frmFirmaContratto) .actions .tasto200{display:inline-block;width:auto !important;min-width:160px;height:40px;line-height:40px;padding:0 16px}

  /* Solo firma documenti: struttura dei campi, non aspetto grafico. */
  body #_frmFirmaContratto .firma-field{padding:0 1%;margin-top:15px}
  body #_frmFirmaContratto .label{margin-bottom:-.9rem}
  body #_frmFirmaContratto .input{display:block;margin-bottom:0}
  body #_frmFirmaContratto .prefix{display:block;width:100%;min-width:0;margin-bottom:0}
  body #_frmFirmaContratto .firma-field.prefisso,body #_frmFirmaContratto .firma-field.telefono{float:left}
  body #_frmFirmaContratto .firma-field.prefisso{width:25%}
  body #_frmFirmaContratto .firma-field.telefono{width:75%}
  body #_frmFirmaContratto .field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0}

  /* Campi readonly nei flussi di firma: copiabili ma visivamente inattivi. */
  body :is(#_frmFirma,#_frmFirmaContratto) :is(input,textarea)[readonly]{background:#f3f4f6 !important;color:#62626c !important;border:1px solid #e4e4e7 !important;box-shadow:none !important;outline:none !important;opacity:1 !important;cursor:default !important;user-select:text;caret-color:transparent}
  body :is(#_frmFirma,#_frmFirmaContratto) :is(input,textarea)[readonly]:is(:focus,:focus-visible){border:1px solid #e4e4e7 !important;box-shadow:none !important;outline:none !important}
  body :is(#_frmFirma,#_frmFirmaContratto) input[name="prefisso"][readonly]{caret-color:transparent !important}

  body .firma-modal .box{border-color:var(--cv-line);border-radius:12px;box-shadow:none}
  body .firma-modal .btn2{border-radius:8px;font-weight:500}
  body :is(.archivio-events-header,.agenda-dialog-head){border-bottom-color:var(--cv-line)}
  body .agenda-dialog-head h2{color:var(--cv-ink);font-size:20px}
  body .docuseal-event-time{color:var(--cv-muted)}

  @media(max-width:640px){
    body .firma-modal .card-inner{padding:16px}
    body .firma-modal h1{font-size:19px;margin:.1rem 0 .5rem}
    body .firma-modal .input{height:40px;font-size:15px}
    body .firma-modal .prefix{height:40px;min-width:76px;padding:6px 8px;font-size:15px}
    body .firma-modal .phone-line{gap:8px}
    body .firma-modal form :is(input,textarea,select){display:block;width:100%;font-size:1.4rem}
    body .firma-modal form label{font-size:1.3rem}
    body .firma-modal .card{width:100%}
    body .firma-modal .pill{font-size:1rem}
    body #_frmFirmaContratto .field-row{grid-template-columns:1fr}
  }

  /* Agenda e Select2: interfaccia neutra, colori degli eventi conservati. */
  body .agenda-calendar-card{border-color:var(--cv-line);border-radius:16px;box-shadow:none;padding:20px}
  body #agendaCalendar{--fc-border-color:#e4e4e7;--fc-today-bg-color:#f5f8ff;--fc-neutral-bg-color:#fafafa;--fc-page-bg-color:#fff}
  body #agendaCalendar .fc-button{font-family:var(--cv-font);font-weight:500;font-size:13px;border-radius:7px}
  body #agendaCalendar :is(.fc-prev-button,.fc-next-button,.fc-agendaToday-button,.fc-dayGridMonth-button,.fc-timeGridWeek-button,.fc-timeGridDay-button,.fc-listWeek-button){background:#fff;border-color:var(--cv-control);color:var(--cv-text);box-shadow:none}
  body #agendaCalendar :is(.fc-prev-button,.fc-next-button,.fc-agendaToday-button,.fc-dayGridMonth-button,.fc-timeGridWeek-button,.fc-timeGridDay-button,.fc-listWeek-button):hover{background:var(--cv-soft);border-color:var(--cv-control);color:var(--cv-ink)}
  body #agendaCalendar .fc-button.fc-button-active{background:#eeeef0;border-color:#d4d4d8;color:var(--cv-ink)}
  body .fc .fc-toolbar-title{font-size:20px;font-weight:550}
  body .fc :is(.fc-daygrid-day-number,.fc-col-header-cell-cushion){font-weight:500;color:var(--cv-text);font-size:13px}
  body .agenda-field > span,body .agenda-field-top > span{font-weight:500;font-size:13px;color:var(--cv-muted)}
  body .select2-container--default .select2-selection--single{border-color:var(--cv-control);border-radius:8px;box-shadow:none}
  body .select2-dropdown{border-color:var(--cv-control);border-radius:8px;box-shadow:var(--shadow-md);font-family:var(--cv-font)}
  body .select2-container--default .select2-search--dropdown .select2-search__field{border-color:var(--cv-control);border-radius:5px}
  body .select2-container--default .select2-results__option--highlighted[aria-selected]{background:var(--cv-blue);color:#fff}

  /* Piani e checkout: prezzi invariati, gerarchia e superfici aggiornate. */
  body .piani-toggle{background:var(--cv-soft);border-color:transparent;border-radius:10px;box-shadow:none}
  body .piani-toggle-btn{font-weight:500;border-radius:7px}
  body .piani-toggle-btn.active{background:#fff;color:var(--cv-ink);box-shadow:0 1px 4px rgba(24,24,27,.1)}
  body .piani-scheda{box-shadow:none;border-radius:18px;border-color:var(--cv-line);padding:26px 22px}
  body .piani-scheda:hover{transform:none;box-shadow:var(--cv-shadow);border-color:#c9c9d1}
  body .piani-scheda--evidenza{border-color:#93b4fa;box-shadow:0 0 0 1px #93b4fa}
  body .piani-badge{background:var(--cv-blue-soft);color:var(--cv-blue-hover);box-shadow:none;font-weight:500;border-radius:6px}
  body :is(.piani-importo,.piani-totale-valore){font-weight:600;letter-spacing:-.03em}
  body :is(.piani-nome,.piani-nome-ordAbb){color:var(--cv-ink);font-weight:550}
  body .piani-riepilogo-ordAbb{border:1px solid var(--cv-line);border-radius:16px}
  body .piani-riepilogo-ordAbb:hover{transform:none}
  body :is(.piani-label-durata-ordAbb,.piani-sconto-prezzo,.piani-sconto-prezzo-ordAbb){font-weight:500;border-radius:6px}
  body #fine{background:#fafafa;border-color:var(--cv-line);color:var(--cv-muted);font-size:13px}

  /* Visualizzatore PDF: i contenuti del PDF restano renderizzati dal motore. */
  body .preview-title-text{color:var(--cv-ink);font-weight:600;letter-spacing:-.02em}
  body .preview-hint{color:var(--cv-muted);font-weight:400}
  body .controls{box-shadow:var(--cv-shadow);border-color:var(--cv-line);background:#fff;border-radius:10px}
  body .controls button{border-radius:7px;font-family:var(--cv-font);font-weight:500}

  @media(min-width:993px){body .contenitore{padding-left:36px;padding-right:36px}body .topbar{padding-left:36px;padding-right:36px}}
  @media(min-width:721px){body .archivioTabelle th{padding:13px 12px}body .archivioTabelle td{padding:18px 12px}}
  @media(max-width:992px){body .topbar{padding:10px 14px}body .topbar-row1-inner{display:flex;flex-wrap:wrap;width:100%;gap:8px}body .sector-label{font-size:11px}body .side-nav{box-shadow:var(--cv-popup)}}
  @media(max-width:720px){
    body .contenitore{padding-top:20px;padding-left:16px;padding-right:16px}
    body h1{font-size:26px}body .ci-tabs{gap:16px}body .ci-tab{font-size:13px}
    body .procedure-card{padding:18px}body .section-box{padding:18px}
    body .archivioTabelle th{background:transparent}
    body .archivioTabelle td{padding:9px 0;border:0}
    body .archivioTabelle td::before{font-size:11px;font-weight:500;text-transform:none;letter-spacing:0}
    body .archivioTabelle tr{padding:16px;border-color:var(--cv-line);border-radius:14px;box-shadow:none;background:#fff}
    body .firma-modal .card-inner{padding:18px}body .agenda-calendar-card{padding:12px}
    body .wizard-container{padding:24px}body .wizard-content{gap:20px;align-items:stretch}
    body .agenda-dialog-actions{gap:12px}
    body .archivio-input,body .filter-group input,body .filter-group select{font-size:16px}
  }
  @media(hover:hover){body .archivioTabelle tbody tr:hover{background:#fafafa}}
  @media(prefers-reduced-motion:reduce){
    body :is(.procedure-card,.piani-scheda,.tasto,.tastoTB,.ci-tab,.archivio-input){transition:none}
  }
}
