/* apscale – stile "pieno" (decisione 15/10/2026, prototipo https://claude.ai/artifact/MwbpgUXcjZ3mjRK1Wjb6P4):
   fondo crema, carattere Figtree ospitato sul server (OFL, font/), colore d'accento petrolio; bordi neri spessi e ombre
   piene solo su campo, pulsanti e card principali; elenchi e tabelle sobri. Puntini: petrolio = servizi di ingegneria,
   ocra (senape) = lavori; tessere, interruttori ed etichette SERVIZI/LAVORI dal 15/10/2026; verde = esito positivo (vinta, confermata); arancio = scadenza vicina o dato da verificare. */
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 300 900; font-display: swap;
  src: url("font/figtree-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 300 900; font-display: swap;
  src: url("font/figtree-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Geist Mono"; font-style: normal; font-weight: 400 500; font-display: swap;
  src: url("font/geist-mono-latin.woff2") format("woff2"); }

:root {
  --fondo: #FEFDFA; --carta: #FFFFFF; --inchiostro: #141414; --testo: #2A2824; --tenue: #6B655A;
  --filo: #E4DCCB; --filo-forte: #D3C9B5; --velo: #F7F3EC;
  --accento: #0F6B73; --accento-velo: #D7ECEC; --su-accento: #FFFFFF;
  --servizi: var(--accento); --lavori: #E0A32E; --integrato: #7B5EA7; --ok: #2E8B57; --avviso: #C2502E; --errore: #B3261E;
  --bordo: 1px; --ombra: 3px;
  --linea: #B9AE99; --ombra-colore: rgba(60, 50, 30, .12);
  --f: "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --f-mono: "Geist Mono", ui-monospace, Consolas, monospace;
  --raggio: 14px;
  color-scheme: light;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--fondo); color: var(--testo); font-family: var(--f); font-size: 16px; line-height: 1.5;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: var(--inchiostro); text-underline-offset: 3px; text-decoration-color: var(--filo-forte); }
a:hover { text-decoration-color: var(--inchiostro); }
:focus-visible { outline: 2px solid var(--accento); outline-offset: 3px; border-radius: 6px; }
h1, h2, h3 { color: var(--inchiostro); letter-spacing: -0.03em; text-wrap: balance; }
h2 { font-size: 22px; font-weight: 600; margin: 40px 0 12px; }

/* impianto */
.pagina { min-height: 100vh; display: grid; grid-template-rows: auto 1fr auto; padding-inline: 24px; }
.cima, .contenuto, .piede { width: 100%; max-width: 1080px; margin-inline: auto; }
.cima { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 22px; }
.cima .logo img { height: 26px; width: auto; display: block; }
.cima nav { display: flex; flex-wrap: wrap; gap: 6px 22px; align-items: center; font-size: 14.5px; color: var(--tenue); }
.cima nav a { color: var(--tenue); text-decoration: none; }
.cima nav a:hover, .cima nav a.on { color: var(--inchiostro); }
.cima nav form { display: inline; margin: 0; }
.cima nav button { background: none; border: 0; padding: 0; cursor: pointer; color: var(--tenue); }
.cima nav button:hover { color: var(--inchiostro); }
.contenuto { padding-block: 8px 40px; }
.piede { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 20px; padding-block: 28px 36px;
  border-top: 1px solid var(--filo); font-size: 13px; color: var(--tenue); }
.piede a { color: var(--tenue); text-decoration: none; }
.piede a:hover { color: var(--inchiostro); }

/* campo unico (home, accesso, codice) */
.campo-unico { display: flex; align-items: center; gap: 6px; width: min(560px, 100%); background: var(--carta);
  border: 1px solid var(--filo-forte); border-radius: 999px; padding: 6px 6px 6px 22px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 10px 30px rgba(40, 30, 10, .06); transition: box-shadow .2s, border-color .2s; }
.campo-unico:focus-within { border-color: var(--linea); box-shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 14px 40px rgba(40, 30, 10, .10); }
.campo-unico input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font-size: 18px; letter-spacing: -0.01em; padding: 10px 0; }
.campo-unico input::placeholder { color: #A8A398; }
.campo-unico.piccolo { width: min(420px, 100%); padding: 4px 4px 4px 16px; box-shadow: none; }
.campo-unico.piccolo input { font-size: 15px; padding: 7px 0; }
.campo-unico.piccolo .vai { padding: 9px 16px; font-size: 14px; }
.vai, .bottone { border: 0; background: var(--inchiostro); color: #fff; border-radius: 999px; padding: 13px 22px; font-weight: 500; font-size: 15.5px;
  cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; white-space: nowrap; text-decoration: none;
  transition: transform .15s, opacity .15s; }
.vai:hover, .bottone:hover { transform: translateY(-1px); }
.vai:active, .bottone:active { transform: none; }
.bottone.chiaro { background: var(--carta); color: var(--inchiostro); border: 1px solid var(--filo-forte); }

/* home */
.home { min-height: 62vh; display: grid; grid-template-columns: minmax(0, 1fr); align-content: center; justify-items: center; text-align: center; gap: 26px; padding-block: 30px; }
.home h1 { font-weight: 600; font-size: clamp(38px, 6.4vw, 72px); line-height: 1.02; letter-spacing: -0.045em; margin: 0; }
.home .sotto { margin: 0; max-width: 46ch; font-size: clamp(16px, 1.6vw, 19px); color: var(--tenue); text-wrap: balance; }
.home .esempi { font-size: 14px; color: var(--tenue); }
.fonti { font-size: 13px; color: var(--tenue); display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 18px; }
.fonti span + span::before { content: "·"; margin-right: 18px; color: var(--filo-forte); }

/* risultati */
.risultato { display: grid; grid-template-columns: minmax(0, 1fr); gap: 30px; padding-top: 10px; }
.chi { display: grid; gap: 10px; }
.chi .nome { font-size: 15px; color: var(--tenue); display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: baseline; }
.chi .nome b { color: var(--inchiostro); font-weight: 600; font-size: 17px; letter-spacing: -0.01em; }
.chi .sintesi { margin: 0; font-weight: 600; font-size: clamp(28px, 4.4vw, 50px); line-height: 1.06; letter-spacing: -0.04em; max-width: 24ch; }
.chi .sintesi em { font-style: normal; color: var(--tenue); }
.chi .mia { font-size: 14.5px; color: var(--tenue); margin: 0; }
.barra { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between; }
.segmenti { display: inline-flex; background: var(--velo); border-radius: 999px; padding: 4px; gap: 2px; }
.segmenti a { padding: 8px 18px; border-radius: 999px; font-size: 14.5px; color: var(--tenue); font-weight: 500; text-decoration: none; }
.segmenti a.on { background: var(--carta); color: var(--inchiostro); box-shadow: 0 1px 3px rgba(0, 0, 0, .08); }
.filtri { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.filtri a, .filtri select { border: 1px solid var(--filo-forte); background: var(--carta); border-radius: 999px; padding: 7px 14px; font-size: 14px;
  color: var(--testo); text-decoration: none; }
.filtri a.on { border-color: var(--linea); color: var(--inchiostro); }
.filtri select { appearance: none; padding-right: 30px; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--tenue) 50%), linear-gradient(135deg, var(--tenue) 50%, transparent 50%);
  background-position: calc(100% - 16px) 52%, calc(100% - 11px) 52%; background-size: 5px 5px; background-repeat: no-repeat; }
