/* Calendario de fechas de la web pública · azul suave */
:root{--cal:#3b7bc0;--cal-suave:#e3eefa;--cal-borde:#cfdcee}
.cal-campo{font:inherit;width:100%;box-sizing:border-box;display:block;text-align:left;padding:.6rem .7rem;border:1px solid #c9d2e3;border-radius:10px;background:#fff;color:#14213d;cursor:pointer;min-height:42px;font-weight:600;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%233b7bc0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='3'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;padding-right:2.2rem}
.cal-campo:hover,.cal-campo:focus-visible{border-color:var(--cal);outline:0;box-shadow:0 0 0 3px rgba(59,123,192,.18)}
.cal-campo.cal-vacio{color:#7a879c;font-weight:500}
.cal-fondo{position:fixed;inset:0;background:rgba(20,33,61,.45);z-index:9998}
.cal-pop{position:absolute;z-index:9999;width:min(680px,calc(100vw - 16px));background:#fff;color:#14213d;border:1px solid var(--cal-borde);border-radius:16px;box-shadow:0 18px 50px rgba(20,33,61,.25);padding:.7rem .9rem .8rem;box-sizing:border-box}
.cal-pop[hidden],.cal-fondo[hidden]{display:none}
.cal-cab{display:flex;align-items:center;gap:.6rem;margin:0 0 .4rem}
.cal-paso{font-size:.72rem;font-weight:800;color:#fff;background:var(--cal);border-radius:999px;padding:.12rem .5rem}.cal-paso:empty{display:none}
.cal-info{flex:1;font-size:.95rem;color:#14213d}
.cal-x{border:0;background:none;font-size:1.7rem;line-height:1;color:#4a5878;cursor:pointer;padding:0 .2rem}
.cal-cuerpo{display:flex;align-items:flex-start;gap:.3rem}
.cal-meses{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.2rem;min-width:0}
.cal-nav{flex:none;width:34px;height:34px;margin-top:.1rem;border:0;border-radius:50%;background:var(--cal-suave);color:var(--cal);font-size:1.6rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0 0 .15rem}
.cal-nav:disabled{opacity:.3;cursor:default}
.cal-tit{text-align:center;font-weight:800;margin:.1rem 0 .4rem;font-size:.98rem}
.cal-sem,.cal-dias{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-sem span{text-align:center;font-size:.72rem;font-weight:800;color:#6b7a93;padding:.15rem 0}
.cal-d{font:inherit;font-size:.92rem;border:0;background:none;height:38px;color:#14213d;cursor:pointer;position:relative;padding:0}
.cal-d:hover:not(:disabled):not(.cal-sel){background:var(--cal-suave);border-radius:50%}
.cal-d.cal-dis{color:#c9d0dc;cursor:default}
.cal-d.cal-hoy::after{content:"";position:absolute;left:50%;bottom:4px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--cal)}
.cal-d.cal-rango{background:var(--cal-suave);border-radius:0}
.cal-d.cal-sel{background:var(--cal);color:#fff;font-weight:800;border-radius:50%}
.cal-d.cal-ini{border-radius:50% 0 0 50%;box-shadow:none}.cal-d.cal-fin{border-radius:0 50% 50% 0}
.cal-d.cal-sel.cal-hoy::after{background:#fff}
.cal-pie{display:flex;justify-content:flex-end;margin-top:.3rem}
.cal-borrar{border:0;background:none;color:var(--cal);font:inherit;font-weight:700;font-size:.85rem;cursor:pointer}.cal-borrar[hidden]{display:none}
@media(max-width:719px){
  .cal-pop.cal-hoja{position:fixed;left:0;right:0;bottom:0;top:auto!important;width:100%;max-height:88vh;overflow:auto;border-radius:18px 18px 0 0;padding:.8rem .8rem calc(.9rem + env(safe-area-inset-bottom));border-bottom:0}
  .cal-meses{grid-template-columns:1fr}
  .cal-d{height:44px;font-size:1rem}
  .cal-nav{width:38px;height:38px}
}
html.cal-abierto{scroll-padding:0}
