/* app/css/44-switcher.css — estratto da app.css (2026-07, split senza build). */
/* ========== LAVANDERIA SWITCHER (header) ========== */
.lab-switch { margin: 12px 18px 0; padding: 14px 16px; background: var(--surface); border-radius: 14px; box-shadow: var(--shadow-card); display: flex; align-items: center; gap: 12px; cursor: pointer; transition: background 120ms ease; }
.lab-switch:active { background: var(--bg); }
.lab-switch .pin-ico { width: 38px; height: 38px; border-radius: 11px; background: var(--brand-soft); color: var(--brand); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.lab-switch .body { flex: 1; min-width: 0; }
.lab-switch .lab-label { font-size: 11px; color: var(--ink-3); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; }
.lab-switch .lab-name { font-size: 20px; font-weight: 800; letter-spacing: -0.02em; color: var(--ink); line-height: 1.1; margin-top: 2px; display: flex; align-items: center; gap: 4px; }
.lab-switch .lab-addr { font-size: 12px; color: var(--ink-3); margin-top: 2px; }
/* riga orari nella card (scheda lavanderia: mostra gli orari al posto dello status) */
.lab-switch .lab-hours { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--ink-3); font-weight: 700; margin-top: 4px; }
.lab-switch .lab-hours .i { width: 13px; height: 13px; flex-shrink: 0; }
.lab-switch .chev { color: var(--ink-3); flex-shrink: 0; }
.lab-switch.with-actions { flex-direction: column; align-items: stretch; cursor: default; }
/* padding interno compensato da margin negativo uguale: lo sfondo hover/active
 * "respira" attorno al testo senza spostare il layout (no shift, divider fermo). */
.lab-switch.with-actions .lab-switch-row { display: flex; align-items: center; gap: 12px; cursor: pointer; border-radius: 12px; margin: -7px -10px; padding: 7px 10px; width: calc(100% + 20px); transition: background 120ms ease; }
/* Card non interamente cliccabile: nessun feedback di sfondo sull'intero container.
 * La riga "Cambia" e le azioni (Chiama/WhatsApp) hanno ciascuna il proprio. */
.lab-switch.with-actions:active { background: var(--surface); }
.lab-switch.with-actions .lab-switch-row:active { background: var(--bg); }
/* Sezione disponibilita': pannello tintato in fondo alla card, separato dalle actions */
/* Banner disponibilità — card a sé sotto la lavanderia (pattern .cm-card).
   Verde = disponibile (spunta + "libere"); "tutte occupate" = warn. Sfondo bianco, niente brand. */
.lab-availability { display: flex; align-items: center; gap: 14px; margin: 10px 18px 0; padding: 14px; background: var(--surface); border-radius: 14px; box-shadow: var(--shadow-card); cursor: pointer; text-decoration: none; color: inherit; transition: background 120ms ease; }
.lab-availability:active { background: var(--bg); }
.lab-availability .ic { width: 44px; height: 44px; border-radius: 12px; background: #DCFCE7; color: var(--ok); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.lab-availability .body { flex: 1; min-width: 0; }
.lab-availability .ttl { font-size: 14px; font-weight: 700; color: var(--ok-text); }
.lab-availability .sub { font-size: 12px; color: var(--ink-3); margin-top: 2px; }
.lab-availability .chev { color: var(--ink-3); flex-shrink: 0; }
.lab-availability.busy .ic { background: #FEF3C7; color: var(--warn); }
.lab-availability.busy .ttl { color: var(--warn); }
.lab-switch .lab-status { font-size: 12px; margin-top: 4px; display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--ok-text); }
.lab-switch .lab-status .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--ok); flex-shrink: 0; }
.lab-switch .lab-status.closed { color: var(--brand); }
.lab-switch .lab-status.closed .dot { background: var(--brand); }
.lab-actions { display: flex; gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.lab-actions a { flex: 1; padding: 8px 6px; border-radius: 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; font-size: 12px; font-weight: 800; }
.lab-actions a .i { width: 20px; height: 20px; }
.lab-actions a:active { transform: scale(0.97); }
.lab-actions a.call { background: var(--brand-soft); color: var(--brand); }
.lab-actions a.wa { background: var(--brand-soft); color: var(--brand); }
.lab-actions a.dir { background: var(--brand-soft); color: var(--brand); }

.availability-pill { margin: 10px 18px 0; padding: 12px 14px; background: #ECFDF5; border: 1px solid #BBF7D0; border-radius: 12px; color: #065F46; display: flex; align-items: center; gap: 10px; font-size: 13px; cursor: pointer; }
.availability-pill:active { background: #DCFCE7; }
.availability-pill .ic { width: 32px; height: 32px; border-radius: 8px; background: var(--ok); color: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.availability-pill .body { flex: 1; min-width: 0; }
.availability-pill .ttl { font-weight: 700; color: #064E3B; }
.availability-pill .sub { font-size: 11px; opacity: 0.85; margin-top: 1px; }
.availability-pill .chev { color: var(--ok); flex-shrink: 0; opacity: 0.6; }
.availability-pill.busy { background: #FFFBEB; border-color: #FCD34D; color: #92400E; }
.availability-pill.busy .ic { background: var(--warn); }
.availability-pill.busy .ttl { color: #78350F; }
.availability-pill.busy .chev { color: var(--warn); }

/* Modal cambio lavanderia — regole spostate a riga ~1012 (consolidato 2026-05-22) */

.locate-btn { margin: 10px 18px 0; padding: 12px 14px; background: var(--brand-soft); color: var(--brand); border-radius: 12px; display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; cursor: pointer; }
.locate-btn:active { background: #FBE4EA; }
.locate-btn svg { flex-shrink: 0; }

.lab-list-row { background: var(--surface); padding: 14px 16px; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid var(--line); cursor: pointer; }
.lab-list-row:last-child { border-bottom: none; }
.lab-list-row:active { background: var(--bg); }
.lab-list-row.active { background: var(--brand-soft); }
.lab-list-row .ic { width: 38px; height: 38px; border-radius: 10px; background: var(--bg); color: var(--ink-2); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.lab-list-row.active .ic { background: var(--brand); color: #fff; }
.lab-list-row .body { flex: 1; min-width: 0; }
.lab-list-row .nm { font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 4px; }
.lab-list-row .ad { font-size: 11px; color: var(--ink-3); margin-top: 2px; }
.lab-list-row .balance { text-align: right; font-size: 13px; font-weight: 700; color: var(--brand); flex-shrink: 0; }
.lab-list-row .check { color: var(--brand); flex-shrink: 0; }

