/* Base compartida: calendario de disponibilidad + visor de fotos.
   Los colores se heredan de variables que define cada página. */
.ico{width:1.15em;height:1.15em;fill:currentColor;flex:none}
.qc-hide{display:none!important}

/* ── Visor de fotos ── */
.lb{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;background:rgba(10,14,12,.94)}
.lb.on{display:flex}
.lb figure{margin:0;max-width:min(92vw,1100px);max-height:88vh;display:flex;flex-direction:column;align-items:center;gap:.7rem}
.lb img{max-width:100%;max-height:78vh;object-fit:contain;border-radius:6px;touch-action:pan-y}
.lb figcaption{color:#e8ece8;font:500 .95rem/1.4 var(--font-body,system-ui);text-align:center}
.lb button{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;width:48px;height:48px;border-radius:50%;font-size:1.5rem;cursor:pointer;display:grid;place-items:center}
.lb button:hover,.lb button:focus-visible{background:rgba(255,255,255,.28);outline:2px solid #fff;outline-offset:2px}
.lb .x{top:14px;right:14px}.lb .p{left:14px;top:50%;translate:0 -50%}.lb .n{right:14px;top:50%;translate:0 -50%}
[data-lb]{cursor:zoom-in}

/* ── Calendario ── */
.qc{--free:var(--qc-free,#e6f0e4);--busy:var(--qc-busy,#e7e3e0);--sel:var(--qc-sel,#1d2a22);--selink:var(--qc-selink,#fff);font-family:var(--font-body,system-ui)}
.qc-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.qc-tabs button{font:inherit;font-weight:600;padding:.6rem 1rem;border-radius:999px;border:1.5px solid var(--line,#c9c9c9);background:transparent;color:inherit;cursor:pointer}
.qc-tabs button[aria-pressed=true]{background:var(--sel);color:var(--selink);border-color:var(--sel)}
.qc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}
.qc-head strong{font-size:1.1rem;text-transform:capitalize}
.qc-head button{font:inherit;width:42px;height:42px;border-radius:50%;border:1.5px solid var(--line,#c9c9c9);background:transparent;color:inherit;cursor:pointer;font-size:1.2rem}
.qc-head button:disabled{opacity:.35;cursor:default}
.qc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.qc-dow{font-size:.78rem;text-align:center;opacity:.65;padding:.2rem 0}
.qc-d{aspect-ratio:1;border:0;border-radius:8px;font:inherit;font-weight:600;background:var(--free);color:inherit;cursor:pointer;display:grid;place-items:center}
.qc-d.busy{background:var(--busy);opacity:.6;text-decoration:line-through;cursor:not-allowed}
.qc-d.past{background:transparent;opacity:.3;cursor:default;text-decoration:none}
.qc-d.in{background:color-mix(in srgb,var(--sel) 22%,var(--free))}
.qc-d.sel{background:var(--sel);color:var(--selink)}
.qc-d.pad{visibility:hidden}
.qc-d:focus-visible{outline:2px solid var(--sel);outline-offset:2px}
.qc-legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:.85rem;margin:.9rem 0 0;opacity:.85}
.qc-legend i{display:inline-block;width:.9rem;height:.9rem;border-radius:4px;vertical-align:-2px;margin-right:.35rem}
.qc-sum{margin-top:1rem;padding:1rem;border-radius:12px;background:color-mix(in srgb,var(--sel) 8%,transparent);min-height:3.2rem}
.qc-sum p{margin:0 0 .7rem}
.qc-note{font-size:.82rem;opacity:.7;margin-top:.7rem}
.qc-demo{display:inline-block;font-size:.8rem;font-weight:700;padding:.25rem .6rem;border-radius:6px;background:#ffe27a;color:#3b2f00;margin-bottom:.8rem}
@media (prefers-reduced-motion:no-preference){.lb.on{animation:lbin .18s ease-out}@keyframes lbin{from{opacity:0}to{opacity:1}}}
