/* Calendario de precios: estilos compartidos por la web pública y el panel /admin.
   Usa las variables de color (--surface, --line, --teal…) definidas en cada página. */

.cal-panel{
  background:var(--surface);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:clamp(18px,4vw,30px);
}
.cal-toolbar{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px;
  margin-bottom:20px;
}
.cal-nav{ display:flex; align-items:center; gap:14px; }
.cal-nav button{
  background:none; border:1px solid var(--line); color:var(--ink);
  width:32px; height:32px; border-radius:50%; cursor:pointer; font-size:1rem;
}
.cal-nav button:hover{ border-color:var(--teal); color:var(--teal); }
.cal-month{ font-family:"Fraunces",serif; font-weight:600; font-size:1.2rem; text-transform:capitalize; min-width:150px; text-align:center; }

.cal-grid{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; }
.cal-dow{ font-size:0.68rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--ink-soft); text-align:center; padding-bottom:6px; }
.cal-cell{
  position:relative;
  aspect-ratio:1/0.85;
  border:1px solid var(--line);
  border-radius:4px;
  padding:6px;
  display:flex; flex-direction:column; justify-content:space-between;
  font-size:0.8rem;
  min-width:0;
  overflow:hidden;
}
.cal-cell.empty{ border:none; }
/* Días pasados: se distinguen por el borde discontinuo y el texto apagado, con contraste suficiente (WCAG 1.4.3);
   antes se usaba opacity:0.35, que dejaba el texto por debajo de 4,5:1. */
.cal-cell.past{ border-style:dashed; }
.cal-cell.past .d, .cal-cell.past .p{ color:var(--ink-soft); font-weight:400; }
.cal-cell .d{ font-family:"Space Mono",monospace; font-weight:700; }
.cal-cell .p{ font-family:"Space Mono",monospace; color:var(--bougain); font-weight:700; font-size:0.82rem; align-self:flex-end; white-space:nowrap; }
.cal-cell .p.empty-price{ color:var(--ink-soft); font-weight:400; font-size:0.68rem; }

/* día no disponible */
.cal-cell.no-disp{
  background:repeating-linear-gradient(135deg, transparent 0 6px, var(--line) 6px 7px);
}
.cal-cell.no-disp .p{ color:var(--ink-soft); font-weight:400; font-size:0.66rem; text-transform:uppercase; letter-spacing:0.04em; }

/* solo en el panel: días pulsables y selección de rango */
.cal-cell.editable{ cursor:pointer; }
.cal-cell.editable:hover, .cal-cell.editable:focus-visible{ border-color:var(--teal); outline:none; }
.cal-cell.sel{ border-color:var(--teal); box-shadow:inset 0 0 0 2px var(--teal); }
.cal-cell.cambiado .d::after{ content:" •"; color:var(--teal); }

.cal-legend{
  margin-top:16px; font-size:0.78rem; color:var(--ink-soft);
  display:flex; gap:18px; flex-wrap:wrap; align-items:center;
}
.cal-legend .muestra-no-disp{
  display:inline-block; width:14px; height:12px; vertical-align:-1px; margin-right:4px;
  border:1px solid var(--line); border-radius:2px;
  background:repeating-linear-gradient(135deg, transparent 0 3px, var(--line) 3px 4px);
}
.cal-status{ margin-top:14px; font-size:0.82rem; min-height:1.2em; }
.cal-status.ok{ color:var(--teal); }
.cal-status.err{ color:var(--bougain); }

@media (max-width:480px){
  .cal-grid{ gap:3px; }
  .cal-cell{ padding:3px; font-size:0.7rem; }
  .cal-cell .p{ font-size:0.62rem; letter-spacing:-0.03em; white-space:nowrap; }
  /* «No disp.» no cabe: se deja el rayado y una ×, el texto sigue para lectores de pantalla */
  .cal-cell.no-disp .p{ font-size:0; letter-spacing:0; }
  .cal-cell.no-disp .p::after{ content:"×"; font-size:0.85rem; font-weight:700; }
  .cal-dow{ font-size:0.58rem; letter-spacing:0; }
}

/* Web pública: calendario amplio y legible, sin alterar el panel de gestión. */
#calendario .cal-panel{max-width:1000px;padding:clamp(12px,2.5vw,28px);}
#calendario .cal-toolbar{margin-bottom:22px;}
#calendario .cal-nav{width:100%;justify-content:space-between;gap:8px;}
#calendario .cal-nav button{width:48px;height:48px;flex:none;font-size:1.5rem;}
#calendario .cal-month{min-width:0;font-size:clamp(1.35rem,3.5vw,1.9rem);line-height:1.2;}
#calendario .cal-grid{gap:6px;}
#calendario .cal-dow{font-size:.8rem;font-weight:700;padding:8px 0;}
#calendario .cal-cell{aspect-ratio:auto;min-height:100px;padding:10px;border-radius:8px;}
#calendario .cal-cell .d{font-size:1.25rem;}
#calendario .cal-cell .p{font-family:"Karla",system-ui,sans-serif;font-size:1.1rem;letter-spacing:0;line-height:1.3;max-width:100%;white-space:normal;overflow-wrap:anywhere;}
#calendario .cal-cell.empty{background:none;}
#calendario .cal-cell.editable:focus-visible{outline:3px solid var(--teal);outline-offset:1px;}
#calendario .cal-legend{font-size:.95rem;gap:10px 20px;line-height:1.5;}
#calendario .cal-status{font-size:.95rem;}
@media(max-width:600px){
  #calendario>.wrap{padding-left:8px;padding-right:8px;}
  #calendario .cal-panel{padding:14px 8px;}
  #calendario .cal-grid{gap:4px;}
  #calendario .cal-dow{font-size:.7rem;letter-spacing:0;}
  #calendario .cal-cell{min-height:82px;padding:7px 3px;border-radius:6px;}
  #calendario .cal-cell .d{font-size:1.1rem;}
  #calendario .cal-cell .p{font-size:clamp(.72rem,3.3vw,.95rem);align-self:center;}
  #calendario .cal-cell.no-disp .p{font-size:0;}
  #calendario .cal-cell.no-disp .p::after{content:"×";font-size:1.15rem;font-weight:700;}
}

