.panel.year-calendar{gap:20px;padding:0 22px 24px;display:grid}.year-calendar-head{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px 24px;margin:0 -22px;padding:18px 22px 16px;display:flex}.year-calendar-head>div:first-child{min-width:0}.year-calendar-head h2{overflow-wrap:anywhere;margin:0 0 6px}.year-calendar-head p{max-width:64ch;color:var(--muted);margin:0;font-size:13px}.year-calendar-nav{flex-wrap:wrap;align-items:center;gap:6px;max-width:100%;display:inline-flex}.year-calendar-step{border-radius:var(--r-control);width:36px;height:36px;color:var(--muted);cursor:pointer;transition:background-color var(--t-fast) var(--ease-soft), color var(--t-fast) var(--ease-soft);background:0 0;border:1px solid #0000;place-items:center;margin:0;padding:0;display:grid}.year-calendar-step:hover{background:var(--surface-sunken);color:var(--ink);border-color:#0000}.year-calendar-tabs{border:1px solid var(--line-soft);background:var(--surface-sunken);border-radius:10px;flex-wrap:wrap;gap:0;min-width:0;margin:0;padding:3px;display:inline-flex}.year-calendar-tabs label{min-height:36px;color:var(--muted);font:400 13px / 1 var(--f-body);letter-spacing:0;font-variant-numeric:tabular-nums;cursor:pointer;transition:color var(--t-fast) var(--ease-soft);border-radius:7px;align-items:center;margin:0;padding:0 14px;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(--ink)}.year-calendar-tabs:not([data-thumb]) label:has(input:checked){background:var(--surface-raised);box-shadow:var(--shadow-1), 0 0 0 1px var(--line-soft)}.year-calendar-tabs label:has(input:focus-visible){outline:2px solid var(--action);outline-offset:2px}.year-calendar-tabs[data-thumb]>.pill-thumb{background:var(--surface-raised);box-shadow:var(--shadow-1), 0 0 0 1px var(--line-soft);border-radius:7px}.year-calendar-notice{border-radius:var(--r-control);background:var(--ok-bg);color:var(--ok);padding:10px 14px;font-size:13px;font-weight:600;display:block}.year-calendar-error{border-radius:var(--r-control);background:var(--danger-bg);color:var(--danger);margin:0;padding:10px 14px;font-size:13.5px}.year-calendar-past{border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface);max-width:100%;min-height:36px;color:var(--ink);font:700 12px / 1.2 var(--f-action);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:background-color var(--t-fast) var(--ease-soft), border-color var(--t-fast) var(--ease-soft);justify-self:start;margin:0;padding:0 14px}.year-calendar-past:hover{border-color:var(--faint);background:var(--surface);color:var(--ink)}.year-calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 28px;display:grid}.year-month{min-width:0}#main .year-calendar .year-month h3{color:var(--ink);font:400 19px / 1.2 var(--f-display);letter-spacing:0;text-transform:capitalize;margin:0 0 10px}.year-month-band{border:1px solid var(--line-soft);border-radius:var(--r-control);background:var(--surface-sunken);color:var(--muted);font:700 10.5px / 1 var(--f-action);letter-spacing:.08em;text-align:center;text-transform:uppercase;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:3px;display:grid}.year-day{border:1px solid var(--line-soft);border-radius:var(--r-control);background:var(--surface);min-width:0;min-height:64px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:background-color var(--t-fast) var(--ease-soft), border-color var(--t-fast) var(--ease-soft);flex-direction:column;align-items:stretch;gap:1px;margin:0;padding:4px;display:flex}button.year-day:hover{border-color:var(--faint);background:color-mix(in srgb, var(--surface-sunken) 70%, var(--surface))}.year-day.is-out{opacity:1;cursor:default;background:0 0;border-color:#0000}.year-day[data-past]{background:color-mix(in srgb, var(--surface-sunken) 55%, var(--surface))}.year-day[data-today]{border-color:var(--action);box-shadow:inset 0 0 0 1px var(--action)}.year-day-number{border-radius:var(--r-pill);width:fit-content;min-width:20px;height:20px;color:var(--ink);font-variant-numeric:tabular-nums;place-items:center;margin-bottom:1px;padding:0 3px;font-size:11.5px;font-weight:600;line-height:1;display:grid}.year-day[data-past] .year-day-number{color:var(--muted);opacity:1}.year-day[data-today] .year-day-number{background:var(--action);color:var(--action-ink);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);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;padding:0 4px;font-size:10px;line-height:14px;overflow:hidden}.year-day-count{margin-top:auto}.year-day-count+.year-day-count{margin-top:0}.year-day:focus-visible{outline:2px solid var(--action);outline-offset:2px}@media (max-width:1100px){.year-calendar-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:560px){.panel.year-calendar{padding:0 16px 20px}.year-calendar-head{margin:0 -16px;padding:16px 16px 14px}.year-day{min-height:44px;padding:2px}.year-day-bar,.year-day-count,.year-day-more{display:none}}@media (prefers-reduced-motion:reduce){.year-calendar-step,.year-calendar-tabs label,.year-calendar-past,.year-day{transition: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}
