/* Calendario unico arrivo/partenza — foglio autonomo, caricato da ogni pagina
   che ha un modulo di ricerca, cosi non dipende dagli stili della singola vista. */
.cal-cella{position:relative}
.cal-cella label{display:block;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;color:#8D9599;margin-bottom:6px}
.cal-bt{width:100%;text-align:left;background:#fff;border:1px solid #E2DDD2;border-radius:8px;
  padding:11px 13px;font-family:'Public Sans',system-ui,sans-serif;font-size:15.5px;color:#14181B;
  cursor:pointer;min-height:46px;line-height:1.35;transition:border-color .2s,box-shadow .2s;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-bt:hover{border-color:#0D5A52}
.cal-bt:focus{outline:none;border-color:#0D5A52;box-shadow:0 0 0 3px rgba(13,90,82,.12)}

.cal-pan{display:none;position:absolute;z-index:200;top:calc(100% + 8px);left:0;
  background:#fff;border:1px solid #E2DDD2;border-radius:12px;
  box-shadow:0 18px 48px rgba(20,24,27,.20);padding:18px;min-width:340px;
  font-family:'Public Sans',system-ui,sans-serif;color:#14181B;text-align:left}
.cal-pan.on{display:block}
.cal-testa{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.cal-mese{font-family:Fraunces,Georgia,serif;font-size:16px;font-weight:600;text-transform:capitalize;color:#14181B}
.cal-frec{width:34px;height:34px;min-height:34px;border:1px solid #E2DDD2;background:#fff;border-radius:8px;
  cursor:pointer;font-size:19px;line-height:1;color:#14181B;padding:0;display:grid;place-items:center;flex:none}
.cal-frec:hover:not(:disabled){background:#F7F5F0;border-color:#0D5A52}
.cal-frec:disabled{opacity:.3;cursor:default}
.cal-mesi{display:flex;gap:26px}
.cal-m{flex:1;min-width:286px}
.cal-nome{font-family:Fraunces,Georgia,serif;font-size:14.5px;font-weight:600;margin:0 0 10px;
  text-transform:capitalize;color:#5B666D;text-align:center}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-in{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;color:#8D9599;
  text-align:center;padding:4px 0 8px;text-transform:uppercase;display:block}
.cal-d{aspect-ratio:1;width:100%;min-height:0;border:0;background:none;border-radius:8px;cursor:pointer;
  font-family:'Public Sans',system-ui,sans-serif;font-size:14.5px;font-weight:400;color:#14181B;
  padding:0;display:grid;place-items:center;transition:background .15s}
.cal-d:hover:not(:disabled):not(.cal-a):not(.cal-b){background:#F7F5F0}
.cal-d:disabled,.cal-d.cal-no{color:#CFC8BA;cursor:default;text-decoration:line-through}
.cal-d.cal-a,.cal-d.cal-b{background:#0D5A52;color:#fff;font-weight:600}
.cal-d.cal-a{border-radius:8px 3px 3px 8px}
.cal-d.cal-b{border-radius:3px 8px 8px 3px}
.cal-d.cal-mid{background:#E8F1EF;border-radius:0;color:#083D37}
.cal-piede{display:flex;align-items:center;justify-content:space-between;gap:14px;
  margin-top:14px;padding-top:14px;border-top:1px solid #E2DDD2}
.cal-nota{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12.5px;color:#8D9599}
.cal-ok{background:#0D5A52;color:#fff;border:0;border-radius:8px;padding:10px 20px;min-height:0;
  font-family:'Public Sans',system-ui,sans-serif;font-size:14.5px;font-weight:600;cursor:pointer;width:auto}
.cal-ok:hover{background:#083D37;color:#fff}

@media (max-width: 760px){
  .cal-pan{position:fixed;left:0;right:0;bottom:0;top:auto;border-radius:16px 16px 0 0;min-width:0;
    max-height:84vh;overflow-y:auto;padding:18px 16px calc(16px + env(safe-area-inset-bottom));
    box-shadow:0 -10px 50px rgba(20,24,27,.28)}
  .cal-mesi{flex-direction:column;gap:22px}
  .cal-m{min-width:0}
  .cal-piede{position:sticky;bottom:0;background:#fff;margin-top:18px}
  .cal-ok{flex:1;padding:14px;text-align:center}
}
