/* Gestionale, parte 06 di 10: Cerca, cronologia, settimana e mese, foglio stampato, assistenza, pannello venditore. Spostato da app.css nella versione X senza cambiare una regola; i file si caricano in ordine (vedi index.html), che è l'ordine di prima. */
/* ---------- Versione J ---------- */
.qr-img { width: 200px; height: 200px; padding: 8px; background: #fff; border: 1px solid var(--rule); border-radius: var(--r-control); image-rendering: pixelated; }
.segreto { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: 0.05em; word-break: break-all; }
.input-codice { font-size: 1.4rem; letter-spacing: 0.3em; text-align: center; max-width: 12rem; }
.testo-legale { max-height: 28vh; overflow: auto; white-space: pre-wrap; padding: 10px 12px; border: 1px solid var(--rule); border-radius: var(--r-control); background: #fff; }
.onboarding { margin: 0 0 20px; padding: 14px 16px; border: 1px solid var(--rule); border-radius: var(--r-control); background: #fff; }
.onboarding-step { display: flex; align-items: center; gap: 10px; padding: 6px 0; }
.onboarding-text { flex: 1 1 auto; min-width: 0; }

/* Cerca, cronologia, vista settimana e mese. */
.search-results { display: flex; flex-direction: column; gap: 6px; }
.search-hit {
  display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; width: 100%; padding: 10px 12px; text-align: left;
  font: inherit; color: inherit; background: var(--surface); border: 1px solid var(--rule); border-radius: var(--r-control); cursor: pointer;
}
.search-hit:hover { background: var(--grey-soft); }
.search-hit-who { flex: 1 1 14rem; min-width: 0; overflow-wrap: anywhere; color: var(--muted); }
.timeline-log { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.timeline-log li { display: flex; flex-wrap: wrap; gap: 2px 12px; padding: 8px 10px; border-left: 4px solid var(--rule); background: var(--surface); }
.timeline-log .log-creata { border-left-color: var(--green); }
.timeline-log .log-conferma { border-left-color: var(--green); }
.timeline-log .log-email { border-left-color: var(--blue); }
.timeline-log .log-modifica { border-left-color: var(--amber); }
.log-when { flex: 0 0 9.5rem; color: var(--muted); }
.log-text { flex: 1 1 14rem; min-width: 0; overflow-wrap: anywhere; }

.calendar { display: flex; flex-direction: column; gap: 10px; }
.calendar-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.calendar-title { font-family: var(--font-display); font-size: 1.2rem; text-transform: capitalize; }
.calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.calendar-head { padding: 4px 2px; text-align: center; font-size: 0.8rem; font-weight: 700; color: var(--muted); text-transform: uppercase; }
.calendar-day-cell {
  display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-height: 5.2rem; padding: 6px; text-align: left;
  font: inherit; color: inherit; background: var(--surface); border: 1px solid var(--rule); border-radius: var(--r-control); cursor: pointer;
}
.calendar-day-cell:hover { border-color: var(--black); }
.calendar-day-out { opacity: 0.55; }
.calendar-day-closed { background: var(--grey-soft); }
.calendar-day-today { border-color: var(--black); border-width: 2px; }
.calendar-day { font-weight: 700; }
.calendar-line { width: 100%; padding: 1px 4px; border-radius: 4px; font-size: 0.8rem; white-space: nowrap; }
.calendar-closed, .calendar-wait { font-size: 0.78rem; color: var(--muted); }
.cal-lvl-0 { background: transparent; }
.cal-lvl-1 { background: var(--green-soft); }
.cal-lvl-2 { background: var(--amber-soft); color: var(--amber-ink); }
.cal-lvl-3 { background: var(--amber); color: #3a2c06; }
.cal-lvl-4 { background: var(--red-soft); color: var(--red-ink); font-weight: 700; }
@media (max-width: 520px) {
  .calendar-day-cell { min-height: 4.4rem; padding: 4px; }
  .calendar-line { font-size: 0.7rem; padding: 0 2px; }
}

/* Il Foglio di sala stampato: solo ciò che serve sulla carta. */
.print-only { display: none; }
.foglio-stampa { display: none; }
@media print {
  .print-only { display: inline; }
  p.print-only { display: block; }
  .no-print, .topbar, .tabs, .subtabs, .toolbar, .view-bar, .onboarding, .boot-error, dialog,
  .booking-controls, .booking-actions, .needs-editor, .toast-host, .btn { display: none !important; }
  body, .content { background: #fff !important; color: #000 !important; }
  .content { padding: 0 !important; }
  .board { display: block; }
  .stats { display: flex; gap: 12px; margin: 0 0 10px; }
  .stat { border: 1px solid #000; background: #fff; padding: 4px 8px; }
  .service-columns { display: block; }
  .booking-list, .plain-list { break-inside: auto; }
  .booking { break-inside: avoid; border: 0; border-bottom: 1px solid #999; border-radius: 0; background: #fff; box-shadow: none; padding: 4px 0; }
  .pill { border: 1px solid #666; background: #fff !important; color: #000 !important; }
  .booking-print { margin: 2px 0 0; font-weight: 600; }
  .status-annullata, .status-nonPresentata { display: none; }

  /* Il foglio curato: la lista a schermo si nasconde e al suo posto esce un foglio A4 per servizio. */
  .board, .day-title { display: none !important; }
  .foglio-stampa { display: block; break-after: page; color: #000; font-size: 14pt; line-height: 1.3; }
  .foglio-stampa:last-of-type { break-after: auto; }
  .foglio-testa { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2pt 16pt; border-bottom: 2pt solid #000; padding-bottom: 6pt; margin-bottom: 8pt; }
  .foglio-testa h2 { font-size: 26pt; margin: 0; }
  .foglio-data, .foglio-totale { margin: 0; font-size: 13pt; }
  .foglio-totale { font-weight: 700; }
  .foglio-tabella { width: 100%; border-collapse: collapse; }
  .foglio-tabella th { text-align: left; font-size: 11pt; text-transform: uppercase; letter-spacing: 0.04em; border-bottom: 1pt solid #000; padding: 4pt 6pt; }
  .foglio-tabella td { padding: 7pt 6pt; border-bottom: 0.5pt solid #777; vertical-align: top; }
  .foglio-tabella tr { break-inside: avoid; }
  .foglio-ora { font-weight: 700; font-size: 16pt; white-space: nowrap; }
  .foglio-tavolo { font-weight: 700; white-space: nowrap; }
  .foglio-num { text-align: right; width: 5.5rem; }
  @page { size: A4; margin: 12mm; }
}

/* Assistenza: la fascia che ricorda a chi lavora dentro un locale che non è il titolare. */
.assistenza-banner {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  padding: 8px 16px; background: var(--amber-soft); color: var(--amber-ink); border-bottom: 2px solid var(--amber);
  font-size: 0.92rem;
}
@media print { .assistenza-banner { display: none !important; } }

/* Pannello venditore: le sezioni della finestra «Gestisci». */
.gestione-sezione { border-top: 1px solid var(--rule); padding-top: 12px; display: flex; flex-direction: column; gap: 10px; }
.gestione-sezione h3 { margin: 0; font-size: 1rem; }
.gestione-pericolo h3 { color: var(--red-ink); }

/* Impostazioni: «I tuoi dati». */
.dati-azioni { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
