.availability{background:var(--ink);color:#fff;position:relative;overflow:hidden}.availability:before{content:'';position:absolute;width:50vw;height:50vw;border:1px solid rgba(216,244,82,.2);border-radius:50%;right:-24vw;top:9%;pointer-events:none}.availability .section-label{position:relative}.availability .section-label span{background:var(--lime);color:var(--ink)}.availability-heading{display:grid;grid-template-columns:1.25fr .75fr;gap:9vw;align-items:end;margin-top:56px;position:relative}.availability h2{font-size:clamp(48px,6vw,88px);line-height:.95}.availability-heading>p{margin:0;line-height:1.75;color:#d1d5df;font-size:14px;max-width:410px}.availability-layout{display:grid;grid-template-columns:1fr .48fr;gap:30px;margin-top:54px;position:relative}.availability-form{border-top:1px solid rgba(255,255,255,.45);padding-top:16px}.availability-form label,.attendance-summary>span{font:11px var(--mono);letter-spacing:.08em;text-transform:uppercase}.availability-entry{display:flex;gap:10px;margin-top:9px}.availability-entry input{min-width:0;flex:1;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.35);color:#fff;padding:12px 2px;font:700 23px var(--display);outline:none}.availability-entry input:focus{border-color:var(--lime)}.availability-entry input::placeholder{color:#747a8a}.availability-save{border:0;background:var(--lime);color:var(--ink);font:700 11px var(--mono);text-transform:uppercase;letter-spacing:.07em;padding:0 18px;cursor:pointer}.availability-save span{font-size:17px;margin-left:12px}.availability-help,.availability-message{font-size:12px;line-height:1.6;color:#b9bdc9;margin:12px 0 0;max-width:540px}.availability-message{color:var(--lime);min-height:20px}.attendance-summary{background:var(--coral);color:var(--ink);padding:25px;display:flex;flex-direction:column;justify-content:center}.attendance-summary strong{font:700 clamp(25px,3vw,42px)/1 var(--display);letter-spacing:-.07em;margin:13px 0 8px}.attendance-summary p{font-size:13px;margin:0}.attendance-summary b{font-size:20px}.availability-toolbar{display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(255,255,255,.3);margin-top:55px;padding-top:18px;position:relative;gap:24px}.month-navigation{display:flex;align-items:center;gap:15px}.month-navigation h3{font:700 21px var(--display);letter-spacing:-.05em;min-width:165px;margin:0;text-transform:capitalize}.month-navigation button{width:34px;height:34px;border:1px solid rgba(255,255,255,.42);background:transparent;color:#fff;cursor:pointer;font-size:17px}.month-navigation button:disabled{opacity:.3;cursor:not-allowed}.availability-toolbar>p{font:11px var(--mono);color:#d1d5df;margin:0}.availability-toolbar i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--lime);margin-right:8px}.availability-calendar{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid rgba(255,255,255,.2);margin-top:20px;position:relative}.calendar-weekday{font:10px var(--mono);letter-spacing:.07em;color:#aeb3c0;padding:9px;border-right:1px solid rgba(255,255,255,.2);border-top:1px solid rgba(255,255,255,.2)}.calendar-cell{min-height:108px;padding:9px;border-right:1px solid rgba(255,255,255,.2);border-top:1px solid rgba(255,255,255,.2);position:relative}.calendar-cell.is-empty{background:rgba(255,255,255,.025)}.calendar-day{font:11px var(--mono);color:#858b9c}.training-date{cursor:pointer;background:rgba(255,255,255,.055);transition:background .2s,transform .2s}.training-date:hover,.training-date:focus-within{background:rgba(216,244,82,.13)}.training-date.is-selected{outline:2px solid var(--lime);outline-offset:-2px}.training-date.is-today .calendar-day{color:var(--lime)}.attendance-count{position:absolute;right:9px;top:8px;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:var(--coral);color:var(--ink);font:700 11px var(--mono)}.attendance-count.is-empty{background:rgba(255,255,255,.11);color:#aeb3c0}.attendance-toggle{position:absolute;left:9px;right:9px;bottom:9px;border:1px solid rgba(255,255,255,.38);color:#fff;background:transparent;padding:7px 5px;font:700 9px var(--mono);letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.attendance-toggle:hover,.attendance-toggle:focus{border-color:var(--lime);color:var(--lime)}.attendance-toggle.is-going{background:var(--lime);border-color:var(--lime);color:var(--ink)}.attendance-panel{display:grid;grid-template-columns:.8fr .7fr 1.5fr;gap:24px;align-items:start;border-top:1px solid rgba(255,255,255,.35);border-bottom:1px solid rgba(255,255,255,.35);padding:24px 0;margin-top:25px;position:relative}.attendance-panel h3{font:700 26px var(--display);letter-spacing:-.06em;margin:0}.attendance-panel>p{font-size:13px;line-height:1.6;color:#d1d5df;margin:3px 0}.attendance-details{font-size:13px;line-height:1.6}.attendance-details p{margin:3px 0}.attendance-details strong{display:block;font:700 14px var(--mono);color:var(--lime);margin-bottom:8px}.attendance-names{display:flex;flex-wrap:wrap;gap:7px}.attendance-names span{border:1px solid rgba(255,255,255,.36);padding:5px 8px;font:11px var(--mono)}.availability-note{font-size:11px;color:#aeb3c0;max-width:690px;line-height:1.6;margin:20px 0 0;position:relative}.availability button:focus-visible,.availability input:focus-visible{outline:2px solid var(--lime);outline-offset:3px}@media(max-width:760px){.availability-heading,.availability-layout,.attendance-panel{grid-template-columns:1fr;gap:24px}.availability-heading{margin-top:37px}.availability-layout{margin-top:38px}.attendance-summary{min-height:145px}.availability-toolbar{align-items:flex-start;flex-direction:column;margin-top:42px;gap:13px}.availability-calendar{overflow:hidden}.calendar-weekday{font-size:8px;padding:7px 4px}.calendar-cell{min-height:84px;padding:6px 4px}.attendance-count{right:5px;top:5px;width:20px;height:20px;font-size:9px}.attendance-toggle{left:4px;right:4px;bottom:5px;padding:6px 1px;font-size:8px}.month-navigation h3{font-size:19px;min-width:145px}.attendance-panel{padding:20px 0}.availability-entry input{font-size:20px}.availability-save{padding:0 13px}.availability-help{font-size:11px}}
