/* =============================================================================
   Eddie PMS — stay-range.css: selettore soggiorno (#581, static/js/stay-range.js)
   -----------------------------------------------------------------------------
   File generato da scripts/design/theme_gen.py: non modificarlo a mano
   (python -m scripts.design.theme_gen). Lo includono il layout admin (dopo
   theme.css), il sito di default e i siti custom: per questo è un file a sé e
   non una sezione di theme.css (che il sito pubblico non carica).

   Colori solo da variabili --sr-* a specificità zero: i token del design system
   (--b1, --bc, --p, --pc, --b3, --muted, --focus) dove ci sono (admin chiaro e
   scuro, area ospite), quelli di DaisyUI sul sito di default (stessa forma
   oklch), altrimenti i valori di riserva. Un tema li ridefinisce su
   .srp / .sr-trigger (Relais Empire: oro, notte, Playfair). Coppie usate:
   testo --bc su --b1, muted su --b1, --pc su --p (le stesse del tema, già
   verificate da contrast.py); fuori servizio = muted, mai solo il colore
   (aria-disabled e aria-label lo dicono).
   ============================================================================= */
:where(.srp, .sr-trigger) {
  --sr-bg: oklch(var(--b1, 100% 0 0));
  --sr-ink: oklch(var(--bc, 22% 0.01 260));
  --sr-muted: oklch(var(--muted, var(--bc, 22% 0.01 260) / .7));
  --sr-line: oklch(var(--b3, 91.8% 0.006 80));
  --sr-sel: oklch(var(--p, 23.5% 0.012 260));
  --sr-on-sel: oklch(var(--pc, 99% 0 0));
  --sr-range: oklch(var(--p, 23.5% 0.012 260) / .1);
  --sr-hover: oklch(var(--bc, 22% 0.01 260) / .07);
  --sr-focus: oklch(var(--focus, var(--p, 55% 0.17 255)));
  --sr-err: oklch(var(--err-fg, var(--er, 51% 0.19 25)));
  --sr-radius: 10px;
  --sr-cell-radius: 8px;
  --sr-shadow: var(--shadow-pop, 0 12px 32px -10px rgb(0 0 0 / .28), 0 2px 6px rgb(0 0 0 / .08));
}

/* i due campi nativi restano nel form (valore, validazione, eventi) ma non si vedono: li sostituiscono i bottoni */
.sr-native { position: absolute !important; width: 1px !important; height: 1px !important; min-width: 0 !important; min-height: 0 !important;
             padding: 0 !important; margin: -1px !important; border: 0 !important; overflow: hidden !important; clip-path: inset(50%) !important;
             white-space: nowrap; opacity: 0; pointer-events: none; }

/* bottone al posto del campo: prende le classi del campo (input input-bordered input-sm …), qui solo la disposizione */
:where(.sr-trigger) { font: inherit; color: inherit; }
.sr-trigger { display: inline-flex; align-items: center; gap: .45em; text-align: left; cursor: pointer; white-space: nowrap; overflow: hidden; }
.sr-trigger .sr-ico { width: 1em; height: 1em; flex: none; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; opacity: .7; }
.sr-trigger .sr-tv { flex: none; }   /* la data resta intera: in un campo stretto si accorcia il conteggio delle notti */
.sr-trigger .sr-tn { min-width: 0; overflow: hidden; text-overflow: ellipsis; color: var(--sr-muted); }
.sr-trigger .sr-tn:empty { display: none; }
.sr-trigger.is-empty .sr-tv { color: var(--sr-muted); }
.sr-trigger.is-invalid { border-color: var(--sr-err); box-shadow: inset 0 0 0 1px var(--sr-err); }
.sr-trigger[aria-expanded="true"] { border-color: var(--sr-focus); }
.sr-trigger:disabled { cursor: not-allowed; opacity: .6; }
@media (pointer: coarse) { .sr-trigger { min-height: 44px; } }

/* calendario: popover nello strato superiore (non lo tagliano finestra del dock né overflow); senza popover API position: fixed */
.srp { position: fixed; inset: auto; margin: 0; z-index: 1000; box-sizing: border-box; width: max-content; max-width: calc(100vw - 16px);
       padding: 12px; border: 1px solid var(--sr-line); border-radius: var(--sr-radius); background: var(--sr-bg); color: var(--sr-ink);
       box-shadow: var(--sr-shadow); font-size: 14px; line-height: 1.4; overflow: visible; text-align: left; }
.srp *, .srp *::before, .srp *::after { box-sizing: border-box; }
.srp :focus-visible { outline: 2px solid var(--sr-focus); outline-offset: 2px; }
:where(.srp) button { font: inherit; color: inherit; }
.srp-head { position: relative; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding-right: 40px; }
.srp-seg { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; min-width: 9.5rem; padding: 6px 10px;
           border: 1px solid var(--sr-line); border-radius: var(--sr-cell-radius); background: transparent; text-align: left; cursor: pointer; }
.srp-seg.is-on { border-color: var(--sr-sel); box-shadow: inset 0 0 0 1px var(--sr-sel); }
.srp-k { font-size: 11px; line-height: 14px; font-weight: 600; letter-spacing: .02em; color: var(--sr-muted); }
.srp-v { font-size: 15px; line-height: 20px; font-weight: 600; white-space: nowrap; }
.srp-arrow { color: var(--sr-muted); }
.srp-count { margin-left: auto; font-weight: 600; white-space: nowrap; }
.srp-x { position: absolute; top: -4px; right: -4px; width: 36px; height: 36px; border: 0; border-radius: 8px; background: transparent;
         color: var(--sr-muted); font-size: 22px; line-height: 1; cursor: pointer; }
