:root {
  --bg: #f6f5f2; --surface: #ffffff; --surface-2: #f0eee9; --text: #1d1d1b; --muted: #6b6a65;
  --border: #e2dfd8; --accent: #0f5d5e; --accent-soft: #e3efee; --warn: #a24b00; --warn-soft: #fbeedd;
  --danger: #a1262b; --danger-soft: #f9e3e3; --ok: #2f6b2f; --ok-soft: #e4f1e1; --gold: #8a6a00; --gold-soft: #f6efd6;
  --radius: 10px; --shadow: 0 1px 2px rgba(0,0,0,.05);
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #141514; --surface: #1d1f1e; --surface-2: #262928; --text: #ecebe7; --muted: #a09f99;
    --border: #333735; --accent: #5cc2bf; --accent-soft: #1d3534; --warn: #f0a35e; --warn-soft: #3a2a19;
    --danger: #f08a8e; --danger-soft: #3b1f21; --ok: #8fd18a; --ok-soft: #1e3320; --gold: #e3c35a; --gold-soft: #352e17;
  }
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--text); font: 15px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
h1 { font-size: 1.45rem; margin: 0 0 .25rem; letter-spacing: -.01em; }
h2 { font-size: 1.1rem; margin: 1.5rem 0 .6rem; }
.muted { color: var(--muted); }
.small { font-size: .85rem; }

