.calendar-page{padding-bottom:3rem}.calendar-hero{padding-block:clamp(3rem,7vw,6rem) 2.5rem;border-bottom:1px solid var(--line)}.calendar-hero>p{margin:0;color:var(--accent);font-size:.85rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase}.calendar-hero h1{max-width:15ch;margin:.65rem 0 1.2rem;font-family:var(--font-sans);font-size:clamp(2.3rem,5vw,4.7rem);font-weight:600;line-height:1.08}.calendar-hero>span{display:block;max-width:62ch;color:var(--muted);font-size:1.05rem;line-height:1.6}.calendar-dashboard{padding-block:2.5rem}.calendar-toolbar{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end}.calendar-toolbar h2{margin:0;font-size:clamp(1.5rem,2.5vw,2.1rem)}.calendar-toolbar p{margin:.3rem 0 0;color:var(--muted)}.calendar-toolbar-actions{display:flex;gap:.5rem}.calendar-page button,.calendar-page input,.calendar-page select,.calendar-page textarea{font:inherit}.calendar-page a:focus-visible,.calendar-page button{cursor:pointer}.calendar-booking-form button,.calendar-confirm-card button,.calendar-layer-controls label,.calendar-side-panels button,.calendar-toolbar-actions button{min-height:44px}.calendar-toolbar-actions button{min-width:44px;padding:.55rem .8rem;border:1px solid var(--line);background:var(--paper);color:var(--ink)}.calendar-layer-controls{display:flex;gap:1rem;flex-wrap:wrap;margin:1.5rem 0}.calendar-layer-controls label{display:inline-flex;gap:.55rem;align-items:center;padding:.45rem .85rem;border:1px solid var(--line);border-radius:99px}.calendar-layer-controls input{accent-color:var(--accent)}.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:2px solid var(--ink);border-left:1px solid var(--line)}.calendar-day{min-height:13rem;padding:.75rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-day h3{margin:0 0 1rem;font-size:.82rem;font-weight:600;text-transform:uppercase}.calendar-day>p{color:var(--muted);font-size:.84rem}.calendar-event{display:grid;gap:.25rem;margin-bottom:.5rem;padding:.65rem;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--paper));overflow-wrap:anywhere}.calendar-event.is-personal{border-left-color:#857456;background:color-mix(in srgb,#857456 11%,var(--paper))}.calendar-event.is-guest{border-left-style:dashed}.calendar-event.is-busy{border-left-color:var(--muted);background:color-mix(in srgb,var(--muted) 9%,var(--paper))}.calendar-event.is-overlay{outline:1px dashed var(--muted);outline-offset:-1px}.calendar-event small,.calendar-event time{font-size:.72rem;color:var(--muted)}.calendar-event b{font-size:.83rem;line-height:1.35}.calendar-event button{width:max-content;padding:.1rem 0;border:0;background:transparent;color:var(--accent);text-decoration:underline;font-size:.75rem}.calendar-side-panels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:2rem}.calendar-side-panels section{min-width:0;padding:1.25rem;border:1px solid var(--line)}.calendar-side-panels h2{margin:0 0 1rem;font-size:1.25rem}.calendar-side-panels p,.calendar-side-panels small{line-height:1.5}.calendar-booking-form,.calendar-side-panels form{display:grid;gap:1rem}.calendar-booking-form label,.calendar-side-panels label{display:grid;gap:.4rem;font-size:.88rem;font-weight:600}.calendar-booking-form input,.calendar-booking-form select,.calendar-side-panels input,.calendar-side-panels select,.calendar-side-panels textarea{min-width:0;width:100%;min-height:44px;padding:.55rem .7rem;border:1px solid var(--line);border-radius:0;background:var(--paper);color:var(--ink);font-size:1rem}.calendar-side-panels textarea{min-height:6rem;resize:vertical}.calendar-booking-form>button,.calendar-confirm-card button,.calendar-side-panels button{width:max-content;padding:.65rem 1rem;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-weight:600}.calendar-booking-form>button:disabled,.calendar-confirm-card button:disabled,.calendar-side-panels button:disabled{opacity:.55;cursor:not-allowed}.calendar-page-links a,.calendar-side-panels a{color:var(--accent);text-decoration:underline;text-underline-offset:.2em}.calendar-form-row{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:.5rem}.calendar-booking-wrap{max-width:48rem;padding-block:2.5rem}.calendar-booking-form{padding:clamp(1rem,3vw,2rem);border:1px solid var(--line)}.calendar-booking-form>p{margin:0;line-height:1.6}.calendar-booking-controls{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.calendar-booking-form fieldset{margin:0;padding:1rem 0;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-booking-form legend{padding-right:1rem;font-weight:600}.calendar-slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:.5rem}.calendar-slot-grid label{display:block;cursor:pointer}.calendar-slot-grid input{position:absolute;width:1px;height:1px;opacity:0}.calendar-slot-grid span{display:grid;min-height:44px;place-items:center;border:1px solid var(--line);font-size:.9rem}.calendar-slot-grid label.is-selected span{border-color:var(--accent);background:var(--accent);color:white}.calendar-slot-grid input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.calendar-guest-fields{display:grid;gap:1rem}.calendar-booking-form small{color:var(--muted);line-height:1.5}.calendar-form-error,.calendar-form-success{padding:.8rem 1rem;border-left:3px solid #a8281e;background:color-mix(in srgb,#a8281e 8%,var(--paper));line-height:1.5}.calendar-form-success{border-left-color:var(--success);background:color-mix(in srgb,var(--success) 9%,var(--paper))}.calendar-confirm-wrap{max-width:46rem;padding-block:4rem}.calendar-confirm-card{padding:2rem;border:1px solid var(--line)}.calendar-confirm-card h1{font-family:var(--font-sans);font-size:clamp(2rem,4vw,3.2rem);font-weight:600;line-height:1.1}.calendar-confirm-card p{line-height:1.6}.calendar-login{padding-block:3rem 5rem}.calendar-login a{display:inline-block;padding:.8rem 1rem;background:var(--ink);color:var(--paper)}.calendar-page-links{padding-bottom:3rem}@media (max-width:1100px){.calendar-week{grid-template-columns:repeat(4,minmax(0,1fr))}.calendar-side-panels{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){.calendar-toolbar{align-items:flex-start;flex-direction:column}.calendar-week{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-day{min-height:9rem}.calendar-booking-controls,.calendar-side-panels{grid-template-columns:1fr}.calendar-form-row{grid-template-columns:1fr 1fr}.calendar-form-row label:first-child{grid-column:1/-1}}