.srp-live { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
/* «Scrivi la data»: per chi preferisce digitare (gg/mm/aaaa, gg/mm); Invio sceglie, come un clic sul giorno */
.srp-type { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; margin-top: 10px; font-size: 12px; color: var(--sr-muted); }
.srp-type-in { flex: 1 1 8rem; min-width: 0; height: 32px; padding: 0 8px; border: 1px solid var(--sr-line); border-radius: 8px;
               background: var(--sr-bg); color: var(--sr-ink); font: inherit; font-size: 14px; }
.srp-type-in[aria-invalid="true"] { border-color: var(--sr-err); }
.srp-quick { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.srp-chip { min-height: 30px; padding: 0 10px; border: 1px solid var(--sr-line); border-radius: 999px; background: transparent; font-size: 13px; cursor: pointer; }
.srp-chip:disabled { opacity: .45; cursor: not-allowed; }
.srp-cal { position: relative; margin-top: 10px; }
.srp-nav { position: absolute; top: -2px; z-index: 1; width: 34px; height: 34px; border: 1px solid var(--sr-line); border-radius: 8px;
           background: var(--sr-bg); font-size: 20px; line-height: 1; cursor: pointer; }
.srp-prev { left: 0; }
.srp-next { right: 0; }
.srp-months { display: grid; grid-template-columns: 1fr; gap: 20px; }
.srp.is-two .srp-months { grid-template-columns: 1fr 1fr; }
.srp-mt { margin: 0 0 6px; height: 30px; line-height: 30px; text-align: center; font-size: 14px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.srp-mt::first-letter { text-transform: uppercase; }
.srp-grid { border-collapse: separate; border-spacing: 0 2px; table-layout: fixed; margin: 0 auto; }
.srp-grid th { width: 40px; height: 24px; padding: 0; font-size: 11px; font-weight: 600; color: var(--sr-muted); text-align: center; text-transform: none; }
.srp-grid td { width: 40px; height: 38px; padding: 0; text-align: center; vertical-align: middle; font-variant-numeric: tabular-nums; }
.srp-grid td[data-n] { cursor: pointer; }
.srp-grid td[data-n] > span { display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: var(--sr-cell-radius); }
.srp-grid td[data-n]:hover > span { background: var(--sr-hover); }
.srp-grid td:focus { outline: none; }
.srp-grid td:focus-visible > span { outline: 2px solid var(--sr-focus); outline-offset: 1px; }
.srp-grid td.is-in, .srp-grid td.is-preview { background: var(--sr-range); }
.srp-grid td.is-from { background: linear-gradient(90deg, transparent 50%, var(--sr-range) 50%); }
.srp-grid td.is-to { background: linear-gradient(90deg, var(--sr-range) 50%, transparent 50%); }
.srp-grid td.is-start > span, .srp-grid td.is-end > span, .srp-grid td.is-start:hover > span, .srp-grid td.is-end:hover > span {
  background: var(--sr-sel); color: var(--sr-on-sel); font-weight: 600; }
.srp-grid td.is-today > span { box-shadow: inset 0 0 0 1px var(--sr-muted); }
.srp-grid td.is-off { cursor: default; color: var(--sr-muted); }
.srp-grid td.is-off > span { opacity: .5; }
.srp-grid td.is-off:hover > span { background: none; }
.srp-foot { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.srp-hint { margin: 0 auto 0 0; font-size: 12px; color: var(--sr-muted); }
.srp-btn { min-height: 32px; padding: 0 12px; border: 1px solid var(--sr-line); border-radius: 8px; background: transparent; font-weight: 600; cursor: pointer; }
.srp-done, .srp-done:hover { border-color: var(--sr-sel); background: var(--sr-sel); color: var(--sr-on-sel); }
.srp-chip:hover, .srp-seg:hover, .srp-nav:hover, .srp-btn:not(.srp-done):hover, .srp-x:hover { background: var(--sr-hover); }

/* sotto 640px: foglio dal basso a tutta larghezza, un mese che scorre (frecce o trascinamento), giorni da 44px */
html.sr-lock, html.sr-lock body { overflow: hidden; }   /* il foglio sul telefono: la pagina sotto non scorre */
.srp.is-sheet { overscroll-behavior: contain; top: auto; right: 0; bottom: 0; left: 0; width: auto; max-width: none; max-height: 92dvh; overflow-y: auto;
                padding: 14px 12px calc(14px + env(safe-area-inset-bottom)); border-bottom: 0; border-radius: 16px 16px 0 0;
                box-shadow: 0 -8px 30px rgb(0 0 0 / .25), 0 0 0 100vmax rgb(0 0 0 / .32); }
.srp.is-sheet .srp-seg { flex: 1; min-width: 0; }
.srp.is-sheet .srp-count { flex-basis: 100%; margin-left: 0; }
.srp.is-sheet .srp-grid { width: 100%; }
.srp.is-sheet .srp-grid th, .srp.is-sheet .srp-grid td { width: auto; }
.srp.is-sheet .srp-grid td { height: 46px; }
.srp.is-sheet .srp-grid td[data-n] > span { width: 44px; height: 44px; }
@media (pointer: coarse) {
  .srp-chip, .srp-btn, .srp-nav, .srp-x { min-width: 44px; min-height: 44px; }
  .srp-type-in { height: 44px; font-size: 16px; }   /* 16px: iOS non ingrandisce la pagina sul campo */
  .srp-nav { height: 44px; }
  .srp-grid td { height: 46px; }
  .srp-grid td[data-n] > span { width: 44px; height: 44px; }
}
