/* HotelSystem WebApp — palette DicoHotels (dal modulo DicoHotels_Theme) */
:root {
  --borgogna-scuro: #4a1020;
  --borgogna: #6b1e2e;
  --oro: #c9a84c;
  --oro-chiaro: #e8c87d;
  --oro-pallido: #f5e8c0;
  --crema: #faf6ee;
  --avorio: #f2ead8;
  --bordo: #ddd4bb;
  --testo: #3a2e22;
  --testo-muted: #7a6e5e;
  --verde: #3a7d44;
  --rosso: #c0392b;
  --blu: #1a4a7a;
  --bianco: #fffdf9;

  --font: "Segoe UI", "Segoe UI Variable", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --raggio: 6px;
  --rail: 232px;
}

* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body {
  font-family: var(--font);
  font-size: 15px;
  line-height: 1.45;
  color: var(--testo);
  background: var(--crema);
}
button, input, select, textarea { font: inherit; color: inherit; }
[hidden] { display: none !important; }
.vis-nascosto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- struttura ---------- */
.app { display: grid; grid-template-columns: var(--rail) 1fr; min-height: 100vh; }

.rail {
  background: var(--borgogna-scuro);
  color: var(--oro-pallido);
  padding: 22px 0;
  position: sticky; top: 0; height: 100vh; overflow-y: auto;
}
.marchio { padding: 0 22px 22px; border-bottom: 1px solid rgba(201, 168, 76, .35); margin-bottom: 18px; }
.marchio-nome { display: block; font-size: 19px; font-weight: 600; letter-spacing: .01em; color: var(--oro-chiaro); }
.marchio-hotel { display: block; font-size: 13px; color: rgba(245, 232, 192, .7); margin-top: 2px; }
.rail-gruppo { margin: 0 22px 8px; font-size: 13px; color: rgba(245, 232, 192, .6); }
.rail-voci { list-style: none; margin: 0; padding: 0; }
.rail-voci a, .rail-voci span {
  display: block; padding: 8px 22px 8px 19px; border-left: 3px solid transparent;
  text-decoration: none; color: inherit; font-size: 14.5px;
}
.rail-voci a:hover { background: var(--borgogna); }
.rail-voci a.attiva { border-left-color: var(--oro); background: var(--borgogna); color: #fff; font-weight: 600; }
.rail-voci .prossima { color: rgba(245, 232, 192, .42); cursor: default; }

.contenuto { min-width: 0; padding: 24px 32px 48px; }
.vista[hidden] { display: none; }

.testata { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; position: relative; }
.testata h1 { font-size: 26px; font-weight: 600; margin: 0; color: var(--borgogna-scuro); letter-spacing: -.01em; }
.azioni-testata { margin-left: auto; display: flex; gap: 10px; position: relative; }

/* ---------- pulsanti ---------- */
.btn {
  border: 1px solid var(--bordo); background: var(--bianco); border-radius: var(--raggio);
  padding: 8px 16px; cursor: pointer; font-weight: 500; white-space: nowrap;
}
.btn:hover { border-color: var(--oro); }
.btn-primario { background: var(--borgogna); border-color: var(--borgogna); color: #fff; }
.btn-primario:hover { background: var(--borgogna-scuro); border-color: var(--borgogna-scuro); }
.btn-quieto { background: transparent; border-color: transparent; color: var(--borgogna); }
.btn-quieto:hover { background: var(--avorio); border-color: var(--avorio); }
.btn-pericolo { color: var(--rosso); }
.btn-pericolo:hover { border-color: var(--rosso); }
.btn-piccolo { padding: 4px 10px; font-size: 13.5px; }
.btn:disabled { opacity: .45; cursor: not-allowed; }
:focus-visible { outline: 2px solid var(--blu); outline-offset: 2px; }

.menu {
  position: absolute; top: calc(100% + 6px); right: 150px; z-index: 20; min-width: 260px;
  background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio);
  box-shadow: 0 8px 24px rgba(74, 16, 32, .14); padding: 6px;
}
.menu a { display: block; padding: 8px 12px; color: var(--testo); text-decoration: none; border-radius: 4px; }
.menu a:hover, .menu a:focus-visible { background: var(--avorio); }

/* ---------- campi ---------- */
.campo { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.campo label { font-size: 13px; color: var(--testo-muted); }
input:not([type=checkbox]):not([type=color]), select, textarea {
  width: 100%; border: 1px solid var(--bordo); border-radius: 4px; background: var(--bianco);
  padding: 7px 9px; min-height: 36px;
}
input:focus, select:focus, textarea:focus { border-color: var(--oro); outline: 2px solid var(--oro-pallido); outline-offset: 0; }
input.maiusc { text-transform: uppercase; }
input.maiusc::placeholder { text-transform: none; }
.mono { font-variant-numeric: tabular-nums; letter-spacing: .03em; }
.num { font-variant-numeric: tabular-nums; }
textarea { resize: vertical; }
.spunta { display: inline-flex; align-items: center; gap: 8px; font-size: 14.5px; color: var(--testo); cursor: pointer; }
.spunta input { width: 17px; height: 17px; accent-color: var(--borgogna); }
.campo-errato input, .campo-errato select { border-color: var(--rosso); }

/* ---------- ricerca ---------- */
.filtri {
  display: grid; gap: 12px 14px;
  grid-template-columns: 2fr 1.2fr 1.4fr .6fr 1.2fr 1fr 1.3fr 1.2fr;
  background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio);
  padding: 16px; margin-bottom: 14px;
}
.riga-filtri { grid-column: 1 / -1; display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.ordina { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 13px; color: var(--testo-muted); }
.ordina > span { margin-right: 4px; }
.chip {
  border: 1px solid var(--bordo); background: transparent; border-radius: 999px;
  padding: 3px 11px; font-size: 13.5px; cursor: pointer; color: var(--testo);
}
.chip[aria-pressed=true] { background: var(--oro-pallido); border-color: var(--oro); color: var(--borgogna-scuro); font-weight: 600; }
.chip .ord { font-size: 11px; margin-left: 4px; color: var(--borgogna); }
.pulsanti-filtri { margin-left: auto; display: flex; gap: 8px; }

.esito { min-height: 22px; margin: 4px 2px 8px; font-size: 14px; color: var(--testo-muted); }
.esito.errore { color: var(--rosso); }

.tabella-wrap { overflow-x: auto; background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); }
.tabella-wrap:has(table[hidden]) { border: 0; background: none; }
.elenco { width: 100%; border-collapse: collapse; font-size: 14px; }
.elenco th {
  text-align: left; font-weight: 600; font-size: 13px; color: var(--borgogna-scuro);
  background: var(--avorio); padding: 8px 10px; border-bottom: 1px solid var(--bordo);
  position: sticky; top: 0; white-space: nowrap;
}
.elenco td { padding: 7px 10px; border-bottom: 1px solid #efe8d8; white-space: nowrap; max-width: 260px; overflow: hidden; text-overflow: ellipsis; }
.elenco tbody tr { cursor: pointer; }
.elenco tbody tr:hover td { background: #fbf3df; }
.elenco tbody tr:focus-visible { outline: 2px solid var(--blu); outline-offset: -2px; }
.elenco .num { text-align: right; font-variant-numeric: tabular-nums; }
.elenco .c-tipo { width: 34px; }
.elenco .speciale td:nth-child(2)::after { content: " ★"; color: var(--oro); }

/* badge categoria: P privato, D ditta, A agenzia */
.badge-tipo {
  display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%;
  font-size: 12.5px; font-weight: 700; color: #fff; background: var(--testo-muted);
}
.badge-tipo.t-P { background: var(--blu); }
.badge-tipo.t-D { background: var(--verde); }
.badge-tipo.t-A { background: var(--borgogna); }

/* ---------- scheda ---------- */
.testata-scheda { flex-wrap: wrap; }
.titolo-scheda { display: flex; align-items: center; gap: 12px; }
.titolo-scheda .badge-tipo { width: 38px; height: 38px; font-size: 16px; }
.sottotitolo { margin: 0; font-size: 13.5px; color: var(--testo-muted); }

.schede-tab { display: flex; gap: 2px; border-bottom: 2px solid var(--bordo); margin-bottom: 16px; }
.tab {
  border: 0; background: none; padding: 9px 16px; cursor: pointer; color: var(--testo-muted);
  border-bottom: 3px solid transparent; margin-bottom: -2px; font-weight: 500;
}
.tab[aria-selected=true] { color: var(--borgogna-scuro); border-bottom-color: var(--oro); font-weight: 600; }
.tab[hidden] { display: none; }
#tabDitta { color: var(--borgogna); }
#tabDitta[aria-selected=false]::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--oro); margin-right: 7px; vertical-align: 1px; }
.riquadro-ditta {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  border: 1px solid var(--oro); border-left: 5px solid var(--oro); border-radius: var(--raggio);
  background: #fbf3df; padding: 12px 16px; margin: 0 0 14px;
}
.riquadro-testo { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.riquadro-testo strong { color: var(--borgogna-scuro); font-size: 15px; }
.riquadro-testo span { color: var(--testo-muted); font-size: 14px; }
.scheda-P .solo-dittaagenzia { display: none; }

.pannello[hidden] { display: none; }
.gruppo {
  border: 1px solid var(--bordo); border-radius: var(--raggio); background: var(--bianco);
  padding: 12px 16px 16px; margin: 0 0 14px;
}
.gruppo legend { padding: 0 6px; font-weight: 600; font-size: 14px; color: var(--borgogna); }
.griglia { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 12px 14px; }
.griglia > .campo { grid-column: span 2; }
.griglia > .campo.stretto { grid-column: span 1; }
.griglia > .campo.largo2 { grid-column: span 3; }
.griglia > .campo.intero { grid-column: 1 / -1; }
.campo.spunte { flex-direction: row; flex-wrap: wrap; align-items: flex-end; gap: 6px 20px; padding-bottom: 8px; }
.nota-pannello { margin: 0 0 12px; font-size: 14px; color: var(--testo-muted); }
.nota-pannello:empty { display: none; }
.colore { display: flex; align-items: center; gap: 8px; }
.colore input[type=color] { width: 54px; height: 36px; border: 1px solid var(--bordo); border-radius: 4px; padding: 2px; background: var(--bianco); }
.colore.vuoto input[type=color] { opacity: .35; }

/* privato / ditta / agenzia */
.scheda-P .schede-tab { display: none; }
.scheda-P .solo-agenzia, .scheda-D .solo-agenzia { display: none; }
.scheda-D .solo-privato, .scheda-A .solo-privato { display: none; }

/* suggerimenti località */
.con-suggerimenti { position: relative; }
.suggerimenti {
  position: absolute; top: 100%; left: 0; right: 0; z-index: 30; margin: 2px 0 0; padding: 4px; list-style: none;
  background: var(--bianco); border: 1px solid var(--bordo); border-radius: 4px;
  box-shadow: 0 8px 24px rgba(74, 16, 32, .14); max-height: 280px; overflow-y: auto;
}
.suggerimenti li { padding: 6px 8px; border-radius: 3px; cursor: pointer; display: flex; gap: 10px; }
.suggerimenti li .dett { margin-left: auto; color: var(--testo-muted); font-variant-numeric: tabular-nums; font-size: 13px; }
.suggerimenti li[aria-selected=true], .suggerimenti li:hover { background: var(--oro-pallido); }

/* avvisi */
.avvisi:empty { display: none; }
.avvisi { margin: -4px 0 14px; display: grid; gap: 6px; }
.avviso { padding: 8px 12px; border-radius: 4px; font-size: 14px; border-left: 4px solid var(--oro); background: #fbf3df; }
.avviso.errore { border-left-color: var(--rosso); background: #fbeceb; color: #7d231a; white-space: pre-line; }

/* dialogo e toast */
.dialogo { border: 1px solid var(--bordo); border-radius: 8px; padding: 22px 24px; max-width: 440px; color: var(--testo); background: var(--bianco); }
.dialogo::backdrop { background: rgba(58, 46, 34, .35); }
.dialogo h2 { margin: 0 0 8px; font-size: 18px; color: var(--borgogna-scuro); }
.dialogo p { margin: 0 0 18px; }
.dialogo-azioni { display: flex; justify-content: flex-end; gap: 8px; }
.toast {
  position: fixed; bottom: 22px; left: 50%; transform: translateX(-50%); z-index: 50;
  background: var(--borgogna-scuro); color: var(--oro-pallido); padding: 10px 18px; border-radius: 6px;
  box-shadow: 0 8px 24px rgba(74, 16, 32, .25);
}

/* ---------- schermi stretti ---------- */
@media (max-width: 1200px) {
  .filtri { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .griglia { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .griglia > .campo.largo2 { grid-column: span 4; }
}
@media (max-width: 760px) {
  .app { grid-template-columns: 1fr; }
  .rail { position: static; height: auto; padding: 12px 0; }
  .rail-voci { display: flex; overflow-x: auto; }
  .rail-voci .prossima, .rail-gruppo { display: none; }
  .marchio { padding-bottom: 10px; margin-bottom: 8px; }
  .contenuto { padding: 16px; }
  .filtri { grid-template-columns: 1fr 1fr; }
  .filtri .campo.largo { grid-column: 1 / -1; }
  .griglia { grid-template-columns: 1fr 1fr; }
  .griglia > .campo, .griglia > .campo.largo2 { grid-column: 1 / -1; }
  .griglia > .campo.stretto { grid-column: span 1; }
  .menu { right: 0; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

/* ---------- camere ---------- */
.filtri-camere { grid-template-columns: .8fr 2fr .7fr 1.4fr 1.6fr; }
.gruppo-camere { margin: 0 0 22px; }
.gruppo-camere h2 {
  font-size: 15px; font-weight: 600; color: var(--borgogna-scuro); margin: 0 0 10px;
  padding-bottom: 6px; border-bottom: 1px solid var(--bordo); display: flex; align-items: baseline; gap: 8px;
}
.gruppo-camere h2 .conta { font-weight: 400; font-size: 13px; color: var(--testo-muted); }
.tessere { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.tessera {
  position: relative; display: flex; flex-direction: column; gap: 2px; min-height: 104px;
  padding: 10px 12px 10px 14px; text-decoration: none; color: var(--testo);
  background: var(--bianco); border: 1px solid var(--bordo); border-left: 4px solid var(--borgogna);
  border-radius: var(--raggio);
}
.tessera:hover { border-color: var(--oro); border-left-color: var(--borgogna); background: #fffaf0; }
.tessera:focus-visible { outline: 2px solid var(--blu); outline-offset: 2px; }
.tessera-over { border-left-color: var(--oro); background: #fdf8ec; }
.t-numero { font-size: 24px; font-weight: 600; line-height: 1.1; color: var(--borgogna-scuro); font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.tessera-over .t-numero { font-size: 18px; }
.t-classe { font-size: 13.5px; font-weight: 600; }
.t-dett { font-size: 12.5px; color: var(--testo-muted); }
.t-over { font-size: 12px; color: #8a6a12; }
.t-supp { display: flex; flex-wrap: wrap; gap: 3px; margin-top: 4px; }
.tag { font-size: 11px; padding: 1px 6px; border-radius: 3px; background: var(--avorio); color: var(--borgogna-scuro); font-weight: 600; letter-spacing: .02em; }
.t-stato { position: absolute; top: 9px; right: 10px; font-size: 11.5px; color: var(--testo-muted); }
.badge-camera {
  display: inline-grid; place-items: center; min-width: 54px; height: 44px; padding: 0 8px; border-radius: 6px;
  background: var(--borgogna-scuro); color: var(--oro-chiaro); font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums;
}
.supplementi { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px 18px; }
.supplementi .cod { font-size: 11.5px; color: var(--testo-muted); }
input.sola-lettura, input[readonly] { background: var(--avorio); color: var(--testo-muted); }

/* ---------- tipologie ---------- */
.colonne-tipologie { display: grid; grid-template-columns: minmax(0, 3fr) minmax(240px, 1fr); gap: 16px; align-items: start; }
.colonne-tipologie > * { min-width: 0; }
.titolo-sezione { font-size: 16px; font-weight: 600; color: var(--borgogna); margin: 0 0 4px; }
.elenco-modifica td { overflow: visible; max-width: none; padding: 5px 6px; }
.elenco-modifica tbody tr { cursor: default; }
.elenco-modifica tbody tr:hover td { background: transparent; }
.elenco-modifica input:not([type=checkbox]), .elenco-modifica select { min-height: 32px; padding: 4px 7px; }
.elenco-modifica tfoot td { background: var(--avorio); border-top: 2px solid var(--bordo); }
.azioni-riga { white-space: nowrap; display: flex; gap: 4px; justify-content: flex-end; }
.lista-tipi { list-style: none; margin: 8px 0 12px; padding: 0; }
.lista-tipi li { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-bottom: 1px solid #efe8d8; }
.lista-tipi .nome-tipo { font-weight: 600; }
.lista-tipi .conta { font-size: 13px; color: var(--testo-muted); margin-right: auto; }
.aggiungi-tipo { display: flex; gap: 8px; }

@media (max-width: 1200px) {
  .filtri-camere { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .colonne-tipologie { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .testata { flex-wrap: wrap; }
  .azioni-testata { flex-wrap: wrap; }
  .filtri-camere { grid-template-columns: 1fr 1fr; }
  .tessere { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
}

.aiuto { font-size: 12.5px; color: var(--testo-muted); min-height: 1em; }
.aiuto .btn-piccolo { padding: 1px 8px; margin-left: 4px; }
.errore-testo { color: var(--rosso); }
.elenco-modifica .aiuto { display: block; margin-top: 2px; max-width: 200px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---------- articoli ---------- */
.filtri-articoli { grid-template-columns: 2.4fr 1.4fr 1.4fr 1fr; }
.elenco td.desc { white-space: normal; min-width: 220px; }
.elenco .si { color: var(--verde); font-weight: 600; }
.elenco-modifica td input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--borgogna); }
@media (max-width: 1200px) { .filtri-articoli { grid-template-columns: 1fr 1fr; } }

/* ---------- listini ---------- */
.listini-layout { display: grid; grid-template-columns: 215px minmax(0, 1fr); gap: 16px; align-items: start; }
.listini-elenco { background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); padding: 10px; position: sticky; top: 12px; max-height: calc(100vh - 120px); overflow: auto; }
.voci-listini { list-style: none; margin: 8px 0 0; padding: 0; }
.voci-listini button {
  width: 100%; text-align: left; border: 0; background: none; padding: 7px 9px; border-radius: 4px; cursor: pointer;
  display: grid; grid-template-columns: 1fr auto; gap: 0 8px;
}
.voci-listini button:hover { background: var(--avorio); }
.voci-listini button[aria-current=true] { background: var(--borgogna); color: #fff; }
.voci-listini .nome { font-weight: 600; white-space: pre; overflow: hidden; text-overflow: ellipsis; }
.voci-listini .info { grid-column: 1 / -1; font-size: 12px; color: var(--testo-muted); }
.voci-listini button[aria-current=true] .info { color: var(--oro-pallido); }
.voci-listini .ag { font-size: 12px; color: var(--testo-muted); }
.voci-listini button[aria-current=true] .ag { color: var(--oro-chiaro); }
.listini-dettaglio { min-width: 0; }
.listino-testata { display: flex; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.titolo-listino { margin: 0; font-size: 21px; color: var(--borgogna-scuro); white-space: pre; }
.periodi { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.periodo {
  border: 1px solid var(--bordo); background: var(--bianco); border-radius: 4px; padding: 5px 10px; cursor: pointer;
  font-variant-numeric: tabular-nums; font-size: 14px;
}
.periodo[aria-selected=true] { background: var(--borgogna-scuro); border-color: var(--borgogna-scuro); color: var(--oro-chiaro); font-weight: 600; }
.filtro-righe { margin-bottom: 10px; }
.tab-listino td, .tab-listino th { white-space: nowrap; }
.tab-listino input.num { width: 68px; padding-left: 4px; padding-right: 4px; }
.tab-listino select { min-width: 64px; width: 64px; padding-left: 4px; padding-right: 2px; }
.tab-listino td { padding: 5px 5px; }
.tab-listino .tratt { white-space: normal; min-width: 110px; }
.tab-listino td.azioni-riga { display: table-cell; text-align: right; }
.tab-listino td.azioni-riga .btn { display: block; width: 100%; margin: 2px 0; }
.tab-listino .unita { margin-left: 1px; }
.tab-listino .gruppo-riga td { background: var(--avorio); font-weight: 600; color: var(--borgogna); font-size: 13px; padding: 6px 10px; }
.tab-listino .unita { font-size: 12px; color: var(--testo-muted); margin-left: 3px; }
.tab-listino .tratt { font-weight: 600; }
.tab-listino .tratt small { display: block; font-weight: 400; color: var(--testo-muted); font-size: 12px; }
.tab-stagione td.num, .tab-stagione th.num { text-align: right; }
.tab-stagione td.vuoto { color: #c9bfa8; text-align: center; }
.tab-stagione th.sel { background: var(--oro-pallido); }
.griglia-dialogo { display: grid; gap: 12px; margin: 10px 0 14px; min-width: 300px; }
.dialogo .avviso.errore { margin: 0 0 12px; }
@media (max-width: 900px) {
  .listini-layout { grid-template-columns: minmax(0, 1fr); }
  .listini-elenco { position: static; max-height: 260px; }
}
.tab-listino select#nl_CodTratt { width: 100%; min-width: 120px; }

/* ---------- listino extra ---------- */
.filtri-le { grid-template-columns: minmax(0, 420px); padding: 10px 14px; }
#tabLE input.num { width: 96px; }
#tabLE tfoot input:not(.num) { width: 100%; }
#tabLE .orfano td { color: var(--rosso); }
.voci-listini .spento .nome { color: var(--testo-muted); }
.prezzi-reparti { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 10px; }
.prezzi-reparti a { display: inline-flex; gap: 8px; padding: 4px 10px; border: 1px solid var(--bordo); border-radius: 4px; text-decoration: none; color: var(--testo); background: var(--bianco); }
.prezzi-reparti a:hover { border-color: var(--oro); }
.prezzi-reparti .p { font-variant-numeric: tabular-nums; font-weight: 600; color: var(--borgogna-scuro); }
#dlgCopiaReparto .campo { margin-bottom: 14px; }
.elenco a { color: var(--borgogna-scuro); text-decoration: none; font-weight: 500; }
.elenco a:hover, .elenco a:focus-visible { text-decoration: underline; }

/* ---------- funzioni di servizio ---------- */
.gruppo-controlli h2 { font-size: 15px; color: var(--borgogna); margin: 18px 0 8px; }
.controllo { background: var(--bianco); border: 1px solid var(--bordo); border-left: 4px solid var(--bordo); border-radius: var(--raggio); padding: 12px 14px; margin-bottom: 10px; }
.controllo.ok { border-left-color: var(--verde); }
.controllo.trovati { border-left-color: var(--oro); }
.controllo.errore { border-left-color: var(--rosso); }
.controllo-testa { display: flex; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.controllo-testa .testo { flex: 1; min-width: 240px; }
.controllo-testa h3 { margin: 0 0 3px; font-size: 15.5px; }
.controllo-testa p { margin: 0; font-size: 13.5px; color: var(--testo-muted); }
.esito-controllo { font-size: 13.5px; font-weight: 600; white-space: nowrap; padding-top: 2px; }
.ok .esito-controllo { color: var(--verde); }
.trovati .esito-controllo { color: #8a6a12; }
.errore .esito-controllo { color: var(--rosso); }
.controllo .dettaglio { margin-top: 10px; }
.controllo .dettaglio .tabella-wrap { max-height: 320px; overflow: auto; }
.controllo .spiegazione { font-size: 13.5px; margin: 8px 0; }
code { background: var(--avorio); padding: 1px 5px; border-radius: 3px; font-size: 13px; }

/* ---------- menu a macroaree ---------- */
.aree { display: flex; flex-direction: column; }
.area { border-bottom: 1px solid rgba(201, 168, 76, .18); }
.area-titolo {
  width: 100%; display: flex; align-items: center; gap: 8px; border: 0; background: none; cursor: pointer;
  padding: 11px 22px; color: var(--oro-pallido); font-size: 14px; font-weight: 600; text-align: left;
}
.area-titolo:hover { background: rgba(107, 30, 46, .6); }
.area-titolo:focus-visible { outline: 2px solid var(--oro); outline-offset: -2px; }
.area-titolo .freccia { margin-left: auto; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform .15s; opacity: .7; }
.area-titolo[aria-expanded=true] .freccia { transform: rotate(45deg); }
.area.contiene-attiva .area-titolo { color: var(--oro-chiaro); }
.area .rail-voci { padding-bottom: 6px; }
.area .rail-voci a, .area .rail-voci span { padding-left: 31px; font-size: 14px; }
.area-futura .area-titolo { color: rgba(245, 232, 192, .55); font-weight: 500; }
.area-titolo[aria-expanded=false] + .rail-voci { display: none; }
@media (max-width: 760px) {
  .area .rail-voci { display: block; overflow: visible; }
  .area .rail-voci .prossima { display: block; }
  .area-futura { display: none; }
}
@media (prefers-reduced-motion: reduce) { .area-titolo .freccia { transition: none; } }

/* ---------- contratti agenzie ---------- */
.riquadro-azioni { display: flex; gap: 8px; flex-wrap: wrap; }
a.btn { text-decoration: none; display: inline-flex; align-items: center; color: var(--testo); }
.tab-contratto input.num { width: 50px; }
.tab-contratto input[type=date] { width: 126px; padding-left: 4px; padding-right: 2px; }
.tab-contratto select { width: 108px; min-width: 96px; }
.tab-contratto select.sel-giorno { width: 92px; min-width: 86px; }
.tab-contratto input[data-f=Note], #ncr_Note { width: 100%; min-width: 80px; }
.tab-contratto td.azioni-riga { min-width: 74px; }
#ctLinkScheda { color: var(--borgogna); font-weight: 500; }
#ctLinkScheda:hover { color: var(--borgogna-scuro); }
.tab-contratto td.posti { text-align: right; color: var(--testo-muted); min-width: 44px; }
.tab-contratto tr.doppia td { background: #fbf3df; }
.tab-contratto tr.doppia .avviso-doppia { display: block; font-size: 12px; color: #8a6a12; white-space: normal; }
.voci-listini .orfana .nome { color: var(--rosso); }
.dialogo-largo { max-width: 560px; }
.campo-largo { grid-column: 1 / -1; }
#dlgContratto .griglia-dialogo { grid-template-columns: 1fr 1fr; }
#dlgContratto .campo-largo select { margin-top: 6px; }
#dlgContratto p.nota-pannello { margin: 0; }
.filtri-contingenti { grid-template-columns: minmax(0, 200px) auto; align-items: end; padding: 10px 14px; }
.tab-contingenti tbody tr { cursor: pointer; }
.tab-contingenti td.num, .tab-contingenti th.num { text-align: right; }
.tab-contingenti tfoot td { font-weight: 600; background: var(--avorio); border-top: 2px solid var(--bordo); }
.tab-contingenti .orfana td:first-child { color: var(--rosso); }
@media (max-width: 560px) {
  #dlgContratto .griglia-dialogo { grid-template-columns: 1fr; }
  .filtri-contingenti { grid-template-columns: 1fr; }
}

/* ---------- planning camere (MainLayout) ---------- */
.vista-planning { display: flex; flex-direction: column; height: calc(100vh - 72px); min-height: 480px; }
.btn-icona { padding: 6px 10px; min-width: 36px; font-size: 16px; line-height: 1.2; }
.pl-barra { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.pl-titolo { display: flex; flex-direction: column; margin-right: 6px; }
.pl-titolo h1 { margin: 0; font-size: 22px; font-weight: 600; color: var(--borgogna-scuro); letter-spacing: -.01em; }
.pl-periodo { font-size: 12.5px; color: var(--testo-muted); }
.pl-nav, .pl-strumenti, .pl-zoom { display: flex; align-items: center; gap: 6px; }
.pl-nav { flex-wrap: wrap; }
.pl-nav input[type=date] { width: 150px; }
.pl-nav select { width: auto; }
.pl-cerca { position: relative; flex: 1 1 340px; display: flex; gap: 6px; min-width: 260px; }
.pl-cerca input { flex: 1; min-width: 0; }
.pl-cerca select { width: 200px; flex: none; }
.pl-strumenti { margin-left: auto; flex-wrap: wrap; }
.pl-zoom span { min-width: 44px; text-align: center; font-size: 13px; color: var(--testo-muted); }
.pl-risultati {
  position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 30; max-height: 380px; overflow: auto; padding: 4px;
  background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); box-shadow: 0 10px 28px rgba(74, 16, 32, .16);
}
.pl-risultati button { display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; border: 0; background: transparent; padding: 7px 8px; border-radius: 4px; cursor: pointer; }
.pl-risultati button:hover, .pl-risultati button:focus-visible { background: var(--avorio); }
.pl-risultati button span:last-child { margin-left: auto; font-size: 12.5px; color: var(--testo-muted); white-space: nowrap; }
.pl-risultati .nuovo { color: var(--borgogna); font-weight: 600; }
.ps-stato { display: inline-block; min-width: 22px; padding: 1px 7px; border-radius: 9px; font-size: 11.5px; font-weight: 700; text-align: center; background: #e6dfd0; color: var(--testo); }
.ps-stato.t-P { background: #f5db7f; color: #3a2e22; }
.ps-stato.t-O { background: var(--blu); color: #fff; }
.ps-stato.t-A { background: var(--verde); color: #fff; }
.ps-stato.t-E { background: #c0c0c0; color: #2a2018; }
.ps-stato.t-X { background: #000; color: #ffd400; }

.pl-filtri { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin: 10px 0 0; padding: 9px 14px; background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); font-size: 14px; }
.pl-f { display: inline-flex; align-items: center; gap: 6px; color: var(--testo); }
.pl-f select, .pl-f input { width: auto; min-height: 32px; padding: 4px 8px; }
.pl-f.segmenti label { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; }
.pl-f.segmenti input { accent-color: var(--borgogna); }
.pl-f-tit { font-size: 13px; color: var(--testo-muted); }
.pl-legenda { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 8px; padding: 8px 14px; background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); font-size: 13px; }
.pl-legenda i { display: inline-block; width: 22px; height: 12px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .14); }
.pl-legenda i.lg-coll { background: repeating-linear-gradient(45deg, rgba(192, 57, 43, .6) 0 3px, transparent 3px 6px); box-shadow: inset 0 0 0 2px var(--rosso); }
.pl-legenda i.lg-cambio { width: 6px; background: #ffd400; }
.pl-legenda i.lg-fissa { width: auto; height: auto; box-shadow: none; font-style: normal; font-size: 11px; }
.pl-avvisi > .avviso { margin-top: 8px; }
.link-coll { border: 0; background: none; padding: 0; color: inherit; font: inherit; text-decoration: underline; cursor: pointer; }
.pl-senza { min-width: 0; display: flex; align-items: center; gap: 10px; margin-top: 8px; padding: 6px 10px; background: #fbf3df; border-left: 4px solid var(--oro); border-radius: 4px; overflow-x: auto; }
.pl-senza-tit { font-weight: 600; font-size: 13.5px; white-space: nowrap; color: var(--borgogna-scuro); }
.pl-senza-lista { display: flex; gap: 6px; }
.pl-senza-nota { font-size: 12px; color: var(--testo-muted); white-space: nowrap; }
.pl-chip { border: 0; border-radius: 5px; padding: 4px 9px; font-size: 12px; white-space: nowrap; cursor: grab; background: var(--bg); color: var(--fg); touch-action: none; box-shadow: 0 1px 2px rgba(0, 0, 0, .2); }
.chip-volante { position: fixed; z-index: 60; pointer-events: none; box-shadow: 0 8px 20px rgba(0, 0, 0, .3); }

.pl-scroll { flex: 1; min-height: 0; margin-top: 8px; overflow: auto; border: 1px solid var(--bordo); border-radius: var(--raggio); background: var(--bianco); position: relative; overscroll-behavior: contain; }
.in-caricamento .pl-scroll { opacity: .78; }
.pl-aiuto { margin: 6px 2px 0; font-size: 12.5px; color: var(--testo-muted); }
.pl-tela {
  --colw: 150px; --grid: #ebe3d0;
  display: grid; grid-template-columns: var(--colw) calc(var(--cw) * var(--n)); grid-template-rows: auto calc(var(--rh) * var(--righe));
  width: max-content; position: relative; font-size: 12px;
}
.pl-angolo { grid-row: 1; grid-column: 1; position: sticky; top: 0; left: 0; z-index: 6; background: var(--borgogna-scuro); color: var(--oro-pallido); display: flex; flex-direction: column; justify-content: flex-end; padding: 6px 10px; border-right: 1px solid rgba(201, 168, 76, .4); }
.pa-cam { font-weight: 600; color: var(--oro-chiaro); }
.pa-pres { font-size: 10.5px; line-height: 20px; opacity: .85; text-align: right; order: 2; }
.pl-testata { grid-row: 1; grid-column: 2; position: sticky; top: 0; z-index: 5; background: var(--avorio); box-shadow: 0 1px 0 var(--bordo); }
.pl-mesi { position: relative; height: 24px; background: var(--borgogna-scuro); }
.pl-mese { position: absolute; top: 0; height: 24px; border-left: 1px solid rgba(232, 200, 125, .5); color: var(--oro-chiaro); font-weight: 600; font-size: 12.5px; line-height: 24px; white-space: nowrap; }
.pl-mese span { position: sticky; left: calc(var(--colw) + 8px); padding: 0 8px; }
.pl-giorni { display: flex; height: 34px; }
.pl-g { flex: none; width: var(--cw); display: flex; flex-direction: column; align-items: center; justify-content: center; border-right: 1px solid var(--bordo); line-height: 1.1; color: var(--testo); }
.pl-g b { font-size: 13px; font-weight: 600; }
.pl-g span { font-size: 10px; color: var(--testo-muted); }
.pl-g.sab { background: #f7e4e1; }
.pl-g.dom { background: #e7f0de; }
.pl-g.oggi { background: var(--oro); color: #fff; }
.pl-g.oggi span { color: #fff; }
.pl-pres { display: flex; height: 20px; }
.pl-pc { flex: none; width: var(--cw); text-align: center; font-size: 11px; line-height: 20px; font-variant-numeric: tabular-nums; border-right: 1px solid rgba(201, 168, 76, .25); overflow: hidden; }
.pl-pres.pax { background: var(--borgogna-scuro); color: var(--oro-pallido); }
.pl-pres.lib { background: #f8f1e1; color: var(--verde); font-weight: 600; }
.pl-camere { grid-row: 2; grid-column: 1; position: sticky; left: 0; z-index: 4; background: var(--borgogna-scuro); border-right: 1px solid rgba(201, 168, 76, .4); }
.pl-cam { height: var(--rh); display: flex; align-items: center; gap: 6px; padding: 0 8px 0 10px; border-bottom: 1px solid rgba(201, 168, 76, .2); color: var(--oro-pallido); cursor: default; }
.pl-cam b { min-width: 40px; color: #fff; font-size: 13px; font-weight: 600; }
.pl-cam span { font-size: 11.5px; opacity: .8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.pl-cam i { margin-left: auto; font-style: normal; font-size: 11px; opacity: .65; }
.pl-cam:hover { background: var(--borgogna); }
.pl-cam.over b { color: var(--oro-chiaro); font-style: italic; }
.pl-corpo {
  grid-row: 2; grid-column: 2; position: relative; background-color: var(--bianco);
  background-image: linear-gradient(to right, var(--grid) 1px, transparent 1px), linear-gradient(to bottom, var(--grid) 1px, transparent 1px);
  background-size: var(--cw) 100%, 100% var(--rh); cursor: cell;
}
.bloccato .pl-corpo { cursor: default; }
.pl-col { position: absolute; top: 0; bottom: 0; width: var(--cw); pointer-events: none; }
.pl-col.sab { background: rgba(240, 200, 195, .22); }
.pl-col.dom { background: rgba(190, 215, 170, .24); }
.pl-col.oggi { background: rgba(201, 168, 76, .14); box-shadow: inset 1px 0 0 var(--oro), inset -1px 0 0 var(--oro); }
.pl-sep { position: absolute; left: 0; right: 0; height: 2px; margin-top: -1px; background: var(--oro); pointer-events: none; }
.pl-strato { position: absolute; inset: 0; }
.pl-b {
  position: absolute; display: flex; align-items: center; gap: 4px; padding: 0 6px; overflow: hidden; white-space: nowrap;
  background: var(--bg); color: var(--fg); border-radius: 5px; font-size: 12px; line-height: 1;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .22), inset 0 0 0 1px rgba(0, 0, 0, .1); cursor: grab; user-select: none; touch-action: manipulation;
}
.pl-nome { font-weight: 600; overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 0 1 auto; }
.pl-ag { font-size: 11px; opacity: .8; overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 0 3 auto; }
.pl-pax { margin-left: auto; flex: none; font-size: 11px; font-weight: 700; padding: 1px 5px; border-radius: 8px; background: rgba(0, 0, 0, .14); }
.pl-lucchetto { font-size: 10px; flex: none; }
.compatta .pl-ag, .compatta .pl-pax { display: none; }
.compatta .pl-pc { font-size: 9.5px; letter-spacing: -.03em; }
.compatta .pl-g b { font-size: 11.5px; }
.compatta .pl-b { padding: 0 3px; font-size: 11px; }
.pl-b.taglia-s { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.pl-b.taglia-d { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.pl-b.parte1 { padding-right: 9px; }
.pl-b.parte1::after, .pl-b.parte2::before { content: ""; position: absolute; top: 0; bottom: 0; width: 5px; background: #ffd400; }
.pl-b.parte1::after { right: 0; }
.pl-b.parte2::before { left: 0; }
.pl-b.parte2 { padding-left: 9px; }
.pl-b.fissa, .bloccato .pl-b, .pl-b.t-E { cursor: pointer; }
.pl-b.bordo-s, .pl-b.bordo-d { cursor: ew-resize; }
.bloccato .pl-b.bordo-s, .bloccato .pl-b.bordo-d, .pl-b.fissa.bordo-s, .pl-b.fissa.bordo-d { cursor: pointer; }
.pl-b.mezza { font-size: 10px; padding-top: 0; padding-bottom: 0; }
.pl-b.mezza .pl-ag, .pl-b.mezza .pl-pax { display: none; }
.pl-b.anomala { outline: 2px dotted #8a6a12; outline-offset: -2px; }
.pl-b.sel { z-index: 2; outline: 2px solid var(--borgogna-scuro); outline-offset: 1px; }
.pl-b:focus-visible { outline: 2px solid var(--blu); outline-offset: 1px; z-index: 2; }
.pl-b.origine { opacity: .3; }
.pl-b.fantasma { z-index: 10; opacity: .92; cursor: grabbing; outline: 2px dashed var(--verde); outline-offset: 1px; box-shadow: 0 8px 18px rgba(0, 0, 0, .3); pointer-events: none; }
.pl-b.fantasma.conflitto { outline-color: var(--rosso); }
.pl-b.fantasma.salvataggio { opacity: .6; }
.pl-b.lampeggia { animation: pl-lampeggia 1.6s ease; }
@keyframes pl-lampeggia { 0%, 50% { box-shadow: 0 0 0 4px var(--oro); } 100% { box-shadow: 0 1px 2px rgba(0, 0, 0, .22); } }
.pl-coll { position: absolute; z-index: 3; pointer-events: none; border: 2px solid var(--rosso); border-radius: 4px; background: repeating-linear-gradient(45deg, rgba(192, 57, 43, .45) 0 4px, transparent 4px 8px); }
.pl-selezione { position: absolute; pointer-events: none; background: rgba(26, 74, 122, .14); border: 2px dashed var(--blu); border-radius: 4px; }
body.pl-trascinando, body.pl-trascinando * { cursor: grabbing !important; user-select: none; }
.pl-tip { position: fixed; z-index: 70; max-width: 340px; padding: 6px 10px; border-radius: 6px; background: var(--borgogna-scuro); color: var(--oro-pallido); font-size: 12.5px; line-height: 1.4; pointer-events: none; box-shadow: 0 6px 18px rgba(0, 0, 0, .25); }
.pl-tip b { color: #fff; }
.pl-tip em { font-style: normal; color: var(--oro-chiaro); }
.tip-rosso { color: #ffb4a8; font-weight: 600; }
.pl-menu { position: fixed; z-index: 65; min-width: 250px; padding: 5px; background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); box-shadow: 0 10px 28px rgba(74, 16, 32, .18); }
.pl-menu button { display: block; width: 100%; text-align: left; border: 0; background: transparent; padding: 7px 10px; border-radius: 4px; cursor: pointer; font-size: 14px; }
.pl-menu button small { display: block; font-size: 12px; color: var(--testo-muted); }
.pl-menu button:hover:not(:disabled), .pl-menu button:focus-visible { background: var(--avorio); outline: none; }
.pl-menu button:disabled { opacity: .45; cursor: default; }
.pl-menu button.pericolo { color: var(--rosso); }
.pl-menu hr { border: 0; border-top: 1px solid var(--bordo); margin: 4px 0; }

.pl-scheda { position: fixed; top: 0; right: 0; bottom: 0; z-index: 40; width: min(400px, 100vw); display: flex; flex-direction: column; background: var(--bianco); border-left: 1px solid var(--bordo); box-shadow: -10px 0 28px rgba(74, 16, 32, .14); }
.ps-testa { display: flex; align-items: flex-start; gap: 10px; padding: 16px 18px 12px; background: var(--crema); border-bottom: 1px solid var(--bordo); }
.ps-testa h2 { margin: 6px 0 2px; font-size: 19px; color: var(--borgogna-scuro); }
.ps-sotto { margin: 0; font-size: 13px; color: var(--testo-muted); }
#psChiudi { margin-left: auto; font-size: 22px; }
.ps-corpo { flex: 1; overflow: auto; padding: 14px 18px 24px; }
.ps-dati { display: grid; grid-template-columns: 92px 1fr; gap: 5px 10px; margin: 0 0 12px; font-size: 14px; }
.ps-dati dt { font-size: 13px; color: var(--testo-muted); }
.ps-dati dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.ps-attenzione { color: #8a6a12; font-weight: 600; }
.ps-azioni { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.ps-gruppo { display: flex; flex-direction: column; gap: 8px; margin: 0 0 12px; padding: 10px 12px 12px; border: 1px solid var(--bordo); border-radius: 6px; }
.ps-gruppo legend { padding: 0 4px; font-size: 13px; font-weight: 600; color: var(--borgogna); }
.ps-gruppo label { display: flex; flex-direction: column; gap: 3px; font-size: 13px; color: var(--testo-muted); }
.ps-gruppo label.spunta { flex-direction: row; color: var(--testo); }
.ps-riga { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ps-riga-az { display: flex; justify-content: flex-end; gap: 6px; }
.ps-fondo { display: flex; justify-content: flex-end; padding-top: 12px; border-top: 1px solid var(--bordo); }
.pl-notifica { position: fixed; bottom: 22px; left: 50%; transform: translateX(-50%); z-index: 55; display: flex; align-items: center; gap: 12px; max-width: min(760px, 92vw); padding: 10px 14px; border-radius: 6px; background: var(--borgogna-scuro); color: var(--oro-pallido); font-size: 14px; box-shadow: 0 8px 24px rgba(74, 16, 32, .3); }
.pl-notifica .btn { background: transparent; color: var(--oro-chiaro); border-color: rgba(232, 200, 125, .55); }

.dialogo-pl { max-width: 620px; width: calc(100vw - 32px); }
.pn-griglia { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 12px; margin: 6px 0 10px; }
.pn-griglia .campo-largo { grid-column: 1 / -1; }
.pn-griglia .pl-f.segmenti { flex-wrap: wrap; gap: 6px 14px; }
.pn-griglia .pl-f select { min-width: 220px; }
.pn-nuovo { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 12px; }
.pn-cliente { position: relative; }
.pn-trovati { top: 64px; }
.pn-nota { font-size: 12.5px; color: var(--testo-muted); }
.pn-nota.rosso { color: var(--rosso); font-weight: 600; }
.pc-lista { margin: 0 0 16px; padding-left: 18px; font-size: 14px; }
.pl-libere { max-height: 52vh; overflow: auto; margin-bottom: 14px; }
.pl-libere h3 { margin: 10px 0 4px; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--testo-muted); }
.pl-lib { display: flex; align-items: center; gap: 8px; width: 100%; margin-bottom: 4px; padding: 7px 10px; text-align: left; background: var(--bianco); border: 1px solid var(--bordo); border-radius: 4px; cursor: pointer; }
.pl-lib span { margin-left: auto; font-size: 13px; color: var(--borgogna); }
.pl-lib:hover:not(:disabled) { border-color: var(--oro); }
.pl-lib:disabled { cursor: default; opacity: .7; }
.pl-lib:disabled span { display: none; }

body.pl-pieno .app { grid-template-columns: 1fr; }
body.pl-pieno .rail { display: none; }
body.pl-pieno .contenuto { padding: 10px 14px; }
body.pl-pieno .vista-planning { height: calc(100vh - 20px); }
@media (max-width: 1200px) { .pl-cerca { order: 5; flex-basis: 100%; } }
@media (max-width: 760px) {
  .vista-planning { height: auto; }
  .pl-scroll { flex: none; height: 72vh; }
  .pl-tela { --colw: 88px; }
  .pl-cam span, .pl-cam i { display: none; }
  .pl-strumenti { margin-left: 0; }
  .pl-cerca select { width: 150px; }
  .pl-aiuto { display: none; }
  .pn-griglia, .pn-nuovo { grid-template-columns: 1fr 1fr; }
}

.pl-movimenti { display: flex; align-items: center; gap: 6px; }
.pl-movimenti select { width: 270px; }
.pl-movimenti select.arrivo { background: #548051; color: #fff; border-color: #548051; }
.pl-movimenti select.partenza { background: var(--rosso); color: #fff; border-color: var(--rosso); }
.pl-movimenti select option, .pl-movimenti select optgroup { background: var(--bianco); color: var(--testo); }
.btn-checkin { background: #548051; border-color: #548051; color: #fff; }
.btn-checkin:hover { background: #3f6a3c; border-color: #3f6a3c; }
.btn-checkout { background: var(--rosso); border-color: var(--rosso); color: #fff; }
.btn-checkout:hover { background: #a2301f; border-color: #a2301f; }
.btn-coll { color: var(--rosso); }
.badge-coll { display: inline-block; min-width: 20px; padding: 0 6px; border-radius: 10px; background: var(--rosso); color: #fff; font-size: 12px; font-weight: 700; text-align: center; }
.pl-coll-lista { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin-top: 8px; padding: 8px 14px; background: #fbeceb; border-left: 4px solid var(--rosso); border-radius: 4px; font-size: 13.5px; color: #7d231a; }
.pl-coll-lista strong { margin-right: 4px; }
@media (max-width: 760px) { .pl-movimenti { flex-wrap: wrap; } .pl-movimenti select { width: 100%; } }

/* ---------- scheda prenotazione ---------- */
.sp-colonne { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 0 16px; align-items: start; }
.sp-griglia { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.sp-griglia > .campo { grid-column: span 4; }
.sp-griglia > .campo.largo2 { grid-column: span 2; }
.sp-griglia > .campo.largo3 { grid-column: span 3; }
.sp-griglia > .campo.largo4 { grid-column: span 4; }
.sp-griglia > .campo.largo5 { grid-column: span 5; }
.sp-griglia > .campo.largo6 { grid-column: span 6; }
.sp-griglia > .campo.largo8 { grid-column: span 8; }
.sp-griglia > .campo.largo9 { grid-column: span 9; }
.sp-griglia > .campo.largo12, .sp-griglia > .campo.intero { grid-column: 1 / -1; }
.sp-griglia > .campo.sp-spunta { justify-content: flex-end; padding-bottom: 8px; }
.sp-ro { display: flex; align-items: center; min-height: 36px; padding: 0 2px; font-weight: 600; color: var(--borgogna-scuro); }
#formPren:not(.tipo-A) .solo-A, #formPren:not(.tipo-D) .solo-D { display: none; }
#formPren:not(.con-cambio) .solo-cambio { display: none; }
#formPren .gruppo .pl-f.segmenti { margin-bottom: 10px; flex-wrap: wrap; }
.sp-cliente { display: flex; flex-direction: column; gap: 2px; margin-bottom: 10px; }
.sp-cliente strong { font-size: 17px; color: var(--borgogna-scuro); }
.sp-cliente span { font-size: 13.5px; color: var(--testo-muted); }
.sp-cliente a { font-size: 13.5px; color: var(--borgogna); }
.sp-cerca-cli { position: relative; }
.sp-cerca-cli .pl-risultati { top: 64px; }
.sp-conto { display: flex; flex-direction: column; gap: 10px; }
.sp-conto .pl-f.segmenti { margin: 0 !important; }
.sp-spunte { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; }
.sp-inline { display: inline-flex; align-items: center; gap: 8px; font-size: 14.5px; }
.sp-inline input { width: 80px !important; min-height: 32px; }
.sp-modificato { box-shadow: 0 0 0 2px var(--oro-pallido); border-color: var(--oro) !important; }
.sp-ricalcolo { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 12px; padding: 8px 12px; background: #fbf3df; border-left: 4px solid var(--oro); border-radius: 4px; font-weight: 600; color: #6b4b10; }
.sp-tot { font-size: 12px; font-weight: 600; color: var(--testo-muted); }
.sp-barra-rette { display: flex; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.sp-barra-rette .nota-pannello { flex: 1; margin: 0; min-width: 240px; }
.sp-az { display: flex; gap: 8px; flex-wrap: wrap; }
.sp-rette td, .sp-rette th { white-space: nowrap; }
.sp-rette input { min-height: 30px; padding: 3px 6px; }
.sp-rette input.num { width: 90px; }
.sp-rette input[type=date] { width: 140px; }
.sp-rette tfoot td { font-weight: 700; background: var(--avorio); }
.sp-rette .fatt { color: var(--verde); font-weight: 600; }
.sp-suppl { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px 16px; margin-bottom: 14px; padding: 12px 16px; background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); }
.sp-note { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sp-note > .campo { grid-column: span 1; }
.sp-acc { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; margin-top: 12px; }
.sp-acc .gruppo { margin: 0; }
.sp-acc dl { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; margin: 0; font-size: 14px; }
.sp-acc dt { color: var(--testo-muted); }
.sp-acc dd { margin: 0; font-weight: 600; }
@media (max-width: 1200px) { .sp-colonne { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  .sp-griglia > .campo, .sp-griglia > .campo[class*=largo] { grid-column: span 6; }
  .sp-griglia > .campo.largo9, .sp-griglia > .campo.largo12, .sp-griglia > .campo.largo8 { grid-column: 1 / -1; }
  .sp-note { grid-template-columns: 1fr; }
}
#formPren .schede-tab { overflow-x: auto; scrollbar-width: thin; }
#formPren .schede-tab .tab { white-space: nowrap; flex: none; }
.sp-h3 { margin: 18px 0 8px; font-size: 14px; color: var(--borgogna); }
input[type=radio] { width: auto !important; min-height: 0 !important; padding: 0 !important; margin: 0; flex: none; accent-color: var(--borgogna); }
.pl-f.segmenti label { white-space: nowrap; }
.sp-conto .pl-f.segmenti, #formPren .gruppo .pl-f.segmenti { gap: 6px 18px; }
.pl-f.segmenti { gap: 6px 12px; }

/* ---- scheda prenotazione: acconti e scontrino ---- */
.sp-acc-barra { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin: 4px 0 12px; }
.sp-acc-reg { font-size: 13px; color: var(--testo-muted); }
.sp-acc-reg.spento { color: var(--rosso); }
.sp-acc-form { border: 0; padding: 0; margin: 0 0 16px; }
.sp-acc-form .spunta { display: inline-flex; gap: 8px; align-items: center; margin-top: 10px; }
.sp-etich { font-size: 13px; color: var(--testo-muted); }
.sp-acc-azioni { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.maiuscolo { text-transform: uppercase; }
.sp-acc-form.solo-esistente .sp-acc-nuovo { display: none; }
.sp-doc-stato { font-size: 13px; font-weight: 600; }
.sp-doc-stato.da-emettere { color: var(--rosso); }
.sp-tab-acc tbody tr { cursor: default; }
.sp-tab-acc tbody tr:hover td { background: transparent; }
.elenco td.sp-doc-az { max-width: none; overflow: visible; text-align: right; }
.sp-doc-az-int { display: flex; flex-wrap: wrap; gap: 4px; justify-content: flex-end; }

/* ---- scheda prenotazione: scheda PS ---- */
.sp-ps-testa { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin: 4px 0 12px; font-size: 14px; }
.sp-ps-testa .rosso { color: var(--rosso); font-weight: 600; }
.sp-ps-az { margin-left: auto; display: flex; flex-wrap: wrap; gap: 8px; }
.sp-ps-tab tbody tr { cursor: pointer; }
.sp-ps-tab tbody tr.attiva td { background: #fbf3df; }
.sp-ps-tab td.sp-ps-q { white-space: normal; max-width: 340px; font-size: 13px; }
.sp-ps-tab .ok { color: var(--verde, #2c5f2e); font-weight: 600; }
.sp-ps-tab .manca { color: var(--rosso); }
.sp-ps-form { margin-top: 16px; padding-top: 4px; border-top: 1px solid var(--bordo); }
.sp-ac { position: relative; }
.sp-ac .pl-risultati { top: 64px; }
.sp-ps-privacy { display: flex; flex-direction: column; gap: 8px; }
.sp-ps-form.familiare .sp-ps-doc .griglia { display: none; }
.sp-ps-form:not(.familiare) .sp-ps-nodoc { display: none; }
.sp-ps-form.intestatario .sp-ps-fam { display: none; }

/* ---- schede PS del giorno ---- */
.psg-barra { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 24px; margin: 0 0 14px; }
.psg-giorno { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.psg-data { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--borgogna); white-space: nowrap; }
.psg-data input { width: auto; }
.psg-cifre { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 14px; color: var(--testo-muted); }
.psg-cifre b { color: var(--testo); }
.psg-cifre .rosso b, .psg-cifre .rosso { color: var(--rosso); }
.psg-h2 { font-size: 16px; color: var(--borgogna); margin: 22px 0 8px; }
.psg-tab tbody tr[data-k] { cursor: pointer; }
.psg-tab td.psg-q { white-space: normal; max-width: 420px; font-size: 13px; }
.psg-stato { font-size: 13px; font-weight: 600; }
.psg-stato.ok { color: var(--verde); }
.psg-stato.ko { color: var(--rosso); }
.psg-stato.av { color: #9a6a00; }
.psg-numera { border: 0; padding: 0; margin: 0 0 12px; }
.psg-num-riga { display: flex; flex-wrap: wrap; gap: 12px 28px; align-items: flex-end; }
.psg-num-riga .campo { width: 180px; }
.psg-opz { display: flex; flex-direction: column; gap: 6px; }
.psg-dett { margin-top: 22px; }
.psg-dett summary { cursor: pointer; font-weight: 600; color: var(--borgogna); padding: 6px 0; }
.psg-storico { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 0; }
.psg-errori { margin: 6px 0 0 18px; padding: 0; font-size: 13.5px; }
.psg-errori a { color: inherit; }

/* ---- accesso (MascheraEntrata) ---- */
.login { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 16px;
  background: radial-gradient(circle at 30% 20%, #6a1830 0, var(--borgogna-scuro, #4a1020) 55%, #2c0a14 100%); }
.login-box { width: min(380px, 100%); background: var(--bianco); border-radius: 12px; padding: 28px 26px 24px; box-shadow: 0 24px 60px rgba(0, 0, 0, .35); display: flex; flex-direction: column; gap: 14px; }
.login-marchio { display: flex; flex-direction: column; gap: 2px; }
.login-marchio .marchio-nome { color: var(--borgogna); font-size: 22px; }
.login-hotel { font-size: 13px; color: var(--testo-muted); }
.login-box h1 { margin: 6px 0 0; font-size: 18px; color: var(--testo); font-weight: 600; }
.login-errore { min-height: 20px; margin: 0; color: var(--rosso); font-size: 14px; }
.login-box .btn { width: 100%; justify-content: center; padding: 10px; font-size: 16px; }
.marchio-utente { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 10px; font-size: 13px; color: var(--oro-chiaro); }
.btn-esci { background: transparent; border: 1px solid rgba(201, 168, 76, .5); color: rgba(245, 232, 192, .85); border-radius: 5px; padding: 2px 10px; font-size: 12.5px; cursor: pointer; }
.btn-esci:hover { background: rgba(201, 168, 76, .15); }
body.da-accedere .app { visibility: hidden; }

/* ---- tabelle di base ---- */
.tb-indice { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; margin-top: 8px; }
.tb-gruppo { background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); padding: 14px 16px; }
.tb-gruppo h2 { margin: 0 0 8px; font-size: 15px; color: var(--borgogna); }
.tb-gruppo ul { list-style: none; margin: 0; padding: 0; }
.tb-gruppo li a, .tb-gruppo li span { display: block; padding: 7px 0; border-bottom: 1px solid #efe8d8; color: var(--testo); text-decoration: none; }
.tb-gruppo li:last-child a, .tb-gruppo li:last-child span { border-bottom: 0; }
.tb-gruppo li a:hover { color: var(--borgogna); }
.tb-gruppo li span { color: var(--testo-muted); }
.tb-gruppo small { display: block; color: var(--testo-muted); font-size: 12.5px; margin-top: 1px; }
.tb-titoli { min-width: 0; }
.tb-titoli h1 { margin: 0; }
.tb-cerca { display: flex; align-items: center; gap: 12px; margin: 0 0 12px; }
.tb-cerca input { max-width: 340px; }
.tb-griglia td.tb-chiave { font-weight: 600; white-space: nowrap; }
.tb-griglia tr.tb-cambiata td { background: #fbf3df; }
.tb-griglia tr.tb-nuova td { background: #f3ecdc; }
.tb-griglia td input[type=number] { width: 110px; }
.tb-griglia td.tb-bool { text-align: center; }
.tb-scheda { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(0, 2.4fr); gap: 16px; align-items: start; }
.tb-scheda.singolo { grid-template-columns: minmax(0, 1fr); max-width: 980px; }
.tb-lista { max-height: 70vh; overflow: auto; }
.tb-lista tbody tr { cursor: pointer; }
.tb-lista tbody tr.attiva td { background: #fbf3df; }
.tb-form textarea { min-height: 70px; }
.tb-form .sp-acc-azioni { margin-top: 14px; }
@media (max-width: 900px) { .tb-scheda { grid-template-columns: 1fr; } .tb-lista { max-height: 40vh; } }
.btn-planning { gap: 6px; }

/* ---------- maschere lunghe (Impostazioni) ---------- */
.tb-sezioni { position: sticky; top: 0; z-index: 3; display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 0; margin-bottom: 6px; background: var(--crema); border-bottom: 1px solid var(--bordo); }
.tb-lunga fieldset.gruppo { scroll-margin-top: 64px; }
.tb-lunga .sp-acc-azioni { position: sticky; bottom: 0; z-index: 3; background: var(--crema); padding: 10px 0; border-top: 1px solid var(--bordo); }

/* ---------- postazione (DefaultBack) ---------- */
.pz-stato { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; padding: 10px 12px; margin-bottom: 12px; background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); }
.pz-stato strong { color: var(--borgogna); }
.pz-stato .pz-nuova { color: var(--rosso); }
.pz-form { max-width: 980px; }
.pz-aiuto { display: block; font-size: 12px; color: var(--testo-muted); margin-top: 2px; }
.pz-elenco { max-width: 980px; margin-top: 18px; }
.pz-elenco h2 { font-size: 16px; color: var(--borgogna); margin: 0 0 8px; }
.pz-elenco tr.pz-questa td { font-weight: 600; background: var(--oro-pallido); }
.pz-elenco td.azioni-riga { white-space: nowrap; }
.tb-colore { display: flex; gap: 8px; align-items: center; }
.tb-colore select { flex: 1; min-width: 0; }
.tb-campione { width: 28px; height: 28px; flex: none; border: 1px solid var(--bordo); border-radius: 4px; }
@media (max-width: 700px) {
  .pz-elenco thead { display: none; }
  .pz-elenco table, .pz-elenco tbody { display: block; width: 100%; }
  .pz-elenco tr { display: block; padding: 8px 0; border-bottom: 1px solid var(--bordo); }
  .pz-elenco td { display: block; max-width: none; border: 0; padding: 2px 10px; }
  .pz-elenco td:empty { display: none; }
  .pz-elenco td.azioni-riga { display: flex; flex-wrap: wrap; gap: 6px; white-space: normal; padding-top: 6px; }
}

/* ---------- prenotazione gruppi ---------- */
.gr-form { max-width: 980px; }
.gr-notti { display: block; padding: 8px 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.gr-barra { display: flex; flex-wrap: wrap; gap: 8px 16px; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.gr-avviso-over { color: var(--rosso); font-weight: 600; }
.gr-tabella td, .gr-tabella th { vertical-align: middle; }
.gr-tabella input.gr-n { width: 80px; text-align: right; }
.gr-tabella td.gr-libere.zero { color: var(--testo-muted); }
.gr-tabella tr.gr-scelta td { background: var(--oro-pallido); }
.gr-tabella tr.gr-over td, .gr-esito tr.gr-over td { background: #f8e1dc; }
.gr-tabella tr.gr-over td.gr-libere { color: var(--rosso); font-weight: 600; }
.gr-tabella tfoot th { text-align: left; border-top: 2px solid var(--bordo); }
.gr-tabella tfoot th.num { text-align: right; }
.gr-esito { max-width: 980px; margin-top: 18px; padding: 14px; background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); }
.gr-esito h2 { margin: 0 0 6px; font-size: 18px; color: var(--borgogna); }
.gr-form fieldset { min-width: 0; }
@media (max-width: 600px) {
  .gr-tabella .gr-cam, .gr-tabella .gr-occ { display: none; }
  .gr-tabella input.gr-n { width: 64px; }
}
.gr-esito { margin: 0 0 18px; }
.gr-ok { border-color: var(--verde); border-left: 5px solid var(--verde); }
.gr-ok h2 { color: var(--verde); }
.gr-errore { border-left: 5px solid var(--rosso); }
.gr-attesa { border-left: 5px solid var(--oro); }
.gr-barra-avanz { height: 10px; background: var(--avorio); border-radius: 5px; overflow: hidden; margin: 8px 0; }
.gr-barra-avanz span { display: block; height: 100%; background: var(--borgogna); transition: width .4s; }
.gr-rotella { display: inline-block; width: 14px; height: 14px; border: 2px solid var(--bordo); border-top-color: var(--borgogna); border-radius: 50%; vertical-align: -2px; animation: gr-gira .8s linear infinite; }
@keyframes gr-gira { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .gr-rotella { animation: none; } }
a.btn.btn-primario, a.btn.btn-primario:visited, a.btn.btn-primario:hover { color: var(--bianco); text-decoration: none; }

/* ---------- planning: barra su una riga, riquadro opzioni, righe più alte, gruppi ---------- */
.pl-barra { flex-wrap: nowrap; gap: 10px; padding-bottom: 2px; }
.pl-titolo { flex: none; margin-right: 2px; }
.pl-titolo h1 { font-size: 19px; line-height: 1.1; }
.pl-periodo { font-size: 11.5px; white-space: nowrap; }
.pl-nav { flex: none; flex-wrap: nowrap; gap: 4px; }
.pl-nav input[type=date] { width: 138px; }
.pl-cerca { flex: 1 1 200px; min-width: 150px; }
.pl-cerca select { width: 150px; }
.pl-movimenti { flex: 0 1 auto; min-width: 0; }
.pl-movimenti select { width: 210px; }
.pl-strumenti { flex: none; flex-wrap: nowrap; gap: 6px; margin-left: 0; }
.pl-opzioni-box { position: relative; }
#plBtnFiltri.attivo { background: var(--avorio); border-color: var(--oro); }
.pl-nfiltri { display: inline-block; min-width: 18px; height: 18px; padding: 0 5px; margin-left: 2px; border-radius: 9px; background: var(--borgogna); color: #fff; font-size: 11px; line-height: 18px; text-align: center; font-weight: 700; }
.pl-nfiltri[hidden] { display: none; }
.pl-filtri.pl-pop {
  position: absolute; top: calc(100% + 6px); right: 0; z-index: 60; width: min(560px, calc(100vw - 32px)); max-height: calc(100vh - 140px); overflow: auto;
  display: block; margin: 0; padding: 4px 16px 12px; box-shadow: 0 14px 34px rgba(74, 16, 32, .2);
}
.pl-filtri.pl-pop[hidden] { display: none; }
.pl-pop-sez { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; padding: 12px 0; border-bottom: 1px solid var(--bordo); }
.pl-pop-sez h3 { flex-basis: 100%; margin: 0; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--testo-muted); }
.pl-pop-piede { display: flex; justify-content: space-between; gap: 8px; padding-top: 12px; }
.pl-zoom { gap: 6px; }
@media (max-width: 1350px) { .pl-titolo .pl-periodo { display: none; } .pl-cerca select { width: 120px; } .pl-movimenti select { width: 180px; } }
@media (max-width: 1180px) { .pl-barra { flex-wrap: wrap; } .pl-cerca { order: 5; flex-basis: 100%; } }

/* righe più alte */
.pl-tela.alta .pl-b { font-size: 13px; border-radius: 6px; }
.pl-tela.alta .pl-cam b { font-size: 14px; }
.pl-tela.alta .pl-cam span { font-size: 12px; }
.pl-tela.alta .pl-giorni { height: 40px; }
.pl-tela.alta .pl-g b { font-size: 14px; }
.pl-tela.alta .pl-g span { font-size: 11px; }
.pl-tela.alta .pl-pax { font-size: 11.5px; }

/* gruppi di camere */
.pl-gr-tit {
  display: flex; align-items: center; gap: 8px; width: 100%; height: var(--rh); padding: 0 8px 0 8px; border: 0; border-bottom: 1px solid rgba(201, 168, 76, .35);
  background: #5d1a2b; color: var(--oro-chiaro); text-align: left; cursor: pointer; font: inherit;
}
.pl-gr-tit:hover { background: var(--borgogna); }
.pl-gr-tit:focus-visible { outline: 2px solid var(--oro); outline-offset: -2px; }
.pl-gr-tit b { color: #fff; font-size: 13px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.pl-gr-tit span:last-child { margin-left: auto; font-size: 11px; opacity: .75; white-space: nowrap; }
.pl-gr-freccia { flex: none; width: 8px; height: 8px; border-right: 2px solid var(--oro-chiaro); border-bottom: 2px solid var(--oro-chiaro); transform: rotate(45deg) translate(-2px, -2px); transition: transform .15s; }
.pl-gr-tit.chiuso .pl-gr-freccia { transform: rotate(-45deg); }
.pl-banda { position: absolute; left: 0; right: 0; background: #efe6d3; border-top: 1px solid #ddd0b4; border-bottom: 1px solid #ddd0b4; pointer-events: auto; cursor: default; z-index: 1; }
.pl-banda span { position: absolute; top: 0; bottom: 0; width: var(--cw); display: flex; align-items: center; justify-content: center; font-size: 11.5px; font-weight: 600; color: var(--testo-muted); font-variant-numeric: tabular-nums; border-right: 1px solid rgba(0, 0, 0, .05); }
.pl-banda span.poche { color: #b26a00; }
.pl-banda span.zero { color: var(--rosso); }
.compatta .pl-banda span { font-size: 9.5px; letter-spacing: -.04em; }
@media (prefers-reduced-motion: reduce) { .pl-gr-freccia { transition: none; } }
.solo-lettori { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.pl-cerca { flex: 1 1 180px; min-width: 150px; }
.pl-cerca select { width: 118px; }
.pl-movimenti select { width: 170px; }
.pl-aiuto .pl-periodo { font-size: inherit; font-weight: 600; color: var(--testo); }
.pl-tela.raggruppata { --colw: 176px; }
.pl-gr-tit span:last-child { font-size: 10.5px; }
@media (max-width: 1350px) { .pl-cerca select { width: 104px; } .pl-movimenti select { width: 150px; } .pl-nav input[type=date] { width: 128px; } }

/* ---------- addebiti automatici ---------- */
.ad-barra { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 4px 0 14px; }
.ad-data { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; }
.ad-data input { width: 160px; }
.ad-chiusura { font-size: 13px; color: var(--testo-muted); }
.ad-barra .btn-primario { margin-left: auto; }
.ad-riquadri { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; margin-bottom: 16px; }
.ad-box { padding: 14px 16px; background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); }
.ad-box h2 { margin: 0 0 6px; font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--testo-muted); }
.ad-box ul { margin: 6px 0; padding-left: 18px; font-size: 14px; line-height: 1.6; }
.ad-grande { margin: 0; font-size: 30px; font-weight: 700; color: var(--borgogna); font-variant-numeric: tabular-nums; }
.ad-grande small { font-size: 14px; font-weight: 500; color: var(--testo-muted); }
.ad-tot { margin: 6px 0 0; font-size: 14px; }
.ad-stato { margin: 8px 0 0; font-size: 13px; color: var(--testo-muted); }
.ad-stato.fatto { color: var(--verde); font-weight: 600; }
.ad-rosso { color: var(--rosso); }
.ad-piccolo p { margin: 0; font-size: 14px; }
.ad-schede { display: flex; gap: 4px; border-bottom: 2px solid var(--bordo); margin-bottom: 8px; }
.ad-tab { border: 0; background: transparent; padding: 8px 14px; font: inherit; font-weight: 600; color: var(--testo-muted); cursor: pointer; border-bottom: 3px solid transparent; margin-bottom: -2px; }
.ad-tab.attivo { color: var(--borgogna); border-bottom-color: var(--borgogna); }
.ad-chip { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 12px; font-weight: 600; }
.ad-nuovo { background: #e7f0de; color: #2f6a38; }
.ad-agg { background: #fbf0d4; color: #8a6a12; }
.ad-fatto { background: var(--avorio); color: var(--testo-muted); }
.ad-manca { background: #f8e1dc; color: var(--rosso); }
.ad-esente td { color: var(--testo-muted); }
.ad-data span { white-space: nowrap; }

/* ---------- conti (FiltroConto) ---------- */
.segmenti-grandi { display: inline-flex; border: 1px solid var(--bordo); border-radius: var(--raggio); overflow: hidden; margin-bottom: 12px; background: var(--bianco); }
.segmenti-grandi label { display: inline-flex; align-items: center; padding: 8px 18px; cursor: pointer; font-weight: 600; color: var(--testo-muted); border-right: 1px solid var(--bordo); }
.segmenti-grandi label:last-child { border-right: 0; }
.segmenti-grandi input { position: absolute; opacity: 0; pointer-events: none; }
.segmenti-grandi label:has(input:checked) { background: var(--borgogna); color: #fff; }
.segmenti-grandi label:has(input:focus-visible) { outline: 2px solid var(--oro); outline-offset: -2px; }
.ct-filtri { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 14px; padding: 12px 14px; margin-bottom: 12px; background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); }
.ct-filtri[hidden] { display: none; }
.ct-f { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--testo-muted); }
.ct-f input, .ct-f select { min-width: 140px; }
.ct-f.ct-ag select { min-width: 260px; }
.ct-f #ctPerc { width: 80px; min-width: 0; }
.ct-cli { position: relative; }
.ct-cli input { width: 220px; }
.ct-cli .pl-risultati { top: 100%; left: 0; width: 320px; }
.ct-pass { margin-left: auto; align-self: center; }
.ct-corpo { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; align-items: start; }
.ct-corpo:has(.ct-pannello:not([hidden])) { grid-template-columns: minmax(0, 1.5fr) minmax(320px, 1fr); }
.ct-barra-lista { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 6px; }
.ct-tab tbody tr[data-k] { cursor: pointer; }
.ct-tab tbody tr.attiva td { background: var(--oro-pallido); }
.ct-sotto { display: block; font-size: 11px; color: var(--testo-muted); }
.ct-blocca { text-align: center; }
.ct-pannello { position: sticky; top: 8px; padding: 14px 16px; background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); max-height: calc(100vh - 120px); overflow: auto; }
.ct-pt { display: flex; justify-content: space-between; gap: 8px; }
.ct-pt h2 { margin: 0; font-size: 18px; color: var(--borgogna); }
.ct-pt p { margin: 2px 0 0; }
.ct-totali { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 12px 0; }
.ct-totali div { display: flex; flex-direction: column; }
.ct-totali dt { font-size: 12px; color: var(--testo-muted); }
.ct-totali dd { margin: 0; font-size: 17px; font-weight: 700; font-variant-numeric: tabular-nums; }
.ct-totali div:first-child dd { color: var(--borgogna); font-size: 22px; }
.ct-add tr.ct-fatt td { color: var(--testo-muted); }
@media (max-width: 1000px) { .ct-corpo:has(.ct-pannello:not([hidden])) { grid-template-columns: 1fr; } .ct-pannello { position: static; max-height: none; } .ct-pass { margin-left: 0; } }
.ct-add-barra { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0 0 8px; font-size: 13px; }
.ct-add-barra label { display: inline-flex; align-items: center; gap: 6px; color: var(--testo-muted); }
.ct-add-barra select { width: auto; min-height: 30px; padding: 2px 6px; }
.ct-add tr.ct-fuori td { color: var(--testo-muted); background: #f6f1e6; }
.ct-add tr.ct-fuori td:nth-child(3) { text-decoration: line-through; text-decoration-color: rgba(0, 0, 0, .25); }
.ct-az { white-space: nowrap; text-align: right; }
.ct-az .btn-icona { min-width: 28px; height: 28px; padding: 0 6px; margin-left: 3px; }
.ct-canc { color: var(--rosso); }
.ct-legenda { margin: 8px 0 0; font-size: 12px; color: var(--testo-muted); }
.ct-corpo:has(.ct-pannello:not([hidden])) { grid-template-columns: minmax(0, 1.25fr) minmax(400px, 1fr); }
.ct-add table { font-size: 13px; }
.ct-add th, .ct-add td { padding-left: 6px; padding-right: 6px; }
.ct-add td:nth-child(3) { max-width: none; }
.ct-az .btn-icona { min-width: 26px; height: 26px; padding: 0 4px; }

/* ---------- conto cliente (ContoCliente_t) e documento (DettaglioRiepDoc_t) ---------- */
.cn-testata { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.cn-testata h1 { margin: 2px 0 0; }
.cn-testata p { margin: 2px 0 0; }
.cn-indietro { font-size: 13px; color: var(--testo-muted); text-decoration: none; }
.cn-indietro:hover { color: var(--borgogna); }
.cn-corpo { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(330px, 1fr); gap: 14px; align-items: start; }
.cn-sx { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.cn-box { background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); padding: 14px 16px; min-width: 0; }
.cn-box h2 { margin: 0 0 10px; font-size: 16px; color: var(--borgogna); }
.cn-box-tit { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.cn-dx { position: sticky; top: 8px; }
.cn-cli { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 16px; }
.cn-cli h2 { margin: 0; font-size: 20px; color: var(--testo); }
.cn-cli p { margin: 0; font-size: 13px; color: var(--testo-muted); }
.cn-cli-contatti { display: flex; flex-wrap: wrap; gap: 8px 12px; grid-column: 1 / -1; }
.cn-cli-contatti label { display: flex; flex-direction: column; gap: 3px; font-size: 12px; color: var(--testo-muted); }
.cn-cli-contatti input { width: 220px; max-width: 100%; }
.cn-cli-contatti input.cn-manca { border-color: var(--rosso); background: #fdf1ee; }
.cn-nota-cliente { grid-column: 1 / -1; margin: 0; padding: 6px 10px; border-radius: var(--raggio); background: #fbe9e5; color: var(--rosso); font-weight: 600; font-size: 13px; }
.cn-badge { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 12px; font-weight: 600; background: var(--avorio); color: var(--testo-muted); white-space: nowrap; }
.cn-badge.rosso { background: #f8e1dc; color: var(--rosso); }
.cn-badge.verde { background: #e1f0e3; color: var(--verde); }
.cn-f { border: 0; padding: 0; margin: 0 0 12px; min-width: 0; }
.cn-f legend { font-size: 12px; color: var(--testo-muted); padding: 0; margin-bottom: 4px; }
.cn-seg { display: flex; flex-wrap: wrap; border: 1px solid var(--bordo); border-radius: var(--raggio); overflow: hidden; background: var(--bianco); }
.cn-seg label { flex: 1 1 auto; text-align: center; padding: 6px 10px; cursor: pointer; font-size: 13.5px; font-weight: 600; color: var(--testo-muted); border-right: 1px solid var(--bordo); white-space: nowrap; }
.cn-seg label:last-child { border-right: 0; }
.cn-seg input { position: absolute; opacity: 0; pointer-events: none; }
.cn-seg label:has(input:checked) { background: var(--borgogna); color: #fff; }
.cn-seg label:has(input:focus-visible) { outline: 2px solid var(--oro); outline-offset: -2px; }
.cn-riga { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--testo-muted); margin: 8px 0 0; }
.cn-riga.spunta { flex-direction: row; color: var(--testo); margin: 10px 0 0; }
.cn-riga textarea { resize: vertical; }
.cn-griglia { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: flex-end; margin: 0 0 4px; }
.cn-griglia label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--testo-muted); flex: 1 1 130px; min-width: 0; }
.cn-griglia input, .cn-griglia select { width: 100%; }
.cn-fatt { margin: 6px 0 4px; padding: 10px; border-radius: var(--raggio); background: var(--crema); border: 1px dashed var(--bordo); }
.cn-fatt select { width: 100%; }
.cn-altro { margin: 10px 0 0; border-top: 1px solid var(--bordo); padding-top: 8px; }
.cn-altro summary { cursor: pointer; font-size: 13px; color: var(--borgogna); font-weight: 600; }
.cn-altro[open] summary { margin-bottom: 8px; }
.cn-tot { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; margin: 14px 0 0; padding: 10px 12px; border-radius: var(--raggio); background: var(--crema); font-variant-numeric: tabular-nums; }
.cn-tot dt { font-size: 13px; color: var(--testo-muted); }
.cn-tot dd { margin: 0; text-align: right; font-weight: 600; }
.cn-tot .cn-grande { font-size: 15px; color: var(--testo); font-weight: 700; }
.cn-tot dd.cn-grande { font-size: 22px; color: var(--borgogna); }
.cn-azioni { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.cn-azioni .btn-primario { flex: 1 1 auto; }
.cn-ded { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: flex-end; padding: 10px; margin: 0 0 10px; border-radius: var(--raggio); background: var(--crema); border: 1px solid var(--bordo); }
.cn-ded label { display: flex; flex-direction: column; gap: 3px; font-size: 12px; color: var(--testo-muted); flex: 1 1 110px; min-width: 0; }
.cn-ded .cn-ded-art, .cn-ded .cn-ded-note { flex: 2 1 200px; }
.cn-ded input, .cn-ded select { width: 100%; }
.cn-ded-az { display: flex; gap: 6px; }
.cn-schede { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 1px solid var(--bordo); margin: -4px 0 10px; }
.cn-tab { border: 0; background: none; padding: 6px 10px; cursor: pointer; color: var(--testo-muted); font-weight: 600; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.cn-tab.attivo { color: var(--borgogna); border-bottom-color: var(--borgogna); }
.cn-pann table { font-size: 13px; }
.cn-pann td.num, .cn-pann th.num { text-align: right; }
.dc-stato { display: inline-block; padding: 4px 12px; border-radius: 14px; font-weight: 700; font-size: 13px; background: #fff2d6; color: #8a5a00; }
.dc-stato.emesso { background: #e1f0e3; color: var(--verde); }
.dc-tot { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; max-width: 420px; margin: 12px 0 0 auto; font-variant-numeric: tabular-nums; }
.dc-tot dt { color: var(--testo-muted); }
.dc-tot dd { margin: 0; text-align: right; font-weight: 600; }
.dc-tot .cn-grande { font-size: 20px; color: var(--borgogna); font-weight: 700; }
.dc-sez { margin: 16px 0 6px; font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--testo-muted); }
.dc-pag { display: grid; grid-template-columns: minmax(0, 1fr) 110px 32px; gap: 6px; align-items: center; margin-bottom: 6px; }
.dc-pag select, .dc-pag input { width: 100%; }
.dc-pag small { grid-column: 1 / -1; margin-top: -4px; color: var(--testo-muted); font-size: 11.5px; }
.dc-pag-az { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin: 4px 0 10px; }
.dc-diff { font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.dc-diff.ok { color: var(--verde); }
.dc-diff.ko { color: var(--rosso); }
.dc-bon { margin: 0 0 10px; padding: 8px 10px; border-radius: var(--raggio); background: var(--crema); font-size: 13px; }
.dc-bon button { margin-top: 6px; }
.dc-azioni { border-top: 1px solid var(--bordo); padding-top: 12px; }
@media (max-width: 1100px) {
  .cn-corpo { grid-template-columns: minmax(0, 1fr); }
  .cn-dx { position: static; }
}
@media (max-width: 760px) {
  .cn-seg label { flex: 1 1 45%; border-bottom: 1px solid var(--bordo); }
  .cn-cli { grid-template-columns: minmax(0, 1fr); }
  .dc-pag { grid-template-columns: minmax(0, 1fr) 96px 32px; }
}
#dlgTesto { white-space: pre-line; }
.ct-div { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; padding: 10px 12px; margin: 0 0 8px; border: 1px solid var(--oro); border-radius: var(--raggio); background: #fffaf0; font-size: 13px; }
.ct-div p { margin: 0; flex: 1 1 100%; }
.ct-div label { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; white-space: nowrap; }
.ct-div input[data-div-quota] { width: 96px; flex: none; }
.ct-div-resto { color: var(--testo-muted); }
.ct-div-ko { color: var(--rosso); font-weight: 600; }
.ct-div-az { display: inline-flex; gap: 6px; margin-left: auto; }
.ct-add tr.ct-div-riga td { background: #fffaf0; padding: 0; }
.ct-add tr.ct-div-riga .ct-div { margin: 0; border: 0; border-radius: 0; }
/* fattura agenzia */
.fa-barra { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.fa-barra input[type=search] { width: 220px; max-width: 100%; }
.fa-tab table { font-size: 13px; }
.fa-tab td input:not([type=checkbox]), .fa-tab td select { width: 100%; min-width: 0; padding: 3px 6px; min-height: 28px; }
.fa-tab input[type=checkbox] { width: 16px; height: 16px; }
.fa-tab td.fa-d input { width: 132px; }
.fa-tab td.fa-n { min-width: 190px; }
.fa-tab td.fa-t { font-size: 12px; color: var(--testo-muted); }
#vistaFatturaAgenzia .cn-corpo { grid-template-columns: minmax(0, 1fr) minmax(280px, 320px); }
.fa-tab td.fa-q input { width: 56px; }
.fa-tab td.fa-p input { width: 84px; }
.fa-tab tr.fa-fuori td { color: var(--testo-muted); background: #f6f1e6; }
.fa-tab tr.fa-fuori td:nth-child(3) { text-decoration: line-through; text-decoration-color: rgba(0, 0, 0, .25); }
.fa-tab tr.fa-gruppo td { background: var(--avorio); font-weight: 600; font-size: 12.5px; }
.fa-tab tr.fa-cg td { color: var(--borgogna); font-weight: 600; }
.fa-intest { margin: 0 0 12px; padding: 10px 12px; border-radius: var(--raggio); background: var(--crema); font-size: 13px; }
.fa-intest b { display: block; font-size: 15px; }
/* documenti emessi */
.df-acc { display: inline-flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; }
.df-nuovo { border-color: var(--oro); background: #fffaf0; }
.df-nuovo-tit { flex: 1 1 100%; color: var(--borgogna); }
.df-nuovo .ct-ag select { min-width: 260px; }
.df-tab table { font-size: 13px; }
.df-tab tbody tr { cursor: pointer; }
.df-tab tbody tr:hover td { background: var(--oro-pallido); }
.df-tab td.df-az { white-space: nowrap; text-align: right; }
.df-tab .df-man { font-size: 10.5px; color: var(--blu); font-weight: 600; }
.df-totali { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 12px 0 0; padding: 10px 14px; border-radius: var(--raggio); background: var(--bianco); border: 1px solid var(--bordo); }
.df-totali div { display: flex; flex-direction: column; }
.df-totali dt { font-size: 12px; color: var(--testo-muted); }
.df-totali dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.df-neg { color: var(--rosso); }
/* incassi e corrispettivi */
.in-rapidi { display: inline-flex; flex-wrap: wrap; gap: 4px; }
.in-stampa { display: inline-flex; flex-wrap: wrap; gap: 6px; margin-left: auto; }
.in-schede { margin: 0 0 10px; }
.in-corpo h3 { margin: 18px 0 6px; font-size: 14px; color: var(--borgogna); }
.in-corpo h3:first-child { margin-top: 0; }
.in-corpo table { font-size: 13px; }
.in-corpo tfoot th { text-align: right; }
.in-corpo tfoot th:first-child { text-align: left; }
.in-corpo .num { text-align: right; font-variant-numeric: tabular-nums; }
.in-corpo .df-neg { color: var(--rosso); }
.in-ag { margin-bottom: 14px; }

/* ---------- Cassa ed esborsi ---------- */
.ca-riep { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin: 0 0 14px; }
.ca-riep div { border: 1px solid var(--bordo); border-radius: var(--raggio); padding: 8px 12px; background: var(--bianco); }
.ca-riep span { display: block; font-size: 12px; color: var(--testo-muted); }
.ca-riep b { font-size: 18px; font-variant-numeric: tabular-nums; }
.ca-riep .ca-netto { border-color: var(--borgogna); background: #fffaf0; }
.ca-def { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; }
.ca-def[hidden], .ca-periodo[hidden], .ca-giorno[hidden] { display: none; }
.ca-pag td { vertical-align: top; }
.es-griglia { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 14px; margin-bottom: 14px; }
.es-modo { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0 0 10px; font-size: 14px; }
.es-modo label { display: inline-flex; align-items: center; gap: 6px; }
.es-testa { display: flex; flex-wrap: wrap; gap: 10px 14px; }
.es-testa .es-camera { flex: 1 1 260px; }
.es-testa .es-camera[hidden] { display: none; }
.es-righe select { width: 100%; min-width: 140px; }
.es-righe .es-n { width: 70px; text-align: right; }
.es-righe .es-i { width: 96px; text-align: right; }
.es-az { display: flex; justify-content: flex-end; margin-top: 10px; }
.es-elenco .ct-filtri { margin-top: 4px; }
@media (max-width: 900px) { .es-griglia { grid-template-columns: 1fr; } }
#caCorpo, #esGia, #esElenco, .es-righe-wrap { overflow-x: auto; }
@media (max-width: 600px) { .es-righe select { min-width: 110px; } .es-righe .es-i { width: 72px; } .es-righe .es-n { width: 52px; } }

/* ---------- Addebiti extra ---------- */
.ae-cam select { min-width: 280px; }
.ae-cliente { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin: 0 0 14px; }
.ae-cliente[hidden] { display: none; }
.ae-cliente > div { border: 1px solid var(--bordo); border-radius: var(--raggio); padding: 8px 12px; background: var(--bianco); min-width: 0; }
.ae-cliente span { display: block; font-size: 12px; color: var(--testo-muted); }
.ae-cliente b { display: block; font-size: 15px; overflow-wrap: anywhere; }
.ae-cliente small { color: var(--testo-muted); }
.ae-cliente .avviso { grid-column: 1 / -1; margin: 0; }
.ae-griglia { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 14px; align-items: start; }
.ae-griglia[hidden] { display: none; }
.ae-veloci { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; }
.ae-veloci:empty { display: none; }
.ae-cerca input { width: 100%; }
.ae-risultati { list-style: none; margin: 6px 0 12px; padding: 0; max-height: 230px; overflow-y: auto; border: 1px solid var(--bordo); border-radius: var(--raggio); background: var(--bianco); }
.ae-risultati li { display: flex; justify-content: space-between; gap: 10px; padding: 6px 10px; border-bottom: 1px solid var(--bordo); cursor: pointer; font-size: 14px; }
.ae-risultati li:last-child { border-bottom: 0; }
.ae-risultati li[data-ae-art]:hover { background: #fffaf0; }
.ae-risultati .ae-p { font-variant-numeric: tabular-nums; color: var(--testo-muted); white-space: nowrap; }
.ae-risultati .ae-zero { color: var(--rosso); }
.ae-righe-wrap, .ae-gia-wrap { overflow-x: auto; }
.ae-righe .ae-i { width: 84px; text-align: right; }
.ae-righe .ae-n { width: 64px; text-align: right; }
.ae-righe .ae-note { width: 100%; min-width: 120px; }
.ae-cod { display: block; font-size: 11px; color: var(--testo-muted); }
.ae-opz { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 0 0 8px; font-size: 13px; }
.ae-opz label { display: inline-flex; align-items: center; gap: 6px; }
.ae-gia { font-size: 13px; }
.ae-gia .ae-fatt td { color: var(--testo-muted); }
.ae-az { white-space: nowrap; text-align: right; }
.ae-az .btn + .btn { margin-left: 4px; }
.ae-dlg-riga { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 1000px) { .ae-griglia { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .ae-cam select { min-width: 0; width: 100%; } .ae-cam { flex: 1 1 100%; } .ae-dlg-riga { grid-template-columns: 1fr 1fr; } }
.cn-test-az { display: flex; flex-wrap: wrap; gap: 8px; }
.ae-az { white-space: normal; }
.ae-az .btn { display: block; width: 100%; margin: 0 0 4px; }
.ae-az .btn + .btn { margin-left: 0; }
.ae-righe .ae-n, .ae-righe .ae-i { padding-left: 6px; padding-right: 6px; min-width: 56px; }
.ae-az { display: flex; gap: 12px; margin-top: 2px; }
.ae-az .btn { display: inline-flex; width: auto; margin: 0; }
.ae-link { border: 0; background: none; padding: 0; color: var(--borgogna); font: inherit; font-size: 12px; font-weight: 600; text-decoration: underline; cursor: pointer; }
.ae-link[data-ae-del] { color: var(--rosso); }

/* ---------- Channel manager & Booking Engine ---------- */
.ch-import { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 16px; padding: 12px 14px; margin-bottom: 12px; background: #fffaf0; border: 1px solid var(--oro); border-radius: var(--raggio); }
.ch-import-testo { display: flex; flex-direction: column; gap: 2px; margin-right: auto; }
.ch-import-testo span { font-size: 13px; color: var(--testo-muted); }
.ch-chk { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; }
.ch-esito { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px; margin: 0 0 12px; padding: 12px 14px; background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); }
.ch-esito[hidden] { display: none; }
.ch-esito h3 { margin: 0 0 4px; font-size: 14px; color: var(--borgogna); }
.ch-esito p { margin: 2px 0; }
.ch-esito ul { margin: 4px 0 0; padding-left: 18px; font-size: 13px; }
.ch-esito .ch-avvisi { color: var(--rosso); }
.ch-esito > .btn { justify-self: start; align-self: end; }
.ch-liste { display: flex; flex-wrap: wrap; gap: 2px; border-bottom: 1px solid var(--bordo); margin: 0 0 10px; }
.ch-cerca input { min-width: 220px; }
.ch-tab-wrap { overflow-x: auto; }
.ch-tab { font-size: 13px; }
.ch-tab tbody tr { cursor: pointer; }
.ch-tab tbody tr:hover td, .ch-tab tbody tr:focus td { background: #fffaf0; }
.ch-tab tr.ch-annullata td { color: var(--testo-muted); }
.ch-badges .cn-badge { margin: 1px 0; }
.cn-badge.ch-mod { background: #fbf0d0; color: #7a5a00; }
.ch-dlg { max-width: 980px; width: calc(100vw - 32px); }
.ch-dlg-testa { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.ch-dlg-testa h2 { margin: 0; }
.ch-riep { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 8px; margin: 12px 0 8px; }
.ch-riep > div { border: 1px solid var(--bordo); border-radius: var(--raggio); padding: 6px 10px; min-width: 0; }
.ch-riep span { display: block; font-size: 11px; color: var(--testo-muted); text-transform: uppercase; letter-spacing: .03em; }
.ch-riep b { display: block; overflow-wrap: anywhere; }
.ch-riep small { color: var(--testo-muted); }
.ch-sez h3 { margin: 10px 0 4px; font-size: 13px; color: var(--borgogna); }
.ch-sez p { margin: 0; }
.ch-dett { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0 16px; }
.ch-mini { font-size: 12px; }
.ch-mini td, .ch-mini th { padding: 2px 6px; }
.ch-lista { margin: 0; padding-left: 16px; font-size: 13px; }
.ch-lista small { color: var(--testo-muted); }
.ch-camere { margin-top: 8px; border-top: 1px solid var(--bordo); padding-top: 4px; }
.ch-cam-griglia { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; }
.ch-cam { display: grid; grid-template-columns: auto 1fr; gap: 0 8px; align-items: center; padding: 6px 8px; border: 1px solid var(--bordo); border-radius: var(--raggio); cursor: pointer; font-size: 13px; }
.ch-cam input { grid-row: span 3; }
.ch-cam small { color: var(--testo-muted); }
.ch-cam .cn-badge { justify-self: start; }
.ch-cam:has(input:checked) { border-color: var(--borgogna); background: #fffaf0; }
.ch-cam.occupata { background: #fdf3f1; }
.ci-form h2 { margin: 6px 0 8px; }
.ci-griglia { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px 14px; margin-bottom: 10px; }
.ci-pax { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
@media (max-width: 600px) { .ch-cerca input { min-width: 0; } .ch-import-testo { margin-right: 0; } }

/* ---------- Scelta dell'hotel all'accesso ---------- */
.login-alberghi { border: 0; margin: 0; padding: 0; min-width: 0; }
.login-alberghi[hidden], .login-cred[hidden], .btn-esci[hidden] { display: none; }
.login-alberghi legend { font-size: 13px; color: var(--testo-muted); padding: 0; margin-bottom: 6px; }
.login-alberghi-scelte { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.login-albergo { display: flex; align-items: center; gap: 8px; padding: 10px 10px; border: 1px solid var(--bordo); border-radius: 8px; cursor: pointer; font-weight: 600; font-size: 14px; line-height: 1.2; }
.login-albergo input { accent-color: var(--borgogna); flex: none; }
.login-albergo:has(input:checked) { border-color: var(--borgogna); background: #fffaf0; color: var(--borgogna); }
.login-albergo:has(input:focus-visible) { outline: 2px solid var(--oro); outline-offset: 1px; }
.marchio-utente { flex-wrap: wrap; }
@media (max-width: 420px) { .login-alberghi-scelte { grid-template-columns: 1fr; } }
#utenteNome { flex: 1 1 100%; }
.sv-tempi { margin-bottom: 14px; } .sv-tempi[hidden] { display: none; } .sv-tempi-wrap { overflow-x: auto; } .sv-tempi tr.sv-corrente td { background: #fffaf0; }
