/* CALENDAR (I9,A7) + STATUS BADGES + TABLES === */
.cal{position:relative;border:1px solid var(--rule-2);background:var(--chalk);font-size:.8rem}
.ch,.cr{display:grid;grid-template-columns:2.6rem repeat(7,minmax(0,1fr))}
.ch span{padding:.5rem .35rem;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);background:var(--paper-deep);border-bottom:1px solid var(--rule-2)}
.cw{padding:.45rem .3rem;color:var(--ink2);font-size:.7rem;border-right:1px solid var(--rule)}
.cd{min-height:58px;padding:.3rem .35rem;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);display:flex;flex-direction:column;gap:.25rem;transition:box-shadow .2s,background .2s;outline:none}
.cn{font-family:var(--serif);font-size:1rem;line-height:1}
.mks{display:flex;gap:3px;flex-wrap:wrap}
.mk{display:inline-block;font:700 .6rem/1 var(--sans);font-style:normal;padding:.25em .35em;border:1px solid var(--graphite);color:var(--graphite)}
.mF{border-color:var(--sang);color:var(--sang-d)}
.mP{background:var(--grey);border-color:var(--grey);color:var(--white)}
.mB{border-style:dashed}
.cd.on{cursor:pointer}
.cd.on:hover,.cd.on:focus-visible,.cd.act{box-shadow:inset 0 0 0 2px var(--graphite)}
.cd.on:focus-visible{background:var(--white)}
.cd.same{background:color-mix(in srgb,var(--primary-color) 8%,transparent)}
.cd.closed{background:repeating-linear-gradient(-45deg,transparent 0 5px,color-mix(in srgb,var(--text-color) 9%,transparent) 5px 6px);text-decoration:line-through;color:var(--ink2)}
.cd.reserve{box-shadow:inset 0 0 0 1px var(--sang)}
.cx{font-size:.62rem;line-height:1.2;color:var(--sang-d);text-decoration:none}
.cal.mini .cd{min-height:40px}
.cal.mini .mk{width:9px;height:9px;padding:0;border-radius:50%;background:var(--graphite);border:0}
.cal.mini .mF{background:var(--sang)}.cal.mini .mP{background:var(--grey)}.cal.mini .mB{background:transparent;border:1.5px solid var(--graphite)}
.tip{position:absolute;z-index:5;background:var(--graphite);color:var(--chalk);padding:.55rem .7rem;font-size:.78rem;line-height:1.4;max-width:240px;pointer-events:none;opacity:0;transition:opacity .16s}
.tip.on{opacity:1}
@media (max-width:560px){.ch,.cr{grid-template-columns:1.9rem repeat(7,minmax(0,1fr))}.cd{min-height:46px;padding:.2rem}.cx{display:none}.mk{font-size:.5rem;padding:.12em .18em}.cw{font-size:.58rem;padding:.4rem .1rem}.ch span{padding:.4rem .12rem;letter-spacing:0;font-size:.58rem}}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--graphite)}.dF{background:var(--sang)}.dP{background:var(--grey)}
.hscale{display:grid;grid-template-columns:repeat(8,1fr);gap:3px;margin-top:1rem}.hscale span{border-top:2px solid var(--sang);padding-top:.3rem;font-size:.72rem;color:var(--ink2)}
.legend{display:flex;gap:.5rem 1.1rem;flex-wrap:wrap;font-size:.8rem;color:var(--ink2);margin-top:.8rem;align-items:center}
.st{display:inline-flex;align-items:center;gap:.45em;font-weight:700;font-size:.74rem;letter-spacing:.04em;white-space:nowrap;border:1px solid currentColor;border-radius:999px;padding:.25em .65em}
.st::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.st.open{color:var(--ok)}.st.few{color:var(--sang-d)}.st.full{color:var(--graphite)}.st.ses{color:var(--ink2)}
.st.few::before{animation:pulse 1.6s ease-out 1}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--primary-color) 60%,transparent)}100%{box-shadow:0 0 0 8px color-mix(in srgb,var(--primary-color) 0%,transparent)}}
.tw{overflow-x:auto;border:1px solid var(--rule-2);background:var(--chalk)}
table.tb{border-collapse:collapse;width:100%;font-size:.92rem}
.tb th,.tb td{padding:.8rem 1rem;text-align:left;border-bottom:1px solid var(--rule);vertical-align:top}
.tb thead th{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);background:var(--paper-deep)}
.tb tbody tr:hover{background:color-mix(in srgb,var(--primary-color) 5%,transparent)}
@media (max-width:720px){
  .tw{border:0;background:none;overflow:visible}
  .tb thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .tb,.tb tbody,.tb tr,.tb td,.tb th{display:block;width:100%}
  .tb tr{background:var(--chalk);border:1px solid var(--rule-2);margin-bottom:.8rem;padding:.4rem 0}
  .tb td,.tb tbody th{border:0;padding:.35rem 1rem;display:flex;justify-content:space-between;gap:1rem;text-align:right}
  .tb td::before,.tb tbody th::before{content:attr(data-l);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);text-align:left}
}
.ups{display:grid;gap:.6rem}
.up{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;align-items:center;justify-content:space-between;background:var(--chalk);border:1px solid var(--rule);padding:.9rem 1.1rem;transition:box-shadow .2s}
.up:hover,.up:focus-within{box-shadow:inset 0 0 0 1px var(--graphite)}
.up b{font-family:var(--serif);font-size:1.15rem}

