.year-calendar{gap:20px;padding:24px 28px 30px;display:grid}.year-calendar-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 24px;padding-bottom:18px;display:flex}.year-calendar-head h2{margin:0 0 6px}.year-calendar-head p{color:var(--muted);margin:0;font-size:13px}.year-calendar-nav{align-items:center;gap:6px;display:inline-flex}.year-calendar-step{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;margin:0;padding:0;display:grid}.year-calendar-step:hover{background:var(--surface-raised);color:var(--ink)}.year-calendar-tabs{border:1px solid var(--line);background:var(--surface-sunken);border-radius:999px;gap:4px;margin:0;padding:4px;display:inline-flex}.year-calendar-tabs label{min-height:32px;color:var(--muted);font:700 11.5px / 1 var(--font-action);letter-spacing:.04em;font-variant-numeric:tabular-nums;cursor:pointer;transition:color .16s var(--ease-brand);border-radius:999px;align-items:center;margin:0;padding:0 16px;display:inline-flex;position:relative}.year-calendar-tabs input{opacity:0;cursor:pointer;width:100%;height:100%;min-height:0;margin:0;position:absolute;inset:0}.year-calendar-tabs label:hover{color:var(--ink)}.year-calendar-tabs label:has(input:checked){color:var(--surface)}.year-calendar-tabs label:has(input:focus-visible){outline:2px solid var(--action);outline-offset:2px}.year-calendar-tabs .pill-thumb{background:var(--accent);border-radius:999px}.year-calendar-notice{background:var(--accent-soft);color:var(--accent);border-radius:10px;padding:10px 14px;font-size:13px;font-weight:600;display:block}.year-calendar-error{color:var(--action);margin:0}.year-calendar-past{border:1px solid var(--line);min-height:34px;color:var(--muted);font:700 10.5px / 1 var(--font-action);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:999px;justify-self:start;margin:0;padding:0 16px}.year-calendar-past:hover{border-color:var(--accent);color:var(--accent)}.year-calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 28px;display:grid}#main .year-calendar .year-month h3{color:var(--ink);font:400 clamp(19px, 1.8vw, 24px) / 1.05 var(--font-display);letter-spacing:0;text-transform:capitalize;margin:0 0 10px}.year-month-band{background:var(--accent);color:var(--surface);font:700 10.5px / 1 var(--font-action);letter-spacing:.12em;text-align:center;text-transform:uppercase;border-radius:8px;grid-template-columns:repeat(7,minmax(0,1fr));margin-bottom:6px;display:grid;overflow:hidden}.year-month-band span{padding:7px 0}.year-month-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.year-day{border:1px solid color-mix(in srgb, var(--line) 70%, transparent);background:var(--surface);min-width:0;min-height:64px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;border-radius:8px;flex-direction:column;align-items:stretch;gap:1px;margin:0;padding:4px;transition:background-color .14s,border-color .14s;display:flex}button.year-day:hover{border-color:var(--accent);background:var(--surface-raised)}.year-day.is-out{background:var(--surface-sunken);opacity:.4;cursor:default}.year-day[data-past]{background:color-mix(in srgb, var(--surface) 70%, transparent)}.year-day[data-today]{border-color:var(--accent)}.year-day-number{width:20px;height:20px;color:var(--muted);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;margin-bottom:1px;font-size:11.5px;font-weight:600;line-height:1;display:grid}.year-day[data-past] .year-day-number{color:var(--ink);opacity:1}.year-day[data-today] .year-day-number{background:var(--accent);color:var(--surface);opacity:1}.year-day-bar{background:color-mix(in srgb, var(--accent) 24%, var(--surface));color:var(--ink);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;padding:0 4px;font-size:10px;font-weight:600;line-height:14px;overflow:hidden}.year-day-bar[data-kind=block]{background:color-mix(in srgb, var(--action) 22%, var(--surface))}.year-day-more,.year-day-count{color:var(--muted);white-space:nowrap;padding:0 4px;font-size:10px;line-height:14px}.year-day-count{margin-top:auto}.year-day:focus-visible{outline:2px solid var(--action);outline-offset:2px}@media (max-width:1100px){.year-calendar-grid{grid-template-columns:1fr}}@media (max-width:560px){.year-calendar{padding:18px 16px 22px}.year-day{min-height:44px;padding:2px}.year-day-bar,.year-day-count,.year-day-more{display:none}}
.day-lanes{gap:0;padding:0 18px 4px;display:grid}.day-lanes-head,.day-lanes-row{grid-template-columns:168px minmax(0,1fr);align-items:stretch;display:grid}.day-lanes-head{border-bottom:1px solid var(--line);height:26px}.day-lanes-ticks{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px;position:relative}.day-lanes-ticks>span{position:absolute;top:6px;transform:translate(-50%)}.day-lanes-now{background:var(--action);color:var(--surface);font:700 9px / 1.3 var(--font-action);letter-spacing:.06em;text-transform:uppercase;border-radius:3px;padding:2px 6px;font-style:normal;position:absolute;top:3px;transform:translate(-50%)}.day-lanes-row{border-bottom:1px solid var(--line)}.day-lanes-row:last-of-type{border-bottom:0}.day-lanes-court{border-right:1px solid var(--line);flex-direction:column;justify-content:center;gap:1px;min-width:0;padding:8px 12px 8px 0;display:flex}.day-lanes-court strong{white-space:nowrap;text-overflow:ellipsis;font-size:13px;line-height:1.25;overflow:hidden}.day-lanes-court small{color:var(--muted);font-size:11px}.day-lane{background-image:repeating-linear-gradient(to right, var(--line) 0 1px, transparent 1px calc(100% / var(--lane-hours,17)));min-height:52px;position:relative}.day-lane-open{background:var(--surface);pointer-events:none;position:absolute;top:0;bottom:0}.day-lane-free{min-height:0;color:var(--accent);opacity:0;cursor:pointer;background:0 0;border:1px dashed #0000;border-radius:4px;place-items:center;margin:0;padding:0;display:grid;position:absolute;top:6px;bottom:6px}.day-lane:hover .day-lane-free{opacity:.55;border-color:var(--accent-tint)}.day-lane-free:hover,.day-lane-free:focus-visible{opacity:1;background:var(--accent-soft);border-color:var(--accent)}.day-lane-block{cursor:pointer;text-align:left;border:1px solid;border-radius:4px;align-items:center;gap:8px;min-width:0;min-height:0;margin:0;padding:0 10px;font-size:12px;line-height:1.2;display:flex;position:absolute;top:6px;bottom:6px;overflow:hidden}.day-lane-block>*{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.day-lane-block strong{flex:0 auto;min-width:0;font-weight:400}.day-lane-block small{font-size:11px}.day-lane-time{font-variant-numeric:tabular-nums;font-size:11px}.day-lane-block.booking{background:var(--booking-bg);border-color:var(--booking-line);color:var(--booking-ink)}.day-lane-block.lesson{background:var(--lesson-bg);border-color:var(--lesson-line);color:var(--lesson-ink)}.day-lane-block.courtesy{background:var(--courtesy-bg);border-color:var(--courtesy-line);color:var(--courtesy-ink)}.day-lane-block.maintenance,.day-lane-block.block{background:var(--closure-bg);border-color:var(--closure-line);color:var(--closure-ink)}.day-lane-block.event{background:var(--accent-soft);border-color:var(--booking-line);color:var(--booking-ink)}.day-lane-block.is-held{border-style:dashed}.day-lane-block:hover{filter:brightness(.96)}.day-lane-block.is-selected{box-shadow:inset 0 0 0 1px var(--accent)}.day-lane-now{background:var(--action);pointer-events:none;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.day-lanes-foot{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 0 8px;font-size:11px;display:flex}@media (max-width:680px){.day-lanes{overscroll-behavior-x:contain;padding:0 12px 4px;overflow-x:auto}.day-lanes-head,.day-lanes-row{min-width:calc(96px + 48px * var(--lane-hours,17));grid-template-columns:96px minmax(0,1fr)}.day-lanes-court,.day-lanes-head>:first-child{z-index:1;background:var(--surface);position:sticky;left:0}.day-lane-block{padding:0 6px}.day-lane-block strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.day-lane-block small,.day-lane-time{display:none}}.day-lane-block{container-type:inline-size}.day-lane-icon{opacity:.85;flex:none;display:inline-flex}@container (max-width:96px){.day-lane-block>:not(.day-lane-icon){display:none}.day-lane-icon{margin:auto}}.day-lane-block[data-member]{box-shadow:inset 3px 0 0 var(--accent)}.day-lane-block.is-held,.day-lane-block.booking.is-held{background:color-mix(in srgb, var(--action) 16%, var(--surface));color:color-mix(in srgb, var(--action) 80%, var(--ink));outline:1.5px dashed color-mix(in srgb, var(--action) 70%, transparent);outline-offset:-1.5px}.day-lane-block.is-held .day-lane-icon{color:color-mix(in srgb, var(--action) 88%, var(--ink))}.day-lanes-row[data-inactive] .day-lanes-court strong,.day-lanes-row[data-inactive] .day-lanes-court small{color:var(--muted)}.day-lanes-off{background:var(--surface-sunken);color:var(--muted);font:700 9px / 1.5 var(--font-action);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border-radius:999px;align-self:flex-start;margin-top:3px;padding:1px 8px}.day-lanes-row[data-inactive] .day-lane{background-color:color-mix(in srgb, var(--muted) 11%, transparent)}.day-lanes-row[data-inactive] .day-lane-open{background:color-mix(in srgb, var(--muted) 14%, var(--surface))}.day-lane-past{z-index:2;background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--ink) 6%, transparent) 0 1px, transparent 1px 9px), color-mix(in srgb, var(--ink) 4%, transparent);pointer-events:none;position:absolute;top:0;bottom:0;left:0}