.lista { display: grid; border-top: 1px solid var(--filo); }
.riga { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; gap: 6px 24px; align-items: baseline; padding: 18px 2px; border-bottom: 1px solid var(--filo); }
.riga .quando { font-size: 13.5px; color: var(--tenue); font-variant-numeric: tabular-nums; }
.riga .cosa { min-width: 0; display: grid; gap: 3px; }
.riga .cosa b { font-weight: 500; color: var(--inchiostro); letter-spacing: -0.01em; }
.riga .cosa span { font-size: 14px; color: var(--tenue); }
.riga .quanto { text-align: right; font-variant-numeric: tabular-nums; display: grid; gap: 3px; justify-items: end; }
.riga .quanto b { font-weight: 500; color: var(--inchiostro); }
.esito { font-size: 13px; display: inline-flex; align-items: center; gap: 6px; color: var(--tenue); white-space: nowrap; }
.esito::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--filo-forte); }
.esito.vinta { color: var(--ok); }
.esito.vinta::before { background: var(--ok); }
.tipo { display: inline-flex; align-items: center; gap: 6px; }
.tipo::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--servizi); }
.tipo.lavori::before { background: var(--lavori); }
.tipo.altro::before { background: var(--filo-forte); }
.giorni { font-size: 30px; font-weight: 600; letter-spacing: -0.04em; color: var(--inchiostro); line-height: 1; font-variant-numeric: tabular-nums; }
.giorni small { display: block; font-size: 12.5px; font-weight: 400; letter-spacing: 0; color: var(--tenue); margin-top: 4px; }
.giorni.presto { color: var(--avviso); }
.apri { font-size: 14px; white-space: nowrap; text-decoration: none; }
.apri:hover { text-decoration: underline; }
.perche { font-size: 13px; }
.da-verificare { color: var(--avviso) !important; }
.titolare { color: var(--ok) !important; }
.mono { font-family: var(--f-mono); font-size: 12.5px; letter-spacing: 0; }
.nota { font-size: 13.5px; color: var(--tenue); max-width: 80ch; }
.errore { color: var(--errore); }
.vuoto { padding: 28px 0; color: var(--tenue); font-size: 17px; }
.cifre { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 28px; }
.cifre div { display: grid; gap: 2px; }
.cifre b { font-weight: 600; font-size: 34px; letter-spacing: -0.04em; color: var(--inchiostro); line-height: 1.05; font-variant-numeric: tabular-nums; }
.cifre span { font-size: 14px; color: var(--tenue); }
.soa { display: grid; gap: 12px; }
.soa h2 { margin: 0; }
@media (max-width: 640px) {
  .pagina { padding-inline: 16px; }
  .riga { grid-template-columns: 70px minmax(0, 1fr); }
  .riga .quanto { grid-column: 2; justify-items: start; text-align: left; display: flex; gap: 12px; align-items: baseline; flex-wrap: wrap; }
  .cima nav { gap: 6px 14px; }
  .esito { white-space: normal; }
}
@media (prefers-reduced-motion: no-preference) {
  .risultato, .home, .centro { animation: entra .45s cubic-bezier(.2, .7, .2, 1); }
}
@keyframes entra { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* pagine centrate (accesso, codice, messaggi) */
.centro { min-height: 56vh; display: grid; grid-template-columns: minmax(0, 1fr); align-content: center; justify-items: center; text-align: center; gap: 20px; padding-block: 30px; }
.centro h1 { margin: 0; font-weight: 600; font-size: clamp(30px, 4.6vw, 48px); line-height: 1.05; letter-spacing: -0.04em; }
.centro p { margin: 0; max-width: 46ch; color: var(--tenue); text-wrap: balance; }
.centro .piccolo { font-size: 14px; }

/* pagine non ancora ridisegnate (scheda, accesso): stesso stile per gli elementi esistenti */
.contenuto p.s { color: var(--tenue); margin: 0 0 20px; }
.contenuto .v { color: var(--errore); font-size: 13.5px; }
.contenuto .tot { color: var(--tenue); margin: 6px 0 14px; }
.contenuto form.cerca { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; align-items: center; }
.contenuto form.cerca input, .contenuto form.cerca select, .contenuto input[type=text], .contenuto input[type=password], .contenuto input[type=email],
.contenuto input:not([type]), .contenuto select { border: 1px solid var(--filo-forte); background: var(--carta); border-radius: 10px; padding: 10px 12px; min-width: 0; }
.contenuto button { border: 1px solid var(--linea); background: var(--inchiostro); color: #fff; border-radius: 999px; padding: 9px 16px; cursor: pointer; font-weight: 500; }
.contenuto button[type=button], .contenuto td button, .contenuto .tasti button { background: var(--carta); color: var(--inchiostro); border-color: var(--filo-forte); }
.contenuto h1 { font-size: clamp(28px, 4vw, 40px); font-weight: 600; letter-spacing: -0.04em; margin: 10px 0 8px; }
table.schede { width: 100%; border-collapse: collapse; font-size: 14px; }
table.schede th { text-align: left; font-weight: 500; font-size: 12.5px; color: var(--tenue); padding: 8px 8px; border-bottom: 1px solid var(--filo-forte); }
table.schede td { padding: 12px 8px; border-bottom: 1px solid var(--filo); vertical-align: top; }
table.schede td.n { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
table.schede td.d { white-space: nowrap; color: var(--tenue); font-variant-numeric: tabular-nums; }
.htmx-request .attesa { display: inline; }
.attesa { display: none; margin-left: 8px; color: var(--tenue); }
@media (max-width: 760px) {
  table.schede, table.schede tbody, table.schede tr, table.schede td { display: block; width: auto; }
  table.schede tr:first-child { display: none; }
  table.schede tr { border-bottom: 1px solid var(--filo); padding: 8px 0; }
  table.schede td { border: 0; padding: 3px 0; text-align: left; white-space: normal; }
  table.schede td.n { text-align: left; }
  table.schede td[data-t]::before { content: attr(data-t); display: block; font-size: 12px; color: var(--tenue); }
  table.schede td:empty { display: none; }
}

/* Le tue gare: andamento per anno e riquadri (11/10/2026) */
.anni { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 8px; align-items: end; height: 150px; padding-top: 8px; }
.anno { display: grid; grid-template-rows: 1fr auto; height: 100%; gap: 6px; }
.anno .barre { position: relative; display: flex; align-items: flex-end; justify-content: center; }
.anno .barre i { display: block; width: 46%; border-radius: 5px 5px 2px 2px; min-height: 2px; }
.anno .barre i.g { background: var(--filo-forte); }
.anno .barre i.v { background: var(--servizi); margin-left: 3px; }
.anno span { font-size: 11.5px; color: var(--tenue); text-align: center; font-variant-numeric: tabular-nums; }
.legenda { display: flex; gap: 6px; align-items: center; margin: 0; }
.legenda i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; }
.legenda i.g { background: var(--filo-forte); } .legenda i.v { background: var(--servizi); }
.riquadri { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.riquadri > div { background: var(--carta); border: 1px solid var(--filo); border-radius: var(--raggio); padding: 18px 20px; min-width: 0; }
.riquadri h3 { margin: 0 0 10px; font-size: 14px; font-weight: 600; letter-spacing: 0; color: var(--tenue); }
.riquadri ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 7px; }
.riquadri li { display: flex; justify-content: space-between; gap: 12px; font-size: 14.5px; }
.riquadri li span { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.riquadri li b { flex: none; }
.riquadri li b { font-weight: 600; font-variant-numeric: tabular-nums; color: var(--inchiostro); }
.categorie { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 0; }
.categorie span { background: var(--velo); border-radius: 999px; padding: 3px 10px; color: var(--inchiostro); }
.categorie small { color: var(--tenue); }
@media (max-width: 640px) { .anni { gap: 4px; height: 120px; } .anno span { font-size: 10px; }
  .cifre { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } .cifre b { font-size: 26px; overflow-wrap: anywhere; } }

/* compilazione documenti di gara (app compila, 12/10/2026) */
.documenti { max-width: 760px; display: grid; grid-template-columns: minmax(0, 1fr); }
.documenti .passo { background: var(--carta); border: 1px solid var(--filo); border-radius: var(--raggio); padding: 18px 20px; margin: 0 0 16px; }
.documenti .passo h2 { margin: 0 0 8px; font-size: 18px; font-weight: 600; letter-spacing: -0.02em; display: flex; gap: 10px; align-items: center; }
.documenti .passo h2 span { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--servizi); color: #fff; font-size: 14px; }
.documenti .passo p { margin: 8px 0; }
.documenti textarea, .documenti .profilo input { width: 100%; border: 1px solid var(--filo-forte); background: var(--carta); border-radius: 10px; padding: 10px 12px; }
.documenti input[type=file] { max-width: 100%; }
.documenti .ok { color: var(--ok); font-size: 14px; }
.documenti .profilo fieldset { border: 1px solid var(--filo); border-radius: var(--raggio); background: var(--carta); padding: 14px 18px 18px; margin: 0 0 16px;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 12px 16px; }
.documenti .profilo legend { font-weight: 600; padding: 0 6px; }
.documenti .profilo label { display: grid; gap: 4px; }
.documenti .profilo label small { color: var(--tenue); }
.documenti .profilo label.largo { grid-column: 1 / -1; }
.documenti .attesa { display: flex; gap: 12px; align-items: center; color: var(--tenue); }
.documenti .rotella { width: 18px; height: 18px; border: 1px solid var(--filo-forte); border-top-color: var(--servizi); border-radius: 50%; animation: gira 0.9s linear infinite; flex: none; }
@keyframes gira { to { transform: rotate(360deg); } }
.documenti ul.note { padding-left: 18px; }
.documenti ul.note span { color: var(--tenue); }
.documenti a.bottone { display: inline-block; text-decoration: none; }

/* ultime gare in home e scheda della gara per CIG (12/10/2026) */
.ultime { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; padding-bottom: 20px; }
.ultime h2 { margin: 0; font-size: 20px; font-weight: 600; letter-spacing: -0.02em; }
.gara .riquadri li span { flex: none; color: var(--tenue); }
.gara .riquadri li b { flex: 1 1 auto; min-width: 0; text-align: right; font-weight: 500; overflow-wrap: anywhere; }
.gara .riquadri p { margin: 0; font-size: 14.5px; }
.gara .categorie { margin: 12px 0 0; display: flex; flex-wrap: wrap; gap: 6px; }
.gara .chi .sintesi { font-size: clamp(20px, 2.4vw, 28px); line-height: 1.2; letter-spacing: -0.02em; }

/* stile pieno (15/10/2026): oggetti principali con bordo spesso e ombra piena */
h1, h2, h3 { font-weight: 700; }
.home h1 { font-weight: 800; letter-spacing: -0.04em; }
.home h1 em, .chi .sintesi em.accento { font-style: normal; color: var(--accento); }
.chi .sintesi, .centro h1, .contenuto h1 { font-weight: 700; }
.campo-unico, .campo-unico:focus-within { border: var(--bordo) solid var(--linea); border-radius: 16px;
  box-shadow: var(--ombra) var(--ombra) 0 var(--ombra-colore); padding: 6px 6px 6px 18px; }
.campo-unico.piccolo, .campo-unico.piccolo:focus-within { border-width: 1px; box-shadow: 3px 3px 0 var(--ombra-colore); border-radius: 12px; padding: 4px 4px 4px 14px; }
.vai, .bottone, .contenuto button:not([type=button]) { background: var(--accento); color: var(--su-accento); border: var(--bordo) solid var(--linea);
  box-shadow: var(--ombra) var(--ombra) 0 var(--ombra-colore); font-weight: 700; transition: transform .12s ease, box-shadow .12s ease; }
.vai:hover, .bottone:hover, .contenuto button:not([type=button]):hover { transform: translate(-1px, -1px); box-shadow: calc(var(--ombra) + 2px) calc(var(--ombra) + 2px) 0 var(--ombra-colore); }
.vai:active, .bottone:active, .contenuto button:not([type=button]):active { transform: translate(var(--ombra), var(--ombra)); box-shadow: 0 0 0 var(--ombra-colore); }
.campo-unico .vai, .campo-unico .vai:hover, .campo-unico .vai:active { box-shadow: none; transform: none; border-width: 1px; }
.campo-unico .vai:hover { filter: brightness(1.12); }
.bottone.chiaro, .contenuto button[type=button], .contenuto td button, .contenuto .tasti button { background: var(--carta); color: var(--inchiostro); border: 1px solid var(--linea); box-shadow: 3px 3px 0 var(--ombra-colore); }
.contenuto td button, .cima nav button { box-shadow: none; }
.cima nav button { background: none; border: 0; color: var(--tenue); font-weight: 400; padding: 0; transform: none; }
.riquadri > div, .documenti .passo, .documenti .profilo fieldset { border: var(--bordo) solid var(--linea); box-shadow: var(--ombra) var(--ombra) 0 var(--ombra-colore); }
.cifre { gap: 16px; }
.cifre div { background: var(--carta); border: var(--bordo) solid var(--linea); border-radius: var(--raggio); box-shadow: var(--ombra) var(--ombra) 0 var(--ombra-colore); padding: 14px 16px; }
.cifre div:first-child { background: var(--accento); }
.cifre div:first-child b, .cifre div:first-child span { color: var(--su-accento); }
.cifre b { font-weight: 800; }
.segmenti a.on { background: var(--inchiostro); color: #fff; box-shadow: none; }
.filtri a.on { border: 1px solid var(--linea); background: var(--accento-velo); color: var(--inchiostro); font-weight: 600; }
.categorie span { background: var(--accento-velo); }
.documenti .passo h2 span { border: 1px solid var(--linea); }
.lista { border-top: 2px solid var(--linea); }
.giorni { font-weight: 800; }
@media (prefers-reduced-motion: reduce) { .vai, .bottone, .contenuto button { transition: none; } }
.riga .cosa, .chi .sintesi, .chi .nome { overflow-wrap: anywhere; }      /* oggetti ANAC con parole unite da punti (es. 2025-2026.INTERVENTI) */

/* home come il prototipo (15/10/2026): apertura con scalinata, anteprima Trova partner, fascia Documenti */
.home.apertura { min-height: 0; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: center; justify-items: stretch; text-align: left; gap: 40px; padding-block: 24px 40px; }
.apertura .testo { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; justify-items: start; }
.apertura h1 { font-size: clamp(40px, 6.6vw, 80px); line-height: .98; }
.apertura h1 em { display: block; }
.apertura .fonti { justify-content: flex-start; }
.apertura .scala { width: 100%; max-width: 440px; height: auto; justify-self: end; }
.campo-unico .paese { font-family: var(--f-mono); font-size: 13.5px; font-weight: 500; border: 1px solid var(--linea); border-radius: 8px; padding: 5px 8px; background: var(--accento-velo); color: var(--inchiostro); flex: none; }
.campo-unico:has(.paese) { padding-left: 8px; }
.sezione { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; padding-block: 36px 8px; }
.sezione h2 { margin: 0; font-size: clamp(30px, 4.4vw, 46px); font-weight: 800; line-height: 1.02; letter-spacing: -0.04em; }
.sezione h2 em { font-style: normal; color: var(--accento); }
.sezione h2 .presto { display: inline-block; vertical-align: middle; font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; background: var(--accento-velo); border: 1px solid var(--linea); border-radius: 999px; padding: 3px 10px; margin-left: 6px; }
.sezione > p { margin: 0; color: var(--tenue); max-width: 62ch; }
.due { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; align-items: start; margin-top: 8px; }
.requisiti { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.requisiti li { display: flex; align-items: center; gap: 14px; padding: 13px 16px; font-weight: 500; color: var(--inchiostro); background: var(--carta); border: var(--bordo) solid var(--linea); border-radius: var(--raggio); box-shadow: var(--ombra) var(--ombra) 0 var(--ombra-colore); }
.requisiti li > div { min-width: 0; }
.requisiti small { display: block; font-size: 13px; font-weight: 400; color: var(--tenue); }
.spunta { flex: none; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--linea); display: grid; place-items: center; }
.spunta.si { background: var(--accento); color: var(--su-accento); }
.spunta svg { width: 14px; height: 14px; }
.esempio-gara { display: grid; gap: 12px; padding: 18px 20px; background: var(--carta); border: var(--bordo) solid var(--linea); border-radius: var(--raggio); box-shadow: var(--ombra) var(--ombra) 0 var(--ombra-colore); }
.esempio-gara .eti { font-family: var(--f-mono); font-size: 12px; letter-spacing: .05em; text-transform: uppercase; color: var(--tenue); }
.esempio-gara h3 { margin: 0; font-size: 21px; line-height: 1.2; letter-spacing: -0.02em; }
.esempio-gara dl { margin: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 16px; font-size: 14.5px; }
.esempio-gara dt { color: var(--tenue); }
.esempio-gara dd { margin: 0; text-align: right; font-weight: 600; }
.proposti { display: grid; gap: 8px; border-top: 2px dashed var(--filo-forte); padding-top: 12px; font-size: 14.5px; }
.proposti div { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.proposti div span:last-child { color: var(--tenue); }
.fascia { margin-top: 44px; background: var(--accento); color: var(--su-accento); border: var(--bordo) solid var(--linea); border-radius: 22px; box-shadow: var(--ombra) var(--ombra) 0 var(--ombra-colore);
  padding: 30px clamp(20px, 4vw, 44px); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 22px; align-items: center; }
.fascia h2 { margin: 0 0 8px; color: inherit; font-size: clamp(26px, 3.6vw, 40px); font-weight: 800; line-height: 1.05; letter-spacing: -0.035em; }
.fascia p { margin: 0; max-width: 52ch; opacity: .92; }
.ultime { padding-top: 8px; }
@media (max-width: 760px) {
  .home.apertura, .due, .fascia { grid-template-columns: minmax(0, 1fr); }
  .apertura .scala { order: -1; max-width: 210px; justify-self: start; }
  .campo-unico .paese { display: none; }
}

/* pagine di accesso (15/10/2026): card centrata */
.accesso { display: grid; justify-items: center; padding-block: 28px 20px; }
.accesso .carta { width: min(480px, 100%); display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; padding: 28px clamp(18px, 4vw, 32px);
  background: var(--carta); border: var(--bordo) solid var(--linea); border-radius: 20px; box-shadow: var(--ombra) var(--ombra) 0 var(--ombra-colore); }
.accesso .carta:has(table) { width: min(640px, 100%); }
.accesso .carta > * { margin: 0; }
.accesso h1 { font-size: clamp(28px, 4.4vw, 38px); font-weight: 800; letter-spacing: -0.035em; line-height: 1.05; }
.accesso h1::before { content: ""; display: block; width: 40px; height: 22px; margin-bottom: 16px;
  background: linear-gradient(var(--inchiostro), var(--inchiostro)) 0 100% / 8px 8px no-repeat,
              linear-gradient(var(--inchiostro), var(--inchiostro)) 11px 100% / 11px 13px no-repeat,
              linear-gradient(var(--accento), var(--accento)) 25px 100% / 15px 22px no-repeat; }
.accesso form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 0; }
.accesso form p { margin: 0; }
.accesso form.cerca { display: grid; }
.contenuto .accesso input:not([type=checkbox]):not([type=hidden]) { width: 100%; border: 1px solid var(--linea); border-radius: 12px; padding: 12px 14px; font-size: 16px; background: var(--carta); }
.contenuto .accesso input[readonly] { background: var(--velo); }
.accesso form > button, .accesso form > p > button, .accesso #riga_passkey button { width: 100%; padding: 13px 18px; font-size: 16px; }
.accesso small, .accesso .s { color: var(--tenue); }
.accesso a { font-weight: 500; }

/* scheda dello studio (15/10/2026) */
.scheda { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; padding-top: 10px; }
.scheda h1.sintesi { margin: 0; font-size: clamp(30px, 4.6vw, 50px); font-weight: 800; letter-spacing: -0.04em; line-height: 1.04; }
.scheda h2 { margin: 18px 0 0; font-size: clamp(24px, 3vw, 30px); font-weight: 800; letter-spacing: -0.03em; }
.stato { justify-self: start; margin: 4px 0 0; display: inline-block; font-size: 14px; font-weight: 600; border: 1px solid var(--linea); border-radius: 999px; padding: 5px 12px; background: var(--carta); }
.stato.ok { background: #DCEFE3; }
.stato.attesa { background: var(--accento-velo); }
.stato.no { background: #F7DCD6; }
.azioni { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.azioni .bottone { padding: 8px 14px; font-size: 14px; }
.azioni form { margin: 0; }
.contenuto .azioni button.esci { background: none; border: 0; box-shadow: none; color: var(--tenue); font-weight: 500; padding: 8px 6px; }
.contenuto .azioni button.esci:hover { color: var(--inchiostro); transform: none; box-shadow: none; }
.messaggio { margin: 0; font-weight: 500; }
.cifre .da-fare { background: #FCE3CF; }
.conferma-tutte { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; margin: 0; }
.conferma-tutte small { color: var(--tenue); }
.tabella { overflow-x: auto; background: var(--carta); border: 1px solid var(--linea); border-radius: var(--raggio); padding: 4px 12px; }
.contenuto table.schede td button { padding: 4px 10px; font-size: 14px; margin: 2px 2px 2px 0; }
.riquadri .modulo { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; margin: 0 0 8px; }
.riquadri .modulo input, .riquadri .modulo select { width: 100%; }
.riquadri p { margin: 0; color: var(--tenue); }
.riquadri ol { margin-bottom: 12px; }
.riquadri li form { margin: 0; }
.contenuto .riquadri button.togli { background: var(--carta); color: var(--inchiostro); border: 1px solid var(--linea); box-shadow: none; padding: 0 8px; font-size: 13px; }
@media (max-width: 760px) { .tabella { border: 0; padding: 0; background: none; } }.scheda .cifre b { font-size: clamp(22px, 2.6vw, 32px); white-space: nowrap; overflow-wrap: normal; }
.tabella table.schede td { overflow-wrap: break-word; }
.tabella table.schede td.stato-col { min-width: 132px; overflow-wrap: normal; }
.tabella table.schede td.stato-col .v { font-size: 12.5px; }
.tabella table.schede { font-size: 13.5px; }
.tabella table.schede td.d { white-space: normal; }

/* servizi e lavori sempre distinti (15/10/2026): tessere in home, interruttori in Gare aperte, etichette negli elenchi */
.tessere { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; padding-bottom: 28px; }
.tessera { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 20px 22px 22px; text-decoration: none;
  border: var(--bordo) solid var(--linea); border-radius: 20px; box-shadow: var(--ombra) var(--ombra) 0 var(--ombra-colore); transition: transform .12s ease, box-shadow .12s ease; }
.tessera:hover { transform: translate(-2px, -2px); box-shadow: calc(var(--ombra) + 3px) calc(var(--ombra) + 3px) 0 var(--ombra-colore); }
.tessera.servizi { background: var(--servizi); color: #fff; }
.tessera.lavori { background: var(--lavori); color: var(--inchiostro); }
.tessera .icona { width: 120px; height: 100px; margin-bottom: 8px; background: var(--carta); border: var(--bordo) solid var(--linea); border-radius: 16px; padding: 6px; box-sizing: content-box; }
.tessera .nome { font-weight: 800; font-size: clamp(22px, 2.6vw, 30px); line-height: 1.05; letter-spacing: -0.03em; padding-right: 52px; }
.tessera .dati { font-size: 16px; }
.tessera .dati b { font-weight: 800; font-size: 22px; font-variant-numeric: tabular-nums; }
.tessera .sotto-t { font-size: 14px; opacity: .88; }
.tessera .vai-t { position: absolute; top: 18px; right: 20px; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font-size: 22px; font-weight: 700;
  background: var(--carta); color: var(--inchiostro); border: var(--bordo) solid var(--linea); }
.interruttori { display: flex; flex-wrap: wrap; gap: 12px; }
.int { display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px; border: var(--bordo) solid var(--linea); border-radius: 14px; background: var(--carta);
  color: var(--inchiostro); text-decoration: none; font-weight: 700; font-size: 15.5px; box-shadow: 3px 3px 0 var(--ombra-colore); }
.int b { font-variant-numeric: tabular-nums; font-weight: 800; opacity: .7; }
.int i { width: 18px; height: 18px; border-radius: 6px; border: 1px solid var(--linea); }
.int.servizi i { background: var(--servizi); }
.int.lavori i { background: var(--lavori); }
.int.on { background: var(--inchiostro); color: #fff; }
.int.on i { border-color: #fff; }
.etichetta { display: inline-block; font-size: 11px; font-weight: 800; letter-spacing: .06em; line-height: 1.5; padding: 0 6px; border-radius: 6px; border: 1px solid var(--linea); margin-right: 4px; vertical-align: 2px; white-space: nowrap; }
.etichetta.servizi { background: var(--servizi); color: #fff; }
.etichetta.lavori { background: var(--lavori); color: var(--inchiostro); }
@media (max-width: 760px) {
  .tessere { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .tessera .icona { width: 84px; height: 70px; }
}

/* 15/10/2026 sera: bordi più leggeri, riempimenti velati, terzo tipo "appalti integrati", categorie colorate per famiglia */
.tessere { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tessera { border-width: var(--bordo); box-shadow: var(--ombra) var(--ombra) 0 var(--ombra-colore); color: var(--inchiostro); }
.tessera.servizi { background: color-mix(in srgb, var(--servizi) 16%, var(--carta)); }
.tessera.lavori { background: color-mix(in srgb, var(--lavori) 22%, var(--carta)); }
.tessera.integrato { background: color-mix(in srgb, var(--integrato) 16%, var(--carta)); }
.tessera.servizi .nome { color: var(--servizi); }
.tessera.lavori .nome { color: #8A5A0A; }
.tessera.integrato .nome { color: var(--integrato); }
.tessera .icona { border-width: var(--bordo); }
.tessera.servizi .icona { background: color-mix(in srgb, var(--servizi) 10%, var(--carta)); }
.tessera.lavori .icona { background: color-mix(in srgb, var(--lavori) 14%, var(--carta)); }
.tessera.integrato .icona { background: color-mix(in srgb, var(--integrato) 10%, var(--carta)); }
.tessera .vai-t { border-width: var(--bordo); }
.int { border-width: var(--bordo); box-shadow: 2px 2px 0 var(--ombra-colore); }
.int i { border-width: 1.5px; }
.int.integrato i { background: var(--integrato); }
.etichetta { border-width: 1.5px; }
.etichetta.servizi { background: color-mix(in srgb, var(--servizi) 18%, var(--carta)); color: var(--servizi); border-color: var(--servizi); }
.etichetta.lavori { background: color-mix(in srgb, var(--lavori) 28%, var(--carta)); color: #7A4F06; border-color: #B57F14; }
.etichetta.integrato { background: color-mix(in srgb, var(--integrato) 18%, var(--carta)); color: var(--integrato); border-color: var(--integrato); }
.cifre div:first-child { background: color-mix(in srgb, var(--accento) 16%, var(--carta)); }
.cifre div:first-child b { color: var(--accento); }
.cifre div:first-child span { color: var(--tenue); }
.fascia { background: color-mix(in srgb, var(--accento) 14%, var(--carta)); color: var(--inchiostro); }
.fascia h2 { color: var(--accento); }
.spunta { border-width: 1px; }
.cats { display: inline-flex; flex-wrap: wrap; gap: 4px; vertical-align: middle; }
.cat { display: inline-block; font-family: var(--f-mono); font-size: 11.5px; font-weight: 500; line-height: 1.6; padding: 0 6px; border-radius: 6px; border: 1px solid; white-space: nowrap; }
.categorie .cat { font-size: 12.5px; padding: 2px 9px; border-radius: 999px; }
.cat small { opacity: .7; }
.cat.f-edifici { background: #F3E3D7; border-color: #C98B62; color: #6E3D1C; }
.cat.f-infrastrutture { background: #E2E5EA; border-color: #8C95A3; color: #3A4250; }
.cat.f-acqua { background: #DCEBF6; border-color: #6FA2C9; color: #1F4E73; }
.cat.f-impianti { background: #F6E7C8; border-color: #C9A04A; color: #6B4C0C; }
.cat.f-ambiente { background: #DFEEDC; border-color: #7DAF73; color: #2E5A26; }
.cat.f-strutture { background: #ECE3F3; border-color: #A98BC4; color: #4D3368; }
.cat.f-altra { background: var(--velo); border-color: var(--filo-forte); color: var(--testo); }
@media (max-width: 960px) { .tessere { grid-template-columns: minmax(0, 1fr); } }
.documenti ul.lotti { margin: 6px 0; padding-left: 18px; font-size: 14.5px; }
.documenti .partecipante { margin: 0 0 6px; padding: 8px 12px; border-radius: 10px; background: var(--accento-velo); font-size: 14.5px; }
.documenti .profilo label.manca input, .documenti .profilo label.manca textarea { background: #FDF0D5; border-color: #E0A32E; }
.documenti .manca-esempio { background: #FDF0D5; border: 1px solid #E0A32E; border-radius: 4px; padding: 0 4px; }
.documenti .profilo .fonte { display: inline-block; font-size: 11px; font-weight: 600; color: var(--accento); background: var(--accento-velo); border-radius: 999px; padding: 0 7px; margin-left: 4px; }
.documenti .profilo .obbl { font-size: 11px; font-weight: 600; color: var(--errore); margin-left: 4px; }
.apertura h1 { font-size: clamp(30px, 3.9vw, 48px); line-height: 1.04; letter-spacing: -0.035em; }   /* titolo più lungo dal 21/10/2026 */

/* più leggera (21/10/2026): al passaggio del mouse l'ombra cresce poco */
.vai:hover, .bottone:hover, .contenuto button:not([type=button]):hover, .tessera:hover { box-shadow: 4px 4px 0 var(--ombra-colore); }
.campo-unico:focus-within { border-color: var(--accento); }
.lista { border-top: 1px solid var(--linea); }
.cima nav a.registrati { color: var(--accento); font-weight: 600; border: 1px solid var(--linea); border-radius: 999px; padding: 4px 12px; }

/* profilo dell'impresa (21/10/2026) */
.documenti.largo { max-width: 980px; }
.sezioni { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); gap: 14px; }
.sezione-p { display: grid; gap: 6px; padding: 16px 18px; background: var(--carta); border: var(--bordo) solid var(--linea); border-radius: var(--raggio);
  box-shadow: var(--ombra) var(--ombra) 0 var(--ombra-colore); text-decoration: none; color: var(--inchiostro); }
.sezione-p:hover { border-color: var(--accento); }
.sezione-p b { font-size: 17px; }
.sezione-p span { font-size: 13.5px; color: var(--tenue); }
.sezione-p i { display: block; height: 6px; border-radius: 99px; background: linear-gradient(90deg, var(--accento) var(--p), var(--velo) var(--p)); }
.sezione-p small { color: var(--tenue); }
.elenco-voci { display: block !important; }
.elenco-voci h3 { margin: 14px 0 6px; font-size: 14px; color: var(--tenue); }
.elenco-voci .nota { margin: 0 0 6px; }
.voce { display: grid !important; grid-template-columns: auto 64px minmax(0, 1fr) 150px; gap: 10px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--filo); font-size: 14px; }
.voce span { min-width: 0; }
.voce .importo, .voce select { width: 100%; }
.voce.da-anac { background: var(--accento-velo); }
.categorie-soa .voce, .elenco-voci select { grid-column: auto; }
.cert { display: grid; gap: 6px; padding: 8px 0; border-bottom: 1px solid var(--filo); font-size: 14.5px; }
.cert label { display: block !important; }
.cert .dettagli { display: flex; flex-wrap: wrap; gap: 6px; padding-left: 24px; }
.cert .dettagli input { width: auto; flex: 1 1 140px; min-width: 0; }
.cert .dettagli input.largo-i { flex: 2 1 240px; }
.riga .quanto form { display: inline; margin-left: 8px; }
@media (max-width: 640px) { .voce { grid-template-columns: auto 56px minmax(0, 1fr); } .voce .importo, .voce select { grid-column: 2 / -1; } }
.filtri-cert { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 2; background: var(--fondo); padding: 8px 0 10px; display: grid; gap: 8px; }
.filtri-cert input[type=search] { width: 100%; border: 1px solid var(--linea); border-radius: 12px; padding: 10px 14px; background: var(--carta); font-size: 15px; }
.chip-cert { display: flex; flex-wrap: wrap; gap: 6px; }
.contenuto .chip-cert button { background: var(--carta); color: var(--testo); border: 1px solid var(--linea); box-shadow: none; border-radius: 999px; padding: 5px 12px; font-size: 13.5px; font-weight: 500; }
.contenuto .chip-cert button.on { background: var(--inchiostro); color: #fff; border-color: var(--inchiostro); }
.contenuto .chip-cert button:hover { transform: none; box-shadow: none; }
.chip-cert b { font-weight: 700; color: var(--accento); }
.chip-cert button.on b { color: #fff; }
.gruppo-cert { background: var(--carta); border: 1px solid var(--linea); border-radius: var(--raggio); padding: 4px 16px; margin: 0 0 10px; }
.gruppo-cert summary { cursor: pointer; padding: 10px 0; font-weight: 700; }
.gruppo-cert summary small { font-weight: 400; color: var(--tenue); margin-left: 6px; }

/* registrazione in evidenza (21/10/2026) */
.cima nav a.registrati { background: var(--accento); color: #fff; border-color: var(--accento); padding: 6px 14px; }
.cima nav a.registrati:hover { color: #fff; filter: brightness(1.1); }
.esempi a.forte { color: var(--accento); font-weight: 700; text-decoration-color: var(--accento); }
.invito-reg { display: flex; flex-wrap: wrap; gap: 14px 20px; align-items: center; justify-content: space-between; margin: 6px 0 0;
  padding: 16px 18px; background: color-mix(in srgb, var(--accento) 12%, var(--carta)); border: 1px solid var(--linea); border-radius: var(--raggio); }
.invito-reg div { display: grid; gap: 4px; min-width: 0; flex: 1 1 320px; }
.invito-reg b { font-size: 18px; color: var(--inchiostro); }
.invito-reg span { font-size: 14.5px; color: var(--testo); }
.registra { margin-top: 28px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: center;
  padding: 28px clamp(18px, 4vw, 40px); border: 1px solid var(--linea); border-radius: 22px; background: var(--carta); }
.registra h2 { margin: 0 0 8px; font-size: clamp(26px, 3.4vw, 38px); font-weight: 800; letter-spacing: -0.035em; line-height: 1.05; }
.registra h2 em { font-style: normal; color: var(--accento); }
.registra p { margin: 0; color: var(--tenue); }
.invito-mini { margin: 0; }
.invito-mini a { color: var(--accento); font-weight: 600; }
.passi-reg { margin: 0; padding-left: 22px; display: grid; gap: 6px; }
.passi-reg li::marker { color: var(--accento); font-weight: 800; }
.vantaggi { margin: 0; padding: 12px 14px 12px 32px; background: var(--accento-velo); border-radius: 12px; display: grid; gap: 4px; font-size: 14.5px; }
.salta { margin: 0; }
.salta a { font-weight: 700; color: var(--accento); }
@media (max-width: 760px) { .registra { grid-template-columns: minmax(0, 1fr); } }

/* registrazione: cosa ottieni (21/10/2026) */
.registra form { margin-top: 16px; }
.ottieni { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ottieni li { display: grid; gap: 2px; padding: 0 0 0 30px; position: relative; }
.ottieni li::before { content: "✓"; position: absolute; left: 0; top: 0; width: 20px; height: 20px; border-radius: 50%;
  background: var(--accento); color: #fff; font-size: 12px; font-weight: 800; display: grid; place-items: center; }
.ottieni b { color: var(--inchiostro); }
.ottieni span { font-size: 14.5px; color: var(--tenue); }
.ottieni-t { margin: 22px 0 10px; font-size: 18px; }
.chiedo { margin: 10px 0 0; font-size: 14px; color: var(--tenue); }
.anteprima { margin: 18px 0; padding: 16px 18px; border: 1px solid var(--linea); border-radius: var(--raggio);
  background: color-mix(in srgb, var(--accento) 8%, var(--carta)); }
.anteprima h2 { margin: 0 0 8px; font-size: 18px; }
.anteprima ul { list-style: none; margin: 8px 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; }
.anteprima li b { font-size: 22px; color: var(--accento); }
.anteprima p { margin: 6px 0 0; }

/* rete: ricerca partner, stato del profilo, categorie mancanti (21/10/2026) */
.partner .cerca-partner fieldset { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 12px 16px; min-width: 0; }
.partner select, .partner .profilo input { width: 100%; border: 1px solid var(--filo-forte); background: var(--carta); border-radius: 10px; padding: 9px 10px; min-width: 0; }
.risultati-t { margin: 26px 0 8px; font-size: 20px; }
.partner-lista { border: 1px solid var(--linea); border-radius: var(--raggio); background: var(--carta); }
.partner-riga { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 6px 16px; padding: 12px 16px; border-top: 1px solid var(--linea); }
.partner-riga:first-child { border-top: 0; }
.partner-riga .chi-p, .partner-riga .cosa-p { display: grid; gap: 3px; min-width: 0; overflow-wrap: break-word; }
.partner-riga a { color: var(--inchiostro); }
.partner-riga small { color: var(--tenue); font-size: 13px; }
.badge { justify-self: start; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--linea); color: var(--tenue); }
.badge.ok { background: var(--accento); border-color: var(--accento); color: #fff; }
.pagine { display: flex; gap: 18px; justify-content: center; margin: 14px 0; font-size: 14.5px; }
.partner .invito-reg { margin-top: 18px; }
.manca-cat { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 13.5px; color: var(--tenue); }
.manca-cat a { color: var(--accento); font-weight: 600; }
.stato-profilo { margin: 0 0 18px; padding: 16px 18px; border: 1px solid var(--linea); border-radius: var(--raggio); background: var(--carta); display: grid; gap: 8px; }
.barra-p { display: grid; gap: 6px; }
.barra-p i { display: block; height: 8px; border-radius: 999px; background: linear-gradient(90deg, var(--accento) var(--p), var(--accento-velo) var(--p)); }
.passo-p, .comparse { margin: 0; font-size: 14.5px; }
.passo-p span { font-weight: 700; color: var(--accento); }
.passo-p a { font-weight: 600; color: var(--accento); white-space: nowrap; }
.documenti .profilo label.spunta { display: flex; gap: 8px; align-items: center; }
.documenti .profilo label.spunta input { width: auto; }
@media (max-width: 640px) { .partner-riga { grid-template-columns: minmax(0, 1fr); } }

/* stanze della gara (21/10/2026) */
.cima nav .conta { display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--accento); color: #fff; font-size: 11.5px; font-weight: 700; }
.stanza-riga { text-decoration: none; color: inherit; }
.stanza-riga:hover { background: var(--accento-velo); }
/* pagina della cordata: strumenti della gara e chat privata con i partecipanti (08/11/2026) */
.strumenti-cordata { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; margin: 14px 0 6px; }
.strumento { display: grid; grid-template-columns: auto 1fr; gap: 0 10px; align-items: center; padding: 10px 12px; border: 1px solid var(--linea);
  border-radius: var(--raggio); background: var(--carta); color: var(--inchiostro); text-decoration: none; }
.strumento span { grid-row: span 2; font-size: 22px; }
.strumento small { color: var(--tenue); font-size: 12.5px; }
.strumento:hover { border-color: var(--accento); background: var(--accento-velo); }
.strumento.spento { opacity: .65; }
.membri .membro-chat { display: flex; justify-content: space-between; gap: 8px; color: var(--inchiostro); text-decoration: none; }
.membri .membro-chat:hover b { text-decoration: underline; }
.membri .scrivi-a { flex: none; font-size: 12.5px; color: var(--accento); font-weight: 600; }
.scelte-scadenza { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 2px; }
.scelte-scadenza .scelta { font: inherit; font-size: 12.5px; padding: 3px 10px; border-radius: 999px; border: 1px solid var(--linea);
  background: var(--carta); color: var(--inchiostro); cursor: pointer; }
.scelte-scadenza .scelta.on { background: var(--accento); border-color: var(--accento); color: #fff; }
/* ribassi di mercato: come leggere i numeri (08/11/2026) */
.come-leggere { margin: 12px 0 18px; padding: 10px 14px; border: 1px solid var(--linea); border-radius: var(--raggio); background: var(--carta); }
.come-leggere summary { cursor: pointer; font-weight: 600; }
.come-leggere dl { display: grid; grid-template-columns: minmax(130px, auto) 1fr; gap: 6px 14px; margin: 10px 0 2px; font-size: 14px; }
.come-leggere dt { font-weight: 600; }
.come-leggere dd { margin: 0; color: var(--tenue); }
@media (max-width: 640px) { .come-leggere dl { grid-template-columns: 1fr; } .come-leggere dd { margin-bottom: 6px; } }
/* elenco cordate a tabella con stato a lato (08/11/2026); sul telefono una riga compatta per cordata */
table.cordate .solo-telefono { display: none; }
@media (max-width: 760px) {
  table.cordate tr:not(:first-child) { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; align-items: start; padding: 12px 0; }
  table.cordate td { padding: 0; }
  table.cordate td[data-t]::before { display: none; }
  table.cordate td:nth-child(2), table.cordate td:nth-child(3), table.cordate td:nth-child(4) { display: none; }
  table.cordate td.stato-col { grid-column: 2; grid-row: 1; min-width: 0; text-align: right; }
  table.cordate .solo-telefono { display: block; margin-top: 3px; color: var(--tenue); font-size: 13px; }
}
table.cordate td a b { color: var(--inchiostro); }
table.cordate tr.chiusa td { color: var(--tenue); }
table.cordate tr.chiusa td a b { color: var(--tenue); font-weight: 600; }
.badge.attiva { background: var(--ok); border-color: var(--ok); color: #fff; }
.badge.invito { background: var(--lavori); border-color: var(--lavori); color: #fff; text-decoration: none; }
.stanza-pagina { max-width: 1100px; }
.stanza-testa h1 { margin: 0 0 6px; font-size: clamp(22px, 3vw, 30px); overflow-wrap: break-word; }
.stanza-griglia { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 20px; align-items: start; margin-top: 14px; }
.conversazione { border: 1px solid var(--linea); border-radius: var(--raggio); background: var(--carta); display: grid; }
.messaggi { max-height: 62vh; overflow-y: auto; padding: 14px; display: grid; gap: 10px; align-content: start; }
.messaggi .m { max-width: 85%; padding: 8px 12px; border-radius: 12px; background: var(--fondo); border: 1px solid var(--linea); overflow-wrap: break-word; }
.messaggi .m.mio { justify-self: end; background: var(--accento-velo); }
.messaggi .m.nuovo { border-color: var(--accento); }
.messaggi .m p { margin: 4px 0 0; }
.messaggi .m small { color: var(--tenue); }
.m-sistema { margin: 0; text-align: center; font-size: 13px; color: var(--tenue); }
.scrivi { border-top: 1px solid var(--linea); padding: 12px; display: grid; gap: 8px; }
.scrivi textarea { width: 100%; border: 1px solid var(--filo-forte); border-radius: 10px; padding: 10px 12px; background: var(--carta); font: inherit; resize: vertical; }
.scrivi div { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.scrivi div button { margin-left: auto; }
.scrivi input[type=file] { max-width: 100%; }
.lato { display: grid; gap: 16px; }
.lato section { border: 1px solid var(--linea); border-radius: var(--raggio); background: var(--carta); padding: 14px 16px; }
.lato h2 { margin: 0 0 8px; font-size: 16px; }
.membri, .file-stanza { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 8px; }
.membri li, .file-stanza li { display: grid; gap: 1px; overflow-wrap: break-word; min-width: 0; }
.membri small, .file-stanza small { color: var(--tenue); font-size: 12.5px; }
.invita-piva { display: flex; gap: 6px; }
.invita-piva input { flex: 1; min-width: 0; border: 1px solid var(--filo-forte); border-radius: 10px; padding: 8px 10px; background: var(--carta); }
.esci-stanza { margin: 0; }
.azione-gara { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; margin: 10px 0 0; }
.azione-gara small { color: var(--tenue); }
.invita-link { font-size: 13.5px; font-weight: 600; color: var(--accento) !important; }
@media (max-width: 860px) { .stanza-griglia { grid-template-columns: minmax(0, 1fr); } }
.giorni small.sopra { margin: 0 0 4px; }

/* livelli di partecipazione (22/10/2026) */
.icona-liv { width: 34px; height: 28px; flex: none; overflow: visible; }
.livelli-home { margin-top: 44px; }
.livelli-home h2 { margin: 0 0 6px; font-size: clamp(26px, 3.4vw, 38px); font-weight: 800; letter-spacing: -0.035em; }
.livelli-home .sotto { margin: 0 0 18px; color: var(--tenue); max-width: 760px; }
.cordata { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; counter-reset: liv; }
.cordata > li { border: 1px solid var(--linea); border-radius: var(--raggio); background: var(--carta); padding: 16px; display: grid; gap: 6px; align-content: start; }
.cordata > li .icona-liv { width: 48px; height: 40px; }
.cordata > li > b { font-size: 19px; }
.cordata > li > small { color: var(--accento); font-weight: 600; }
.cordata ul { margin: 4px 0 0; padding-left: 18px; font-size: 14px; color: var(--testo); display: grid; gap: 3px; }
.livelli-home .cta { margin: 16px 0 0; }
@media (max-width: 960px) { .cordata { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .cordata { grid-template-columns: minmax(0, 1fr); } }
.livello-box { margin: 0 0 14px; padding: 16px 18px; border: 1px solid var(--linea); border-radius: var(--raggio); background: color-mix(in srgb, var(--accento) 7%, var(--carta)); display: grid; gap: 12px; }
.liv-ora { display: flex; gap: 12px; align-items: center; }
.liv-ora .icona-liv { width: 48px; height: 40px; }
.liv-ora small { display: block; color: var(--tenue); font-size: 12.5px; }
.liv-ora b { font-size: 22px; }
.salita { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.salita li { display: grid; gap: 2px; justify-items: start; font-size: 13.5px; opacity: .55; }
.salita li.fatto { opacity: 1; }
.salita li.ora b { color: var(--accento); }
.salita small { color: var(--tenue); font-size: 12px; }
.liv-prossimo { margin: 0; font-size: 14.5px; }
.liv-prossimo span { font-weight: 700; color: var(--accento); }
.badge.liv { display: inline-flex; gap: 4px; align-items: center; }
.badge.liv .icona-liv { width: 16px; height: 13px; }
/* ricerca partner: simbolo del livello accanto al nome, dati validati sì/no (08/11/2026) */
.partner-riga .nome-liv { display: flex; align-items: center; gap: 8px; }
.partner-riga .liv-simbolo { flex: none; display: inline-flex; }
.partner-riga .liv-simbolo .icona-liv { width: 26px; height: 22px; overflow: visible; }
.partner-riga .badge-riga { display: flex; flex-wrap: wrap; gap: 4px 6px; }
.badge.dati-ok { color: var(--ok); border-color: var(--ok); }
.badge.dati-no { color: var(--avviso); border-color: var(--avviso); font-weight: 500; }
.non-pertinenti { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 6px 8px; align-items: center; }
.non-pertinenti form { margin: 0; }
.non-pertinenti .chip { font-size: 13px; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--linea); background: var(--carta); color: var(--tenue); box-shadow: none; }
.non-pertinenti .chip.on { background: var(--accento-velo); color: var(--inchiostro); border-color: var(--accento); }
@media (max-width: 640px) { .salita { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* classifica apscale (22/10/2026) */
.classifica-box { margin: 0 0 14px; padding: 16px 18px; border: 1px solid var(--linea); border-radius: var(--raggio); background: var(--carta); }
.classifica-box h2 { margin: 0 0 10px; font-size: 18px; }
.classifica-box h2 small { font-weight: 400; color: var(--tenue); font-size: 13px; }
.classifica-box ul { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 6px; }
.classifica-box li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; gap: 8px; align-items: baseline; font-size: 14.5px; }
.classifica-box li span { overflow-wrap: break-word; min-width: 0; }
.classifica-box li small { color: var(--tenue); font-size: 12.5px; }
.classifica-box i { font-style: normal; font-size: 12.5px; font-weight: 700; }
.classifica-box i.su { color: var(--ok, #2e7d32); }
.classifica-box i.giu { color: var(--avviso); }
.classifica-box p { margin: 0; font-size: 14px; }
.rank { font-size: 12.5px; font-weight: 700; color: var(--accento); white-space: nowrap; }
.classifica .regole { margin: 0 0 16px; }
.classifica .regole summary { cursor: pointer; font-weight: 600; }
.filtri-classifica { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: end; margin-bottom: 12px; }
.filtri-classifica label { display: grid; gap: 4px; }
.filtri-classifica select { border: 1px solid var(--filo-forte); border-radius: 10px; padding: 8px 10px; background: var(--carta); }
.filtri-classifica p { margin: 0; }
.elenco-classifica tr.mia td { background: var(--accento-velo); font-weight: 700; }
.spunta-ord { display: inline-flex; gap: 6px; align-items: center; margin-right: 10px; }
.spunta-ord select { width: auto !important; }

/* classifica come salita (22/10/2026) */
.montagna { width: 46px; height: 46px; flex: none; }
.classifica-box li { grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; }
.classifica-box li > span { display: grid; gap: 1px; }
.classifica-box .num { justify-items: end; text-align: right; }
.classifica-box.chiusa p { margin: 0 0 8px; }
.classifica-box .nota { margin-top: 6px; font-size: 12.5px; color: var(--tenue); }
.avvertenza { font-size: 14px; color: var(--tenue); border-left: 3px solid var(--accento); padding-left: 10px; }
.anonima { color: var(--tenue); font-style: italic; }
.classifica-home { margin-top: 44px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 24px; align-items: center;
  padding: 28px clamp(18px, 4vw, 40px); border: 1px solid var(--linea); border-radius: 22px; background: var(--carta); }
.classifica-home h2 { margin: 0 0 8px; font-size: clamp(26px, 3.4vw, 38px); font-weight: 800; letter-spacing: -0.035em; line-height: 1.05; }
.classifica-home .sotto { margin: 0 0 8px; color: var(--tenue); }
.classifica-home .cta { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; margin: 12px 0 6px; }
.esempio-salita { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.esempio-salita li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 14px;
  border: 1px solid var(--linea); border-radius: var(--raggio); background: var(--fondo); }
.esempio-salita li > span { display: grid; gap: 1px; }
.esempio-salita small { color: var(--tenue); font-size: 13px; }
.esempio-salita .num b { color: var(--tenue); }
.articoli { display: grid; gap: 10px; padding-left: 22px; }
.accetta { margin-top: 18px; }
.piede nav { display: flex; gap: 14px; flex-wrap: wrap; }
@media (max-width: 860px) { .classifica-home { grid-template-columns: minmax(0, 1fr); } }

/* montagne più grandi e leggibili (22/10/2026) */
.montagna { width: 64px; height: 64px; overflow: visible; }
.esempio-salita .montagna { width: 76px; height: 76px; }
.icona-liv { overflow: visible; }

/* profilo altimetrico della classifica (22/10/2026) */
.profilo-alt { width: 100%; height: 56px; display: block; overflow: visible; }
.classifica-box li { grid-template-columns: minmax(130px, 0.8fr) minmax(0, 1.6fr) auto; }
.esempio-salita li { grid-template-columns: minmax(120px, 0.7fr) minmax(0, 1.6fr); }
.esempio-salita li > span b, .classifica-box li > span b { font-size: 17px; }
@media (max-width: 560px) {
  .classifica-box li, .esempio-salita li { grid-template-columns: minmax(0, 1fr); }
  .classifica-box .num { justify-items: start; text-align: left; }
}

/* home: la cordata sale lungo la parete (22/10/2026). Spostamento lungo il versante (110, -250), passi alternati */
@media (prefers-reduced-motion: no-preference) {
  .scala .cordata-anim { animation: salita 10s ease-in-out infinite; }
  .scala .passo { animation: passo 0.7s ease-in-out infinite alternate; transform-box: fill-box; }
}
@keyframes salita {
  0% { transform: translate(-22px, 50px); opacity: 0; }
  8% { opacity: 1; }
  80% { transform: translate(18px, -41px); opacity: 1; }
  92% { transform: translate(18px, -41px); opacity: 1; }
  100% { transform: translate(18px, -41px); opacity: 0; }
}
@keyframes passo { from { transform: translateY(0); } to { transform: translateY(-3px); } }

/* home: una sola riga sotto il campo di ricerca (22/10/2026) */
.sotto-campo { margin: 14px 0 0; display: grid; gap: 4px; justify-items: start; }
.sotto-campo a { color: var(--accento); font-weight: 600; text-decoration: none; font-size: 15px; }
.sotto-campo a:hover { text-decoration: underline; }
.sotto-campo small { color: var(--tenue); font-size: 13px; }

/* elenchi a blocchi (22/10/2026) */
.altre { margin: 14px 0 0; text-align: center; }

/* nota accanto ai link dei documenti di gara (Acquisti in Rete, 22/10/2026) */
.nota-bando { display: block; max-width: 220px; font-size: 11.5px; line-height: 1.3; color: var(--tenue); text-align: right; }

/* accesso con Google (25/10/2026) */
.accedi-google { display: inline-flex; gap: 8px; align-items: center; justify-content: center; }

/* registrazione con Google (25/10/2026) */
.con-google { display: grid; gap: 6px; margin: 4px 0 0; }
.con-google small { color: var(--tenue); font-size: 13px; text-align: center; }
.oppure { display: flex; align-items: center; gap: 10px; color: var(--tenue); font-size: 13px; margin: 14px 0 6px; }
.oppure::before, .oppure::after { content: ""; flex: 1; border-top: 1px solid var(--linea); }
.avviso-attesa { margin: 12px 0; padding: 10px 14px; border: 1px solid var(--accento); border-radius: var(--raggio);
  background: color-mix(in srgb, var(--accento) 10%, var(--carta)); font-size: 14.5px; }
.avviso-attesa a { color: var(--accento); font-weight: 700; }

/* strumenti: soglia di anomalia e ribassi di mercato */
.scorri { overflow-x: auto; max-width: 100%; }
.soglia textarea { width: 100%; font: inherit; font-variant-numeric: tabular-nums; }
.soglia .largo { grid-column: 1 / -1; }
.esito-soglia { margin: 18px 0; padding: 16px 18px; background: var(--carta); border: var(--bordo) solid var(--linea); border-radius: var(--raggio); }
.passi-calcolo { padding-left: 20px; font-size: 14px; }
.passi-calcolo li { margin: 4px 0; }
.esito-soglia tr.anomala td { color: var(--tenue); text-decoration: line-through; }
.tabella-a { margin: 16px 0; } .tabella-a summary { cursor: pointer; font-weight: 600; }
.ribassi td, .tabella-a td { font-variant-numeric: tabular-nums; }
.ribasso-mercato { font-size: 13.5px; color: var(--tenue); }
.opportunita { font-size: 13px; color: var(--tenue); }
.opportunita b { color: var(--accento); font-size: 14px; }

/* analisi della gara, soglia a confronto, ordinamento per opportunità */
.analisi-gara { margin: 24px 0; }
.analisi-due { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 14px; margin: 14px 0; }
.analisi-due > div { padding: 14px 16px; background: var(--carta); border: var(--bordo) solid var(--linea); border-radius: var(--raggio); }
.analisi-due h3 { margin: 0 0 6px; }
.analisi-due p { margin: 4px 0; font-size: 14px; }
.analisi-due .grande b { font-size: 28px; letter-spacing: -0.03em; }
.analisi-due .grande span { color: var(--tenue); }
.simula { padding: 14px 16px; border: var(--bordo) solid var(--accento); border-radius: var(--raggio); display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; }
.simula input { width: 90px; font: inherit; padding: 6px 8px; }
.simula p { flex-basis: 100%; margin: 0; font-size: 14px; }
.simula p:empty { display: none; }
.ultime-ente summary { cursor: pointer; font-weight: 600; }
.esito-mia { font-size: 17px; font-weight: 600; }
.esito-soglia tr.scelto td { font-weight: 600; background: var(--velo); }
.esito-soglia tr.mia td { background: var(--velo); font-weight: 600; }
.ordina-gare { font-size: 14px; color: var(--tenue); }
.ordina-gare a.on { color: var(--inchiostro); font-weight: 600; }
.filtro-testo { font: inherit; padding: 9px 12px; min-width: min(100%, 260px); flex: 1; }
.voce-doc { display: flex; gap: 10px; align-items: flex-start; padding: 8px 0; border-top: var(--bordo) solid var(--linea); font-size: 14.5px; }
.voce-doc small { display: block; color: var(--tenue); }
.consenso { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; }
.in-lettura { padding: 14px 16px; background: var(--carta); border: var(--bordo) solid var(--linea); border-radius: var(--raggio); }
.primo-passo { display: grid; gap: 4px; margin: 12px 0; padding: 14px 18px; background: var(--inchiostro); color: #fff; border-radius: var(--raggio); text-decoration: none; }
.primo-passo span { font-size: 14px; opacity: .85; }
.collegamenti-seo { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 14.5px; }
.elenco-conversazioni { list-style: none; padding: 0; }
.elenco-conversazioni li { border-top: var(--bordo) solid var(--linea); }
.elenco-conversazioni a { display: block; padding: 10px 0; text-decoration: none; }
.elenco-conversazioni small { display: block; color: var(--tenue); }
.messaggi-diretti { display: grid; gap: 8px; margin: 14px 0; }
.messaggio-d { max-width: 80%; padding: 8px 12px; background: var(--carta); border: var(--bordo) solid var(--linea); border-radius: var(--raggio); }
.messaggio-d.miei { justify-self: end; background: var(--velo); }
.messaggio-d p { margin: 0; overflow-wrap: anywhere; }
.messaggio-d small { color: var(--tenue); }
label.spunta.largo { width: auto; height: auto; border: 0; border-radius: 0; display: flex; gap: 10px; align-items: flex-start; place-items: initial; }
label.spunta.largo input { flex: none; width: auto; margin-top: 4px; }
.cima nav button.esci-cima { font: inherit; border: 1px solid var(--linea); border-radius: 999px; padding: 4px 12px; }
.cima nav button.esci-cima:hover { color: var(--inchiostro); border-color: var(--inchiostro); }
.cima nav a.chi-impresa { display: inline-flex; flex-direction: column; line-height: 1.15; color: var(--inchiostro); font-weight: 500; border-left: 1px solid var(--linea); padding-left: 14px; }
.cima nav a.chi-impresa small { font-family: var(--mono, monospace); font-size: 11px; color: var(--tenue); font-weight: 400; }
.collegato { display: flex; justify-content: flex-end; align-items: center; gap: 8px 18px; flex-wrap: wrap; padding: 10px 0; border-bottom: 1px solid var(--linea); font-size: 13.5px; color: var(--tenue); }
.collegato a { color: var(--inchiostro); text-decoration: none; }
.collegato a:hover { text-decoration: underline; }
.collegato .mono { font-family: var(--mono, monospace); font-size: 12px; margin-left: 6px; white-space: nowrap; }
.collegato form { margin: 0; }
.collegato button.esci-cima { font: inherit; background: none; color: var(--tenue); cursor: pointer; border: 1px solid var(--linea); border-radius: 999px; padding: 3px 14px; box-shadow: none; transform: none; }
.collegato button.esci-cima:hover { color: var(--inchiostro); border-color: var(--inchiostro); }
.vantaggi { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; margin: 12px 0; }
.vantaggio { display: flex; flex-direction: column; gap: 6px; padding: 16px; border: 1px solid var(--linea); border-radius: var(--raggio); background: var(--carta); }
.vantaggio span { color: var(--tenue); font-size: 14px; }
.vantaggio small { margin-top: auto; font-weight: 600; color: var(--inchiostro); }
.vantaggio.fatto { border-color: var(--accento); }
.vantaggio.fatto small { color: var(--accento); }
.collegato { padding-inline: 24px; }
@media (max-width: 700px) { .collegato { padding-inline: 16px; justify-content: space-between; } }
/* caselle di ricerca e filtri: stessa grafica ovunque (07/11/2026) */
.filtri input[type=search], .filtri select, .filtri-cert input[type=search], .filtri-classifica select, .filtri-classifica input {
  font: inherit; font-size: 15px; border: 1px solid var(--linea); border-radius: 12px; padding: 9px 14px; background: var(--carta); color: var(--inchiostro); box-shadow: 3px 3px 0 var(--ombra-colore); }
.filtri select { padding-right: 32px; }
.filtri input[type=search]:focus, .filtri select:focus { outline: 0; border-color: var(--accento); }
.filtri-gare { width: 100%; justify-content: flex-start; }
.filtri-gare .filtro-testo { flex: 1 1 260px; }
.filtri-gare .vai { padding: 9px 18px; }
.filtri-gare .azzera { border: 0; background: none; padding: 0 4px; font-size: 14px; text-decoration: underline; color: var(--tenue); }
/* pannello dei filtri delle gare aperte (07/11/2026) */
.pannello-filtri { width: 100%; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 16px 18px; padding: 18px;
  border: 1px solid var(--linea); border-radius: 16px; background: var(--carta); margin: 6px 0 4px; }
.pannello-filtri .filtro { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.pannello-filtri .filtro.largo { grid-column: 1 / -1; }
.pannello-filtri .filtro > b { font-size: 13.5px; }
.pannello-filtri .filtro > small { color: var(--tenue); font-size: 12.5px; line-height: 1.35; }
.pannello-filtri input[type=search], .pannello-filtri select, .pannello-filtri .da-a input {
  font: inherit; font-size: 15px; width: 100%; box-sizing: border-box; border: 1px solid var(--linea); border-radius: 12px; padding: 9px 12px;
  background: var(--fondo); color: var(--inchiostro); box-shadow: 3px 3px 0 var(--ombra-colore); }
.pannello-filtri select:disabled { opacity: .55; }
.pannello-filtri input:focus, .pannello-filtri select:focus { outline: 0; border-color: var(--accento); }
.pannello-filtri .da-a { display: flex; align-items: center; gap: 6px; }
.pannello-filtri .da-a input { min-width: 0; }
.pannello-filtri .azioni-filtri { flex-direction: row; align-items: end; flex-wrap: wrap; gap: 12px; }
.pannello-filtri .azzera { font-size: 14px; color: var(--tenue); }
.doppia-barra { position: relative; height: 30px; --da: 0%; --a: 100%; }
.doppia-barra::before { content: ''; position: absolute; left: 0; right: 0; top: 13px; height: 4px; border-radius: 4px;
  background: linear-gradient(90deg, var(--linea-tenue, #e4ded2) var(--da), var(--accento) var(--da), var(--accento) var(--a), var(--linea-tenue, #e4ded2) var(--a)); }
.doppia-barra input[type=range] { position: absolute; left: 0; top: 0; width: 100%; height: 30px; margin: 0; background: none; pointer-events: none; appearance: none; -webkit-appearance: none; box-shadow: none; border: 0; padding: 0; }
.doppia-barra input[type=range]::-webkit-slider-thumb { pointer-events: auto; -webkit-appearance: none; width: 20px; height: 20px; border-radius: 50%; background: var(--carta); border: 2px solid var(--accento); cursor: pointer; }
.doppia-barra input[type=range]::-moz-range-thumb { pointer-events: auto; width: 16px; height: 16px; border-radius: 50%; background: var(--carta); border: 2px solid var(--accento); cursor: pointer; }
.doppia-barra input[type=range]::-moz-range-track { background: none; }
.valore-barra { font-size: 14px; font-weight: 600; }
.filtra-elenco, .cerca-elenco { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 10px 0 12px; }
.filtra-elenco input, .cerca-elenco input[type=search] { flex: 1 1 280px; max-width: 520px; font: inherit; font-size: 15px; border: 1px solid var(--linea);
  border-radius: 12px; padding: 9px 14px; background: var(--carta); color: var(--inchiostro); box-shadow: 3px 3px 0 var(--ombra-colore); }
.filtra-elenco input:focus, .cerca-elenco input:focus { outline: 0; border-color: var(--accento); }
.filtra-elenco small, .cerca-elenco small { color: var(--tenue); }
.cerca-elenco .vai { padding: 9px 18px; }
tr[hidden] { display: none; }
#le-gare { scroll-margin-top: 16px; }
.lista .riga[id] { scroll-margin-top: 16px; }
/* chat a due colonne (07/11/2026) */
.chat { display: grid; grid-template-columns: minmax(260px, 340px) 1fr; height: calc(100vh - 150px); min-height: 520px;
  border: 1px solid var(--linea); border-radius: 16px; overflow: hidden; background: var(--carta); margin: 4px 0 16px; }
.chat-elenco { display: flex; flex-direction: column; border-right: 1px solid var(--linea); min-height: 0; background: var(--fondo); }
.chat-testa { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 14px 8px; }
.chat-testa h1 { font-size: 22px; margin: 0; }
.chat-testa .bottone { padding: 6px 12px; font-size: 14px; }
.chat-cerca { margin: 0 14px 8px; font: inherit; font-size: 14.5px; border: 1px solid var(--linea); border-radius: 999px; padding: 8px 14px; background: var(--carta); }
.chat-voci { list-style: none; margin: 0; padding: 0; overflow-y: auto; flex: 1; }
.chat-voci a { display: grid; grid-template-columns: 42px 1fr auto; gap: 10px; align-items: center; padding: 10px 14px; text-decoration: none; color: inherit; border-bottom: 1px solid var(--linea-tenue, #ece6da); }
.chat-voci a:hover { background: var(--carta); }
.chat-voci a.on { background: var(--accento-velo); }
.chat-voce { min-width: 0; display: flex; flex-direction: column; }
.chat-voce b, .chat-voce small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chat-voce small, .chat-meta small { color: var(--tenue); font-size: 12.5px; }
.chat-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.chat-vuota { padding: 18px 14px; color: var(--tenue); font-size: 14px; }
.chat-elenco .nota { padding: 8px 14px; margin: 0; font-size: 12.5px; border-top: 1px solid var(--linea); }
.avatar { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: 14px;
  background: var(--accento-velo); color: var(--inchiostro); border: 1px solid var(--linea); flex: none; }
.avatar.gruppo { background: var(--carta); font-size: 18px; }
.chat-pannello { display: flex; flex-direction: column; min-height: 0; min-width: 0; }
.chat-vuoto { margin: auto; text-align: center; color: var(--tenue); }
.chat-vuoto p:first-child { font-size: 42px; margin: 0; }
.chat-intestazione { display: flex; align-items: center; gap: 12px; padding: 10px 16px; border-bottom: 1px solid var(--linea); background: var(--fondo); }
.chat-intestazione .chi { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.chat-intestazione .chi b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chat-intestazione .chi small { color: var(--tenue); font-size: 12.5px; }
.chat-intestazione .azioni-chat form { margin: 0; }
.chat-intestazione .bottone { padding: 6px 12px; font-size: 13.5px; }
.chat-intestazione .indietro { display: none; font-size: 22px; text-decoration: none; }
.chat-avviso { margin: 8px 16px; font-size: 14px; }
.chat-nota { margin: 4px 16px 0; font-size: 12px; color: var(--tenue); }
.bolla .scade { display: block; font-size: 11px; color: var(--tenue); margin-top: 2px; }
.file-cancellato s, .m-file s { color: var(--tenue); }
.avviso-file { color: var(--tenue); }
.bolle { flex: 1; overflow-y: auto; padding: 14px 18px; display: flex; flex-direction: column; gap: 6px; }
.giorno { text-align: center; margin: 10px 0 4px; }
.giorno span { font-size: 12px; color: var(--tenue); background: var(--fondo); border: 1px solid var(--linea); border-radius: 999px; padding: 3px 10px; }
.bolla { max-width: min(560px, 78%); align-self: flex-start; background: var(--fondo); border: 1px solid var(--linea); border-radius: 14px 14px 14px 4px; padding: 7px 11px 5px; position: relative; }
.bolla.mia { align-self: flex-end; background: var(--accento-velo); border-radius: 14px 14px 4px 14px; }
.bolla p { margin: 0; overflow-wrap: anywhere; }
.bolla .autore { display: block; font-size: 12.5px; color: var(--accento); }
.bolla .ora { display: block; text-align: right; font-size: 11px; color: var(--tenue); margin-top: 2px; }
.bolla.foto { padding: 4px 4px 3px; }
.bolla.foto img { display: block; max-width: 100%; max-height: 320px; border-radius: 10px; }
.bolla.foto .ora { padding-right: 6px; }
.bolla .file { display: flex; gap: 10px; align-items: center; text-decoration: none; color: inherit; padding: 4px 2px; }
.bolla .file span:last-child { display: flex; flex-direction: column; min-width: 0; }
.bolla .file b { overflow-wrap: anywhere; font-size: 14.5px; }
.bolla .file small { color: var(--tenue); }
.icona-file { font-size: 26px; }
.bolla-sistema { align-self: center; font-size: 13px; color: var(--tenue); margin: 4px 0; text-align: center; }
.sondaggio { display: flex; flex-direction: column; gap: 6px; min-width: min(300px, 70vw); margin: 0; }
.sondaggio > small { color: var(--tenue); font-size: 12px; }
.sondaggio .opzione { display: grid; grid-template-columns: auto 1fr auto; gap: 4px 8px; align-items: center; cursor: pointer; font-size: 14.5px; }
.sondaggio .barra-opzione { grid-column: 2 / 4; height: 5px; border-radius: 5px; background: var(--linea-tenue, #e4ded2); overflow: hidden; }
.sondaggio .barra-opzione i { display: block; height: 100%; background: var(--accento); }
.sondaggio .n-opzione { font-size: 12.5px; color: var(--tenue); }
.sondaggio .scelta .testo-opzione { font-weight: 600; }
.scrivi-chat { border-top: 1px solid var(--linea); padding: 8px 12px; background: var(--fondo); position: relative; }
.riga-scrivi { display: flex; align-items: flex-end; gap: 6px; }
.riga-scrivi textarea { flex: 1; resize: none; font: inherit; font-size: 15px; border: 1px solid var(--linea); border-radius: 20px; padding: 9px 14px; background: var(--carta); max-height: 160px; min-width: 0; }
.riga-scrivi textarea:focus { outline: 0; border-color: var(--accento); }
.tondo { width: 38px; height: 38px; border-radius: 50%; border: 0; background: none; font-size: 19px; cursor: pointer; display: grid; place-items: center; flex: none; box-shadow: none; padding: 0; }
.tondo:hover { background: var(--accento-velo); }
.invia { width: 42px; height: 42px; border-radius: 50%; border: 0; background: var(--accento); color: #fff; font-size: 17px; cursor: pointer; flex: none; padding: 0; box-shadow: none; }
.file-scelti { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.file-scelti[hidden] { display: none; }
.file-scelti span { font-size: 13px; background: var(--carta); border: 1px solid var(--linea); border-radius: 999px; padding: 3px 10px; }
.pannello-emoji { position: absolute; bottom: 58px; left: 10px; width: min(340px, calc(100% - 20px)); max-height: 220px; overflow-y: auto; display: grid;
  grid-template-columns: repeat(auto-fill, minmax(36px, 1fr)); gap: 2px; padding: 8px; background: var(--carta); border: 1px solid var(--linea); border-radius: 14px; box-shadow: 0 10px 30px rgba(0,0,0,.12); z-index: 5; }
.pannello-emoji[hidden] { display: none; }
.pannello-emoji button { font-size: 21px; background: none; border: 0; cursor: pointer; padding: 4px; border-radius: 8px; box-shadow: none; }
.pannello-emoji button:hover { background: var(--accento-velo); }
.finestra-sondaggio { border: 1px solid var(--linea); border-radius: 16px; padding: 18px; width: min(440px, 92vw); background: var(--carta); }
.finestra-sondaggio::backdrop { background: rgba(20, 15, 5, .35); }
.finestra-sondaggio h2 { margin-top: 0; }
.finestra-sondaggio label { display: flex; flex-direction: column; gap: 4px; margin-bottom: 10px; }
.finestra-sondaggio input:not([type=checkbox]) { font: inherit; border: 1px solid var(--linea); border-radius: 10px; padding: 8px 10px; margin-bottom: 6px; width: 100%; box-sizing: border-box; background: var(--fondo); }
.finestra-sondaggio input[hidden] { display: none; }
.finestra-sondaggio .spunta-riga { flex-direction: row; align-items: center; }
.finestra-sondaggio .link { background: none; border: 0; padding: 0; color: var(--accento); cursor: pointer; text-decoration: underline; box-shadow: none; margin-bottom: 10px; }
.azioni-sondaggio { display: flex; justify-content: flex-end; gap: 10px; margin: 6px 0 0; }
.chat-nuova { padding: 24px; display: flex; flex-direction: column; gap: 12px; max-width: 460px; }
.chat-nuova label { display: flex; flex-direction: column; gap: 6px; }
.chat-nuova input { font: inherit; font-size: 15px; border: 1px solid var(--linea); border-radius: 12px; padding: 10px 14px; background: var(--fondo); }
.chat-nuova .vai { align-self: flex-start; }
@media (max-width: 760px) {
  .chat { grid-template-columns: 1fr; height: calc(100vh - 120px); border-radius: 12px; }
  .chat.con-aperta .chat-elenco { display: none; }
  .chat:not(.con-aperta) .chat-pannello { display: none; }
  .chat-intestazione .indietro { display: block; }
  .bolla { max-width: 88%; }
}
.scrivi-chat .tondo, .scrivi-chat .tondo:hover, .scrivi-chat .tondo:active { border: 0; background: none; box-shadow: none; transform: none; color: inherit; }
.scrivi-chat .tondo:hover { background: var(--accento-velo); }
.scrivi-chat .invia, .scrivi-chat .invia:hover, .scrivi-chat .invia:active { border: 0; box-shadow: none; transform: none; background: var(--accento); color: #fff; }
.contenuto .scrivi-chat button.tondo, .contenuto .scrivi-chat button.tondo:active { border: 0; background: none; box-shadow: none; transform: none; color: inherit; }
.contenuto .scrivi-chat button.tondo:hover { background: var(--accento-velo); box-shadow: none; transform: none; }
.contenuto .scrivi-chat button.invia, .contenuto .scrivi-chat button.invia:hover, .contenuto .scrivi-chat button.invia:active { border: 0; box-shadow: none; transform: none; background: var(--accento); color: #fff; }
.contenuto .pannello-emoji button, .contenuto .pannello-emoji button:active { border: 0; background: none; box-shadow: none; transform: none; }
.contenuto .pannello-emoji button:hover { background: var(--accento-velo); box-shadow: none; transform: none; }
.contenuto .finestra-sondaggio button.link, .contenuto .finestra-sondaggio button.link:hover { border: 0; background: none; box-shadow: none; transform: none; padding: 0; }
@media (max-width: 760px) {
  .chat.con-aperta { position: fixed; inset: 0; z-index: 50; height: 100vh; height: 100dvh; min-height: 0; margin: 0; border: 0; border-radius: 0; }
  .chat:not(.con-aperta) { height: auto; min-height: 60vh; }
  .chat-intestazione { padding: 8px 10px; gap: 8px; }
  .chat-intestazione .azioni-chat .bottone { padding: 5px 9px; font-size: 12.5px; }
  .scrivi-chat { padding: 6px 8px calc(6px + env(safe-area-inset-bottom, 0px)); }
}
/* i tre pulsanti della casella di scrittura: stesse misure, simbolo al centro del cerchio (07/11/2026) */
.contenuto .scrivi-chat .riga-scrivi { align-items: center; }
.contenuto .scrivi-chat .riga-scrivi .tondo { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box;
  width: 40px; height: 40px; min-width: 40px; margin: 0; padding: 0; border: 0; border-radius: 50%; line-height: 1; font-size: 20px;
  vertical-align: middle; cursor: pointer; background: none; box-shadow: none; transform: none; }
.contenuto .scrivi-chat .riga-scrivi .tondo:hover { background: var(--accento-velo); }
.contenuto .scrivi-chat .riga-scrivi .invia { display: inline-flex; align-items: center; justify-content: center; line-height: 1; margin: 0; }
.zona-file { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 18px; border: 2px dashed var(--linea); border-radius: 14px; background: var(--fondo); margin-top: 6px; }
.zona-file.sopra { border-color: var(--accento); background: var(--accento-velo); }
.zona-file small { flex-basis: 100%; color: var(--tenue); }
.zona-file .nascosto { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.file-elenco { list-style: none; padding: 0; margin: 8px 0 0; display: grid; gap: 6px; }
.file-elenco li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 7px 12px; border: 1px solid var(--linea); border-radius: 10px; background: var(--carta); font-size: 14.5px; }
.contenuto .file-elenco button { border: 0; background: none; box-shadow: none; padding: 2px 8px; cursor: pointer; }
/* punti e livelli (07/11/2026) */
.liv-ora .liv-punti { margin-left: auto; text-decoration: none; font-size: 15px; }
.pagina-punti { max-width: 1040px; }
.punti-ora { display: grid; grid-template-columns: auto auto 1fr; gap: 18px 28px; align-items: center; padding: 22px 24px; margin: 18px 0 8px;
  border: 1px solid var(--linea); border-radius: 18px; background: var(--carta); box-shadow: 4px 4px 0 var(--ombra-colore); }
.punti-livello { display: flex; align-items: center; gap: 12px; }
.punti-livello .icona-liv, .punti-livello svg { width: 64px; height: 54px; }
.punti-livello small, .punti-numero small { display: block; color: var(--tenue); font-size: 13px; }
.punti-livello b { font-size: 24px; }
.punti-numero { text-align: center; }
.punti-numero b { font-size: 46px; line-height: 1; color: var(--accento); }
.barra-esterna { height: 14px; border-radius: 14px; background: var(--accento-velo); overflow: hidden; border: 1px solid var(--linea); }
.barra-esterna i { display: block; height: 100%; background: var(--accento); border-radius: 14px; }
.punti-barra p { margin: 8px 0 0; }
.salita-punti { list-style: none; padding: 0; margin: 10px 0 8px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; align-items: end; }
.salita-punti > li { border: 1px solid var(--linea); border-radius: 16px; padding: 16px; background: var(--fondo); display: flex; flex-direction: column; gap: 8px; opacity: .75; }
.salita-punti > li:nth-child(1) { min-height: 210px; } .salita-punti > li:nth-child(2) { min-height: 240px; }
.salita-punti > li:nth-child(3) { min-height: 270px; } .salita-punti > li:nth-child(4) { min-height: 300px; }
.salita-punti > li.fatto { opacity: 1; background: var(--carta); }
.salita-punti > li.qui { border: 2px solid var(--accento); box-shadow: 4px 4px 0 var(--ombra-colore); }
.tappa-testa { display: flex; gap: 10px; align-items: center; }
.tappa-testa svg, .tappa-testa .icona-liv { width: 44px; height: 38px; flex: none; }
.tappa-testa b { display: block; font-size: 17px; }
.tappa-testa .soglia { font-size: 13px; color: var(--accento); font-weight: 600; }
.salita-punti ul { margin: 0; padding-left: 18px; font-size: 13.5px; color: var(--tenue); display: grid; gap: 3px; }
.tappa-stato { margin: auto 0 0; font-size: 13.5px; font-weight: 600; }
.voci-punti { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; margin: 10px 0 14px; }
.voce-punti { display: grid; grid-template-columns: auto 1fr; grid-template-areas: "icona valore" "nome nome" "stato stato"; gap: 6px 10px; align-items: center;
  padding: 14px 16px; border: 1px solid var(--linea); border-radius: 14px; background: var(--fondo); text-decoration: none; color: inherit; }
a.voce-punti[href]:hover { border-color: var(--accento); }
.voce-punti.presi { background: var(--carta); border-color: var(--accento); }
.icona-voce { grid-area: icona; font-size: 28px; }
.valore-voce { grid-area: valore; justify-self: end; font-size: 20px; font-weight: 700; color: var(--accento); }
.voce-punti b { grid-area: nome; font-size: 15px; line-height: 1.3; }
.voce-punti small { grid-area: stato; color: var(--tenue); font-size: 12.5px; }
.voce-punti.presi small { color: var(--accento); font-weight: 600; }
@media (max-width: 760px) {
  .punti-ora { grid-template-columns: 1fr auto; }
  .punti-barra { grid-column: 1 / -1; }
  .salita-punti { grid-template-columns: 1fr; }
  .salita-punti > li { min-height: 0 !important; }
}
/* chat di assistenza (07/11/2026) */
.assistenza { position: fixed; right: 18px; bottom: 18px; z-index: 40; display: flex; flex-direction: column-reverse; align-items: flex-end; gap: 10px; }
.assistenza .assistenza-apri { display: inline-flex; align-items: center; gap: 8px; padding: 11px 18px; border-radius: 999px; border: 0;
  background: var(--accento); color: #fff; font: inherit; font-weight: 600; cursor: pointer; box-shadow: 0 8px 24px rgba(0,0,0,.18); }
.assistenza .assistenza-apri .conta:empty { display: none; }
.assistenza-pannello { width: min(370px, calc(100vw - 24px)); height: min(540px, calc(100vh - 110px)); display: flex; flex-direction: column;
  background: var(--carta); border: 1px solid var(--linea); border-radius: 18px; box-shadow: 0 18px 50px rgba(0,0,0,.2); overflow: hidden; }
.assistenza-pannello[hidden] { display: none; }
.assistenza-pannello header { display: grid; grid-template-columns: 1fr auto; padding: 12px 14px; background: var(--accento); color: #fff; }
.assistenza-pannello header small { grid-column: 1; opacity: .85; font-size: 12.5px; }
.assistenza-pannello header .assistenza-chiudi { grid-row: 1 / 3; grid-column: 2; background: none; border: 0; color: #fff; font-size: 18px; cursor: pointer; box-shadow: none; padding: 4px 8px; }
.assistenza-corpo { flex: 1; display: flex; flex-direction: column; min-height: 0; }
.assistenza-bolle { flex: 1; overflow-y: auto; padding: 12px; display: flex; flex-direction: column; gap: 6px; }
.assistenza-scrivi { border-top: 1px solid var(--linea); padding: 8px 10px; display: grid; gap: 6px; background: var(--fondo); }
.assistenza-scrivi input { font: inherit; font-size: 14px; border: 1px solid var(--linea); border-radius: 10px; padding: 7px 10px; background: var(--carta); }
.riga-assistenza { display: flex; gap: 6px; align-items: flex-end; }
.riga-assistenza textarea { flex: 1; resize: none; font: inherit; font-size: 14.5px; border: 1px solid var(--linea); border-radius: 16px; padding: 8px 12px; background: var(--carta); min-width: 0; }
.contenuto .assistenza-scrivi button.invia, .assistenza-scrivi button.invia { width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--accento); color: #fff; box-shadow: none; transform: none; padding: 0; flex: none; cursor: pointer; }
.assistenza-bolle-staff { max-height: 60vh; border: 1px solid var(--linea); border-radius: 14px; margin: 10px 0; }
.assistenza-risposta textarea { width: 100%; box-sizing: border-box; font: inherit; border: 1px solid var(--linea); border-radius: 12px; padding: 10px 12px; }
@media (max-width: 760px) { .assistenza { right: 12px; bottom: 12px; } .assistenza .assistenza-apri span { display: none; } }
/* scelta dei dati trovati nei documenti (07/11/2026) */
.spiega-scelte { border: 1px solid var(--linea); border-radius: 14px; background: var(--carta); padding: 12px 16px; margin: 8px 0 14px; }
.spiega-scelte p { margin: 4px 0; } .spiega-scelte ul { margin: 6px 0; padding-left: 20px; display: grid; gap: 4px; }
.campo-scelta { padding: 12px 0; border-top: 1px solid var(--linea-tenue, #ece6da); }
.campo-scelta:first-of-type { border-top: 0; }
.titolo-campo { display: block; margin-bottom: 8px; }
.opzioni-campo { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 8px; }
.opzione-campo { display: flex; gap: 10px; align-items: flex-start; border: 1px solid var(--linea); border-radius: 12px; padding: 10px 12px; background: var(--fondo); cursor: pointer; }
.opzione-campo input { margin-top: 4px; flex: none; }
.opzione-campo span { display: flex; flex-direction: column; gap: 2px; overflow-wrap: anywhere; }
.opzione-campo small { color: var(--tenue); font-size: 12px; }
.opzione-campo:has(input:checked) { border: 2px solid var(--accento); background: var(--accento-velo); }
.opzione-campo.nessuno span { color: var(--tenue); }
.opzione-campo.avviso { border-style: dashed; }
.scelta-regioni .regione { display: flex; align-items: center; gap: 8px; width: auto; height: auto; border: 0; border-radius: 0; padding: 4px 0; }
.scelta-regioni .regione input { width: auto; margin: 0; flex: none; }
.scelta-regioni .tutte { padding-bottom: 8px; margin-bottom: 4px; border-bottom: 1px solid var(--linea-tenue, #ece6da); grid-column: 1 / -1; }
.griglia-regioni { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 2px 18px; }
/* caselle con etichetta: mai il cerchio dei pallini di stato (classe .spunta usata anche per altro) */
label.spunta { width: auto; height: auto; border: 0; border-radius: 0; place-items: initial; display: flex; align-items: center; gap: 8px; }
label.spunta input { width: auto; flex: none; margin: 0; }
.documenti .profilo .scelta-regioni label.regione { display: flex; flex-direction: row; align-items: center; gap: 8px; grid-column: auto; padding: 4px 0; margin: 0; }
.documenti .profilo .scelta-regioni label.regione input { width: auto; flex: none; margin: 0; }
.documenti .profilo .scelta-regioni .griglia-regioni { grid-column: 1 / -1; }
.documenti .profilo .scelta-regioni label.tutte { grid-column: 1 / -1; }
/* funzioni attive e da sbloccare (07/11/2026) */
.funzioni { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; margin: 10px 0 16px; }
.funzione { display: flex; gap: 12px; align-items: center; padding: 12px 14px; border-radius: 14px; border: 1px solid var(--linea); text-decoration: none; color: inherit; }
.funzione span:last-child { display: flex; flex-direction: column; gap: 2px; }
.funzione b { font-size: 14.5px; line-height: 1.3; }
.funzione small { font-size: 12.5px; }
.icona-funzione { font-size: 24px; flex: none; width: 34px; text-align: center; }
.funzione.attiva { background: var(--accento-velo); border-color: var(--accento); }
.funzione.attiva small { color: var(--accento); font-weight: 600; }
.funzione.da-attivare { background: color-mix(in srgb, var(--lavori) 18%, var(--carta)); border-color: var(--lavori); }
.funzione.da-attivare small { color: var(--inchiostro); }
.funzione.bloccata { background: var(--fondo); color: var(--tenue); filter: grayscale(1); opacity: .75; }
.funzione.bloccata small { color: var(--tenue); }
a.funzione[href]:hover { border-width: 2px; padding: 11px 13px; }
.passi-cordata { list-style: none; counter-reset: passo; padding: 0; margin: 14px 0 18px; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.passi-cordata li { counter-increment: passo; display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; padding: 14px; border: 1px solid var(--linea); border-radius: 14px; background: var(--carta); }
.passi-cordata li::before { content: counter(passo); grid-row: 1 / 3; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--accento); color: #fff; font-weight: 700; }
.passi-cordata span { color: var(--tenue); font-size: 14px; }
.elimina-cordata { color: var(--errore); font-size: 14px; }
.avviso-elimina { border: 2px solid var(--errore); border-radius: 14px; padding: 12px 18px; background: color-mix(in srgb, var(--errore) 6%, var(--carta)); margin: 12px 0 18px; }
.contenuto button.pericolo, .contenuto button.pericolo:hover { background: var(--errore); border-color: var(--errore); color: #fff; }
h1 .tra-parentesi { font-size: .45em; font-weight: 500; color: var(--tenue); white-space: nowrap; letter-spacing: 0; }
.contenuto button.bottone.chiaro, .contenuto button.bottone.chiaro:hover { background: var(--carta); color: var(--inchiostro); border: 1px solid var(--linea); }

/* esito della gara (08/11/2026) */
.esito-gara { border: var(--bordo) solid var(--filo-forte); border-radius: var(--raggio); background: var(--carta); padding: 14px 18px; margin: 14px 0; }
.esito-gara h2 { margin: 0 0 4px; font-size: 18px; }
.esito-gara p { margin: 4px 0; }
/* Email e password: link per rimandare la conferma (08/11/2026) */
.contenuto .accesso button.link, .contenuto .accesso button.link:hover { background: none; border: 0; box-shadow: none; transform: none; padding: 0;
  color: var(--accento); text-decoration: underline; cursor: pointer; font: inherit; }
/* telefono (08/11/2026): niente scorrimento orizzontale della pagina; chat di assistenza tra i due bordi dello schermo */
@media (max-width: 760px) {
  html, body { overflow-x: clip; }
  .classifica-box { overflow: hidden; }
  .assistenza { left: 12px; }
  .assistenza-pannello { width: 100%; height: min(540px, calc(100dvh - 100px)); }
  .riga-assistenza textarea { font-size: 16px; }   /* sotto i 16px l'iPhone ingrandisce la pagina quando si scrive */
}

/* completa il profilo: file e cartelle (08/11/2026) */
.zona-file .bottoni-file { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.scelta-cartella { margin: 8px 0 0; }
