/* HORA Calendar – modern minimalist UI */
.hora-calendar{--gap:12px;--ring:#e5e7eb;--muted:#f8fafc;--text:#0f172a;--card:#ffffff;--shadow:0 8px 20px rgba(2,6,23,.06)}
.hora-calendar .hora-cal-header{display:flex;align-items:center;justify-content:space-between;margin:6px 0 20px}
.hora-calendar .hora-cal-header h3{margin:0;font-size:1.15rem;font-weight:800;letter-spacing:.2px;color:var(--text)}
.hora-calendar .hora-cal-header .nav{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--ring);border-radius:12px;text-decoration:none;transition:transform .15s ease, background .15s ease}
.hora-calendar .hora-cal-header .nav:hover{background:var(--muted);transform:translateY(-1px)}
.hora-calendar .hora-grid-7{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--gap)}
.hora-calendar .dow{font-weight:700;text-align:center;padding:10px 0;background:var(--muted);border-radius:14px;font-size:.9rem;color:#334155}
.hora-calendar .day{min-height:140px;border:1px solid var(--ring);border-radius:16px;padding:12px;background:var(--card);display:flex;flex-direction:column;box-shadow:var(--shadow);transition:transform .15s ease}
.hora-calendar .day:hover{transform:translateY(-2px)}
.hora-calendar .day.today{box-shadow:0 0 0 2px #2563eb1f, inset 0 0 0 1px #2563eb1f}
.hora-calendar .day .date{font-weight:800;margin-bottom:10px;opacity:.8;color:#334155}
.hora-calendar .day .event{background:var(--hora-badge,#fef3c7);border:1px dashed #f59e0b55;border-radius:14px;padding:12px;margin-top:auto}
.hora-calendar .day .event-title{font-weight:800;line-height:1.2;margin-bottom:6px;color:#111827}
.hora-calendar .day .event-title small{font-weight:600;opacity:.85;margin-left:6px}
.hora-calendar .day .event-cap{font-size:.85rem;margin-bottom:8px;opacity:.85}
.hora-calendar .day .event-soldout{font-weight:800;color:#991b1b;background:#fee2e2;border-radius:10px;padding:6px 8px;display:inline-block}
.hora-calendar .day .hora-btn{display:inline-flex;align-items:center;justify-content:center;margin-top:10px;padding:12px 14px;border-radius:var(--btn-radius,14px);text-decoration:none;background:var(--btn-bg,#111827);color:var(--btn-color,#fff);font-weight:800;line-height:1;box-shadow:0 6px 14px rgba(17,24,39,.18);transition:transform .12s ease, box-shadow .12s ease}
.hora-calendar .day .hora-btn:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(17,24,39,.20)}
.hora-calendar .day.empty{background:#fff}
@media (max-width: 960px){
  .hora-calendar .hora-grid-7{grid-template-columns:repeat(3,1fr)}
}
@media (max-width: 640px){
  .hora-calendar .hora-grid-7{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 440px){
  .hora-calendar .hora-grid-7{grid-template-columns:1fr}
}

/* Mobile usability upgrades */
@media (max-width: 640px){
  .hora-calendar .dow{display:none}               /* nascondi intestazioni per recuperare spazio */
  .hora-calendar .hora-grid-7{grid-template-columns:1fr} /* vista lista */
  .hora-calendar .day{min-height:auto;padding:14px}
  .hora-calendar .day .date{font-size:1.05rem;margin-bottom:12px}
  .hora-calendar .day .event{padding:12px}
  .hora-calendar .day .hora-btn{width:100%; min-height:44px}  /* target touch più grande */
}

/* Enforce 2-column mobile grid and hide weekday headers thoroughly */
@media (max-width: 640px){
  .hora-calendar .dow{display:none !important; padding:0 !important; border:0 !important; height:0 !important; margin:0 !important}
  .hora-calendar .hora-grid-7{grid-template-columns:repeat(2, minmax(0,1fr)) !important}
  .hora-calendar .day{min-height:auto;padding:14px}
  .hora-calendar .day .date{font-size:1.05rem;margin-bottom:12px}
  .hora-calendar .day .event{padding:12px}
  .hora-calendar .day .hora-btn{width:100%; min-height:44px}
}


/* Giorni passati oscurati */
.hora-calendar .day.is-past{
  opacity: .45;
}
.hora-calendar .day.is-past .hora-btn{
  pointer-events:none;
}

/* Semaforo apertura */
.hora-calendar .hora-status{
  border:0;
  padding:4px 8px;
  border-radius:999px;
  font-size:.75rem;
  font-weight:700;
  margin-bottom:6px;
  margin-top:4px;
  cursor:pointer;
}
.hora-calendar .hora-status-open{
  background:#22c55e33;
  color:#15803d;
}
.hora-calendar .hora-status-closed{
  background:#f9731633;
  color:#9a3412;
}
.hora-calendar .hora-status-note{
  display:none;
  font-size:.78rem;
  margin-bottom:8px;
  color:#334155;
}
.hora-calendar .hora-status-note.is-visible{
  display:block;
}
