/* Plodar Bergsteiger — area amministrazione (pannello, partecipazioni, gara) */
.adm-indietro { color: var(--oro); text-decoration: none; font-weight: 700; }
.adm-indietro:hover { text-decoration: underline; }

/* ---------- pannello: tre blocchi ---------- */
.adm-blocchi { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.adm-blocco { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 28px 26px 24px; border-radius: 22px; background: #fff; box-shadow: var(--ombra); text-decoration: none; color: var(--testo); overflow: hidden; transition: transform .45s var(--molla), box-shadow .3s; }
.adm-blocco::after { content: '→'; position: absolute; right: 22px; top: 22px; font-size: 1.6rem; color: var(--arancio); transition: transform .4s var(--molla); }
.adm-blocco:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -28px rgba(13,38,66,.5); }
.adm-blocco:hover::after { transform: translateX(6px); }
.adm-blocco h2 { font-size: 2.2rem; margin: 6px 0 0; color: var(--blu); }
.adm-blocco p { margin: 0; color: var(--testo-2); font-size: .97rem; }
.adm-icona { width: 64px; height: 64px; border-radius: 18px; display: grid; place-items: center; background: linear-gradient(135deg, var(--cielo), var(--azzurro)); color: #fff; }
.adm-icona svg { width: 36px; height: 36px; }
.adm-blocco-gara .adm-icona { background: var(--grad-sole); }
.adm-conta { margin-top: auto; padding-top: 12px; font-size: .85rem; font-weight: 700; color: var(--azzurro); }

/* ---------- partecipazioni ---------- */
.pr-date { display: flex; gap: 8px; overflow-x: auto; padding: 4px 2px 12px; margin-bottom: 8px; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
.pr-data { flex: none; scroll-snap-align: center; display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 78px; padding: 10px 12px; border: 0; border-radius: 14px; background: #fff; color: var(--blu); box-shadow: var(--ombra-s); font-weight: 700; font-size: .85rem; cursor: pointer; text-transform: capitalize; transition: background .25s, transform .3s var(--molla); }
.pr-data b { color: var(--arancio);  min-height: 1.3em; font-family: var(--titoli); font-size: 1.3rem; line-height: 1; }
.pr-data.passata { background: #EEF4F9; }
.pr-data.oggi { box-shadow: inset 0 0 0 2px var(--oro); }
.pr-data.su { background: var(--blu); color: #fff; transform: translateY(-2px); }
.pr-data.su b { color: var(--oro); }
.pr-griglia { display: grid; grid-template-columns: 1.15fr .85fr; gap: 20px; align-items: start; }
.pr-principale, .pr-stat { padding: 24px; border-radius: 22px; background: #fff; box-shadow: var(--ombra-s); }
.pr-testa { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 16px; }
.pr-giorno { margin: 0; font-family: var(--titoli); font-weight: 900; font-size: clamp(1.6rem, 3vw, 2.2rem); text-transform: uppercase; color: var(--blu); line-height: 1; }
.pr-sotto { margin: 4px 0 0; color: var(--testo-2); font-size: .9rem; }
.pr-numero { text-align: center; padding: 8px 16px; border-radius: 16px; background: var(--grad-sole); color: #fff; }
.pr-numero b { display: block; font-family: var(--titoli); font-weight: 900; font-size: 2.4rem; line-height: 1; }
.pr-numero span { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.pr-cerca { position: relative; }
.pr-cerca input { width: 100%; padding: 16px 18px; border: 2px solid #D3E2EF; border-radius: 14px; font: inherit; font-size: 1.1rem; background: var(--neve); }
.pr-cerca input:focus { outline: none; border-color: var(--arancio); background: #fff; box-shadow: 0 0 0 4px rgba(241,136,60,.16); }
.pr-suggerimenti { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 10; list-style: none; margin: 0; padding: 6px; border-radius: 14px; background: #fff; box-shadow: 0 20px 50px -18px rgba(13,38,66,.5); max-height: 360px; overflow: auto; }
.pr-suggerimenti li { padding: 10px 12px; border-radius: 10px; cursor: pointer; }
.pr-suggerimenti li small { display: block; color: var(--testo-2); font-size: .8rem; }
.pr-suggerimenti li.su, .pr-suggerimenti li:hover { background: var(--ghiaccio); }
.pr-suggerimenti li.vuoto { color: var(--testo-2); cursor: default; background: none; }
.pr-aiuto { font-size: .85rem; color: var(--testo-2); margin: 10px 0 16px; }
.pr-aiuto a { color: var(--azzurro); font-weight: 600; }
.pr-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; counter-reset: pr; }
.pr-riga { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 14px; background: var(--neve); counter-increment: pr; }
.pr-riga::before { content: counter(pr); min-width: 26px; font-family: var(--titoli); font-weight: 900; font-size: 1.2rem; color: var(--cielo); }
.pr-riga.nuova { animation: prNuova 1.2s var(--ease); }
@keyframes prNuova { from { background: #FFE9D1; transform: translateX(-8px); } to { background: var(--neve); transform: none; } }
.pr-nome { flex: 1; min-width: 0; }
.pr-nome b { font-size: 1rem; }
.pr-nome small { display: block; color: var(--testo-2); font-size: .8rem; }
.pr-togli { width: 34px; height: 34px; flex: none; border: 0; border-radius: 50%; background: #fff; color: #B2331B; font-size: 1.3rem; line-height: 1; cursor: pointer; box-shadow: inset 0 0 0 1px #F0D2CC; }
.pr-togli:hover { background: #FFF1EE; }
.pr-stat h3 { font-size: 1.5rem; color: var(--blu); }
.pr-stat h4 { margin: 22px 0 10px; font-family: var(--corpo); font-weight: 700; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; color: var(--testo-2); }
.pr-numeri { grid-template-columns: 1fr 1fr; }
.pr-numeri .isc-num { box-shadow: none; background: var(--neve); padding: 12px 14px; }
.pr-numeri .isc-num b { font-size: 1.8rem; }
.pr-grafico { display: flex; align-items: flex-end; gap: 4px; height: 170px; padding-top: 18px; border-bottom: 1px solid #DCE8F2; }
.pr-barra { flex: 1; min-width: 0; height: 100%; display: flex; flex-direction: column; align-items: stretch; gap: 4px; padding: 0; border: 0; background: none; cursor: pointer; position: relative; }
.pr-colonna { position: relative; flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; }
.pr-colonna i { width: 100%; max-width: 22px; border-radius: 4px 4px 0 0; background: var(--azzurro); transition: height .6s var(--ease), background .2s; }
.pr-colonna em { font-style: normal; font-size: .75rem; font-weight: 700; color: var(--testo); margin-bottom: 2px; }
.pr-barra.futura .pr-colonna i { background: #C9DCEC; }
.pr-barra.su .pr-colonna i { background: var(--arancio); }
.pr-barra:hover .pr-colonna i { background: var(--blu); }
.pr-barra small { font-size: .62rem; color: var(--testo-2); text-align: center; white-space: nowrap; overflow: hidden; }
.pr-barra::after { content: attr(data-tip); position: absolute; left: 50%; bottom: calc(100% + 4px); transform: translateX(-50%); padding: 5px 9px; border-radius: 8px; background: var(--notte); color: #fff; font-size: .75rem; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .15s; z-index: 3; }
.pr-barra:hover::after, .pr-barra:focus-visible::after { opacity: 1; }
.pr-tabella { margin-top: 10px; font-size: .85rem; }
.pr-tabella summary { cursor: pointer; color: var(--azzurro); font-weight: 600; }
.pr-tabella table { width: 100%; border-collapse: collapse; margin-top: 8px; }
.pr-tabella td, .pr-tabella th { padding: 4px 6px; border-bottom: 1px solid #EEF3F8; text-align: left; }
.pr-fedeli { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.pr-fedeli li { display: grid; grid-template-columns: 1fr 90px 28px; align-items: center; gap: 8px; font-size: .9rem; }
.pr-fedeli li span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pr-fedeli li i { display: block; height: 8px; border-radius: 0 4px 4px 0; background: var(--azzurro); }
.pr-fedeli li b { text-align: right; }

/* ---------- la gara ---------- */
.ga-stato { display: flex; align-items: center; gap: 10px; padding: 10px 16px; margin-bottom: 14px; border-radius: 14px; background: #fff; box-shadow: var(--ombra-s); font-weight: 600; font-size: .92rem; }
.ga-stato i { width: 12px; height: 12px; flex: none; border-radius: 50%; background: #3BAA6B; }
.ga-stato.invio i { background: var(--oro); animation: pulsa 1.2s infinite; }
.ga-stato.offline { background: #FFF4DA; color: #7A5A00; }
.ga-stato.offline i { background: var(--arancio); animation: pulsa 1.2s infinite; }
.ga-stato.errore { background: #FFE4E0; color: #9E2A14; }
.ga-stato.errore i { background: #D6452B; }
.ga-stato.prova { background: #EDE7FF; color: #4B2FA0; }
.ga-stato.prova i { background: #7A5AF0; }
.ga-schede { display: flex; gap: 6px; margin-bottom: 16px; overflow-x: auto; }
.ga-scheda { flex: none; padding: 12px 18px; border: 0; border-radius: 12px; background: rgba(29,78,122,.08); color: var(--blu); font-weight: 700; cursor: pointer; }
.ga-scheda.su { background: var(--blu); color: #fff; }
.ga-pannello { padding: 24px; border-radius: 22px; background: #fff; box-shadow: var(--ombra-s); }
.ga-orologio { text-align: center; font-family: var(--titoli); font-weight: 900; font-size: clamp(4rem, 16vw, 9rem); line-height: 1; color: var(--notte); font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.ga-orologio small { font-size: .4em; color: var(--arancio); }
.ga-partenza { text-align: center; color: var(--testo-2); margin: 6px 0 20px; }
.ga-via { text-align: center; }
.ga-via-btn { position: relative; overflow: hidden; width: min(100%, 460px); padding: 34px 20px; border: 0; border-radius: 22px; background: var(--grad-sole); color: #fff; font-family: var(--titoli); font-weight: 900; font-size: 1.8rem; text-transform: uppercase; cursor: pointer; touch-action: none; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; box-shadow: 0 20px 40px -18px rgba(209,97,21,.9); }
.ga-via-btn span { position: relative; z-index: 1; }
.ga-via-btn i { position: absolute; inset: 0; background: rgba(10,26,47,.35); transform: scaleX(0); transform-origin: left; }
.ga-via-btn.carica i { transform: scaleX(1); transition: transform 1s linear; }
.ga-nota { color: var(--testo-2); font-size: .88rem; margin: 8px 0; }
.ga-form { display: flex; gap: 10px; max-width: 560px; margin: 0 auto; }
.ga-form input { flex: 1; min-width: 0; padding: 16px 20px; border: 3px solid #D3E2EF; border-radius: 16px; font-family: var(--titoli); font-weight: 900; font-size: 2.6rem; text-align: center; color: var(--notte); background: var(--neve); }
.ga-form input:focus { outline: none; border-color: var(--arancio); background: #fff; }
.ga-form input.scuoti { animation: scuoti .4s; }
@keyframes scuoti { 25% { transform: translateX(-8px); } 50% { transform: translateX(8px); } 75% { transform: translateX(-4px); } }
.ga-arrivato { padding: 0 30px; border: 0; border-radius: 16px; background: #23804D; color: #fff; font-family: var(--titoli); font-weight: 900; font-size: 1.7rem; text-transform: uppercase; cursor: pointer; }
.ga-arrivato:active { transform: scale(.97); }
.ga-tastiera { display: none; grid-template-columns: repeat(3, 1fr); gap: 8px; max-width: 420px; margin: 12px auto 0; }
.ga-tastiera button { padding: 16px 0; border: 0; border-radius: 14px; background: var(--ghiaccio); font-family: var(--titoli); font-weight: 900; font-size: 2rem; color: var(--notte); cursor: pointer; touch-action: manipulation; user-select: none; -webkit-user-select: none; }
.ga-tastiera button:active { background: var(--brina); transform: scale(.97); }
.ga-tastiera .ok { background: #23804D; color: #fff; font-size: 1.3rem; text-transform: uppercase; }
@media (hover: none) { .ga-tastiera { display: grid; } .ga-form .ga-arrivato { display: none; } }
.ga-come { text-align: center; }
.ga-o { display: flex; align-items: center; gap: 12px; margin: 18px auto 10px; max-width: 560px; color: var(--testo-2); font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; }
.ga-o::before, .ga-o::after { content: ''; flex: 1; height: 1px; background: #DCE8F2; }
.ga-tempo-btn { display: block; width: min(100%, 560px); margin: 0 auto; padding: 14px; border: 2px dashed #A9C9E3; border-radius: 16px; background: none; color: var(--blu); font-weight: 700; font-size: 1.05rem; cursor: pointer; touch-action: manipulation; }
.ga-tempo-btn small { font-weight: 500; color: var(--testo-2); }
.ga-ultimo { display: flex; align-items: center; gap: 16px; max-width: 700px; margin: 18px auto 0; padding: 14px 18px; border-radius: 18px; background: #E3F6EB; animation: appare .4s var(--ease); }
.ga-ultimo.allarme { background: #FFE4E0; }
.ga-u-pett { min-width: 70px; padding: 6px 10px; border-radius: 12px; background: #fff; font-family: var(--titoli); font-weight: 900; font-size: 2.2rem; text-align: center; }
.ga-ultimo div { flex: 1; min-width: 0; }
.ga-ultimo b { display: block; font-size: 1.2rem; }
.ga-ultimo span { color: var(--testo-2); font-size: .9rem; }
.ga-u-tempo { text-align: right; font-family: var(--titoli); font-weight: 900; font-size: 1.8rem; color: var(--notte) !important; }
.ga-u-tempo small { display: block; font-family: var(--corpo); font-size: .75rem; font-weight: 600; color: var(--testo-2); }
.ga-attesa { max-width: 700px; margin: 16px auto 0; padding: 14px; border-radius: 16px; background: #FFF4DA; }
.ga-assegna { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 6px 0; }
.ga-assegna input { width: 110px; padding: 10px; border: 2px solid #E9D39A; border-radius: 10px; font-family: var(--titoli); font-weight: 900; font-size: 1.3rem; text-align: center; }
.ga-tit { margin: 26px 0 10px; font-size: 1.4rem; color: var(--blu); }
.ga-tit small { font-family: var(--corpo); font-weight: 500; font-size: .85rem; text-transform: none; color: var(--testo-2); letter-spacing: 0; }
.ga-lista, .ga-class { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.ga-lista li, .ga-class li { display: grid; grid-template-columns: 38px 60px 1fr auto auto; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; background: var(--neve); }
.ga-class li { grid-template-columns: 38px 56px 1fr auto; }
.ga-lista li.nuovo { animation: prNuova 1.4s var(--ease); }
.ga-pos { font-family: var(--titoli); font-weight: 900; font-size: 1.25rem; color: var(--cielo); text-align: center; }
.ga-pett { font-family: var(--titoli); font-weight: 900; font-size: 1.4rem; color: var(--notte); }
.ga-chi { min-width: 0; overflow-wrap: anywhere; }
.ga-chi small { display: block; color: var(--testo-2); font-size: .8rem; }
.ga-tempo { font-family: var(--titoli); font-weight: 800; font-size: 1.35rem; font-variant-numeric: tabular-nums; text-align: right; }
.ga-tempo small { display: block; font-family: var(--corpo); font-size: .72rem; font-weight: 600; color: var(--ruggine); }
.ga-az { display: flex; gap: 10px; }
.link-btn.rosso { color: #B2331B; }
.ga-avviso { color: #B2331B; font-style: normal; font-weight: 700; }
.ga-avviso-box { padding: 12px 14px; border-radius: 12px; background: #FFE4E0; color: #7A1E0E; font-size: .92rem; }
.ga-class li.podio { background: linear-gradient(90deg, #FFF4E0, var(--neve)); }
.ga-class li.podio .ga-pos { font-size: 1.5rem; }
.ga-class li.vuoto { display: block; color: var(--testo-2); }
.ga-class.fuori li { opacity: .85; }
.ga-estrazione { display: grid; gap: 12px; padding: 18px; margin-bottom: 18px; border-radius: 18px; background: var(--roccia); color: #fff; }
.ga-estrazione h3 { color: #fff; margin: 0; }
.ga-estrazione .ga-nota { color: #C9C9C4; }
.ga-estr-riga { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ga-estr-riga input { width: 150px; padding: 12px 14px; border: 0; border-radius: 12px; font-family: var(--titoli); font-weight: 900; font-size: 1.5rem; text-align: center; }
.ga-imp .ga-estr-riga input { border: 2px solid #D3E2EF; }
.ga-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.ga-chip { padding: 6px 10px; border-radius: 10px; background: rgba(255,255,255,.1); font-family: var(--titoli); font-weight: 800; font-size: 1.05rem; font-variant-numeric: tabular-nums; transition: background .1s, transform .1s; }
.ga-chip.gira { background: var(--oro); color: var(--notte); transform: scale(1.1); }
.ga-chip.estratto { background: var(--grad-sole); color: #fff; box-shadow: 0 0 0 3px #fff; }
.ga-rosa .isc-btn { background: rgba(255,255,255,.12); color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.3); }
.ga-rosa .link-btn { color: var(--oro); }
.ga-modo { color: var(--testo-2); }
.ga-classifiche { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ga-classifiche h3, [data-fuori] h3 { color: var(--blu); margin: 10px 0; }
.ga-stat-griglia { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 16px; }
.ga-stat-carta { padding: 18px; border-radius: 16px; background: var(--neve); }
.ga-stat-carta h4 { margin: 0 0 10px; font-family: var(--corpo); font-weight: 700; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; color: var(--testo-2); }
.ga-stat-carta h4 small { text-transform: none; letter-spacing: 0; font-weight: 500; }
.ga-stat-carta ol { margin: 0; padding-left: 20px; }
.ga-stat-carta li b, .ga-persona b { display: block; font-size: 1.1rem; }
.ga-stat-carta li span, .ga-persona span { display: block; color: var(--testo-2); font-size: .88rem; margin-bottom: 6px; }
.ga-imp { padding: 16px 0; border-bottom: 1px solid #EEF3F8; }
.ga-imp h3 { color: var(--blu); font-size: 1.3rem; margin: 0 0 4px; }
.ga-pericolo h3 { color: #B2331B; }

@media (max-width: 900px) {
  .adm-blocchi, .pr-griglia, .ga-classifiche, .ga-stat-griglia { grid-template-columns: 1fr; }
  .ga-lista li { grid-template-columns: 30px 50px 1fr auto; }
  .ga-lista li .ga-az { grid-column: 2 / -1; }
  .ga-pannello, .pr-principale, .pr-stat { padding: 16px; }
  .ga-form input { font-size: 2.2rem; }
}

@media print {
  body.stampa-classifica .isc-testa, body.stampa-classifica .ga-stato, body.stampa-classifica .ga-schede,
  body.stampa-classifica .ga-estrazione, body.stampa-classifica .isc-azioni, body.stampa-classifica .isc-prova { display: none !important; }
  body.stampa-classifica .ga-pannello { box-shadow: none; padding: 0; }
  .adm-vista[hidden] { display: none !important; }
}

/* ---------- scorciatoie sul pannello ---------- */
.adm-rapidi { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 18px; }
.adm-rapido { display: flex; gap: 14px; align-items: flex-start; padding: 18px 20px; border-radius: 18px; background: #fff; box-shadow: var(--ombra-s); text-decoration: none; color: var(--testo); }
a.adm-rapido:hover { box-shadow: var(--ombra); }
.adm-rapido > span { font-size: 2rem; line-height: 1; }
.adm-rapido b { display: block; font-size: 1.1rem; color: var(--blu); }
.adm-rapido small { color: var(--testo-2); }
.adm-rapido-link { display: flex; gap: 8px; margin: 10px 0 0; }
.adm-rapido-link .isc-btn { text-decoration: none; }

/* ---------- scansiona QR ---------- */
.sc { max-width: 560px; margin: 0 auto; }
.sc-video { position: relative; overflow: hidden; border-radius: 22px; background: #000; aspect-ratio: 3 / 4; max-height: 70vh; box-shadow: var(--ombra); }
.sc-video[hidden] { display: none; }
.sc-video video { width: 100%; height: 100%; object-fit: cover; display: block; }
.sc-mirino { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; }
.sc-mirino i { width: 62%; aspect-ratio: 1; border-radius: 22px; box-shadow: 0 0 0 999px rgba(10,26,47,.45), inset 0 0 0 4px var(--oro); animation: mirino 1.6s ease-in-out infinite; }
@keyframes mirino { 50% { transform: scale(1.04); } }
.sc-msg { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 14px; text-align: center; color: #fff; font-weight: 600; background: linear-gradient(transparent, rgba(0,0,0,.6)); }
.sc-carta { padding: 22px; border-radius: 22px; background: #fff; box-shadow: var(--ombra); animation: appare .4s var(--ease); }
.sc-carta h3 { font-size: 2.2rem; color: var(--blu); margin: 4px 0; }
.sc-errore { background: #FFF1EE; }
.sc-evento { margin: 0; color: var(--testo-2); font-size: .9rem; }
.sc-info { margin: 4px 0; color: var(--testo-2); }
.sc-tag { margin: 0; }
.sc-azioni { display: grid; gap: 10px; margin: 18px 0; }
.sc-az { padding: 18px; border: 0; border-radius: 16px; background: var(--ghiaccio); color: var(--blu); font-weight: 800; font-size: 1.1rem; cursor: pointer; touch-action: manipulation; }
.sc-az.si { background: #E3F6EB; color: #23804D; }
.sc-az:disabled { opacity: .5; }
.sc-pett { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-radius: 16px; background: var(--neve); }
.sc-pett b { font-family: var(--titoli); font-weight: 900; font-size: 2rem; }
.sc-cerca { margin-top: 18px; }
.sc-cerca label { display: block; font-weight: 600; font-size: .9rem; margin-bottom: 6px; }
.sc-cerca div { display: flex; gap: 8px; }
.sc-cerca input { flex: 1; min-width: 0; padding: 12px 14px; border: 1.5px solid #D3E2EF; border-radius: 12px; font: inherit; }
.sc-scelta { list-style: none; padding: 0; margin: 12px 0; display: grid; gap: 6px; }
.sc-scelta button { width: 100%; text-align: left; padding: 12px 14px; border: 0; border-radius: 12px; background: var(--neve); cursor: pointer; font: inherit; }

/* ---------- statistiche iscritti ---------- */
.isc-stat { margin-bottom: 16px; padding: 22px; border-radius: 20px; background: #fff; box-shadow: var(--ombra-s); }
.isc-stat h4 { margin: 20px 0 10px; font-family: var(--corpo); font-weight: 700; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; color: var(--testo-2); }
.isc-stat-griglia { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
@media (max-width: 900px) { .adm-rapidi, .isc-stat-griglia { grid-template-columns: 1fr; } }

/* ---------- contabilità ---------- */
.adm-blocchi { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.adm-blocco-conti .adm-icona { background: linear-gradient(135deg, #5BBF7A, #23804D); }
.ct-numeri { grid-template-columns: 1.4fr 1fr 1fr; }
.ct-cassa { background: var(--notte) !important; }
.ct-cassa b { color: #fff !important; font-size: 2.8rem !important; }
.ct-cassa span { color: #B9D3EA !important; }
.ct-schede { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 16px; }
.ct-scheda, .ct-passati { padding: 11px 16px; border: 0; border-radius: 12px; background: #fff; color: var(--blu); font: inherit; font-weight: 700; font-size: .92rem; cursor: pointer; box-shadow: var(--ombra-s); }
.ct-scheda.su, .ct-passati.su { background: var(--blu); color: #fff; }
.ct-nuovo { background: transparent; box-shadow: inset 0 0 0 2px #C9DCEC; }
.ct-bilancio { padding: 24px; border-radius: 22px; background: #fff; box-shadow: var(--ombra-s); }
.ct-testa { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; margin-bottom: 14px; }
.ct-testa h2 { margin: 0; font-size: clamp(1.8rem, 4vw, 2.6rem); color: var(--notte); }
.ct-netto { text-align: right; padding: 10px 18px; border-radius: 14px; background: #E3F6EB; }
.ct-netto span { display: block; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; color: #23804D; }
.ct-netto b { font-family: var(--titoli); font-weight: 900; font-size: 2rem; color: #1B6A3E; }
.ct-netto.neg { background: #FFE4E0; } .ct-netto.neg span, .ct-netto.neg b { color: #9E2A14; }
.ct-quote { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; padding: 12px 16px; border-radius: 14px; background: #FFF4DA; font-size: .92rem; }
.ct-quote em { font-style: normal; font-weight: 700; color: #23804D; }
.ct-aggiungi { display: block; width: 100%; margin-bottom: 16px; padding: 14px; border: 2px dashed #A9C9E3; border-radius: 14px; background: none; color: var(--azzurro); font-weight: 700; font-size: 1rem; cursor: pointer; }
.ct-aggiungi:hover { background: var(--neve); border-color: var(--arancio); }
.ct-form { margin-bottom: 18px; padding: 18px; border-radius: 16px; background: var(--neve); box-shadow: inset 0 0 0 1.5px #DCE8F2; }
.ct-tipo { max-width: 360px; margin-bottom: 12px; }
.ct-tipo input[value=uscita]:checked + span { border-color: #D6452B; background: #FFF1EE; color: #B2331B; box-shadow: none; }
.ct-tipo input[value=entrata]:checked + span { border-color: #3BAA6B; background: #E3F6EB; color: #23804D; box-shadow: none; }
.ct-campi { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.ct-c { display: flex; flex-direction: column; gap: 5px; font-weight: 600; font-size: .85rem; }
.ct-c.ct-largo { grid-column: span 2; }
.ct-c input, .ct-c select { padding: 11px 12px; border: 1.5px solid #D3E2EF; border-radius: 10px; font: inherit; font-weight: 400; background: #fff; }
.ct-c input:focus, .ct-c select:focus { outline: none; border-color: var(--arancio); }
.ct-form-azioni { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 14px; }
.ct-form .form-errore { margin: 10px 0 0; }
.ct-colonne { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ct-col { border-radius: 16px; overflow: hidden; box-shadow: inset 0 0 0 1px #E3ECF4; }
.ct-col-testa { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; color: #fff; }
.ct-uscita .ct-col-testa { background: linear-gradient(90deg, #D6452B, #E57A63); }
.ct-entrata .ct-col-testa { background: linear-gradient(90deg, #23804D, #5BBF7A); }
.ct-col-testa h3 { margin: 0; color: #fff; font-size: 1.5rem; }
.ct-col-testa b { font-family: var(--titoli); font-weight: 900; font-size: 1.8rem; }
.ct-sotto { margin: 12px 16px 4px; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--testo-2); }
.ct-lista { list-style: none; margin: 0; padding: 4px 8px 8px; }
.ct-riga { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 9px 8px; border-bottom: 1px dashed #E3ECF4; cursor: pointer; border-radius: 8px; }
.ct-riga:hover, .ct-riga:focus-visible { background: var(--neve); }
.ct-riga:last-child { border-bottom: 0; }
.ct-desc { min-width: 0; }
.ct-desc b { font-weight: 600; font-size: .95rem; }
.ct-desc small { display: block; font-size: .78rem; color: var(--testo-2); }
.ct-chi { display: inline-block; margin-right: 6px; padding: 0 8px; border-radius: 99px; background: var(--ghiaccio); color: var(--blu); font-weight: 700; }
.ct-nota { color: var(--azzurro); cursor: help; }
.ct-imp { font-family: var(--titoli); font-weight: 800; font-size: 1.2rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ct-auto { background: #F4F8FC; }
.ct-auto .ct-desc small { color: var(--azzurro); }
.ct-vuoto { padding: 10px 8px; color: var(--testo-2); font-size: .9rem; }
.ct-persone { margin-top: 18px; padding: 16px; border-radius: 16px; background: var(--neve); }
.ct-persone h4 { margin: 0 0 8px; font-family: var(--corpo); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--testo-2); }
.ct-persone ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 6px 16px; }
.ct-persone li b { margin-right: 6px; }
.ct-persone li span { color: var(--testo-2); font-size: .9rem; }
@media (max-width: 900px) {
  .ct-numeri { grid-template-columns: 1fr 1fr; } .ct-cassa { grid-column: span 2; }
  .ct-colonne { grid-template-columns: 1fr; }
  .ct-campi { grid-template-columns: 1fr 1fr; }
  .ct-bilancio { padding: 16px; }
}

.ct-lucchetto { max-width: 460px; margin: 20px auto; padding: 34px 28px; border-radius: 22px; background: #fff; box-shadow: var(--ombra); text-align: center; }
.ct-lucchetto-icona { display: block; font-size: 3rem; margin-bottom: 6px; }
.ct-lucchetto h2 { color: var(--blu); font-size: 2rem; }
.ct-lucchetto p { color: var(--testo-2); }
.ct-lucchetto form { display: flex; gap: 8px; margin-top: 14px; }
.ct-lucchetto input { flex: 1; min-width: 0; padding: 14px 16px; border: 1.5px solid #D3E2EF; border-radius: 12px; font: inherit; background: var(--neve); }
.ct-lucchetto input:focus { outline: none; border-color: var(--arancio); background: #fff; }

/* ---------- chi sei ---------- */
.adm-chi { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 14px; padding: 12px 16px; border-radius: 14px; background: #fff; box-shadow: var(--ombra-s); font-size: .95rem; }
.adm-chi:empty { display: none; }
.adm-chi > span { margin-right: 6px; }
.adm-rapidi { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.adm-blocco-todo .adm-icona { background: linear-gradient(135deg, var(--cielo), var(--blu)); }

/* ---------- cose da fare ---------- */
.td-avanz { min-width: 200px; text-align: right; }
.td-avanz b { font-family: var(--titoli); font-weight: 900; font-size: 2.2rem; color: var(--blu); }
.td-avanz b small { font-size: .55em; color: var(--testo-2); }
.td-avanz span { display: block; font-size: .85rem; color: var(--testo-2); }
.td-avanz em { color: #B2331B; font-style: normal; font-weight: 700; }
.td-avanz i { display: block; height: 8px; margin-top: 6px; border-radius: 8px; background: #EEF3F8; overflow: hidden; }
.td-avanz s { display: block; height: 100%; background: linear-gradient(90deg, #5BBF7A, #23804D); border-radius: 8px; transition: width .6s var(--ease); }
.td-filtri { display: inline-flex; margin-bottom: 14px; }
.td-gruppo { margin-bottom: 18px; }
.td-gruppo h3 { font-size: 1.3rem; color: var(--blu); margin: 0 0 8px; }
.td-gruppo h3 small { font-family: var(--corpo); font-size: .8rem; color: var(--testo-2); font-weight: 600; }
.td-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.td-riga { display: flex; align-items: flex-start; gap: 12px; padding: 10px 12px; border-radius: 14px; background: var(--neve); transition: background .25s, opacity .25s; }
.td-riga.fatto { opacity: .6; }
.td-riga.fatto .td-testo b { text-decoration: line-through; }
.td-riga.ritardo { background: #FFF1EE; box-shadow: inset 3px 0 0 #D6452B; }
.td-spunta { position: relative; flex: none; width: 30px; height: 30px; margin-top: 1px; cursor: pointer; }
.td-spunta input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.td-spunta i { position: absolute; inset: 0; border-radius: 9px; border: 2px solid #A9C9E3; background: #fff; transition: all .25s var(--molla); pointer-events: none; }
.td-spunta i::after { content: ''; position: absolute; left: 9px; top: 4px; width: 7px; height: 13px; border: solid #fff; border-width: 0 3px 3px 0; transform: rotate(45deg) scale(0); transition: transform .25s var(--molla); }
.td-spunta input:checked + i { background: #3BAA6B; border-color: #3BAA6B; }
.td-spunta input:checked + i::after { transform: rotate(45deg) scale(1); }
.td-spunta input:focus-visible + i { outline: 3px solid var(--oro); outline-offset: 2px; }
.td-testo { flex: 1; min-width: 0; padding: 0; border: 0; background: none; text-align: left; font: inherit; cursor: pointer; color: var(--testo); }
.td-testo b { display: block; font-weight: 600; line-height: 1.3; }
.td-testo small { display: flex; flex-wrap: wrap; gap: 6px 10px; margin-top: 3px; font-size: .8rem; color: var(--testo-2); }
.td-riga.ritardo .td-scad { color: #B2331B; font-weight: 700; }
.td-nessuno { color: #9DBAD3; font-style: italic; }
.td-nota { color: var(--azzurro); }
.td-nuovo input, .td-nuovo-gruppo input { width: 100%; padding: 10px 12px; border: 1.5px dashed #C9DCEC; border-radius: 12px; background: transparent; font: inherit; }
.td-nuovo input:focus, .td-nuovo-gruppo input:focus { outline: none; border-style: solid; border-color: var(--arancio); background: #fff; }
.td-nuovo-gruppo { margin-top: 10px; }
.td-modifica { display: block; background: #fff; box-shadow: inset 0 0 0 2px var(--arancio); }
.td-modifica form > input { width: 100%; padding: 10px 12px; border: 1.5px solid #D3E2EF; border-radius: 10px; font: inherit; font-weight: 600; }
.td-campi { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 10px; }
.td-campi label { display: flex; flex-direction: column; gap: 4px; font-size: .8rem; font-weight: 600; }
.td-campi input { padding: 9px 10px; border: 1.5px solid #D3E2EF; border-radius: 10px; font: inherit; font-weight: 400; }
.td-campi .td-largo { grid-column: 1 / -1; }
.td-azioni { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 10px; }
.td-vuota { text-align: center; padding: 20px 10px; }
.td-vuota h2 { color: var(--blu); }
.td-vuota .btn, .td-vuota .isc-btn { margin: 6px; }
.td-copia { margin: 10px 0; }
.td-copia select { padding: 10px 14px; border-radius: 12px; border: 1.5px solid #D3E2EF; font: inherit; }

/* ---------- registro ---------- */
.rg-filtri { display: flex; flex-wrap: wrap; gap: 6px; }
.rg-filtri button { border: 0; padding: 8px 12px; border-radius: 99px; background: #fff; box-shadow: inset 0 0 0 1.5px #D3E2EF; font: inherit; font-size: .85rem; font-weight: 600; cursor: pointer; color: var(--testo-2); }
.rg-filtri button.su { background: var(--blu); color: #fff; box-shadow: none; }
.rg-giorno { margin: 18px 0 8px; font-size: 1.2rem; color: var(--blu); }
.rg-voci { list-style: none; margin: 0; padding: 0; border-radius: 16px; background: #fff; box-shadow: var(--ombra-s); overflow: hidden; }
.rg-voci li { display: grid; grid-template-columns: 48px 30px 1fr; align-items: start; gap: 8px; padding: 10px 14px; border-bottom: 1px solid #EEF3F8; }
.rg-voci li:last-child { border: 0; }
.rg-ora { font-family: var(--titoli); font-weight: 800; color: var(--testo-2); font-variant-numeric: tabular-nums; }
.rg-icona { font-size: 1.1rem; }
.rg-testo { min-width: 0; overflow-wrap: anywhere; }
.rg-testo small { display: block; margin-top: 2px; font-size: .78rem; color: var(--testo-2); }
@media (max-width: 700px) { .td-campi { grid-template-columns: 1fr 1fr; } }

/* ---------- confronto anni ---------- */
.ct-conf-tit { margin: 24px 0 10px; font-size: 1.6rem; color: var(--notte); }
.ct-conf-griglia { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.ct-conf-griglia h4 { margin: 0 0 6px; font-family: var(--corpo); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--testo-2); }
.ct-grafico { height: 150px; }
.ct-grafico .pr-colonna i { max-width: 46px; }
.ct-grafico .pr-colonna em { font-size: .7rem; }
.ct-grafico small { font-size: .8rem !important; font-weight: 700; }
.ct-b-e .pr-colonna i { background: #3BAA6B; }
.ct-b-u .pr-colonna i { background: #D6452B; }
.ct-b-n .pr-colonna i { background: var(--azzurro); }
.ct-b-n.neg .pr-colonna i { background: #B2331B; }
.ct-voci { margin-top: 14px; }
.ct-voci summary { cursor: pointer; font-weight: 700; color: var(--blu); }
.ct-tab-scroll { overflow-x: auto; margin-top: 10px; }
.ct-voci table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.ct-voci th, .ct-voci td { padding: 7px 10px; border-bottom: 1px solid #EEF3F8; text-align: right; white-space: nowrap; }
.ct-voci th:first-child, .ct-voci td:first-child { text-align: left; white-space: normal; }
.su-giu { font-size: .7rem; } .su-giu.su { color: #B2331B; } .su-giu.giu { color: #23804D; }
@media (max-width: 900px) { .ct-conf-griglia { grid-template-columns: 1fr; } }
