.calendar-section{padding-block:clamp(2rem,5vw,3.5rem)}.frame{--line-soft:#e4ebec;--c-closure:#c0392b;--c-camp:#e07b00;--c-meet:var(--lagoon-deep);--c-event:#7c4dcc;--c-class:var(--lagoon-mid);--track:#edf3f4;border:1px solid var(--line);border-radius:var(--radius-media);background:#fff;overflow:hidden}.frame button{font-family:var(--font-body)}.cal-toolbar{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:.75rem 1rem;padding:1rem clamp(1rem,2.5vw,1.5rem);display:flex}.track{background:var(--track);border-radius:var(--radius-pill);flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.track button{border-radius:var(--radius-pill);min-height:44px;color:var(--lagoon-deep);cursor:pointer;background:0 0;border:0;align-items:center;gap:.4rem;padding:.35rem .9rem;font-size:.95rem;font-weight:700;display:inline-flex}.track button[aria-pressed=true]{background:var(--lagoon-mid);color:#fff}.track button small{opacity:.7;letter-spacing:.04em;font-size:.66rem;font-weight:700}.nav{align-items:center;gap:.4rem;margin-left:auto;display:inline-flex}.nav button{border:1px solid var(--line);cursor:pointer;width:44px;height:44px;color:var(--lagoon-deep);background:#fff;border-radius:50%;font-size:1.2rem}.nav button:disabled{opacity:.35;cursor:default}.nav strong{font-family:var(--font-display);color:var(--lagoon-deep);text-align:center;min-width:10.5rem;font-size:1.15rem}.colorby{color:var(--ink-soft);align-items:center;gap:.5rem;font-size:.85rem;display:inline-flex}.colorby .track button{min-height:40px;padding:.2rem .75rem;font-size:.85rem}.filters{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:.3rem;padding:.45rem clamp(1rem,2.5vw,1.5rem);display:flex}.filters .label,.programs .label{color:var(--ink-soft);margin-right:.25rem;font-size:.72rem;font-weight:700}.chipbtn{--c:var(--lagoon);border-radius:var(--radius-pill);border:1px solid var(--line);cursor:pointer;min-height:24px;color:var(--ink);background:#fff;align-items:center;gap:.3rem;padding:.1rem .5rem .1rem .4rem;font-size:.75rem;font-weight:600;line-height:1.2;display:inline-flex}.chipbtn .dot{background:var(--c);border-radius:50%;width:.45rem;height:.45rem}.chipbtn[data-type=closure] .dot{background:repeating-linear-gradient(135deg, var(--c) 0 1.5px, #fff 1.5px 3px);border:1px solid var(--c)}.chipbtn[aria-pressed=true]{border-color:var(--c);background:color-mix(in srgb, var(--c) 10%, #fff)}.chipbtn[aria-pressed=false]{color:#8aa0a4}.chipbtn[aria-pressed=false] .dot{opacity:.35}.programs{border-bottom:1px solid var(--line-soft);background:#f6fafa;flex-wrap:wrap;align-items:center;gap:.25rem;padding:.35rem clamp(1rem,2.5vw,1.5rem);display:flex}.programs[hidden]{display:none!important}.programs .chipbtn{min-height:24px;padding:.1rem .45rem .1rem .35rem;font-size:.7rem}.cal-body{grid-template-columns:minmax(0,1fr) 19rem;min-height:520px;display:grid}.view{min-width:0;padding:clamp(.75rem,2vw,1.25rem)}.aside{border-left:1px solid var(--line-soft);background:#f7fbfb;min-width:0;padding:1.25rem}.cal-noscript{color:var(--ink-soft);border-top:1px solid var(--line-soft);margin:0;padding:.75rem 1.25rem;font-size:.85rem}.month{border:1px solid var(--line-soft);border-radius:18px;grid-template-columns:.55fr repeat(6,minmax(0,1fr));display:grid;overflow:hidden}.month .dow{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--line-soft);background:#f4f9f9;padding:.45rem .5rem;font-size:.72rem;font-weight:700}.day{border:0;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);text-align:left;cursor:pointer;min-width:0;min-height:122px;color:var(--ink);background:#fff;flex-direction:column;align-items:stretch;gap:3px;padding:.35rem .35rem .45rem;display:flex;position:relative}.day:nth-child(7n+7){border-right:0}.day.out{background:#fbfcfc}.day.out>*{opacity:.45}.day.sun{background:#f6f8f8}.day.closed{background:repeating-linear-gradient(135deg,#c0362c17 0 7px,#fff 7px 14px)}.day.sel{box-shadow:inset 0 0 0 2.5px var(--lagoon-mid)}.day .num{color:var(--lagoon-deep);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:4px;font-size:.85rem;font-weight:700;display:flex}.day .num b{border-radius:50%;place-items:center;min-width:1.6rem;height:1.6rem;display:inline-grid}.day.today .num b{background:var(--flame);color:#fff}.closedtag{letter-spacing:.04em;text-transform:uppercase;color:var(--c-closure);white-space:nowrap;text-overflow:ellipsis;font-size:.64rem;font-weight:800;overflow:hidden}.frame .chip{--c:var(--lagoon);font-family:var(--font-body);background:color-mix(in srgb, var(--c) 11%, #fff);border-left:3px solid var(--c);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;padding:2px 5px 2px 6px;font-size:.72rem;font-weight:500;line-height:1.25;display:block;overflow:hidden}.frame .chip time{font-variant-numeric:tabular-nums;margin-right:3px;font-weight:700}.frame .chip.cancel{--c:var(--c-closure);text-decoration:line-through;text-decoration-color:var(--c-closure)}.frame .chip.span-mid{border-left-color:#0000;border-radius:0}.classbar{flex-direction:column;gap:2px;margin-top:auto;display:flex}.classbar .bar,.lrow.classes .bar{background:var(--line-soft);border-radius:4px;height:6px;display:flex;overflow:hidden}.classbar .bar i,.lrow.classes .bar i{height:100%;display:block}.classbar span{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:.66rem;font-weight:600}.more{color:var(--lagoon-mid);font-size:.68rem;font-weight:700}.dots{flex-wrap:wrap;gap:3px;display:none}.dots i{background:var(--c);border-radius:50%;width:7px;height:7px}.weeknote{color:var(--ink-soft);margin:0 0 .6rem;font-size:.8rem}.week{grid-template-columns:repeat(6,minmax(9.5rem,1fr));gap:.5rem;padding-bottom:.25rem;display:grid;overflow-x:auto}.wcol{flex-direction:column;gap:4px;min-width:0;display:flex}.whead{text-align:left;cursor:pointer;background:#f2f8f8;border:0;border-radius:12px;min-height:44px;padding:.45rem .6rem}.whead strong{font-family:var(--font-display);color:var(--lagoon-deep);font-size:1rem;display:block}.whead span{color:var(--ink-soft);font-size:.72rem;font-weight:600}.whead.sel{background:var(--lagoon-mid)}.whead.sel strong,.whead.sel span{color:#fff}.band{color:var(--c-closure);background:repeating-linear-gradient(135deg,#c0362c1a 0 6px,#fff 6px 12px);border:1px solid #c0362c59;border-radius:10px;padding:.35rem .5rem;font-size:.72rem;font-weight:700}.wrow{--c:var(--lagoon);background:color-mix(in srgb, var(--c) 9%, #fff);border-left:3px solid var(--c);border-radius:7px;grid-template-columns:3.4rem minmax(0,1fr);align-items:baseline;gap:.35rem;padding:3px 5px;font-size:.74rem;line-height:1.25;display:grid}.wrow time{font-variant-numeric:tabular-nums;color:var(--lagoon-deep);font-weight:700}.wrow .t{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.wrow.big{background:color-mix(in srgb, var(--c) 16%, #fff);padding:6px;font-size:.78rem}.wrow.big .t{white-space:normal;font-weight:700}.wrow.cancel{--c:var(--c-closure);color:#8a5b56}.wrow.cancel .t{text-decoration:line-through}.wrow em,.clist em,.pslot em{color:var(--c-closure);text-transform:uppercase;letter-spacing:.04em;font-size:.66rem;font-style:normal;font-weight:700;text-decoration:none}.lday{border-bottom:1px solid var(--line-soft);grid-template-columns:5.2rem minmax(0,1fr);gap:1rem;padding:.8rem 0;display:grid}.lday:first-child{padding-top:.25rem}.ldate{font-family:var(--font-display);color:var(--lagoon-deep);line-height:1.1}.ldate b{font-size:1.6rem;font-weight:800;display:block}.ldate span{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-size:.78rem;font-weight:700}.lday.today .ldate b{color:var(--flame)}.lrows{flex-direction:column;gap:.4rem;min-width:0;display:flex}.lrow{--c:var(--lagoon);background:color-mix(in srgb, var(--c) 8%, #fff);border-left:4px solid var(--c);border-radius:12px;grid-template-columns:6.2rem minmax(0,1fr);align-items:start;gap:.75rem;padding:.5rem .7rem;display:grid}.lrow time{font-variant-numeric:tabular-nums;color:var(--lagoon-deep);font-size:.85rem;font-weight:700}.lrow .lt{margin:0;font-size:.98rem;font-weight:700;display:block}.lrow .lt a{color:var(--ink);text-decoration:none}.lrow .lt a:hover{text-decoration:underline}.lrow p{color:var(--ink-soft);margin:0;font-size:.82rem}.lrow.closure{background:repeating-linear-gradient(135deg,#c0362c14 0 7px,#fff 7px 14px)}.lrow.cancel h4{text-decoration:line-through}.lrow.classes{border-left-color:var(--lagoon-mid);background:#f4f9f9}.lrow.classes .bar{max-width:18rem;margin-top:.35rem}.empty{text-align:center;color:var(--ink-soft);padding:2rem}.season{gap:5px;display:grid}.srow{grid-template-columns:3.2rem minmax(0,1fr);align-items:center;gap:.5rem;display:grid}.srow>b{font-family:var(--font-display);color:var(--lagoon-deep);font-size:.85rem}.scells{grid-template-columns:repeat(31,minmax(0,1fr));gap:3px;display:grid}.sc{aspect-ratio:1;cursor:pointer;background:#eef5f5;border:0;border-radius:4px;max-width:100%;min-height:0;padding:0;position:relative}.sc.none{cursor:default;background:0 0}.sc.sun{background:#e3e9ea}.sc.event:after{content:"";background:var(--c-event);border-radius:50%;position:absolute;inset:32%}.sc.camp{background:var(--c-camp)}.sc.meet{background:var(--c-meet)}.sc.closure{background:repeating-linear-gradient(135deg, var(--c-closure) 0 2px, #f7d9d6 2px 4px)}.sc.today{box-shadow:0 0 0 2px var(--flame)}.sc.sel{box-shadow:0 0 0 2px var(--lagoon-mid)}.slegend{color:var(--ink-soft);flex-wrap:wrap;gap:.4rem 1.1rem;margin-top:1rem;font-size:.8rem;display:flex}.slegend span{align-items:center;gap:.4rem;display:inline-flex}.slegend i{background:#eef5f5;border-radius:4px;width:14px;height:14px;display:inline-block;position:relative}.slegend .lg-closure{background:repeating-linear-gradient(135deg, var(--c-closure) 0 2px, #f7d9d6 2px 4px)}.slegend .lg-camp{background:var(--c-camp)}.slegend .lg-meet{background:var(--c-meet)}.slegend .lg-event:after{content:"";background:var(--c-event);border-radius:50%;position:absolute;inset:3px}.slegend .lg-sun{background:#e3e9ea}.snote{color:var(--ink-soft);margin-top:.6rem;font-size:.8rem}.aside h2{margin:0;font-size:1.2rem;font-weight:800}.aside .sub{color:var(--ink-soft);margin:.15rem 0 .9rem;font-size:.8rem}.aside .notice{color:#7d241d;background:repeating-linear-gradient(135deg,#c0362c1a 0 7px,#fff 7px 14px);border:1px solid #c0362c59;border-radius:14px;margin-bottom:.75rem;padding:.6rem .75rem;font-size:.85rem;font-weight:600}.agenda{flex-direction:column;gap:.45rem;display:flex}.agenda details{--c:var(--lagoon);border:1px solid var(--line);border-left:4px solid var(--c);background:#fff;border-radius:12px;padding:.5rem .7rem}.agenda summary{cursor:pointer;grid-template-columns:4.1rem minmax(0,1fr);align-items:center;gap:.4rem;min-height:44px;font-size:.86rem;line-height:1.3;list-style:none;display:grid}.agenda summary::-webkit-details-marker{display:none}.agenda summary time{font-variant-numeric:tabular-nums;color:var(--lagoon-deep);font-weight:700}.agenda summary span{font-weight:600}.agenda summary em{color:var(--c-closure);text-transform:uppercase;font-size:.7rem;font-style:normal;font-weight:700}.agenda .meta{color:var(--ink-soft);gap:.2rem;margin-top:.5rem;font-size:.8rem;display:grid}.agenda .src{text-transform:uppercase;letter-spacing:.05em;color:var(--lagoon-mid);background:var(--teal-light);border-radius:var(--radius-pill);width:fit-content;margin-top:.3rem;padding:.1rem .5rem;font-size:.68rem;font-weight:700;display:inline-block}.agenda .act{border-radius:var(--radius-pill);background:var(--flame);color:#fff;justify-content:center;align-items:center;width:fit-content;min-height:44px;margin-top:.45rem;padding:.2rem .9rem;font-size:.82rem;font-weight:700;text-decoration:none;display:inline-flex}.agenda .act.ext{color:var(--flame-deep);border:2px solid var(--flame);background:#fff;margin-left:.4rem}.clist{gap:3px;max-height:15rem;margin-top:.5rem;padding-right:.25rem;display:grid;overflow:auto}.clist div{--c:var(--lagoon);border-left:3px solid var(--c);grid-template-columns:3.4rem minmax(0,1fr);gap:.4rem;padding-left:.4rem;font-size:.76rem;display:grid}.clist div.cancel{color:#8a5b56;--c:var(--c-closure);text-decoration:line-through}.clist time{font-variant-numeric:tabular-nums;font-weight:700}@media (width<=960px){.cal-body{grid-template-columns:1fr}.aside{border-left:0;border-top:1px solid var(--line-soft)}.nav{margin-left:0}}@media (width<=640px){.month{grid-template-columns:repeat(7,minmax(0,1fr))}.month .dow{text-align:center;letter-spacing:.02em;padding:.35rem .1rem;font-size:.62rem}.day{align-items:center;min-height:58px;padding:.25rem .15rem}.day .chip,.day .more,.day .classbar,.day .closedtag{display:none}.day .dots{justify-content:center;display:flex}.day .num{justify-content:center}.lday{grid-template-columns:1fr;gap:.4rem}.ldate b{font-size:1.2rem;display:inline}.ldate span{margin-right:.4rem}.lrow{grid-template-columns:1fr;gap:.1rem}.nav strong{flex:1;min-width:0}.week{grid-template-columns:repeat(6,minmax(9.5rem,1fr))}}
