/* Tastiera touch comune alle postazioni Moovy. */
.tv-velo{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.58);
  display:flex;align-items:center;justify-content:center;padding:12px;box-sizing:border-box}
.tv-finestra{width:min(1100px,100%);max-height:100%;overflow:auto;box-sizing:border-box;
  background:var(--surf);border:1px solid var(--surf-border);border-radius:18px;
  padding:16px 18px max(18px,env(safe-area-inset-bottom));box-shadow:0 -10px 40px rgba(0,0,0,.4)}
.tv-finestra.tv-numerica{width:min(600px,100%)}
.tv-testa{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  margin-bottom:8px;font-size:17px}
.tv-conta{color:var(--dim);font-size:13px;white-space:nowrap}
.tv-campo{min-height:54px;border:2px solid var(--accent);border-radius:12px;padding:12px 14px;
  box-sizing:border-box;font-size:20px;background:var(--surf2);margin-bottom:12px;word-break:break-word}
.tv-numerica .tv-campo{text-align:right;font-size:28px;font-variant-numeric:tabular-nums}
.tv-cursore{display:inline-block;width:2px;height:22px;background:var(--accent);
  vertical-align:middle;margin-left:1px;animation:tv-lampeggia 1s steps(1) infinite}
@keyframes tv-lampeggia{50%{opacity:0}}
.tv-tasti{display:flex;flex-direction:column;gap:8px}
.tv-riga{display:flex;gap:8px;justify-content:center}
.tv-tasto{flex:1 1 0;max-width:84px;min-width:0;height:62px;border-radius:12px;
  border:1px solid color-mix(in srgb,#2997df 45%,var(--surf-border));background:color-mix(in srgb,#2997df 16%,var(--surf));color:var(--ink);
  font-size:22px;font-weight:600;cursor:pointer;touch-action:manipulation;user-select:none}
.tv-numerica .tv-riga{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.tv-numerica .tv-tasto{max-width:none;height:clamp(54px,10dvh,84px);font-size:30px;display:flex;align-items:center;justify-content:center;
  background:color-mix(in srgb,var(--accent) 16%,var(--surf));border-color:color-mix(in srgb,var(--accent) 45%,var(--surf-border))}
.tv-numerica .tv-tasto[data-t=","]{background:color-mix(in srgb,var(--good) 20%,var(--surf));color:var(--good);border-color:var(--good)}
.tv-numerica .tv-tasto[data-t="⌫"],.tv-tasto.tv-pulisci{background:color-mix(in srgb,var(--bad) 16%,var(--surf));color:var(--bad);border-color:var(--bad)}
.tv-numerica .tv-pulisci{grid-column:1/-1;font-size:17px}
.tv-numerica .tv-tasto.tv-largo{max-width:none}
.tv-tasto:active{background:var(--accent);color:var(--on-accent)}
.tv-tasto.tv-largo{max-width:120px;flex:1.4 1 0}
.tv-tasto.su{border-color:var(--accent);color:var(--accent)}
.tv-tasto.tv-spazio{max-width:none;flex:5 1 0;font-size:16px}
.tv-tasto.tv-pulisci{max-width:none;flex:1.6 1 0;font-size:15px}
.tv-piede{display:flex;gap:12px;justify-content:flex-end;margin-top:14px}
.tv-piede .btn{min-width:150px;min-height:56px;font-size:17px;flex:1;display:flex;align-items:center;justify-content:center;text-align:center}
.tv-piede [data-a=annulla]{--pulsante-colore:var(--warn);background:color-mix(in srgb,var(--warn) 16%,var(--surf));color:var(--warn);border-color:var(--warn)}
@media(max-width:720px){
  .tv-finestra{padding:10px 8px max(10px,env(safe-area-inset-bottom))}
  .tv-riga{gap:4px}.tv-tasti{gap:4px}.tv-tasto{height:50px;font-size:18px}
  .tv-piede .btn{min-width:0;flex:1}.tv-campo{min-height:48px;margin-bottom:8px}
}

.tv-credenziali .tv-tasto{height:clamp(38px,7dvh,62px)}.tv-credenziali .tv-simboli{max-width:130px;flex:1.6 1 0;font-size:16px}
