.cal-root,.site{--free:#a6e6db;--free-text:#1d5e53;--booked:#f6b3b3;--booked-text:#8a2b2b;--cal-accent:#1ba1e2}.cal-loading{min-height:320px}.cal-toolbar{justify-content:space-between;align-items:center;gap:1em;margin:0 0 1.25em;display:flex}.cal-toolbar .cal-range{color:#222;text-align:center;font-weight:700}.cal-btn{font:inherit;color:#222;cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:4px;padding:.45em .9em;font-size:.9rem}.cal-btn:hover:not(:disabled){border-color:#999}.cal-btn:disabled{opacity:.4;cursor:default}.cal-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.75em 1.5em;display:grid}.cal-month h3{color:#222;margin:0 0 .4em;font-size:.9rem;font-weight:700}.cal-month table{border-collapse:separate;border-spacing:2px;table-layout:fixed;width:100%}.cal-month th{color:#999;padding:0 0 .2em;font-size:.68rem;font-weight:500}.cal-month td{text-align:center;padding:0;font-size:.78rem}.cal-month td.wk{color:#bbb;font-size:.62rem}.cal-day{width:100%;font:inherit;background:var(--free);color:var(--free-text);border:0;border-radius:3px;padding:.32em 0;font-size:.78rem;line-height:1.3;display:block}button.cal-day{cursor:pointer}button.cal-day:hover{outline:2px solid var(--free-text);outline-offset:-2px}.cal-day.booked{background:var(--booked);color:var(--booked-text)}.cal-day.arrive{background:linear-gradient(135deg, var(--free) 50%, var(--booked) 50%)}.cal-day.depart{background:linear-gradient(135deg, var(--booked) 50%, var(--free) 50%)}.cal-day.change{background:var(--booked);color:var(--booked-text)}.cal-day.past{color:#bbb;background:#f2f2f2}.cal-day.sel,.cal-day.sel-start,.cal-day.sel-end{background:var(--cal-accent);color:#fff;font-weight:700}.cal-day.in-range{color:#0d4f70;background:#bfe5f7}.cal-legend{flex-wrap:wrap;gap:.5em 1.5em;margin:1.75em 0 0;padding:0;font-size:.9rem;list-style:none;display:flex}.cal-legend li{align-items:center;gap:.5em;display:flex}.cal-legend .sw{border-radius:3px;width:22px;height:22px;display:inline-block}.sw.free{background:var(--free)}.sw.booked{background:var(--booked)}.sw.arrive{background:linear-gradient(135deg, var(--free) 50%, var(--booked) 50%)}.sw.sel{background:var(--cal-accent)}.cal-hint{color:#767676;margin:1em 0 0;font-size:.9rem}
