/* Area partner: eredita font e colori del tema; nessun colore di prenotazione (giallo) qui. */
.vsb-pa { --vsb-pa-line: color-mix(in srgb, currentColor 18%, transparent); }
.vsb-pa h2 { margin-top: 0; }
.vsb-pa-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; align-items: baseline; }
.vsb-pa-head p { margin: 0; }
.vsb-pa-section { margin-top: 2.5rem; }
.vsb-pa-linkrow { display: flex; flex-wrap: wrap; gap: .5rem; }
.vsb-pa-linkrow input { flex: 1 1 16rem; min-width: 0; font: inherit; padding: .6rem .75rem; border: 1px solid var(--vsb-pa-line); border-radius: .5rem; background: transparent; color: inherit; }
.vsb-pa-btn { font: inherit; font-weight: 600; padding: .6rem 1rem; border: 1px solid currentColor; border-radius: .5rem; background: transparent; color: inherit; cursor: pointer; }
.vsb-pa-btn:focus-visible, .vsb-pa-linkrow input:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.vsb-pa-status { min-height: 1.5em; margin: .5rem 0 0; font-size: .9em; }
.vsb-pa-qr { margin: 1rem 0 0; }
.vsb-pa-qr [data-vsb-qr] { width: 11rem; max-width: 100%; }
.vsb-pa-qr svg { display: block; width: 100%; height: auto; }
.vsb-pa-qr figcaption { margin-top: .5rem; font-size: .9em; }
.vsb-pa-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: .75rem; margin: 0 0 1.5rem; }
.vsb-pa-tiles div { border: 1px solid var(--vsb-pa-line); border-radius: .75rem; padding: .9rem 1rem; }
.vsb-pa-tiles dt { font-size: .85em; opacity: .8; }
.vsb-pa-tiles dd { margin: .25rem 0 0; font-size: 1.4em; font-weight: 700; font-variant-numeric: tabular-nums; }
.vsb-pa-table { overflow-x: auto; }
.vsb-pa-table:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.vsb-pa table { width: 100%; border-collapse: collapse; font-size: .95em; }
.vsb-pa-note { font-size: .9em; margin: 0 0 .5rem; }
.vsb-pa th, .vsb-pa td { text-align: left; padding: .55rem .6rem; border-bottom: 1px solid var(--vsb-pa-line); vertical-align: top; }
.vsb-pa th.num, .vsb-pa td.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.vsb-pa #vsb-pa-login p { margin: 0 0 .75rem; }
.vsb-pa #vsb-pa-login label { display: block; font-weight: 600; margin-bottom: .25rem; }
.vsb-pa #vsb-pa-login .login-remember label { display: inline; font-weight: 400; }
.vsb-pa #vsb-pa-login input[type="text"], .vsb-pa #vsb-pa-login input[type="password"] { width: 100%; max-width: 22rem; font: inherit; padding: .6rem .75rem; border: 1px solid var(--vsb-pa-line); border-radius: .5rem; }
.vsb-pa #vsb-pa-login input[type="submit"] { font: inherit; font-weight: 600; padding: .6rem 1.25rem; border: 1px solid currentColor; border-radius: .5rem; background: transparent; color: inherit; cursor: pointer; }

/* telefono: ogni riga diventa una scheda, con il nome della colonna davanti al valore */
@media (max-width: 40rem) {
  .vsb-pa table, .vsb-pa tbody, .vsb-pa tr, .vsb-pa td { display: block; }
  .vsb-pa thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .vsb-pa tr { border: 1px solid var(--vsb-pa-line); border-radius: .75rem; padding: .35rem .9rem; margin-bottom: .75rem; }
  .vsb-pa td, .vsb-pa td.num { display: flex; justify-content: space-between; gap: 1rem; text-align: right; white-space: normal; border-bottom: 1px solid var(--vsb-pa-line); padding: .45rem 0; }
  .vsb-pa tr td:last-child { border-bottom: 0; }
  .vsb-pa td::before { content: attr(data-label); font-weight: 600; text-align: left; flex: none; }
}
