.year-event-modal{border:1px solid var(--line);background:var(--surface);width:min(480px,100% - 32px);max-height:min(820px,100dvh - 32px);color:var(--ink);border-radius:16px;padding:0;overflow:auto;box-shadow:0 24px 64px #00000047}.year-event-modal::backdrop{background:#0c0c0c66}.year-event-modal[open]{animation:year-event-in .2s var(--ease-brand)}@keyframes year-event-in{0%{opacity:0;translate:0 10px}}@media (prefers-reduced-motion:reduce){.year-event-modal[open]{animation:none}}.year-event-head{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:18px 20px 14px;display:grid}.year-event-mark{background:var(--accent-soft);width:40px;height:40px;color:var(--accent);border-radius:10px;place-items:center;display:grid}#main .year-event-head h2{color:var(--ink);font:400 22px / 1.1 var(--font-display);letter-spacing:0;margin:0}.year-event-head p{color:var(--muted);margin:2px 0 0;font-size:13px}.year-event-head p:first-letter{text-transform:uppercase}.year-event-close{border:1px solid var(--line);width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;place-items:center;margin:0;padding:0;display:grid}.year-event-body{gap:16px;padding:18px 20px;display:grid}.year-event-field{color:var(--muted);gap:6px;margin:0;font-size:12px;display:grid}.year-event-field input{width:100%;min-height:42px}.year-event-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.year-event-pills{border:0;flex-wrap:wrap;gap:8px;margin:0;padding:0;display:flex}.year-event-pills>legend{width:100%;color:var(--muted);font:700 10px / 1.2 var(--font-action);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}.year-event-pills label{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;align-items:center;gap:7px;min-height:34px;margin:0;padding:0 14px;font-size:13px;transition:border-color .14s,background-color .14s;display:inline-flex;position:relative}.year-event-pills label[data-checked]{border-color:var(--accent);background:var(--accent);color:var(--surface);font-weight:600}.year-event-pills input{opacity:0;cursor:pointer;width:100%;height:100%;min-height:0;margin:0;position:absolute;inset:0}.year-event-pills label:has(input:focus-visible){outline:2px solid var(--action);outline-offset:2px}.year-event-pills i{border-radius:3px;width:10px;height:10px;box-shadow:0 0 0 1px #fff6}.year-event-check{cursor:pointer;align-items:center;gap:10px;margin:0;font-size:14px;display:inline-flex}.year-event-check input{width:18px;height:18px;min-height:0;accent-color:var(--accent);margin:0}.year-event-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 20px 18px;display:flex}.year-event-day{cursor:pointer;background:0 0;border:0;padding:0;font-size:13px}
.monthly-block-modal .year-event-field select{width:100%;min-height:42px}.mbm-holder{background:var(--surface-sunken);color:var(--muted);border-radius:10px;margin:0;padding:10px 12px;font-size:14px}.mbm-holder strong{color:var(--ink)}.mbm-confirm{border:1px solid color-mix(in srgb, var(--action) 35%, var(--line));background:color-mix(in srgb, var(--action) 7%, var(--surface));animation:mbm-in .2s var(--ease-brand);border-radius:12px;gap:10px;padding:12px 14px;display:grid}.mbm-confirm p{margin:0;font-size:13.5px}.mbm-confirm div{justify-content:flex-end;gap:8px;display:flex}@keyframes mbm-in{0%{opacity:0;translate:0 -4px}}.monthly-block-modal .mbm-end{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px}.monthly-block-modal .mbm-end:hover{color:var(--action)}@media (prefers-reduced-motion:reduce){.mbm-confirm{animation:none}}
.booking-fields{border:0;grid-template-columns:minmax(0,1fr);gap:0;min-width:0;margin:0;padding:0;display:grid}.booking-kinds,.booking-split{border:1px solid var(--line);background:var(--surface-raised);border-radius:999px;flex-wrap:wrap;justify-self:start;gap:4px;min-width:0;max-width:100%;margin:0 0 20px;padding:4px;display:inline-flex}.booking-kinds label,.booking-split label{min-height:34px;color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;gap:6px;margin:0;padding:0 16px;font-size:13px;font-weight:600;display:inline-flex;position:relative}.booking-kinds input,.booking-split input{opacity:0;cursor:pointer;width:100%;height:100%;min-height:0;margin:0;position:absolute;inset:0}:is(.booking-kinds label:has(input:checked),.booking-split label:has(input:checked)){color:var(--surface)}:is(.booking-kinds label:has(input:focus-visible),.booking-split label:has(input:focus-visible)){outline:2px solid var(--accent);outline-offset:2px}.booking-modal-body input:not([type=radio]):not([type=checkbox]),.booking-modal-body select,.booking-modal-body textarea{width:100%}.booking-pay{border:1px solid var(--line);background:var(--surface-raised);border-radius:12px;grid-template-columns:minmax(0,1fr);gap:12px;margin-top:24px;padding:16px;display:grid}.booking-pay-head{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;display:grid}.booking-pay-head h3{font:700 11px / 1.3 var(--font-action);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;margin:0;display:inline-flex}.booking-pay-total{grid-column:3;justify-items:end;margin:0;display:grid}.booking-pay-total small{color:var(--muted);font-size:12px}.booking-pay-free{color:var(--muted);font-size:13px}.booking-pay-total strong{font:400 26px / 1.1 var(--font-display)}@media (max-width:560px){.booking-pay-head{grid-template-columns:minmax(0,1fr) auto}.booking-pay-head .booking-split{grid-area:2/1/auto/-1;justify-self:center}.booking-pay-head .booking-pay-total{grid-column:2}}.booking-pay .booking-split{margin:0}.booking-split-count{color:var(--muted);white-space:nowrap;align-items:center;gap:10px;margin:0;font-size:13px;display:inline-flex}.booking-pay .booking-split-count select,.booking-pay .booking-payer-paid select{width:auto;min-height:34px}.booking-pay-each{color:var(--muted);margin:0;font-size:13px}.booking-pay-each strong{color:var(--ink);font-size:15px}.booking-pay-note{color:var(--muted);margin:0;font-size:13px;line-height:1.45;display:block}.booking-payers{gap:8px;margin:0;padding:0;list-style:none;display:grid}.booking-payer{border:1px solid var(--line);background:var(--surface);transition:border-color .16s var(--ease-brand), background-color .16s var(--ease-brand);border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.booking-payer[data-paid]{border-color:var(--accent);background:var(--accent-soft)}.booking-payer-avatar{background:var(--surface-raised);width:34px;height:34px;color:var(--accent);font:400 16px / 1 var(--font-display);border-radius:999px;place-items:center;display:grid}.booking-payer[data-paid] .booking-payer-avatar{background:var(--accent);color:var(--surface)}.booking-payer-name{gap:2px;min-width:0;display:grid}.booking-payer-name strong{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.booking-payer-name small{color:var(--muted);font-size:12px}.booking-payer-paid{align-items:center;gap:8px;display:inline-flex}.booking-payer-paid label{margin:0}.booking-payer-paid select{width:auto;min-height:34px;font-size:13px}.booking-payer-mark,.booking-payer-undo{border:1px solid var(--accent);min-height:34px;color:var(--accent);font:700 10px / 1.2 var(--font-action);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;margin:0;padding:0 14px}.booking-payer-mark:hover{background:var(--accent);color:var(--surface)}.booking-payer-undo{background:var(--accent);color:var(--surface);border-color:#0000}.booking-pay-foot{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-top:4px;font-size:13px;display:flex}.booking-pay-progress{gap:7px;min-width:min(100%,260px);margin-left:auto;display:grid}.booking-pay-progress p{font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:4px 10px;margin:0;font-size:13px;display:flex}.booking-pay-progress strong{color:var(--ink);font-weight:600}.booking-pay-due,.booking-pay-done{border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600}.booking-pay-due{background:color-mix(in srgb, var(--action) 12%, transparent);color:color-mix(in srgb, var(--action) 62%, var(--ink))}.booking-pay-done{background:var(--accent-soft);color:var(--accent)}.booking-pay-bar{background:color-mix(in srgb, var(--line) 70%, transparent);border-radius:999px;height:6px;display:block;overflow:hidden}.booking-pay-bar i{border-radius:inherit;background:var(--accent);height:100%;transition:width .32s var(--ease-brand);display:block}.booking-pay textarea{width:100%}.booking-modal:not(.booking-details-modal){width:min(760px,100% - 32px);height:min(880px,100dvh - 48px)}.booking-modal-head{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:14px;padding:20px 22px 16px;display:grid}.booking-modal-mark{background:var(--accent-soft);width:40px;height:40px;color:var(--accent);border-radius:10px;place-items:center;display:grid}.booking-modal-head h2{font:700 14px / 1.3 var(--font-action);letter-spacing:.08em;text-transform:uppercase;margin:0}.booking-modal-head p{color:var(--muted);margin:4px 0 0;font-size:13px}.booking-modal-close{border:1px solid var(--line);width:36px;height:36px;min-height:0;color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;place-items:center;padding:0;display:grid}.booking-modal-close:hover{color:var(--ink);border-color:var(--border-strong)}.booking-modal-form{grid-template-rows:minmax(0,1fr) auto;min-height:0;display:grid}.booking-modal-body{overscroll-behavior:contain;min-height:0;padding:20px 22px 24px;overflow:auto}.booking-modal-body .booking-fields>label,.booking-modal-body .form-row label,.booking-modal-body .booking-participants>label{align-items:center;gap:6px;display:inline-flex}.booking-modal-body .booking-fields>label svg,.booking-modal-body .form-row label svg,.booking-modal-body .booking-participants>label svg{color:var(--muted)}.booking-modal-body .booking-fields>label,.booking-modal-body .form-row{margin-top:20px}.booking-modal-body .error-message{margin-top:16px}.booking-modal-foot{border-top:1px solid var(--line);background:var(--surface);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;padding:14px 22px;display:flex}.booking-modal-summary{color:var(--muted);margin-right:auto;font-size:13px}@media (max-width:560px){.booking-modal:not(.booking-details-modal){width:calc(100% - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}.booking-modal-body,.booking-modal-head,.booking-modal-foot{padding-inline:16px}.booking-modal-body .form-row{flex-direction:column;gap:16px}.booking-modal-summary{flex:100%}.booking-modal-foot>button{flex:1 1 0}.booking-payer{grid-template-columns:auto minmax(0,1fr)}.booking-payer-mark,.booking-payer-paid{grid-column:1/-1}.booking-pay .booking-payer-paid select{flex:1}}.booking-modal-lesson{grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid}.booking-modal-lesson-kinds .booking-kinds{margin:0}.booking-modal-lesson .classes-form{min-height:0}.booking-modal-lesson>.classes-hint{margin:20px 22px}.booking-modal-lesson-kinds{padding:24px 30px 4px}.booking-modal-lesson .classes-form-body{padding-top:22px}.booking-event-pick{border:1px solid var(--line);background:var(--surface-raised);border-radius:12px;gap:6px;margin:0 0 4px;padding:14px 16px;display:grid}.booking-event-pick>span{font:700 11px / 1.3 var(--font-action);letter-spacing:.08em;text-transform:uppercase}.booking-event-pick select{width:100%}.booking-event-pick small{color:var(--muted);font-size:12px;line-height:1.45}.booking-programs{border:0;flex-wrap:wrap;gap:8px;margin:0 0 18px;padding:0;display:flex}.booking-programs>legend{width:100%;margin-bottom:8px;font-size:14px}.booking-programs label{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;align-items:center;gap:8px;min-height:34px;margin:0;padding:0 14px;font-size:13px;transition:border-color .14s,background-color .14s;display:inline-flex;position:relative}.booking-programs label:hover{border-color:var(--border-strong)}.booking-programs label[data-checked]{border-color:var(--accent);background:var(--accent-soft);font-weight:600}.booking-programs input{opacity:0;cursor:pointer;width:100%;height:100%;min-height:0;margin:0;position:absolute;inset:0}.booking-programs label:has(input:focus-visible){outline:2px solid var(--action);outline-offset:2px}.booking-program-dot{background:var(--border-strong);border-radius:3px;width:10px;height:10px}.booking-event-fields{gap:16px;margin-bottom:18px;display:grid}.booking-event-fields .booking-programs,.booking-event-fields .form-row{margin:0}.booking-event-allday{cursor:pointer;align-items:center;gap:10px;margin:0;font-size:14px;display:inline-flex}.booking-event-allday input{width:18px;height:18px;min-height:0;accent-color:var(--accent);margin:0}
.booking-details-modal{width:min(640px,100% - 32px)}.booking-details-modal[open]{grid-template-rows:minmax(0,1fr)}.bd-root{min-height:0;display:grid}.booking-details-modal .booking-modal-form{grid-template-rows:auto minmax(0,1fr) auto}.bd-head{align-items:center}.bd-heading{gap:4px;min-width:0;display:grid}.booking-details-modal .bd-title input,.booking-details-modal .bd-title input:hover,.booking-details-modal .bd-title input:focus{width:100%;min-height:0;box-shadow:none;color:var(--ink);font:400 24px / 1.15 var(--font-display);background:0 0;border:0;border-bottom:1px dashed #0000;border-radius:0;outline:none;margin:0;padding:0 0 2px;transition:border-color .14s}.booking-details-modal .bd-title input:hover{border-bottom-color:var(--border-strong)}.booking-details-modal .bd-title input:focus{border-bottom:1px solid var(--accent)}.bd-title-text{font:400 24px / 1.15 var(--font-display);margin:0}.bd-heading p{color:var(--muted);margin:0;font-size:13px}.bd-heading p:first-letter{text-transform:uppercase}.bd-head-side{align-items:center;gap:10px;display:inline-flex}.bd-head-side .tag{white-space:nowrap}.bd-body{grid-template-columns:minmax(0,1fr);gap:18px;display:grid}.bd-body>*{margin-block:0}.bd-kinds{margin:0}.bd-facts{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:0;display:grid}.bd-facts>div{border:1px solid var(--line);background:var(--surface-raised);border-radius:10px;gap:4px;min-width:0;padding:12px 14px;display:grid}.bd-facts dt{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.bd-facts dd{color:var(--ink);overflow-wrap:anywhere;margin:0;font-size:15px;font-weight:600}.bd-section{gap:10px;display:grid}.bd-section h3,.bd-notes>span{color:var(--ink);font:700 11px / 1.3 var(--font-action);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;margin:0;display:inline-flex}.bd-players .booking-payer[data-booker]{border-color:color-mix(in srgb, var(--accent) 40%, var(--line))}.bd-badge{background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.bd-make-holder{border:1px solid var(--line);min-height:30px;color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;margin:0;padding:0 12px;font-size:12px}.bd-make-holder[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--surface)}.bd-price-unknown{color:var(--muted);margin:0;font-size:13px}.bd-notes{gap:8px;margin:0;display:grid}.bd-notes textarea{width:100%}.bd-notes-text{background:var(--surface-raised);border-radius:10px;align-items:flex-start;gap:8px;margin:0;padding:12px 14px;font-size:14px;display:flex}.bd-fixed-note{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.bd-attendance{margin:0}.bd-foot{flex-direction:column;align-items:flex-end;gap:16px;padding-block:16px 18px}.bd-manage{align-items:center;gap:6px;display:inline-flex}@media (max-width:560px){.bd-head{grid-template-columns:auto minmax(0,1fr)}.bd-head-side{grid-column:1/-1;justify-content:space-between}.booking-details-modal .bd-title input,.bd-title-text{font-size:20px}}.bd-body .inspector-edit,.bd-body .inspector-attendance{margin:0}.bd-body .inspector-attendance{border:1px solid var(--line);background:var(--surface-raised);border-radius:12px;padding:4px 14px}.bd-summary{border:1px solid var(--line);background:var(--surface-raised);border-radius:12px;gap:14px;padding:18px 20px 16px;display:grid}.bd-summary h3{margin:0;font-size:15px;font-weight:600}.bd-summary dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 20px;margin:0;display:grid}.bd-summary dl>div{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr);grid-template-areas:"icon label""icon value";align-items:center;column-gap:10px;min-width:0;padding-bottom:8px;display:grid}.bd-summary dt{display:contents}.bd-summary dt svg{color:var(--muted);grid-area:icon}.bd-summary dt{color:var(--muted);font-size:11px}.bd-summary dd{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;grid-area:value;margin:0;font-size:14px;font-weight:500;overflow:hidden}.bd-summary-foot{color:var(--muted);margin:0;font-size:12px}@media (max-width:560px){.bd-summary dl{grid-template-columns:repeat(2,minmax(0,1fr))}}.bd-player-link{min-width:0;color:inherit;text-decoration:none}.bd-player-link strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.bd-player-link:hover strong{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.bd-player-link:focus-visible{outline:2px solid var(--action);outline-offset:2px;border-radius:4px}.booking-details-modal .bd-head{column-gap:12px;padding-bottom:14px}.booking-details-modal .bd-heading{gap:0}.booking-details-modal .bd-title{margin:0;display:block}.booking-details-modal .bd-heading>p:not(.bd-title-text){margin-top:2px}.bd-players .booking-payer-name{gap:1px}.bd-players .booking-payer-name strong{font-size:14px;font-weight:600}.bd-players .booking-payer-name small.numeral{color:var(--muted);font:400 12px / 1.3 var(--font-body);letter-spacing:0;font-variant-numeric:tabular-nums}.bd-section-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.bd-add-toggle{border:1px solid var(--line);min-height:30px;color:var(--accent);font:700 10.5px / 1 var(--font-action);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;margin:0;padding:0 12px;display:inline-flex}.bd-add-toggle:hover,.bd-add-toggle[aria-expanded=true]{border-color:var(--accent);background:var(--accent-soft)}.bd-add-player-slide{opacity:0;transition:grid-template-rows .26s var(--ease-brand), opacity .2s ease;grid-template-rows:0fr;display:grid}.bd-add-player-slide[data-open]{opacity:1;grid-template-rows:1fr}.bd-add-player{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;min-height:0;display:grid;overflow:hidden}.bd-add-player-slide[data-open]>.bd-add-player{border:1px dashed var(--line);border-radius:10px;padding:12px 14px 14px;overflow:visible}.bd-add-player .error-message{grid-column:1/-1;margin:0}@media (prefers-reduced-motion:reduce){.bd-add-player-slide{transition:none}}.bd-remove-player{width:30px;height:30px;min-height:0;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;place-items:center;margin:0;padding:0;display:grid}.bd-remove-player:hover{background:color-mix(in srgb, var(--action) 14%, transparent);color:var(--action)}.bd-confirm{border:1px solid var(--line);background:var(--surface);width:min(420px,100% - 32px);color:var(--ink);border-radius:14px;padding:22px 24px 20px;box-shadow:0 18px 48px #00000040}.bd-confirm::backdrop{background:#0c0c0c59}.bd-confirm[open]{animation:bd-confirm-in .18s var(--ease-brand)}@keyframes bd-confirm-in{0%{opacity:0;scale:.96}}#main .bd-confirm h3,.bd-confirm h3{color:var(--ink);font:400 20px / 1.15 var(--font-display);letter-spacing:0;margin:0 0 8px}.bd-confirm p{color:var(--muted);margin:0 0 18px;font-size:13.5px;line-height:1.5}.bd-confirm-actions{justify-content:flex-end;gap:10px;display:flex}.bd-body .bd-attendance{padding:0;overflow:hidden}.bd-attendance>summary{cursor:pointer;align-items:center;gap:12px;padding:14px 16px;list-style:none;display:flex}.bd-attendance>summary::-webkit-details-marker{display:none}.bd-attendance>summary:after{content:"";border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);width:7px;height:7px;transition:transform .2s var(--ease-brand);margin-left:auto;transform:rotate(45deg)}.bd-attendance[open]>summary:after{transform:rotate(-135deg)}.bd-attendance>summary>span:not(.bd-attendance-icon){gap:2px;display:grid}.bd-attendance>summary strong{font-size:14px;font-weight:600}.bd-attendance>summary small{color:var(--muted);font-size:12px}.bd-attendance-icon{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);border-radius:9px;place-items:center;display:grid}.bd-attendance .attendance-panel{border-top:1px solid var(--line);gap:12px;padding:4px 16px 16px;display:grid}.bd-attendance .attendance-heading{justify-content:space-between;align-items:center;padding-top:12px;display:flex}.bd-attendance .attendance-heading h3{margin:0}.bd-attendance .attendance-refresh{font-size:12px}.bd-attendance .attendance-state{align-items:center;gap:10px;margin:0;display:flex}.bd-attendance .attendance-state span{font-size:12px;display:inline}.bd-attendance .attendance-state .attendance-state-badge{background:var(--surface-sunken);color:var(--ink);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.bd-attendance .attendance-note{margin:0;font-size:12px}.bd-attendance form fieldset{border:0;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:8px 16px;margin:0;padding:0;display:grid}.bd-attendance form legend{grid-column:1/-1;margin-bottom:6px;font-size:13px;font-weight:600}.bd-attendance form label{color:var(--muted);margin:0;font-size:12px}.bd-attendance form select,.bd-attendance form textarea{grid-row:3;width:100%}.bd-attendance form label[for$=-action]{grid-area:2/1}.bd-attendance form label[for$=-reason]{grid-area:2/2}.bd-attendance form select{grid-column:1}.bd-attendance form textarea{grid-column:2}.bd-attendance form .attendance-correction,.bd-attendance form button[type=submit]{grid-column:1/-1}.bd-attendance form button[type=submit]{justify-self:end;margin-top:4px}.bd-attendance .attendance-history{border-top:1px solid var(--line);padding-top:10px;font-size:13px}.bd-attendance .attendance-history>summary{color:var(--muted);cursor:pointer;font-size:12px}@media (max-width:560px){.bd-attendance form fieldset{grid-template-columns:minmax(0,1fr)}.bd-attendance form label[for$=-action],.bd-attendance form label[for$=-reason],.bd-attendance form select,.bd-attendance form textarea{grid-area:auto/1}}.bd-foot-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:inline-flex}.bd-foot-actions:empty{display:none}.bd-cancel-lesson{border:1px solid var(--line);min-height:42px;color:var(--ink);font:700 11px / 1 var(--font-action);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:5px;align-items:center;gap:8px;margin:0;padding:0 18px;display:inline-flex}.bd-cancel-lesson:hover{border-color:var(--action);color:var(--action)}.bd-confirm-field{color:var(--muted);gap:6px;margin:0 0 16px;font-size:12px;display:grid}.bd-confirm-field textarea{width:100%}.bd-confirm-actions{flex-wrap:wrap}.bd-player-actions{align-items:center;gap:6px;display:inline-flex}.bd-players .booking-payer[data-leaving]{opacity:.55;border-style:dashed}.bd-players .booking-payer[data-leaving] .booking-payer-name strong{text-decoration:line-through}.bd-pay .bd-price-badge{background:var(--surface-sunken);color:var(--muted);white-space:nowrap;border-radius:999px;grid-column:3;justify-self:end;padding:4px 12px;font-size:12px;font-weight:600}.bd-count{background:var(--surface-sunken);min-width:20px;height:20px;color:var(--ink);font:600 11px / 1 var(--font-body);letter-spacing:0;border-radius:999px;place-items:center;margin-left:8px;padding:0 6px;display:inline-grid}.bd-program{align-items:center;gap:6px;display:inline-flex}.bd-program i{border-radius:3px;width:10px;height:10px}.bd-roll{background:var(--surface-sunken);color:var(--muted);font:600 11px / 1.5 var(--font-body);letter-spacing:0;text-transform:none;border-radius:999px;margin-left:4px;padding:1px 8px}.bd-players li[data-state]{transition:border-color .2s var(--ease-brand), background-color .2s var(--ease-brand)}.bd-players li[data-state=present]{border-left:3px solid var(--accent);background:color-mix(in srgb, var(--accent-soft) 55%, var(--surface))}.bd-players li[data-state=absent]{border-left:3px solid var(--action);background:color-mix(in srgb, var(--action) 6%, var(--surface))}.bd-players li[data-state=excused]{border-left:3px solid var(--border-strong)}.bd-crown{color:var(--accent);vertical-align:-1px;flex:none;margin-right:6px}.bd-players .booking-payer{flex-wrap:wrap;align-items:center;gap:10px 12px;display:flex}.bd-players .booking-payer>.booking-payer-name{flex:160px;min-width:0}.bd-players .booking-payer>.attendance-mini,.bd-players .booking-payer>.bd-player-actions,.bd-players .booking-payer>.bd-make-holder{flex:none}.bd-players .booking-payer>.attendance-mini{order:3}.bd-players .booking-payer>.bd-player-actions{align-items:center;gap:4px;display:inline-flex}.bd-roll{white-space:nowrap}@media (max-width:520px){.bd-players .booking-payer>.booking-payer-name{flex-basis:calc(100% - 60px)}.bd-players .booking-payer>.attendance-mini{order:2}.bd-players .booking-payer>.bd-player-actions{order:3;margin-left:auto}.bd-section:has(.bd-players)>.bd-section-head{flex-wrap:wrap;row-gap:8px}.bd-section-head .bd-add-toggle{white-space:nowrap}}@media (max-width:560px){.bd-foot{align-items:stretch}.bd-foot .bd-manage{align-self:flex-end}.bd-foot-actions>*{flex:auto;justify-content:center}}
.booking-release-panel{border:1px solid var(--line);background:var(--surface);overflow-wrap:anywhere;border-radius:12px;gap:24px;margin-block:24px;padding:24px;display:grid}.booking-release-panel :is(h3,h4,p){margin:0}.booking-release-heading{border-bottom:1px solid var(--line);grid-template-columns:38px minmax(0,1fr) auto;align-items:start;gap:12px;padding-bottom:16px;display:grid}.booking-release-icon{background:var(--accent-soft);width:38px;height:38px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.booking-release-heading>div{min-width:0}.booking-release-who{color:var(--ink);overflow-wrap:anywhere;margin-top:6px;font-size:15px}.booking-release-when{color:var(--muted);margin-top:2px;font-size:13px}.booking-release-close{align-self:start}.booking-release-panel form,.booking-release-panel fieldset,.booking-release-review{gap:16px;min-width:0;display:grid}.booking-release-panel fieldset{border:0;margin:0;padding:0}.booking-release-panel legend{margin-bottom:12px;padding:0;font-weight:600}.booking-release-choices{gap:8px;display:grid}.booking-release-choice{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer;grid-template-columns:18px 32px minmax(0,1fr);align-items:center;gap:12px;min-height:56px;padding:10px 14px;display:grid}.booking-release-choice:hover{border-color:var(--border-strong)}.booking-release-choice:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.booking-release-choice:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.booking-release-choice-icon{background:var(--surface-raised);width:32px;height:32px;color:var(--accent);border-radius:8px;place-items:center;display:grid}.booking-release-choice-text{gap:2px;min-width:0;display:grid}.booking-release-choice-text strong{font-size:14px;font-weight:600}.booking-release-choice-text small{color:var(--muted);font-size:12px}.booking-release-choice input{width:18px;min-width:18px;height:18px;accent-color:var(--accent);margin:0}.booking-release-fields{grid-template-columns:repeat(auto-fit,minmax(min(100%,24ch),1fr));gap:16px;display:grid}.booking-release-panel label:not(.booking-release-choice){gap:8px;min-width:0;display:grid}.booking-release-panel :is(input,select,textarea){min-width:0;max-width:100%}.booking-release-panel textarea{resize:vertical}.booking-release-summary{grid-template-columns:repeat(auto-fit,minmax(min(100%,20ch),1fr));gap:16px 24px;margin:0;display:grid}.booking-release-summary dt{color:var(--muted);font-size:13px}.booking-release-summary dd{margin:4px 0 0}.booking-release-effects{margin:0;padding:0;list-style:none}.booking-release-effects>li{border-top:1px solid var(--line);gap:8px;padding-block:16px;display:grid}.booking-release-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.booking-release-panel :is(button,select,textarea){min-height:44px}.booking-release-panel :is(button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:3px}.booking-release-panel p{max-width:65ch}@media (max-width:680px){.booking-release-panel{padding:20px 16px}.booking-release-actions button{width:100%}.booking-release-choices{flex-direction:column;gap:8px}}
.booking-refund-status{border-top:1px solid var(--line);overflow-wrap:anywhere;gap:16px;min-width:0;padding-block:20px;display:grid}.booking-refund-status h5{color:var(--ink);font:inherit;margin:0;font-size:17px}.booking-refund-status-label{color:var(--accent);font-weight:600}.booking-refund-facts{flex-wrap:wrap;gap:12px 28px;margin:0;display:flex}.booking-refund-facts>div{min-width:0}.booking-refund-facts dt{color:var(--muted);font-size:13px}.booking-refund-facts dd{font-variant-numeric:tabular-nums;margin:4px 0 0}.booking-refund-confirmation{justify-items:start;gap:12px;display:grid}.booking-release-panel .booking-refund-status .booking-refund-check{cursor:pointer;align-items:start;gap:10px;min-height:44px;display:flex}.booking-refund-check input{width:18px;min-width:18px;height:18px;accent-color:var(--accent);margin:3px 0 0}.booking-refund-actions{flex-wrap:wrap;gap:12px;display:flex}.booking-refund-status :is(button,summary){min-height:44px}.booking-refund-status :is(button,input,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:3px}.booking-refund-history summary{cursor:pointer;align-content:center;display:list-item}.booking-refund-history ol{margin:12px 0 0;padding-inline-start:24px}.booking-refund-history li{padding:0 0 16px 4px}.booking-refund-history time{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:4px;font-size:13px;display:block}.booking-refund-history p{margin-top:8px}@media (max-width:680px){.booking-refund-actions,.booking-refund-confirmation{justify-items:stretch;display:grid}.booking-refund-actions button,.booking-refund-confirmation button{width:100%}.booking-refund-facts{gap:12px 20px}}
.monthly{gap:16px;min-width:0;padding:20px 22px;display:grid}.monthly-head{grid-template-columns:minmax(0,1fr);justify-content:space-between;align-items:flex-end;gap:14px 24px;display:grid}.monthly-head h2{font:700 13px / 1.3 var(--font-action);letter-spacing:.08em;text-transform:uppercase;margin:0}.monthly-head p{max-width:60ch;color:var(--muted);margin:4px 0 0;font-size:13px}.monthly-courts{scrollbar-width:thin;border:1px solid var(--line);background:var(--surface-sunken,var(--surface-raised));border-radius:999px;flex-wrap:nowrap;justify-self:start;gap:4px;min-width:0;max-width:100%;margin:0;padding:4px;display:inline-flex;overflow-x:auto}.monthly-courts label{min-height:32px;color:var(--muted);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;margin:0;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex;position:relative}.monthly-courts input{opacity:0;cursor:pointer;width:100%;height:100%;min-height:0;margin:0;position:absolute;inset:0}.monthly-courts label:has(input:checked){color:var(--ink)}.monthly-courts label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.monthly-scroll{border:1px solid var(--line);background:var(--surface);border-radius:12px;max-height:72vh;overflow:auto}.monthly-grid{grid-template-columns:56px repeat(7,minmax(150px,1fr));min-width:1100px;display:grid;position:relative}.monthly-corner,.monthly-day{z-index:3;border-bottom:1px solid var(--border-strong);background:var(--surface-raised);font:700 11px / 1 var(--font-action);letter-spacing:.08em;text-transform:uppercase;place-items:center;display:grid;position:sticky;top:0}.monthly-corner{z-index:4;left:0}.monthly-time{z-index:2;border-right:1px solid var(--line);background:var(--surface);color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;padding:2px 8px 0 0;font-size:11px;position:sticky;left:0}.monthly-cell{border-left:1px solid var(--line);border-top:1px dashed color-mix(in srgb, var(--line) 60%, transparent)}.monthly-cell[data-hour]{border-top-style:solid}.monthly-slot{z-index:1;border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));border-left:3px solid var(--accent);background:var(--accent-soft);min-width:0;color:var(--ink);border-radius:8px;align-content:start;gap:4px;margin:3px 4px;padding:7px 9px;display:grid;overflow:hidden}.monthly-slot[data-kind=block]{border-color:color-mix(in srgb, var(--border-strong) 50%, var(--line));border-left-color:var(--border-strong);background:color-mix(in srgb, var(--border-strong) 16%, var(--surface))}.monthly-slot-time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px;font-weight:600}.monthly-slot-title{text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:6px;font-size:12px;display:inline-flex}.monthly-people{gap:2px;margin:0;padding:0;list-style:none;display:grid}.monthly-people li{align-items:center;gap:5px;min-width:0;font-size:12px;line-height:1.35;display:flex}.monthly-people li svg{color:var(--accent);opacity:.45;flex:none}.monthly-people li[data-booker] svg{opacity:1}.monthly-people li span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.monthly-people li small{color:var(--muted);flex:none;margin-left:auto;font-size:11px}.monthly-empty{color:var(--muted);margin:0;font-size:13px}.monthly-loading{background:var(--surface-raised);border-radius:12px;min-height:420px;animation:1.4s ease-in-out infinite monthly-pulse}@keyframes monthly-pulse{50%{opacity:.6}}@media (prefers-reduced-motion:reduce){.monthly-loading{animation:none}}@media (max-width:680px){.monthly{padding:16px}}.calendar-modes{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:inline-flex}.calendar-toolbar>.calendar-modes+.view-switch{margin-left:0}.calendar-density{border:1px solid var(--line);background:var(--surface-sunken,var(--surface-raised));border-radius:5px;gap:2px;margin:0;padding:3px;display:inline-flex}.calendar-density label{min-height:30px;color:var(--muted);cursor:pointer;border-radius:3px;align-items:center;margin:0;padding:0 12px;font-size:12px;font-weight:600;display:inline-flex;position:relative}.calendar-density input{opacity:0;cursor:pointer;width:100%;height:100%;min-height:0;margin:0;position:absolute;inset:0}.calendar-density label:has(input:checked){color:var(--ink)}.calendar-density label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.calendar-density .pill-thumb.is-light{border-radius:3px}.calendar-period{border:1px solid var(--line);background:var(--surface-sunken,var(--surface-raised));border-radius:999px;gap:2px;margin:0;padding:3px;display:inline-flex}.calendar-period label{min-height:32px;color:var(--muted);font:700 11px / 1 var(--font-action);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:color .16s var(--ease-brand), background-color .16s var(--ease-brand);border-radius:999px;align-items:center;gap:6px;margin:0;padding:0 14px;display:inline-flex;position:relative}.calendar-period input{opacity:0;cursor:pointer;width:100%;height:100%;min-height:0;margin:0;position:absolute;inset:0}.calendar-period label:hover{color:var(--ink)}.calendar-period label:has(input:checked){background:var(--accent);color:var(--surface)}.calendar-period label:has(input:focus-visible){outline:2px solid var(--action);outline-offset:2px}.calendar-period .pill-thumb{background:var(--accent);border-radius:999px}.monthly-cell.is-open{cursor:pointer;background:0 0;border-bottom:0;border-right:0;border-radius:0;min-height:0;margin:0;padding:0;transition:background-color .14s}.monthly-cell.is-open:hover{background:color-mix(in srgb, var(--accent) 8%, transparent)}.monthly-cell.is-open:focus-visible{outline:2px solid var(--action);outline-offset:-2px}.monthly-slot{transition:box-shadow .16s,transform .12s;position:relative}.monthly-slot:has(.monthly-slot-open):hover{box-shadow:0 6px 16px #0000001a}.monthly-slot-open{z-index:2;cursor:pointer;background:0 0;border:0;width:100%;min-height:0;margin:0;padding:0;position:absolute;inset:0}.monthly-grid .monthly-slot>.monthly-slot-open:is(:hover,:focus,:active){box-shadow:none;background:0 0}.monthly-slot-open:focus-visible{outline:2px solid var(--action);outline-offset:1px}.monthly-slot[data-program]{border-color:color-mix(in srgb, var(--program) 40%, var(--line));border-left-color:var(--program);background:color-mix(in srgb, var(--program) 16%, var(--surface))}.monthly-slot-program{background:color-mix(in srgb, var(--program,var(--border-strong)) 22%, transparent);letter-spacing:.02em;border-radius:999px;padding:1px 6px;font-size:10px}.monthly-notice{background:var(--accent-soft);color:var(--accent);border-radius:10px;margin-top:12px;padding:10px 14px;font-size:13px;font-weight:600;display:block}.filters-end>.calendar-modes{margin-left:0}
.signup-link{border:1px solid var(--line);background:var(--surface);min-height:42px;color:var(--ink);cursor:pointer;isolation:isolate;border-radius:5px;align-items:center;gap:8px;margin:0;padding:0 16px 0 14px;font-size:14px;transition:border-color .16s,transform .12s;display:inline-flex;position:relative;overflow:hidden}.signup-link:hover{border-color:var(--border-strong)}.signup-link:active{transform:scale(.97)}.signup-link[data-state=copied]{border-color:var(--accent)}.signup-link-fill{z-index:-1;background:var(--accent-soft);transform-origin:0;transition:transform .42s var(--ease-brand);position:absolute;inset:0;transform:scaleX(0)}.signup-link[data-state=copied] .signup-link-fill{transform:scaleX(1)}.signup-link-glyph{width:16px;height:16px;color:var(--accent);display:grid;position:relative}.signup-link-icon{grid-area:1/1;transition:opacity .18s,transform .26s cubic-bezier(.34,1.56,.64,1)}.signup-link-icon.is-check{opacity:0;transform:scale(.3)rotate(-30deg)}.signup-link[data-state=copied] .signup-link-icon.is-link{opacity:0;transform:scale(.3)rotate(30deg)}.signup-link[data-state=copied] .signup-link-icon.is-check{opacity:1;transform:scale(1)rotate(0)}.signup-link-labels{height:20px;line-height:20px;display:grid;position:relative;overflow:hidden}.signup-link-labels>span{white-space:nowrap;transition:transform .26s var(--ease-brand), opacity .2s ease;grid-area:1/1}.signup-link-labels .is-copied,.signup-link-labels .is-failed{opacity:0;transform:translateY(100%)}.signup-link-labels .is-copied{color:var(--accent);font-weight:600}.signup-link-labels .is-failed{color:var(--danger,#b42318)}.signup-link:not([data-state=idle]) .signup-link-labels .is-idle{opacity:0;transform:translateY(-100%)}.signup-link[data-state=copied] .signup-link-labels .is-copied,.signup-link[data-state=failed] .signup-link-labels .is-failed{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.signup-link,.signup-link-fill,.signup-link-icon,.signup-link-labels>span{transition:none}}
.sport-select{min-width:0;max-width:100%;position:relative}.sport-select-button{border:1px solid var(--line);background:var(--surface);width:100%;min-width:210px;min-height:44px;color:var(--ink);text-align:left;cursor:pointer;border-radius:5px;align-items:center;gap:10px;margin:0;padding:0 12px 0 8px;font-size:13px;transition:border-color .14s,background-color .14s;display:inline-flex}.sport-select-button:hover{border-color:var(--border-strong)}.sport-select-button[aria-expanded=true]{border-color:var(--accent)}.sport-select-button>svg{color:var(--muted);transition:transform .18s var(--ease-brand);flex:none;margin-left:auto}.sport-select-button[aria-expanded=true]>svg{transform:rotate(180deg)}.sport-select-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sport-select-glyph{background:var(--accent-soft);width:28px;height:28px;color:var(--accent);border-radius:7px;flex:none;place-items:center;display:grid}.sport-select-list{z-index:40;border:1px solid var(--line);background:var(--surface);min-width:100%;max-height:340px;animation:sport-select-in .16s var(--ease-brand);border-radius:10px;gap:2px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0;overflow:auto;box-shadow:0 16px 40px #0000002e}@keyframes sport-select-in{0%{opacity:0;translate:0 -4px}}.sport-select-list [role=option]{min-height:40px;color:var(--ink);white-space:nowrap;cursor:pointer;border-radius:7px;align-items:center;gap:10px;padding:0 10px 0 6px;font-size:13.5px;display:flex}.sport-select-list [role=option].is-active{background:var(--surface-raised)}.sport-select-list [role=option][aria-selected=true]{font-weight:600}.sport-select-check{color:var(--accent);margin-left:auto}.sport-select-new{border-top:1px solid var(--line);color:var(--accent);border-radius:0 0 7px 7px;margin-top:4px}.sport-select-new .sport-select-glyph{border:1px dashed var(--line);background:0 0}@media (prefers-reduced-motion:reduce){.sport-select-list{animation:none}.sport-select-button>svg{transition:none}}@media (max-width:680px){.sport-select-button{min-width:0}.sport-select-list{left:0;right:auto}}
.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-past] .year-day-number{opacity:.6}.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-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.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))}