/* barra superiore */
.top { background: var(--surface); border-bottom: 1px solid var(--border); position: sticky; top: 0; z-index: 5; }
.top-inner { max-width: 1200px; margin: 0 auto; padding: 0 16px; display: flex; align-items: center; gap: 1.25rem; min-height: 56px; flex-wrap: wrap; }
.brand { font-weight: 700; color: var(--text); white-space: nowrap; display: inline-flex; align-items: center; }
.brand img { width: 26px; height: 26px; border-radius: 7px; flex: none; margin-right: .45rem; }
.login-marchio { display: flex; align-items: center; gap: .8rem; }
.login-marchio img { border-radius: 16px; box-shadow: 0 4px 14px rgba(15,93,94,.25); }
.login-marchio h1 { margin: 0; }
.login-marchio h1 span { color: var(--accent); }
.brand span { color: var(--accent); }
.nav { display: flex; gap: .25rem; flex-wrap: wrap; flex: 1; }
.nav a { padding: .4rem .7rem; border-radius: 8px; color: var(--muted); font-weight: 500; }
.nav a:hover { background: var(--surface-2); text-decoration: none; color: var(--text); }
.nav a.on { background: var(--accent-soft); color: var(--accent); }
.badge-n { display: inline-block; min-width: 1.3em; padding: 0 .35em; border-radius: 99px; background: var(--danger); color: #fff; font-size: .75rem; text-align: center; margin-left: .25rem; }
.chi { display: flex; align-items: center; gap: .5rem; color: var(--muted); font-size: .9rem; }

main { max-width: 1200px; margin: 0 auto; padding: 24px 16px 64px; }
.intesta { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }

/* controlli */
button, .btn { font: inherit; border: 1px solid var(--border); background: var(--surface); color: var(--text); padding: .45rem .85rem; border-radius: 8px; cursor: pointer; display: inline-flex; align-items: center; gap: .35rem; }
button:hover, .btn:hover { background: var(--surface-2); text-decoration: none; }
.btn-primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn-primary:hover { filter: brightness(1.08); background: var(--accent); }
.btn-link { border: none; background: none; color: var(--accent); padding: 0; }
input[type=text], input[type=email], input[type=password], input[type=search], select, textarea {
  font: inherit; color: var(--text); background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: .45rem .6rem; width: 100%;
}
textarea { min-height: 90px; resize: vertical; }
label { font-size: .85rem; color: var(--muted); display: block; margin-bottom: .2rem; }
form.inline { display: inline; }

.schede { display: flex; gap: .25rem; border-bottom: 1px solid var(--border); margin-bottom: 1rem; overflow-x: auto; }
.schede a { padding: .55rem .9rem; color: var(--muted); border-bottom: 2px solid transparent; white-space: nowrap; }
.schede a.on { color: var(--accent); border-color: var(--accent); font-weight: 600; }
.schede a:hover { text-decoration: none; color: var(--text); }

.filtri { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: .6rem; align-items: end; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: .8rem; margin-bottom: 1rem; }
.filtri .check { display: flex; align-items: center; gap: .35rem; font-size: .9rem; color: var(--text); white-space: nowrap; padding-bottom: .5rem; }
@media (max-width: 900px) { .filtri { grid-template-columns: 1fr 1fr; } }

/* elenco bandi */
.lista { display: grid; gap: .7rem; }
.card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 1rem 1.1rem; box-shadow: var(--shadow); }
.card-bando { display: grid; grid-template-columns: 1fr auto; gap: .4rem 1rem; }
.card-bando h3 { margin: 0; font-size: 1.02rem; line-height: 1.35; }
.card-bando h3 a { color: var(--text); }
.card-bando .sintesi { grid-column: 1 / -1; color: var(--muted); font-size: .92rem; margin: .1rem 0 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.meta { display: flex; flex-wrap: wrap; gap: .35rem; grid-column: 1 / -1; }
.tag { display: inline-block; padding: .1rem .5rem; border-radius: 99px; font-size: .78rem; background: var(--surface-2); color: var(--muted); border: 1px solid var(--border); white-space: nowrap; }
.tag.amb-provinciale { background: var(--gold-soft); color: var(--gold); border-color: transparent; font-weight: 600; }
.tag.amb-regionale { background: var(--accent-soft); color: var(--accent); border-color: transparent; font-weight: 600; }
.tag.tipo { background: var(--ok-soft); color: var(--ok); border-color: transparent; }
.tag.cat { background: transparent; }
.scad { text-align: right; white-space: nowrap; font-size: .85rem; }
.scad strong { display: block; font-size: 1rem; }
.scad.vicina strong { color: var(--danger); }
.scad.media strong { color: var(--warn); }
.azioni { display: flex; gap: .4rem; align-items: center; justify-content: flex-end; }
.vuoto { text-align: center; padding: 3rem 1rem; color: var(--muted); background: var(--surface); border: 1px dashed var(--border); border-radius: var(--radius); }

/* scheda bando */
.dett { display: grid; grid-template-columns: 1fr 320px; gap: 1.2rem; align-items: start; }
@media (max-width: 900px) { .dett { grid-template-columns: 1fr; } }
.kv { display: grid; grid-template-columns: 120px 1fr; gap: .45rem .8rem; font-size: .92rem; margin: 0; }
.kv dt { color: var(--muted); }
.kv dd { margin: 0; }
.testo { white-space: pre-line; }

table { width: 100%; border-collapse: collapse; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
th, td { text-align: left; padding: .55rem .7rem; border-bottom: 1px solid var(--border); font-size: .9rem; vertical-align: top; }
th { background: var(--surface-2); font-weight: 600; color: var(--muted); font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; }
tr:last-child td { border-bottom: none; }
.tab-wrap { overflow-x: auto; }
.stato-ok { color: var(--ok); } .stato-errore { color: var(--danger); } .stato-vuota { color: var(--warn); }

.avviso { padding: .7rem .9rem; border-radius: var(--radius); margin-bottom: 1rem; border: 1px solid transparent; }
.avviso.warn { background: var(--warn-soft); color: var(--warn); }
.avviso.info { background: var(--accent-soft); color: var(--accent); }
.avviso.danger { background: var(--danger-soft); color: var(--danger); }

.griglia-ateco { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .2rem .8rem; }
.griglia-ateco label { color: var(--text); font-size: .85rem; display: flex; gap: .35rem; align-items: flex-start; margin: 0; }

.login-box { max-width: 380px; margin: 12vh auto; }
.login-box .card { padding: 1.6rem; }
.login-box form > div { margin-bottom: .9rem; }

@media (max-width: 640px) {
  .card-bando { grid-template-columns: 1fr; }
  .scad { text-align: left; }
  .azioni { justify-content: flex-start; }
  .kv { grid-template-columns: 1fr; }
  .kv dt { margin-top: .4rem; }
}

/* gli elementi delle griglie possono restringersi sotto la larghezza del contenuto */
.filtri > *, .card-bando > *, .dett > * { min-width: 0; }
h1, h3, .kv dd, td { overflow-wrap: anywhere; }
@media (max-width: 640px) {
  .filtri { grid-template-columns: 1fr; }
  .top-inner { gap: .4rem; padding-top: .5rem; padding-bottom: .5rem; }
  .nav { order: 3; flex-basis: 100%; overflow-x: auto; flex-wrap: nowrap; }
  .nav a { white-space: nowrap; }
  .chi { margin-left: auto; }
}

/* ---------- layout con colonna laterale ---------- */
main { max-width: 1320px; }
.top-inner { max-width: 1320px; }
.con-lato { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 1.2rem; align-items: start; }
.lato { display: grid; gap: 1rem; position: sticky; top: 72px; max-height: calc(100vh - 90px); overflow-y: auto; }
.lato-box h2 { margin: 0 0 .2rem; font-size: 1rem; }
.lato-voce { display: block; padding: .55rem 0; border-top: 1px solid var(--border); color: var(--text); }
.lato-voce:hover { text-decoration: none; color: var(--accent); }
.lato-voce span { display: block; font-size: .9rem; line-height: 1.35; }
.lato-voce small { color: var(--muted); font-size: .78rem; }
.f-cerca { grid-column: span 2; }
.f-azioni { display: flex; gap: .6rem; align-items: end; }
@media (max-width: 1000px) { .con-lato { grid-template-columns: 1fr; } .lato { position: static; max-height: none; } }
@media (max-width: 640px) { .f-cerca { grid-column: auto; } }

/* ---------- schede bando (griglia) ---------- */
.griglia { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 1rem; }
.bcard { position: relative; display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--border);
  border-radius: 16px; overflow: hidden; box-shadow: var(--shadow); margin-top: .6rem; }
.bcard.top { border-color: var(--accent); }
.bcard.molto { border-color: var(--ok); }
.bcard-label { display: inline-block; margin-bottom: .45rem; position: relative; z-index: 1; font-size: .72rem; font-weight: 700;
  letter-spacing: .04em; text-transform: uppercase; padding: .2rem .55rem; border-radius: 6px; background: var(--ok); color: #fff; }
.bcard { margin-top: 0; }
.bcard.top .bcard-label { background: var(--accent); }
.bcard-head { background: var(--accent-soft); padding: 1.1rem 1rem .8rem; }
.bcard-head h3 { margin: 0; font-size: 1.02rem; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.bcard-head h3 a { color: var(--text); }
.bcard-ente { color: var(--muted); font-size: .82rem; margin-top: .25rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bcard-body { padding: .9rem 1rem .4rem; text-align: center; flex: 1; }
.bcard-fino { color: var(--muted); font-size: .85rem; }
.bcard-importo { font-size: 1.75rem; font-weight: 750; color: var(--accent); line-height: 1.15; letter-spacing: -.02em; }
.bcard-importo-testo { font-weight: 600; color: var(--accent); font-size: .88rem; }
.barra { height: 8px; border-radius: 99px; background: var(--surface-2); margin: .6rem auto .2rem; max-width: 220px; overflow: hidden; }
.barra span { display: block; height: 100%; background: var(--accent); border-radius: 99px; }
.bcard-copertura { color: var(--accent); font-size: .82rem; }
.bcard-sintesi { color: var(--muted); font-size: .88rem; text-align: left; margin: .7rem 0 0; display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.perche { text-align: left; font-size: .86rem; background: var(--accent-soft); border-radius: 10px; padding: .6rem .7rem; margin-top: .7rem; }
.perche strong { color: var(--accent); display: block; }
.bcard-foot { padding: .6rem 1rem .9rem; display: flex; justify-content: space-between; align-items: flex-end; gap: .5rem; flex-wrap: wrap; }
.bcard-foot .tags { display: flex; flex-wrap: wrap; gap: .3rem; }
.bcard-stato { display: flex; flex-direction: column; align-items: flex-end; gap: .25rem; margin-left: auto; }
.tag.forma { background: var(--ok-soft); color: var(--ok); border-color: transparent; }
.tag.f-finanziamento_agevolato, .tag.f-garanzia { background: var(--accent-soft); color: var(--accent); }
.tag.f-supporto_non_finanziario { background: var(--danger-soft); color: var(--danger); }
.tag.f-credito_imposta, .tag.f-agevolazione_fiscale { background: var(--gold-soft); color: var(--gold); }
.stato { display: inline-block; font-size: .78rem; font-weight: 600; padding: .15rem .6rem; border-radius: 99px; border: 1.5px solid currentColor; white-space: nowrap; }
.st-aperto { color: var(--ok); } .st-sportello { color: var(--accent); } .st-arrivo { color: var(--warn); }
.st-discussione { color: var(--gold); } .st-chiuso { color: var(--muted); } .st-seguito { color: var(--accent); background: var(--accent-soft); border-color: transparent; }
.scad-mini { font-size: .75rem; color: var(--muted); } .scad-mini.vicina { color: var(--danger); font-weight: 600; }

/* ---------- notizie ---------- */
.notizia h3 { margin: 0 0 .3rem; font-size: 1.1rem; }
.notizia h3 a { color: var(--text); }
.notizia-piede { display: flex; justify-content: space-between; align-items: center; gap: .6rem; flex-wrap: wrap; }

/* ---------- statistiche, temi, stella, progetti ---------- */
.statistiche { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin-bottom: 1.2rem; }
.stat strong { display: block; font-size: 2rem; color: var(--accent); letter-spacing: -.02em; line-height: 1.1; }
.stat span { color: var(--muted); font-size: .88rem; }
.schede.temi { border-bottom: none; gap: .4rem; flex-wrap: nowrap; padding-bottom: .3rem; }
.schede.temi a { border: 1px solid var(--border); border-radius: 10px; background: var(--surface); padding: .4rem .8rem; }
.schede.temi a.on { background: var(--accent); color: #fff; border-color: var(--accent); }
.stella { position: absolute; top: .55rem; right: .6rem; z-index: 2; margin: 0; }
.stella button { width: 34px; height: 34px; border-radius: 50%; padding: 0; justify-content: center; font-size: 1.05rem;
  background: var(--surface); color: var(--accent); border-color: var(--accent); }
.stella button.on { background: var(--accent); color: #fff; }
.bcard-head { padding-right: 3.2rem; }
.griglia-progetti { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.progetto-nuovo summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: .6rem; }
.progetto-nuovo[open] { grid-column: 1 / -1; }
.piu { font-size: 1.6rem; color: var(--accent); }
.progetto-card { position: relative; color: var(--text); display: flex; flex-direction: column; gap: .5rem; }
.progetto-card:hover { text-decoration: none; border-color: var(--accent); }
.progetto-card h3 { margin: 0; padding-right: 4rem; }
.numeri { display: flex; gap: 1.5rem; }
.numeri strong { display: block; font-size: 1.5rem; color: var(--accent); }
.numeri span { font-size: .8rem; color: var(--muted); }
.chips { display: flex; flex-wrap: wrap; gap: .35rem; }
.chip { margin: 0; cursor: pointer; }
.chip input { position: absolute; opacity: 0; pointer-events: none; }
.chip span { display: inline-block; padding: .3rem .7rem; border-radius: 10px; background: var(--accent-soft); color: var(--accent); font-size: .85rem; border: 1px solid transparent; }
.chip input:checked + span { background: var(--accent); color: #fff; }
.chip input:focus-visible + span { border-color: var(--text); }
.risposta { border-left: 4px solid var(--accent); }

/* ---------- assistente in chat ---------- */
.chat { display: flex; flex-direction: column; gap: .6rem; max-width: 820px; }
.msg { display: flex; }
.msg-utente { justify-content: flex-end; }
.bolla { max-width: 80%; padding: .6rem .85rem; border-radius: 14px; font-size: .95rem; }
.msg-ai .bolla { background: var(--surface-2); border-top-left-radius: 4px; }
.msg-utente .bolla { background: var(--accent); color: #fff; border-top-right-radius: 4px; }
.chat-form { display: flex; gap: .5rem; margin-top: .4rem; }
.chat-form input[type=text] { flex: 1; }

/* ---------- link per la domanda ---------- */
.azioni-link { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin: 1.1rem 0 .4rem; }
.btn-grande { padding: .65rem 1.1rem; font-weight: 600; }
.bcard-domanda { padding: .2rem 1rem 0; text-align: center; }
.bcard-domanda .btn { width: 100%; justify-content: center; font-weight: 600; }
.fonti-lista { margin: 0; padding-left: 1.1rem; display: grid; gap: .35rem; }

/* ---------- ricerca nella barra in alto ---------- */
.cerca-top { margin-left: auto; }
.cerca-top input { width: 230px; padding: .35rem .7rem; border-radius: 99px; background: var(--surface-2); }
@media (max-width: 900px) { .cerca-top { order: 4; flex-basis: 100%; } .cerca-top input { width: 100%; } }

/* ---------- correzioni impaginazione ---------- */
.nav { flex-wrap: nowrap; gap: .1rem; }
.nav a, .altro summary { padding: .4rem .6rem; white-space: nowrap; }
.altro { position: relative; }
.altro summary { list-style: none; cursor: pointer; border-radius: 8px; color: var(--muted); font-weight: 500; }
.altro summary::-webkit-details-marker { display: none; }
.altro summary:hover, .altro[open] summary { background: var(--surface-2); color: var(--text); }
.altro summary.on { background: var(--accent-soft); color: var(--accent); }
.altro-menu { position: absolute; top: calc(100% + .3rem); left: 0; z-index: 20; min-width: 210px; display: grid;
  background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: .3rem; box-shadow: 0 8px 24px rgba(0,0,0,.18); }
.altro-menu a { padding: .5rem .7rem; border-radius: 6px; }
.cerca-top input { width: 200px; }
/* filtri: casella e pulsante su una riga propria, sempre dentro il riquadro */
.f-azioni { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; align-items: center; justify-content: flex-end; }
.f-azioni .check { padding-bottom: 0; }
/* temi: vanno a capo invece di essere tagliati */
.schede.temi { flex-wrap: wrap; overflow: visible; }
@media (max-width: 1100px) {
  .top-inner { flex-wrap: wrap; padding-top: .45rem; padding-bottom: .45rem; }
  .nav { order: 3; flex-basis: 100%; overflow-x: auto; }
  .cerca-top { margin-left: auto; }
}

.risultati-ricerca { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; font-size: 1.05rem; }

/* ---------- scheda bando (app/scheda.py) ---------- */
.sk-testa { margin-bottom: 1rem; }
.sk-testa h1 { font-size: 1.6rem; line-height: 1.25; }
.sk-tags { margin-top: .6rem; align-items: center; }
.tag.sk-tag-prog { background: var(--gold-soft); color: var(--gold); border-color: transparent; font-weight: 600; }
.tag.sk-tag-sett { background: var(--danger-soft); color: var(--danger); border-color: transparent; }
.tag.sk-tag-tema { background: var(--accent-soft); color: var(--accent); border-color: transparent; }
.sk-altri-tag { display: inline; }
.sk-altri-tag[open] { display: contents; }
.sk-altri-tag summary { list-style: none; cursor: pointer; }
.sk-altri-tag summary::-webkit-details-marker { display: none; }
.tag.sk-tag-piu { background: var(--accent); color: #fff; border-color: transparent; }
.sk-corpo .sk-sez + .sk-sez { margin-top: .2rem; }
.sk-sez h2 { font-size: 1rem; margin: 1rem 0 .3rem; }
.sk-sez:first-child h2 { margin-top: 0; }
.sk-doc { border: 1px solid var(--border); border-radius: 8px; padding: .45rem .7rem; margin-bottom: .45rem; }
.sk-doc summary { cursor: pointer; font-weight: 600; }
.sk-doc ul { margin: .4rem 0 .1rem; padding-left: 1.1rem; display: grid; gap: .35rem; }
.sk-criteri { width: 100%; border-collapse: collapse; font-size: .92rem; }
.sk-criteri td { padding: .35rem .4rem; border-bottom: 1px solid var(--border); vertical-align: top; }
.sk-punti { text-align: right; white-space: nowrap; font-weight: 600; color: var(--accent); }
.sk-piede { display: flex; justify-content: space-between; align-items: flex-start; gap: .6rem; flex-wrap: wrap;
  border-top: 1px solid var(--border); padding-top: .9rem; margin-top: .8rem; }
.sk-piede-dx { display: flex; gap: .5rem; flex-wrap: wrap; margin-left: auto; }
.sk-segnala summary { list-style: none; }
.sk-segnala summary::-webkit-details-marker { display: none; }
.sk-segnala[open] { flex-basis: 100%; }
.sk-segnala-form { display: grid; gap: .6rem; margin-top: .7rem; max-width: 560px; }
.sk-segnala-form label { display: grid; gap: .2rem; font-size: .9rem; }
.sk-lato { display: grid; gap: 1rem; align-content: start; }
.sk-lato h2 { font-size: 1rem; margin: 0 0 .6rem; }
.sk-stato .sk-badge { font-size: 1rem; padding: .2rem .8rem; margin: .25rem 0 .35rem; }
.sk-scad { margin: .3rem 0 .2rem; }
.sk-compl { border-top: 1px solid var(--border); margin-top: .8rem; padding-top: .7rem; }
.sk-compl p { margin: .35rem 0 0; }
.sk-pallini { display: inline-flex; gap: .25rem; vertical-align: middle; margin: 0 .3rem; }
.sk-pallini span { width: .8rem; height: .8rem; border-radius: 50%; border: 1.5px solid var(--accent); }
.sk-pallini span.on { background: var(--accent); }
.sk-kv { border-top: 1px solid var(--border); margin-top: .8rem; padding-top: .8rem; grid-template-columns: 100px 1fr; }
.sk-bottoni { display: flex; flex-wrap: wrap; gap: .5rem; border-top: 1px solid var(--border); margin-top: 1rem; padding-top: 1rem; }
.sk-timeline { list-style: none; margin: 0; padding: 0 0 0 .9rem; border-left: 2px solid var(--border); display: grid; gap: .55rem; }
.sk-timeline li { position: relative; }
.sk-timeline li::before { content: ""; position: absolute; left: calc(-.9rem - 6px); top: .45rem; width: 10px; height: 10px; border-radius: 50%; background: var(--accent); }
.sk-timeline summary { cursor: pointer; list-style: none; display: grid; }
.sk-timeline summary::-webkit-details-marker { display: none; }
.sk-tl-titolo { font-size: .9rem; line-height: 1.35; }
.sk-timeline details[open] .sk-tl-titolo { font-weight: 600; }
.sk-tl-dett { background: var(--surface-2); border-radius: 8px; padding: .5rem .6rem; margin-top: .35rem; display: grid; gap: .25rem; }
.sk-tl-dett p { margin: 0; }
.sk-altri { margin-top: .6rem; }
.sk-altri summary { cursor: pointer; color: var(--accent); margin-bottom: .5rem; }
.sk-enti { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.sk-chat .bolla { max-width: 88%; }
.sk-citazione { margin: .5rem 0 0; padding: .4rem .6rem; border-left: 3px solid var(--accent); background: var(--surface); border-radius: 4px; font-size: .88rem; font-style: italic; }
.sk-sez > p { margin: 0 0 .5rem; }

/* ---------- area ricerche e lista bandi (punteggi, filtri salvati, tabella) ---------- */
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.schede.sezioni a { font-weight: 600; }
.filtri-salvati { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .8rem; }
.chip-salvato { display: inline-flex; align-items: center; gap: .3rem; padding: .25rem .4rem .25rem .75rem; border-radius: 99px;
  background: var(--accent-soft); font-size: .85rem; }
.chip-salvato a { color: var(--accent); font-weight: 600; }
.chip-salvato.on { background: var(--accent); } .chip-salvato.on a, .chip-salvato.on button { color: #fff; }
.chip-salvato button { font-size: 1rem; line-height: 1; padding: 0 .25rem; color: var(--muted); }
.f-avanzati { grid-column: 1 / -1; border-top: 1px solid var(--border); padding-top: .5rem; }
.f-avanzati summary { cursor: pointer; color: var(--accent); font-weight: 600; font-size: .9rem; }
.f-avanzati-griglia { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .6rem; margin-top: .6rem; }
.f-avanzati-griglia > * { min-width: 0; }
.f-date { display: flex; gap: .3rem; }
.f-date input { font: inherit; color: var(--text); background: var(--surface); border: 1px solid var(--border); border-radius: 8px;
  padding: .4rem .4rem; width: 100%; min-width: 0; }
.lista-barra { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; margin-bottom: .6rem; }
.lista-barra .segmenti { margin-left: auto; }
.salva-filtro { position: relative; }
.salva-filtro summary { list-style: none; cursor: pointer; }
.salva-filtro summary::-webkit-details-marker { display: none; }
.salva-filtro-form { position: absolute; z-index: 10; top: calc(100% + .3rem); left: 0; display: flex; gap: .4rem; width: 300px; max-width: 80vw;
  background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: .5rem; box-shadow: 0 8px 24px rgba(0,0,0,.18); }
.segmenti { display: inline-flex; flex-wrap: wrap; gap: .3rem; }
.segmenti label { margin: 0; cursor: pointer; }
.segmenti input { position: absolute; opacity: 0; pointer-events: none; }
.segmenti span, .segmenti a { display: inline-block; padding: .35rem .8rem; border-radius: 8px; border: 1px solid var(--border);
  background: var(--surface); color: var(--muted); font-size: .88rem; }
.segmenti input:checked + span, .segmenti a.on { background: var(--accent); border-color: var(--accent); color: #fff; }
.segmenti input:focus-visible + span { outline: 2px solid var(--text); }
.segmenti a:hover { text-decoration: none; }
.segmenti.piccoli a { padding: .25rem .65rem; font-size: .82rem; }
.tab-bandi td a { color: var(--text); font-weight: 500; }
.cuore-t { font-size: 1.15rem; color: var(--danger); }
.cuore { position: absolute; top: .55rem; right: 2.9rem; z-index: 2; margin: 0; }
.cuore button { width: 34px; height: 34px; border-radius: 50%; padding: 0; justify-content: center; font-size: 1.05rem;
  background: var(--surface); color: var(--danger); border-color: var(--danger); }
.cuore button.on { background: var(--danger); color: #fff; }
.cuore ~ .bcard-head { padding-right: 5.6rem; }

/* risultati delle ricerche */
.ris-lista { display: grid; gap: .9rem; }
.ris-card { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; gap: 1rem; background: var(--surface);
  border: 1px solid var(--border); border-radius: 16px; padding: 1rem 1.1rem; box-shadow: var(--shadow); }
.ris-card.ris-pref { border-color: var(--gold); }
.ris-punti { display: flex; flex-direction: column; align-items: center; gap: .35rem; }
.ris-punti .btn { margin-top: .4rem; font-size: .85rem; border-radius: 99px; }
.cerchio { width: 64px; height: 64px; }
.cerchio circle { fill: none; stroke-width: 6; }
.cerchio-fondo { stroke: var(--surface-2); }
.cerchio-valore { stroke: var(--accent); stroke-linecap: round; }
.cerchio.alto .cerchio-valore { stroke: var(--ok); } .cerchio.basso .cerchio-valore { stroke: var(--warn); }
.cerchio text { font-size: 18px; font-weight: 700; fill: var(--text); }
.ris-etichetta { font-size: .75rem; color: var(--muted); text-align: center; }
.ris-corpo h3 { margin: 0; font-size: 1.05rem; line-height: 1.35; }
.ris-corpo h3 a { color: var(--text); }
.ris-ente { color: var(--muted); font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; margin-top: .15rem; }
.ris-tags { display: flex; flex-wrap: wrap; gap: .3rem; margin: .5rem 0; }
.scad-badge { background: transparent; color: var(--ok); border: 1.5px solid currentColor; font-weight: 600; }
.scad-badge.vicina { color: var(--danger); } .scad-badge.arrivo { color: var(--warn); } .scad-badge.chiuso { color: var(--muted); }
.ris-perche, .ris-stima { font-size: .9rem; margin-top: .45rem; }
.ris-perche p, .ris-stima p { margin: .15rem 0 0; }
.ris-stima { background: var(--accent-soft); border-radius: 10px; padding: .55rem .7rem; }
.ris-stima > strong { color: var(--accent); }
.ris-azioni { display: flex; flex-direction: column; gap: .5rem; align-items: center; }
.ris-azioni form { margin: 0; }
.tondo { width: 36px; height: 36px; border-radius: 50%; padding: 0; justify-content: center; font-size: 1.05rem; color: var(--gold); }
.tondo.on { background: var(--gold); border-color: var(--gold); color: #fff; }
.tondo.escludi { color: var(--danger); }
@media (max-width: 640px) {
  .ris-card { grid-template-columns: 1fr; }
  .ris-punti { flex-direction: row; justify-content: flex-start; }
  .ris-punti .btn { margin: 0 0 0 auto; }
  .ris-azioni { flex-direction: row; }
}
.ric-bottoni { display: flex; gap: .5rem; flex-wrap: wrap; }
.ric-bottoni form { margin: 0; }
.ric-testa { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 1rem; align-items: start; margin-bottom: 1.2rem; }
@media (max-width: 900px) { .ric-testa { grid-template-columns: 1fr; } }
.ric-dettagli summary { cursor: pointer; }
.ric-monitor { display: grid; gap: .5rem; }
.ric-monitor-email { display: flex; gap: .4rem; }
.interruttore { display: inline-flex; align-items: center; gap: .55rem; color: var(--text); font-size: .95rem; cursor: pointer; margin: 0; }
.interruttore input { position: absolute; opacity: 0; pointer-events: none; }
.interruttore span { width: 40px; height: 22px; border-radius: 99px; background: var(--border); position: relative; flex: none; transition: background .15s; }
.interruttore span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: transform .15s; }
.interruttore input:checked + span { background: var(--accent); }
.interruttore input:checked + span::after { transform: translateX(18px); }
.interruttore input:focus-visible + span { outline: 2px solid var(--text); outline-offset: 2px; }
.avanzamento { margin-bottom: 1rem; border-color: var(--accent); }
.avanz-testo { display: flex; justify-content: space-between; color: var(--accent); }
.avanz-barra { max-width: none; margin: .5rem 0; }
.avanz-barra span { transition: width .4s; }
.ric-barra { display: flex; justify-content: space-between; align-items: center; gap: .8rem; flex-wrap: wrap; margin-bottom: .8rem; }
.ric-ordina { display: flex; align-items: center; gap: .5rem; }
.ric-ordina label { margin: 0; white-space: nowrap; }
.ric-ordina select { width: auto; }

/* modulo nuova ricerca */
.ric-form { display: grid; gap: 1rem; max-width: 980px; }
.ric-sez h2 { margin: 0 0 .7rem; font-size: 1.02rem; }
.ric-campo { margin-bottom: .7rem; }
.ric-senza-cliente { display: grid; gap: .5rem; margin-bottom: .8rem; }
.ric-senza-cliente[hidden] { display: none; }
.ric-senza-cliente .check, .chips .check { display: inline-flex; align-items: center; gap: .35rem; color: var(--text); font-size: .9rem; margin: 0; }
.ric-griglia { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .6rem; }
.ric-griglia > *, .ric-due > * { min-width: 0; }
.ric-largo { grid-column: span 2; }
.ric-due { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: .9rem; }
.ric-etichetta-azione { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; }
.ric-date { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-top: .5rem; }
.ric-date[hidden] { display: none; }
.ric-date input, .ric-griglia input[type=date] { font: inherit; color: var(--text); background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: .4rem .5rem; width: 100%; }
.ric-fondo { display: flex; gap: 1rem; align-items: end; flex-wrap: wrap; }
.ric-fondo > div { flex: 1; min-width: 220px; }
@media (max-width: 640px) { .ric-due { grid-template-columns: 1fr; } .ric-largo { grid-column: auto; } }

/* ---------- pratiche (app/pratiche.py) ---------- */
.nowrap { white-space: nowrap; }
.t-warn { color: var(--warn); }
.pratiche-cerca { margin-bottom: 1rem; max-width: 420px; }
.pr-bando { color: var(--text); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pr-barra { margin: .35rem 0 .2rem; max-width: none; }
.pr-stato { display: inline-block; font-size: .78rem; font-weight: 600; padding: .12rem .55rem; border-radius: 99px; background: var(--surface-2); color: var(--muted); white-space: nowrap; }
.ps-in_preparazione { background: var(--accent-soft); color: var(--accent); }
.ps-presentata { background: var(--gold-soft); color: var(--gold); }
.ps-ammessa { background: var(--ok-soft); color: var(--ok); }
.ps-respinta { background: var(--danger-soft); color: var(--danger); }
.bando-pratica { margin-top: 1rem; }
.avvia-pratica { width: 100%; justify-content: center; }
.dialogo { border: 1px solid var(--border); border-radius: 14px; background: var(--surface); color: var(--text); padding: 1.2rem 1.3rem; width: min(640px, calc(100vw - 32px)); max-height: calc(100vh - 48px); box-shadow: 0 20px 60px rgba(0,0,0,.25); }
.dialogo::backdrop { background: rgba(0,0,0,.4); }
.dialogo-largo { width: min(900px, calc(100vw - 32px)); }
.dialogo-testa { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: .8rem; }
.dialogo-testa h2 { margin: 0; }
.dialogo-testa .btn-link { font-size: 1.2rem; color: var(--muted); }
.dialogo h3 { font-size: 1rem; margin: 1.1rem 0 .4rem; }
.campo-form { margin-bottom: .9rem; }
.pr-testa h1 a { color: var(--text); }
.pr-azioni { display: flex; flex-direction: column; align-items: flex-end; gap: .4rem; }
.pr-stato-form select { width: auto; }
.sez-testa { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin: 1.5rem 0 .6rem; }
.sez-testa h2 { margin: 0; }
.valutazioni { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
@media (max-width: 1000px) { .valutazioni { grid-template-columns: 1fr; } }
.val-card { display: flex; flex-direction: column; gap: .45rem; }
.val-etichetta { font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.val-grande { font-size: 1.9rem; font-weight: 750; letter-spacing: -.02em; line-height: 1.15; color: var(--accent); }
.val-medio { font-size: 1.5rem; }
.val-su { font-size: 1rem; font-weight: 500; color: var(--muted); }
.val-sintesi { margin: 0; font-size: .92rem; }
.val-lista { margin: .2rem 0 0; padding-left: 1.1rem; }
.val-azioni { display: flex; gap: .5rem; margin-top: auto; padding-top: .5rem; flex-wrap: wrap; }
.val-attesa { display: flex; align-items: center; gap: .5rem; color: var(--accent); padding: .6rem 0; }
.esito-ok { color: var(--ok); } .esito-warn { color: var(--warn); } .esito-ko { color: var(--danger); }
.pr-esito { display: inline-block; font-size: .8rem; font-weight: 600; padding: .12rem .55rem; border-radius: 99px; background: var(--surface-2); white-space: nowrap; }
.pr-esito.esito-ok { background: var(--ok-soft); } .pr-esito.esito-warn { background: var(--warn-soft); } .pr-esito.esito-ko { background: var(--danger-soft); }
.barra-req { display: flex; height: 8px; border-radius: 99px; overflow: hidden; background: var(--surface-2); }
.barra-req .b-ok { background: var(--ok); } .barra-req .b-warn { background: var(--warn); } .barra-req .b-ko { background: var(--danger); }
.soglia-barra { position: relative; overflow: visible; }
.soglia-barra i { position: absolute; top: -4px; bottom: -4px; width: 2px; background: var(--text); }
.req-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.req-lista li { display: flex; gap: .6rem; align-items: flex-start; }
.req-icona { flex: none; width: 1.5rem; height: 1.5rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: .85rem; background: var(--surface-2); }
.req-icona.esito-ok { background: var(--ok-soft); } .req-icona.esito-warn { background: var(--warn-soft); } .req-icona.esito-ko { background: var(--danger-soft); }
.rotella { width: 1em; height: 1em; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; display: inline-block; animation: giro .8s linear infinite; vertical-align: -2px; }
@keyframes giro { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .rotella { animation: none; } }
.ck-avanzamento { display: flex; align-items: center; gap: .8rem; margin-bottom: .6rem; }
.ck-avanzamento .barra { flex: 1; margin: 0; }
.ck-lista { list-style: none; margin: 0; padding: 0; }
.ck-voce { display: flex; gap: .7rem; padding: .65rem 0; border-top: 1px solid var(--border); }
.ck-voce:first-child { border-top: none; }
.ck-spunta { width: 1.6rem; height: 1.6rem; padding: 0; justify-content: center; border-radius: 6px; border: 2px solid var(--border); font-weight: 700; color: #fff; }
.ck-voce.fatto .ck-spunta { background: var(--ok); border-color: var(--ok); }
.ck-voce.fatto .ck-titolo { text-decoration: line-through; color: var(--muted); }
.ck-corpo { flex: 1; min-width: 0; }
.ck-titolo { font-weight: 600; }
.ck-meta { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .3rem; }
.tag.ck-obbl { background: var(--danger-soft); color: var(--danger); border-color: transparent; }
.tag.ck-cliente { background: var(--gold-soft); color: var(--gold); border-color: transparent; }
.tag.ck-interno { background: var(--accent-soft); color: var(--accent); border-color: transparent; }
.ck-modifica summary, .ck-nuova summary { cursor: pointer; color: var(--accent); margin-top: .3rem; }
.ck-nuova { margin-top: .8rem; border-top: 1px solid var(--border); padding-top: .6rem; }
.ck-form { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: .5rem; align-items: center; margin: .5rem 0; }
.ck-form input[name=voce], .ck-form input[name=descrizione] { grid-column: span 2; }
@media (max-width: 640px) { .ck-form { grid-template-columns: 1fr; } .ck-form input[name=voce], .ck-form input[name=descrizione] { grid-column: auto; } }
.check-inline { display: flex; align-items: center; gap: .35rem; color: var(--text); margin: 0; }
.doc-lista { list-style: none; margin: 0 0 .8rem; padding: 0; display: grid; gap: .45rem; }
.doc-lista li { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .6rem; }
.riga-form { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.riga-form input[type=text], .riga-form select { flex: 1; min-width: 0; }
.riga-form input[type=file] { flex: 1; min-width: 0; font-size: .88rem; }
.modelli { margin-top: 1rem; border-top: 1px solid var(--border); padding-top: .7rem; }
.pr-due { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 900px) { .pr-due { grid-template-columns: 1fr; } }
/* editor del modulo: documento a sinistra, campo scelto a destra */
.mod-editor { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 1rem; align-items: start; }
@media (max-width: 1000px) { .mod-editor { grid-template-columns: 1fr; } }
.mod-doc { background: #fff; color: #1d1d1b; padding: 2rem 2.4rem; font-family: Georgia, "Times New Roman", serif; font-size: .95rem; line-height: 1.55; max-height: calc(100vh - 140px); overflow: auto; }
.mod-doc p { margin: 0 0 .55rem; }
.mod-doc .doc-titolo { font-weight: 700; font-size: 1.05rem; margin-top: 1rem; }
.mod-doc .doc-tab { border-collapse: collapse; margin: .5rem 0 1rem; background: transparent; border-radius: 0; }
.mod-doc .doc-tab td { border: 1px solid #b9b6ae; padding: .3rem .45rem; font-size: .9rem; color: #1d1d1b; }
.mod-doc .doc-tab td p { margin: 0; }
mark.campo { background: #fff3b0; color: #1d1d1b; border-radius: 3px; padding: 0 .15rem; cursor: pointer; outline: 1px dashed #c9a400; }
mark.campo.pieno { background: #dff0dc; outline-color: #5c9a55; }
mark.campo.scelto { outline: 2px solid #0f5d5e; background: #cfe9e8; }
mark.campo:focus-visible { outline: 2px solid #0f5d5e; }
mark.campo sup { font: 700 .65rem/1 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #fff; background: #0f5d5e; border-radius: 99px; padding: .05rem .3rem; margin-right: .2rem; }
.pdf-pagina { position: relative; margin: 0 auto 1rem; max-width: 820px; border: 1px solid #ddd; }
.pdf-pagina img { display: block; width: 100%; height: auto; }
.pdf-campo { position: absolute; display: flex; align-items: center; overflow: hidden; font-size: .7rem; }
.pdf-campo mark.campo { width: 100%; height: 100%; opacity: .92; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mod-lato { position: sticky; top: 72px; display: grid; gap: .5rem; max-height: calc(100vh - 90px); overflow: auto; }
.mod-lato label { margin-top: .5rem; }
.mod-nav { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.mod-nav button { padding: .3rem .6rem; }
.mod-etichetta { background: var(--surface-2); border-radius: 8px; padding: .5rem .6rem; font-size: .88rem; }
.mod-bottoni { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .4rem; }
.mod-secondarie { display: grid; gap: .35rem; justify-items: start; }
.sep { border: none; border-top: 1px solid var(--border); margin: .6rem 0; width: 100%; }
@media (max-width: 640px) { .mod-doc { padding: 1rem; } .pr-azioni { align-items: flex-start; } .mod-lato { position: static; max-height: none; } }
/* ---------- clienti (app/clienti.py) ---------- */
.cli-conta { font-size: 1rem; font-weight: 400; }
.cli-azioni { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.cli-azioni form { margin: 0; }
.cli-barra { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); padding: .7rem; margin-bottom: 1rem; }
.cli-barra input[type=search] { flex: 1 1 260px; width: auto; }
.cli-ordina { display: flex; align-items: center; gap: .4rem; margin: 0; white-space: nowrap; }
.cli-ordina select { width: auto; }
.cli-novita { padding: .3rem .7rem; border-radius: 99px; border: 1.5px solid var(--danger); color: var(--danger); font-size: .85rem; white-space: nowrap; }
.cli-novita.on { background: var(--danger); color: #fff; }
.cli-novita:hover { text-decoration: none; }
.cli-arch { margin-left: auto; }
.cli-griglia { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: .8rem; }
.cli-card { position: relative; display: flex; flex-direction: column; gap: .3rem; padding: .8rem .9rem; min-width: 0; }
.cli-card:hover { border-color: var(--accent); }
.cli-link { display: flex; gap: .7rem; align-items: flex-start; color: var(--text); min-width: 0; }
.cli-link:hover { text-decoration: none; }
.cli-icona { flex: none; width: 38px; height: 38px; border-radius: 10px; background: var(--accent-soft); color: var(--accent);
  display: grid; place-items: center; font-weight: 700; text-transform: uppercase; }
.cli-testo { display: flex; flex-direction: column; min-width: 0; padding-right: 1.6rem; }
.cli-testo strong { overflow-wrap: anywhere; line-height: 1.3; }
.cli-testo small { font-size: .78rem; color: var(--muted); }
.cli-badge { position: absolute; top: .7rem; right: .7rem; margin: 0; }
.cli-card form { margin: 0; align-self: flex-end; }
.cli-archivia { color: var(--muted); }
.cli-testata { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; align-items: flex-end;
  background: var(--accent); color: #fff; border-radius: var(--radius) var(--radius) 0 0; padding: 1.2rem 1.3rem; }
.cli-testata h1 { margin: .4rem 0 .1rem; color: #fff; }
.cli-sotto { opacity: .85; font-size: .92rem; }
.cli-dim { display: inline-block; font-size: .75rem; font-weight: 600; padding: .15rem .55rem; border-radius: 6px; background: rgba(255,255,255,.18); }
.cli-testata-dx { display: flex; flex-direction: column; align-items: flex-end; gap: .6rem; }
.cli-testata .btn, .cli-testata button { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.35); color: #fff; }
.cli-testata .btn:hover, .cli-testata button:hover { background: rgba(255,255,255,.22); }
.cli-consulente { display: flex; gap: .5rem; align-items: center; font-size: .9rem; }
.cli-consulente span { width: 32px; height: 32px; border-radius: 50%; background: #fff; color: var(--accent); display: grid; place-items: center; font-weight: 700; }
.cli-consulente small { display: block; font-size: .72rem; opacity: .8; }
.cli-info { border-top-left-radius: 0; border-top-right-radius: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 2rem; }
.cli-info h3 { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); margin: 0 0 .5rem; }
.cli-info > * { min-width: 0; }
.cli-note { grid-column: 1 / -1; display: grid; gap: .4rem; justify-items: start; }
.cli-tag { background: var(--accent); color: #fff; border-color: transparent; margin: 0 .2rem .2rem 0; }
.cli-sec { display: inline; } .cli-sec summary { display: inline-block; cursor: pointer; list-style: none; }
.cli-dm { display: grid; gap: .2rem; border: 1px solid var(--border); border-radius: 10px; padding: .6rem .8rem; color: var(--text); margin-top: .3rem; }
.cli-dm:hover { border-color: var(--accent); text-decoration: none; }
.cli-dm small { color: var(--muted); }
.cli-barra-dm { margin: .3rem 0 0; max-width: none; }
.cli-barra-dm.grande { height: 12px; }
.cli-dm-box { margin-bottom: 1rem; }
.cli-dm-numeri { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.cli-dm-numeri small { display: block; color: var(--muted); font-size: .8rem; }
.cli-dm-numeri strong { font-size: 1.4rem; color: var(--accent); }
.cli-regimi { margin: .6rem 0 0; padding-left: 1.1rem; }
.cli-bando { display: flex; flex-direction: column; gap: .3rem; min-width: 0; }
.cli-bando .bcard { flex: 1; }
.cli-bando.cli-pref .bcard { border-color: var(--gold); }
.cli-bando-barra { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.cli-bando-az { margin-left: auto; display: flex; gap: .3rem; }
.cli-bando-az form { margin: 0; }
.cli-ico { width: 30px; height: 30px; padding: 0; justify-content: center; border-radius: 50%; font-size: .9rem; display: inline-flex; align-items: center;
  border: 1px solid var(--border); background: var(--surface); color: var(--muted); }
.cli-ico:hover { text-decoration: none; color: var(--accent); border-color: var(--accent); }
.cli-ico.on { background: var(--gold); border-color: var(--gold); color: #fff; }
.cli-punti { display: inline-grid; place-items: center; min-width: 34px; height: 34px; border-radius: 50%; font-weight: 700; font-size: .85rem;
  border: 3px solid var(--muted); color: var(--muted); flex: none; }
.cli-punti.alto { border-color: var(--ok); color: var(--ok); }
.cli-punti.medio { border-color: var(--accent); color: var(--accent); }
.cli-punti.basso { border-color: var(--warn); color: var(--warn); }
.cli-nuovo { background: var(--danger-soft); color: var(--danger); border-color: transparent; font-weight: 600; }
.cli-due { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin-top: 1.5rem; align-items: start; }
.cli-due > * { min-width: 0; }
.cli-form fieldset { border: none; padding: 0; margin: 0 0 1rem; }
.cli-form legend { font-weight: 600; margin-bottom: .5rem; }
.cli-campi { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .6rem .8rem; }
.cli-campi .largo { grid-column: 1 / -1; }
.cli-campi > * { min-width: 0; }
.check-riga { display: flex; gap: .4rem; align-items: center; color: var(--text); font-size: .9rem; margin: .25rem 0; }
.cli-registro { margin-bottom: 1rem; }
.cli-registro h2 { margin-top: 0; }
.cli-riga { display: flex; flex-wrap: wrap; gap: .5rem; }
.cli-riga input { flex: 1 1 220px; width: auto; }
.cli-riga select { width: auto; }
.cli-dest { display: grid; gap: .1rem; }
.cli-anteprima { width: 100%; height: 520px; border: 1px solid var(--border); border-radius: var(--radius); background: #f4f4f2; }
.cli-interessati { border-top: 1px solid var(--border); margin-top: 1rem; padding-top: .8rem; }
.cli-interessati h3 { font-size: .95rem; margin: 0 0 .5rem; }
.cli-int { border-bottom: 1px solid var(--border); }
.cli-int summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: .5rem; padding: .4rem 0; font-size: .88rem; }
.cli-int summary::-webkit-details-marker { display: none; }
.cli-int summary a { flex: 1; min-width: 0; overflow-wrap: anywhere; color: var(--text); }
.cli-int .cli-punti { min-width: 28px; height: 28px; border-width: 2px; font-size: .75rem; }
.cli-busta { color: var(--muted); }
.cli-int[open] .cli-busta { color: var(--accent); }
.cli-int-corpo { padding: 0 0 .6rem; display: grid; gap: .35rem; }
.cli-int-corpo p { margin: 0; }
.cli-int-dest { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .45rem .6rem; border-radius: 8px;
  background: var(--accent-soft); color: var(--text); font-size: .85rem; }
.cli-int-dest small { display: block; color: var(--muted); font-size: .75rem; overflow-wrap: anywhere; }
.cli-int-dest:hover { text-decoration: none; outline: 1px solid var(--accent); }
.cli-interessati form { margin-top: .6rem; }
@media (max-width: 800px) {
  .cli-info, .cli-due { grid-template-columns: 1fr; }
  .cli-testata-dx { align-items: flex-start; }
  .cli-arch { margin-left: 0; }
}

/* ---- area scheda2: bandi correlati, approfondimenti, voce ---- */
.sk-correlati { list-style: none; padding: 0; margin: .4rem 0 0; display: grid; gap: .55rem; }
.sk-correlati li { border-top: 1px solid var(--border); padding-top: .5rem; overflow-wrap: anywhere; }
.sk-correlati li:first-child { border-top: none; padding-top: 0; }
.sk-correlati a { font-size: .9rem; line-height: 1.35; }
.sk-corr-motivo { color: var(--accent); }
.sk-tl-corr { margin-top: .6rem; padding-top: .5rem; border-top: 1px dashed var(--border); }
.ed-banner { display: flex; flex-wrap: wrap; align-items: baseline; gap: .3rem .8rem; margin-bottom: 1rem; color: var(--text);
  border-left: 4px solid var(--accent); }
.ed-banner:hover { text-decoration: none; outline: 1px solid var(--accent); }
.ed-banner strong { flex: 1 1 260px; }
.ed-ultimo h2 { margin: .2rem 0 .6rem; }
.ed-ultimo h3 { font-size: 1rem; margin: .8rem 0 .3rem; }
.ed-form { display: grid; gap: .4rem; max-width: 640px; }
.ed-articolo h2 { font-size: 1.1rem; margin: 1.2rem 0 .3rem; }
.ed-articolo h2:first-child { margin-top: 0; }
.ed-articolo li { margin-bottom: .3rem; }
.ed-sommario { font-size: 1.05rem; color: var(--muted); }
.ed-newsletter { margin-top: .9rem; padding-top: .7rem; border-top: 1px solid var(--border); display: grid; gap: .3rem; }
.voce-btn { flex: 0 0 auto; width: auto; min-width: 2.5rem; min-height: 2.5rem; padding: .3rem .55rem; margin: .25rem .3rem 0 0;
  border-radius: 999px; line-height: 1; font-size: 1rem; cursor: pointer; }
.voce-mic.in-ascolto { background: var(--danger); border-color: var(--danger); color: #fff; animation: voce-pulsa 1.2s infinite; }
.voce-stato { font-size: .8rem; color: var(--danger); align-self: center; }
.voce-stato:empty { display: none; }
.voce-leggi { display: inline-flex; gap: .3rem; margin-top: .3rem; white-space: normal; }
.voce-leggi .voce-btn { font-size: .8rem; min-height: 2rem; }
.voce-btn[hidden] { display: none; }
.sk-leggi > .voce-leggi { float: right; margin: 0 0 .4rem .6rem; }
.voce-play.in-lettura { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); }
.msg-ai .voce-leggi { display: flex; }
.cerca-top { display: flex; align-items: center; gap: .2rem; }
form:has(> input[data-voce] + .voce-btn) { display: flex; align-items: center; gap: .3rem; }
form:has(> input[data-voce] + .voce-btn) > input[data-voce] { flex: 1; min-width: 0; }
form:has(> input[data-voce] + .voce-btn) > .voce-btn { margin: 0; }
.cerca-top .voce-btn { margin: 0; min-height: 2.1rem; min-width: 2.1rem; padding: .2rem .4rem; }
@keyframes voce-pulsa { 50% { box-shadow: 0 0 0 6px var(--danger-soft); } }
@media (prefers-reduced-motion: reduce) { .voce-mic.in-ascolto { animation: none; } }
/* rendicontazione */
.rnd-export, .rnd-azioni { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.rnd-azioni form { margin: 0; }
.rnd-cup { background: var(--gold-soft); color: var(--gold); border-color: transparent; font-weight: 600; }
.rnd-riepilogo { margin-bottom: 1rem; }
.rnd-numeri { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.rnd-numeri small { display: block; color: var(--muted); font-size: .8rem; }
.rnd-numeri strong { display: block; font-size: 1.35rem; color: var(--accent); letter-spacing: -.01em; }
.rnd-barra { height: 12px; border-radius: 99px; background: var(--surface-2); overflow: hidden; margin: .8rem 0 .25rem; }
.rnd-barra span { display: block; height: 100%; background: var(--accent); border-radius: 99px; }
.rnd-barra.piccola { height: 8px; margin: .2rem 0; }
.rnd-barra.oltre span { background: var(--danger); }
.rnd-avvisi { list-style: none; margin: .8rem 0 0; padding: .7rem 0 0; border-top: 1px solid var(--border); display: grid; gap: .25rem; font-size: .88rem; }
.rnd-promemoria { margin-bottom: 1rem; }
.rnd-promemoria-testa { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.rnd-promemoria ul { margin: .6rem 0 0; padding-left: 1.1rem; }
.rnd-tab td { vertical-align: top; }
.rnd-tab .rnd-totale td { font-weight: 700; background: var(--surface-2); }
.rnd-form { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: .5rem; align-items: center; margin: .5rem 0; }
.rnd-form input[name=categoria], .rnd-form input[name=titolo], .rnd-form input[name=descrizione] { grid-column: span 2; }
.rnd-form input[type=date], .rnd-fatt-form input[type=date], .cli-campi input[type=date] { font: inherit; color: var(--text); background: var(--surface);
  border: 1px solid var(--border); border-radius: 8px; padding: .4rem .5rem; width: 100%; }
.rnd-cup-testo { margin-top: .8rem; }
.rnd-cup-testo textarea { margin-top: .4rem; min-height: 0; }
.rnd-scadenze, .rnd-fatture { list-style: none; margin: 0; padding: 0; }
.rnd-scad { display: grid; grid-template-columns: 150px 1fr auto; gap: .4rem 1rem; padding: .7rem 0; border-bottom: 1px solid var(--border); align-items: start; }
.rnd-scad-data { display: flex; flex-direction: column; }
.rnd-scad-corpo { min-width: 0; }
.rnd-scad-stato select { width: auto; }
.rnd-scad.st-presentato .rnd-scad-data strong, .rnd-scad.st-liquidato .rnd-scad-data strong { color: var(--ok); }
.rnd-scad.st-liquidato { opacity: .7; }
.rnd-carica { margin-bottom: .3rem; }
.rnd-fatt { padding: .75rem 0; border-bottom: 1px solid var(--border); scroll-margin-top: 80px; }
.rnd-fatt.con-errori { border-left: 3px solid var(--danger); padding-left: .7rem; }
.rnd-fatt-riga { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(180px, 240px); gap: .4rem 1rem; align-items: start; }
.rnd-fatt-importi { text-align: right; }
.rnd-fatt-voce form { margin: 0; }
.rnd-proposta { margin-top: .3rem !important; padding: .35rem .5rem; border-radius: 8px; background: var(--accent-soft); }
.rnd-fatt-stato { display: flex; flex-wrap: wrap; gap: .3rem .7rem; align-items: center; margin-top: .4rem; }
.rnd-anom { white-space: nowrap; }
.rnd-fatt-form { margin: .6rem 0; }
.rnd-fatt-form label { margin: 0; }
.rnd-fatt-form input[type=file] { font-size: .85rem; margin-top: .2rem; }
.rnd-righe { margin: .5rem 0; }
@media (max-width: 800px) {
  .rnd-numeri { grid-template-columns: 1fr 1fr; }
  .rnd-scad { grid-template-columns: 1fr; }
  .rnd-fatt-riga { grid-template-columns: 1fr; }
  .rnd-fatt-importi { text-align: left; }
  .rnd-form input[name=categoria], .rnd-form input[name=titolo], .rnd-form input[name=descrizione] { grid-column: auto; }
}
/* ---------- clienti: rating MCC, dimensione consolidata, OCR documenti (area clienti2) ---------- */
.mcc { margin-top: 1.2rem; }
.mcc .intesta { margin-bottom: .6rem; }
.mcc-avviso { font-size: .88rem; }
.mcc-esito { display: flex; flex-wrap: wrap; gap: 1rem 1.6rem; align-items: center; margin-bottom: .6rem; }
.mcc-esito .kv { grid-template-columns: 190px 1fr; flex: 1 1 320px; }
.mcc-fascia { display: grid; justify-items: center; min-width: 120px; padding: .6rem .9rem; border-radius: 12px; border: 2px solid var(--muted); color: var(--muted); }
.mcc-fascia small { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; }
.mcc-fascia strong { font-size: 2rem; line-height: 1.1; }
.mcc-fascia.dim strong { font-size: 1.15rem; text-align: center; }
.mcc-fascia span { font-size: .8rem; }
.mcc-fascia.f1, .mcc-fascia.f2, .mcc-fascia.dim { border-color: var(--ok); color: var(--ok); }
.mcc-fascia.f3 { border-color: var(--accent); color: var(--accent); }
.mcc-fascia.f4 { border-color: var(--warn); color: var(--warn); }
.mcc-fascia.f5 { border-color: var(--danger); color: var(--danger); }
.mcc-scala { display: flex; gap: 3px; margin-top: .3rem; }
.mcc-scala span { flex: 1; height: 6px; border-radius: 3px; background: var(--border); }
.mcc-scala span.on.f1, .mcc-scala span.on.f2 { background: var(--ok); }
.mcc-scala span.on.f3 { background: var(--accent); }
.mcc-scala span.on.f4 { background: var(--warn); }
.mcc-scala span.on.f5 { background: var(--danger); }
.mcc-dettaglio summary { cursor: pointer; font-weight: 600; margin: .4rem 0; }
.mcc-tab { overflow-x: auto; max-width: 100%; }
.mcc-tab table { width: 100%; }
.mcc-num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.mcc-peggiora { color: var(--danger); }
.mcc-migliora { color: var(--ok); }
.mcc-neutro { color: var(--muted); }
.mcc-bil input { min-width: 110px; text-align: right; }
.mcc-bil thead input { text-align: center; font-weight: 600; }
.mcc-bil td:first-child { min-width: 220px; }
.mcc-gruppo th { text-align: left; background: var(--accent-soft); color: var(--accent); font-size: .85rem; }
.dim-tab input, .dim-tab select { min-width: 90px; margin-bottom: .2rem; }
.dim-tab td { vertical-align: top; }
.dim-tab .dim-corto { min-width: 60px; max-width: 80px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ocr-stato { display: inline-block; font-size: .75rem; padding: .05rem .45rem; border-radius: 99px; background: var(--accent-soft); color: var(--accent); }
.ocr-stato.in-corso { background: var(--warn-soft); color: var(--warn); }
.ocr-stato.errore { background: var(--danger-soft); color: var(--danger); }
.ocr-testo { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .85rem; min-height: 50vh; }

/* ===================================================================
   Telefono e tablet, app installabile (PWA)
   =================================================================== */

/* superfici del browser nei colori del sito */
::selection { background: var(--accent-soft); color: var(--text); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 6px; }
input[type=checkbox], input[type=radio] { accent-color: var(--accent); }
.scad, .stat strong, td { font-variant-numeric: tabular-nums; }
html { -webkit-text-size-adjust: 100%; }
body { -webkit-tap-highlight-color: transparent; }

/* le colonne non devono mai allargare la pagina oltre lo schermo */
.con-lato > *, .lista > *, .statistiche > * { min-width: 0; }
@media (max-width: 1000px) { .con-lato { grid-template-columns: minmax(0, 1fr); } }

/* barra in basso: nascosta su schermi grandi */
.tab-bar { display: none; }

/* pagina "senza connessione" */
.offline { max-width: 26rem; margin: 18vh auto 0; text-align: center; display: grid; gap: .8rem; justify-items: center; padding: 0 20px; }
.offline img { border-radius: 18px; }

@media (max-width: 760px) {
  /* intestazione compatta: marchio e ricerca su una riga, il resto passa nella barra in basso */
  .top { padding-top: env(safe-area-inset-top); }
  .top-inner { flex-wrap: nowrap; gap: .6rem; min-height: 54px; padding: .4rem max(14px, env(safe-area-inset-right)) .4rem max(14px, env(safe-area-inset-left)); }
  .top .nav, .top .chi { display: none; }
  .brand { font-size: 1rem; }
  .cerca-top { order: 0; flex: 1; flex-basis: auto; margin-left: 0; display: flex; gap: .35rem; align-items: center; min-width: 0; }
  .cerca-top input[type=search] { width: 100%; min-height: 40px; }

  main { padding: 16px max(14px, env(safe-area-inset-left)) calc(92px + env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-right)); }
  h1 { font-size: 1.3rem; text-wrap: balance; }
  .intesta { margin-bottom: .8rem; }

  /* barra di navigazione in basso, alla portata del pollice */
  .tab-bar {
    display: grid; grid-template-columns: repeat(5, 1fr);
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 30;
    padding: 4px max(6px, env(safe-area-inset-right)) env(safe-area-inset-bottom) max(6px, env(safe-area-inset-left));
    border-top: 1px solid var(--border);
  }
  /* lo sfocato sta su uno strato a parte: se fosse sulla barra stessa, il foglio "Altro" e il suo
     sfondo scuro (position: fixed) si misurerebbero sulla barra invece che sullo schermo intero */
  .tab-bar::after {
    content: ""; position: absolute; inset: 0; z-index: -1;
    background: color-mix(in srgb, var(--surface) 94%, transparent);
    -webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px);
  }
  .tab-bar > a, .tab-menu > summary {
    position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    min-height: 54px; color: var(--muted); font-size: .7rem; font-weight: 600; letter-spacing: .01em;
    border-radius: 12px; text-decoration: none; list-style: none; cursor: pointer;
  }
  .tab-menu > summary::-webkit-details-marker { display: none; }
  .tab-bar svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
  .tab-menu > summary svg circle { fill: currentColor; stroke: none; }
  .tab-bar > a.on, .tab-menu > summary.on, .tab-menu[open] > summary { color: var(--accent); }
  .tab-bar > a.on svg, .tab-menu > summary.on svg { stroke-width: 2.1; }
  .tab-bar > a:active, .tab-menu > summary:active { background: var(--surface-2); }
  .tab-badge {
    position: absolute; top: 5px; left: calc(50% + 6px); min-width: 17px; height: 17px; padding: 0 4px;
    border-radius: 99px; background: var(--danger); color: var(--su-colore); font-size: .7rem; line-height: 17px; text-align: center;
    box-shadow: 0 0 0 2px var(--surface);
  }

  /* foglio "Altro": sale dal basso sopra la barra */
  .tab-menu { position: static; }
  .tab-foglio {
    position: fixed; left: 8px; right: 8px; bottom: calc(66px + env(safe-area-inset-bottom)); z-index: 31;
    display: grid; padding: .4rem; background: var(--surface); border: 1px solid var(--border); border-radius: 16px;
    box-shadow: 0 12px 40px rgba(0,0,0,.22), 0 2px 6px rgba(0,0,0,.08);
    max-height: calc(100dvh - 140px); overflow-y: auto; overscroll-behavior: contain;
    animation: foglio-su .22s cubic-bezier(.2,.8,.2,1);
  }
  .tab-menu[open]::before { content: ""; position: fixed; inset: 0; z-index: 29; background: rgba(0,0,0,.28); }
  .tab-menu > summary { z-index: 32; }  /* "Altro" resta toccabile sopra lo sfondo scuro, per richiudere */
  /* foglio aperto: la pagina sotto non scorre */
  html:has(.tab-menu[open]) { overflow: hidden; }
  .tab-foglio a { display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: 0 .9rem; border-radius: 10px; color: var(--text); font-weight: 500; }
  .tab-foglio a:active { background: var(--surface-2); text-decoration: none; }
  .tab-foglio-chi { display: flex; justify-content: space-between; align-items: center; min-height: 52px; padding: .2rem .9rem .3rem; border-bottom: 1px solid var(--border); margin-bottom: .2rem; color: var(--muted); }
  .tab-foglio-chi .btn-link { min-height: 44px; padding: 0 .4rem; }

  /* numeri in testa all'elenco: tre colonne compatte invece di tre riquadri alti */
  .statistiche { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin-bottom: .9rem; }
  .statistiche .stat { padding: .7rem .7rem .75rem; }
  .stat strong { font-size: 1.3rem; }
  .stat span { display: block; font-size: .72rem; line-height: 1.3; margin-top: .15rem; }

  /* schede e tabelle: scorrono in orizzontale senza allargare la pagina */
  .schede { scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .schede::-webkit-scrollbar { display: none; }
  .tab-wrap { margin: 0 -14px; padding: 0 14px; }
  .card { padding: .9rem .95rem; }
  .lato { gap: .8rem; }
  /* etichette lunghe: puntini invece di allargare la pagina */
  .tag { max-width: 100%; overflow: hidden; text-overflow: ellipsis; vertical-align: bottom; }
  .notizia-piede > * { min-width: 0; max-width: 100%; }
}

@media (max-width: 380px) {
  .brand { font-size: .9rem; letter-spacing: -.01em; }
  .statistiche { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* tocco: bersagli piu' grandi e niente zoom automatico di iOS sui campi */
@media (pointer: coarse) {
  input[type=text], input[type=email], input[type=password], input[type=search], input[type=number], input[type=date], select, textarea { font-size: 16px; }
  button, .btn { min-height: 44px; }
  .btn-link { min-height: 0; }
  .schede a { padding-top: .7rem; padding-bottom: .7rem; }
  .altro-menu a { min-height: 44px; display: flex; align-items: center; }
}

@keyframes foglio-su { from { transform: translateY(12px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .tab-foglio { animation: none; } }

/* app installata: niente rimbalzo dell'intera pagina */
@media (display-mode: standalone) { body { overscroll-behavior-y: none; } }

/* testo sopra i colori pieni (pulsanti, contatori): bianco in chiaro, scuro in tema scuro dove i colori sono chiari */
:root { --su-colore: #ffffff; }
@media (prefers-color-scheme: dark) { :root { --su-colore: #0e1a1a; } }
.btn-primary, .btn-primary:hover, .badge-n, .schede.temi a.on { color: var(--su-colore); }

/* filtri dell'elenco bandi: sul telefono raccolti sotto il pulsante "Filtri" */
.filtri-mob > summary { display: none; }
@media (max-width: 760px) {
  .filtri-mob { margin-bottom: 1rem; }
  .filtri-mob > summary {
    display: flex; align-items: center; gap: .55rem; min-height: 48px; padding: 0 .95rem; list-style: none; cursor: pointer;
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); font-weight: 600;
  }
  .filtri-mob > summary::-webkit-details-marker { display: none; }
  .filtri-mob > summary svg { width: 20px; height: 20px; fill: none; stroke: var(--accent); stroke-width: 2; stroke-linecap: round; }
  .filtri-mob-ordine { margin-left: auto; font-weight: 400; }
  .filtri-mob > summary::after { content: ""; width: 8px; height: 8px; margin-left: .4rem; border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted); transform: rotate(45deg) translateY(-2px); transition: transform .2s; }
  .filtri-mob[open] > summary { border-bottom-left-radius: 0; border-bottom-right-radius: 0; border-bottom-color: transparent; }
  .filtri-mob[open] > summary::after { transform: rotate(-135deg) translateY(-2px); }
  .filtri-mob[open] > .filtri { border-top-left-radius: 0; border-top-right-radius: 0; margin-bottom: 0; }
}

/* telefono: il riquadro "Crea filtro salvato" si ancora alla barra dei risultati e non esce dallo schermo */
@media (max-width: 760px) {
  .lista-barra { position: relative; }
  .salva-filtro { position: static; }
  .salva-filtro-form { left: 0; right: 0; width: auto; max-width: none; }
}
/* tocco: righe delle caselle (categorie, province, settori ATECO) alte abbastanza da prenderle col dito */
@media (pointer: coarse) {
  .griglia-ateco label, label.check { min-height: 40px; align-items: center; }
  .griglia-ateco input[type=checkbox], label.check input[type=checkbox] { width: 20px; height: 20px; flex: none; }
}
@media (pointer: coarse) {
  label:has(> input[type=checkbox]), label:has(> input[type=radio]) { display: flex; align-items: center; gap: .45rem; min-height: 40px; }
  label > input[type=checkbox], label > input[type=radio] { width: 20px; height: 20px; flex: none; margin: 0; }
}