/* Contraste del calendario público independiente del modo claro/oscuro. */
#calendario .cal-panel{
  --surface:#ffffff;--ink:#172b36;--ink-soft:#475569;--line:#94a3b8;
  --bougain:#943811;--teal:#155e75;--bg-2:#eef3f6;
  background:#ffffff;color:#172b36;color-scheme:light;
}
#calendario .cal-nav button{background:#ffffff;border-color:#64748b;color:#172b36;}
#calendario .cal-month,#calendario .cal-dow{color:#172b36;}
#calendario .cal-cell{background:#ffffff;border-color:#64748b;}
#calendario .cal-cell .d{color:#172b36;}
#calendario .cal-cell .p{color:#943811;}
#calendario .cal-cell.past{background:#f1f5f9;border-color:#64748b;}
#calendario .cal-cell.past .d,#calendario .cal-cell.past .p{color:#475569;font-weight:600;}
#calendario .cal-cell.no-disp{background:repeating-linear-gradient(135deg,#e2e8f0 0 6px,#cbd5e1 6px 8px);border-color:#64748b;}
#calendario .cal-cell.no-disp .d,#calendario .cal-cell.no-disp .p{color:#334155;font-weight:700;}
#calendario .cal-cell.empty{background:transparent;border:none;}
#calendario .cal-legend,#calendario .cal-status{color:#334155;}
#calendario .cal-status.err{color:#943811;}
#calendario .cal-seleccion{background:#eef3f6;color:#172b36;}
#calendario #calGrid .cal-cell.sel-rango{background:#fbe8db;border-color:#943811;}
#calendario .cal-cell.sel-extremo{background:#943811;border-color:#943811;}
#calendario .cal-cell.sel-extremo .d,#calendario .cal-cell.sel-extremo .p{color:#ffffff;}

/* Presentación limpia: fecha centrada, tarifa debajo y pasado sin precios. */
#calendario .cal-grid{gap:5px;}
#calendario .cal-cell{
  align-items:center;justify-content:space-between;padding:16px 6px 12px;
  border:1px solid #cbd5e1;border-radius:10px;min-height:96px;
}
#calendario .cal-cell .d{
  font-family:"Karla",system-ui,sans-serif;font-size:1.25rem;line-height:1.2;font-weight:700;
}
#calendario .cal-cell .p{
  align-self:center;font-size:1rem;font-weight:600;color:#334155;
}
#calendario .cal-cell.past{background:#f1f5f9;border-color:transparent;border-style:solid;}
#calendario .cal-cell.past .d{color:#475569;font-weight:500;}
#calendario .cal-cell.past .p{visibility:hidden;}
#calendario .cal-cell.no-disp{
  background:#e2e8f0;border-color:#94a3b8;
}
#calendario .cal-cell.no-disp .d{text-decoration:line-through;text-decoration-thickness:1px;}
#calendario .cal-cell.no-disp .p{font-size:0;visibility:visible;}
#calendario .cal-cell.no-disp .p::after{content:"—";font-size:1rem;color:#334155;}
#calendario .cal-cell.past.no-disp .p{visibility:hidden;}
#calendario .cal-cell.empty{background:transparent;border-color:transparent;}
#calendario #calGrid .cal-cell.sel-rango{background:#e1eff4;border-color:#155e75;}
#calendario #calGrid .cal-cell.sel-extremo{background:#155e75;border-color:#155e75;}
#calendario #calGrid .cal-cell.sel-extremo .d,#calendario #calGrid .cal-cell.sel-extremo .p{color:#ffffff;}
#calendario .cal-legend .muestra-no-disp{background:#e2e8f0;border-color:#94a3b8;}
@media(max-width:600px){
  #calendario .cal-cell{min-height:78px;padding:12px 2px 10px;border-radius:8px;}
  #calendario .cal-cell .d{font-size:1.1rem;}
  #calendario .cal-cell .p{font-size:clamp(.72rem,3.2vw,.95rem);}
  #calendario .cal-cell.no-disp .p{font-size:0;}
  #calendario .cal-dow{padding:10px 0;font-size:.7rem;}
}
