:root{--fc-sticky-header-footer-z:3;--fc-popover-z:4}.fc-1U{z-index:var(--fc-popover-z)!important}.fc-1q{isolation:isolate}.fc-pp,.fc-pp *,.fc-pp :before,.fc-pp :after{box-sizing:border-box!important}.fc-gm,.fc-gm *{cursor:not-allowed!important}.fc-xp{-ms-overflow-style:none!important;scrollbar-width:none!important}.fc-xp::-webkit-scrollbar{display:none!important}.fc-J9{flex-shrink:0!important}.fc-oi .fc-TV{flex-flow:wrap!important;display:flex!important}.fc-OY .fc-TV>*{float:left!important}[dir=rtl] .fc-OY .fc-TV>*,.fc-OY[dir=rtl] .fc-TV>*{float:right!important}.fc-OY .fc-TV:after{content:""!important;clear:both!important;display:block!important}.fc-ky{cursor:pointer!important}.fc-Wq{cursor:n-resize!important}.fc-2H{cursor:s-resize!important}.fc-lP{cursor:w-resize!important}[dir=rtl] .fc-lP,.fc-pu{cursor:e-resize!important}[dir=rtl] .fc-pu{cursor:w-resize!important}.fc-Mo{cursor:col-resize!important}.fc-Bx,.fc-rT,.fc-1e{box-sizing:content-box!important;width:100%!important;height:100%!important;position:absolute!important}.fc-Bx{margin:-10px!important;padding:10px!important}.fc-rT{margin-left:-10px!important;margin-right:-10px!important;padding-left:10px!important;padding-right:10px!important}.fc-1e{margin-top:-10px!important;margin-bottom:-10px!important;padding-top:10px!important;padding-bottom:10px!important}.fc-7U{position:absolute;inset:0 -5px}.fc-N6{-webkit-user-select:none;user-select:none}.fc-BW{visibility:hidden}.fc-rf{border:0!important}.fc-Nq{border-left:0!important;border-right:0!important}.fc-zp{border-top:0!important;border-bottom:0!important}.fc-1h{border-top:0!important}.fc-cZ{border-bottom:0!important}.fc-G8{border-inline-start:0!important}.fc-MA{border-inline-end:0!important}.fc-Dh{flex-direction:row!important;display:flex!important}.fc-vg{flex-direction:column!important;display:flex!important}.fc-85{flex-grow:1!important}.fc-91{flex-grow:1!important;flex-basis:0!important;min-width:0!important;min-height:0!important}.fc-Da{min-height:0!important}.fc-1v{flex-grow:1!important;flex-basis:0!important;min-width:0!important}.fc-uR{table-layout:fixed!important;border-collapse:separate!important;border-spacing:0!important;border:0!important;width:100%!important}.fc-uR>thead{-moz-column-break-inside:avoid!important;break-inside:avoid!important;page-break-inside:avoid!important}.fc-uR>tbody{background:0 0!important}.fc-uR>thead>tr>th,.fc-uR>tbody>tr>th,.fc-uR>tbody>tr>td{font-weight:inherit;text-align:inherit;vertical-align:top!important}.fc-hF{padding:0!important}.fc-Ds{padding-top:0!important;padding-bottom:0!important}.fc-TA{margin:0!important}.fc-rt{margin-top:0!important;margin-bottom:0!important}.fc-wS{margin-left:0!important;margin-right:0!important}.fc-mV{white-space:nowrap!important}.fc-zJ{white-space:pre!important}.fc-Fk{overflow-anchor:none}.fc-Ss{pointer-events:none!important}.fc-D6{overflow:hidden!important}.fc-5x{white-space:nowrap!important;overflow:hidden!important}.fc-DP{position:relative!important}.fc-P2{position:absolute!important}.fc-5a{inset-inline-start:0!important}.fc-lb{inset-inline-end:0!important}.fc-0X{position:absolute!important;inset:0!important}.fc-9s,.fc-Gk{position:absolute!important;left:0!important;right:0!important}.fc-xh,.fc-XV{position:absolute!important;top:0!important;bottom:0!important}.fc-9s{top:0!important}.fc-XV{width:0!important;left:0!important;right:0!important}@media not print{.fc-XI{position:sticky!important}.fc-7G{position:sticky!important;top:0!important}.fc-Rw{position:sticky!important;inset-inline-start:0!important}.fc-yg{z-index:var(--fc-sticky-header-footer-z)!important;position:sticky!important;top:0!important}}.fc-2i{box-sizing:content-box!important}.fc-o2{position:absolute!important;left:-10000px!important}.fc-ih{align-items:center!important}.fc-HJ{align-items:flex-start!important}.fc-El{align-items:flex-end!important}.fc-nF{z-index:var(--fc-sticky-header-footer-z)!important;position:sticky!important;bottom:0!important}.fc-Or>*{margin-top:-1px!important}.fc-Or>*>*{height:1px!important}.fc-6w{-moz-column-break-inside:avoid!important;break-inside:avoid!important;page-break-inside:avoid!important}.fc-9C{min-height:4em!important}.fc-GJ{display:flow-root!important}.fc-d0{z-index:0}.fc-Og{z-index:1}.fc-BT{z-index:2}.fc-XO{z-index:3}.fc-e8{z-index:4}.fc-sR{z-index:5}.fc-W4{z-index:1000}.fc-eV{z-index:9999}.fc-4U:focus-visible{z-index:2}.fc-classic-n5m{--fc-classic-border-style:solid;font-size:16px;line-height:1.5}.fc-classic-Z9U{appearance:button;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border:0;border-radius:0;margin:0;padding:0}.fc-classic-JiE{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}.fc-classic-3Lc{pointer-events:none}.fc-classic-1EY{position:absolute}.fc-classic-eYX{position:relative}.fc-classic-OUe{position:sticky}.fc-classic-MaV{inset-inline:0}.fc-classic-AWB{inset-block:0}.fc-classic-11a{inset-inline-start:-4px}.fc-classic-rbS{inset-inline-start:0}.fc-classic-bEw{inset-inline-end:-4px}.fc-classic-2w8{inset-inline-end:2px}.fc-classic-dnf{inset-inline-end:-3px}.fc-classic-YDC{top:-4px}.fc-classic-n9G{top:0}.fc-classic-2ik{top:2px}.fc-classic-ERR{top:50%}.fc-classic-fJL{bottom:-4px}.fc-classic-jGI{bottom:0}.fc-classic-1V6{left:50%}.fc-classic-88I{order:-1}.fc-classic-gMS{margin:4px}.fc-classic-bvX{margin:8px}.fc-classic-jD5{margin:16px}.fc-classic-J04{margin-inline:-5px}.fc-classic-cKZ{margin-inline:2px}.fc-classic-rVY{margin-inline:4px}.fc-classic-fn8{margin-inline:8px}.fc-classic-148{margin-inline:1px}.fc-classic-cJ3{margin-block:2px}.fc-classic-V9v{margin-block:4px}.fc-classic-2tF{margin-block:8px}.fc-classic-Jzj{margin-inline-start:2px}.fc-classic-Mde{margin-inline-start:8px}.fc-classic-qvL{margin-inline-start:1px}.fc-classic-kp0{margin-inline-end:-4px}.fc-classic-3e1{margin-inline-end:2px}.fc-classic-B3G{margin-inline-end:2.5%}.fc-classic-9hC{margin-inline-end:1px}.fc-classic-Dq8{margin-top:-4px}.fc-classic-a10{margin-top:-5px}.fc-classic-Ika{margin-bottom:1px}.fc-classic-nHS{margin-bottom:-1px}.fc-classic-F99{margin-left:-4px}.fc-classic-eF2{display:contents}.fc-classic-I48{display:block}.fc-classic-dl1{display:flex}.fc-classic-i3N{display:grid}.fc-classic-pps{display:none}.fc-classic-3wQ{width:8px;height:8px}.fc-classic-vnf{width:16px;height:16px}.fc-classic-XUJ{width:20px;height:20px}.fc-classic-uuA{height:8px}.fc-classic-zrJ{height:12px}.fc-classic-84e{min-height:2px}.fc-classic-mhE{min-height:12px}.fc-classic-toR{min-height:1px}.fc-classic-roZ{width:50%}.fc-classic-hza{width:8px}.fc-classic-4Tv{width:5px}.fc-classic-kMV{max-width:200px}.fc-classic-2KU{min-width:0}.fc-classic-aNc{min-width:220px}.fc-classic-yi0{flex-shrink:0}.fc-classic-1Zl{flex-shrink:1}.fc-classic-OLq{flex-shrink:100}.fc-classic-1El{flex-grow:1}.fc-classic-jmT{rotate:180deg}.fc-classic-sgX{flex-direction:column}.fc-classic-1sP{flex-direction:row}.fc-classic-dNl{flex-wrap:wrap}.fc-classic-XpK{align-items:center}.fc-classic-N2M{justify-content:space-between}.fc-classic-E9P{justify-content:center}.fc-classic-LMv{justify-content:flex-end}.fc-classic-aTF{gap:2px}.fc-classic-NWN{gap:4px}.fc-classic-wwb{gap:12px}.fc-classic-yth{gap:20px}.fc-classic-sI7{align-self:flex-start}.fc-classic-pKG{overflow:hidden}.fc-classic-Ig4{border-radius:4px}.fc-classic-AAA{border-radius:2147483647px}.fc-classic-Fvv{border-radius:4px}.fc-classic-kmj{border-start-start-radius:4px;border-end-start-radius:4px}.fc-classic-Skl{border-start-end-radius:4px;border-end-end-radius:4px}.fc-classic-C2g{border-end-end-radius:4px}.fc-classic-Z7Q{border-top-left-radius:4px;border-top-right-radius:4px}.fc-classic-2qh{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.fc-classic-wsy{border-style:var(--fc-classic-border-style);border-width:1px}.fc-classic-5JF{border-style:var(--fc-classic-border-style);border-width:4px}.fc-classic-yDA{border-style:var(--fc-classic-border-style);border-width:5px}.fc-classic-Mjo{border-style:var(--fc-classic-border-style);border-width:calc(var(--fc-classic-small-dot-width) / 2)}.fc-classic-GOm{border-style:var(--fc-classic-border-style);border-width:calc(var(--fc-classic-large-dot-width) / 2)}.fc-classic-1Wx{border-inline-style:var(--fc-classic-border-style);border-inline-width:1px}.fc-classic-ybF{border-inline-style:var(--fc-classic-border-style);border-inline-width:5px}.fc-classic-JIC{border-block-style:var(--fc-classic-border-style);border-block-width:1px}.fc-classic-XM3{border-block-style:var(--fc-classic-border-style);border-block-width:5px}.fc-classic-3J4{border-inline-start-style:var(--fc-classic-border-style);border-inline-start-width:1px}.fc-classic-hhi{border-inline-start-style:var(--fc-classic-border-style);border-inline-start-width:5px}.fc-classic-jIH{border-inline-start-style:var(--fc-classic-border-style);border-inline-start-width:6px}.fc-classic-USt{border-inline-end-style:var(--fc-classic-border-style);border-inline-end-width:1px}.fc-classic-Bda{border-inline-end-style:var(--fc-classic-border-style);border-inline-end-width:5px}.fc-classic-ku3{border-top-style:var(--fc-classic-border-style);border-top-width:1px}.fc-classic-bLA{border-top-style:var(--fc-classic-border-style);border-top-width:6px}.fc-classic-zi1{border-bottom-style:var(--fc-classic-border-style);border-bottom-width:1px}.fc-classic-TN2{--fc-classic-border-style:dotted;border-style:dotted}.fc-classic-C1x{border-color:var(--fc-classic-border)}.fc-classic-sYT{border-color:var(--fc-classic-now)}.fc-classic-0Pr{border-color:var(--fc-classic-primary)}.fc-classic-vXO{border-color:var(--fc-classic-button-border)}.fc-classic-rQI{border-color:var(--fc-classic-button-strong-border)}.fc-classic-C0k{border-color:var(--fc-classic-strong-border)}.fc-classic-lNM{border-color:var(--fc-event-color)}.fc-classic-d0j{border-color:#0000}.fc-classic-Pqk{border-inline-color:#0000}.fc-classic-rif{border-block-color:#0000}.fc-classic-0qY{border-inline-start-color:var(--fc-classic-now)}.fc-classic-LaM{border-inline-start-color:#000}.fc-classic-5JV{border-inline-end-color:#000}.fc-classic-1Aa{border-top-color:var(--fc-classic-now)}.fc-classic-Jk3{background-color:var(--fc-classic-background)}.fc-classic-iYS{background-color:var(--fc-classic-faint)}.fc-classic-hLU{background-color:var(--fc-classic-highlight)}.fc-classic-k3f{background-color:var(--fc-classic-muted)}.fc-classic-YjJ{background-color:var(--fc-event-color)}@media not print{@supports (color:color-mix(in lab, red, red)){.fc-classic-hsC{background-color:color-mix(in oklab, var(--fc-event-color) var(--fc-classic-background-event-opacity), transparent)}}@supports not (color:color-mix(in lab, red, red)){.fc-classic-hsC{isolation:isolate;position:relative}.fc-classic-hsC:before{content:"";background-color:var(--fc-event-color);opacity:var(--fc-classic-background-event-opacity);z-index:-1;position:absolute;inset:0}}}.fc-classic-JWq{background-color:var(--fc-classic-button)}.fc-classic-Adi{background-color:var(--fc-classic-button-strong)}.fc-classic-KUX{padding:2px}.fc-classic-XJa{padding:6px}.fc-classic-3N5{padding:8px}.fc-classic-7A6{padding:1px}.fc-classic-oQ2{padding-inline:2px}.fc-classic-Eaq{padding-inline:10px}.fc-classic-Apf{padding-inline:12px}.fc-classic-F1o{padding-inline:1px}.fc-classic-2rx{padding-block:2px}.fc-classic-Jhn{padding-block:4px}.fc-classic-End{padding-block:6px}.fc-classic-dl6{padding-block:8px}.fc-classic-P9h{padding-block:60px}.fc-classic-z5u{padding-block:1px}.fc-classic-a7i{padding-inline-start:2px}.fc-classic-166{padding-top:2px}.fc-classic-8ub{padding-bottom:2px}.fc-classic-cM0{padding-bottom:16px}.fc-classic-HXA{text-align:center}.fc-classic-2HE{text-align:end}.fc-classic-AVD{font-size:24px;line-height:1.33333}.fc-classic-vQz{font-size:11px;line-height:1.09091}.fc-classic-1Po{font-size:16px;line-height:1.5}.fc-classic-9yp{font-size:14px;line-height:1.42857}.fc-classic-a3B{font-size:12px;line-height:1.33333}.fc-classic-DIS{font-weight:700}.fc-classic-IPx{text-overflow:ellipsis}.fc-classic-TZ4{white-space:nowrap}.fc-classic-jm6{white-space:pre}.fc-classic-taq{color:var(--fc-classic-faint-foreground)}.fc-classic-m9h{color:var(--fc-classic-muted-foreground)}.fc-classic-GAX{color:var(--fc-classic-foreground)}.fc-classic-RnT{color:var(--fc-classic-button-foreground)}.fc-classic-i9F{color:var(--fc-event-contrast-color)}.fc-classic-L1Y{font-style:italic}.fc-classic-lMo{opacity:.5}.fc-classic-Q3Z{opacity:.65}.fc-classic-iTG{opacity:.75}.fc-classic-MGT{opacity:var(--fc-classic-background-event-foreground-opacity)}.fc-classic-1kP{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.fc-classic-tkw{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.fc-classic-qNs{box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.fc-classic-A3h{box-shadow:0 0 0 1px var(--fc-classic-ring-color,currentcolor)}.fc-classic-yKG{--fc-classic-ring-color:var(--fc-classic-background)}.fc-classic-2R2{outline-width:1px;outline-style:solid}.fc-classic-0Bj{outline-width:2px;outline-style:solid}.fc-classic-fFh{outline-offset:-2px}.fc-classic-3Xj{outline-offset:2px}.fc-classic-lYz{outline-color:var(--fc-classic-button-outline)}.fc-classic-zIi{outline-color:var(--fc-classic-primary)}.fc-classic-SDU{background:linear-gradient(var(--fc-classic-muted), var(--fc-classic-muted))var(--fc-classic-background)}.fc-classic-BaR{background:linear-gradient(var(--fc-classic-strong), var(--fc-classic-strong))var(--fc-classic-background)}.fc-classic-mAY:not(:is(:where(.fc-classic-bCs):hover *)){opacity:.65}@media not all and (hover:hover){.fc-classic-mAY{opacity:.65}}@media not print{.fc-classic-hbn{background-color:var(--fc-classic-today)}}@media (hover:hover){.fc-classic-vs6:is(:where(.fc-classic-bCs):hover *){display:block}.fc-classic-Ogp:is(:where(.fc-classic-bCs):hover *){text-decoration-line:underline}}.fc-classic-uk6:first-child{border-start-start-radius:4px;border-end-start-radius:4px}.fc-classic-Tuc:last-child{border-start-end-radius:4px;border-end-end-radius:4px}@media (hover:hover){.fc-classic-bqK:hover{border-color:var(--fc-classic-button-strong-border)}.fc-classic-9Rj:hover{background-color:var(--fc-classic-button-strong)}.fc-classic-Ubk:hover{background-color:var(--fc-classic-faint)}.fc-classic-4yP:hover{background-color:var(--fc-classic-muted)}.fc-classic-Eu0:hover{text-decoration-line:underline}}.fc-classic-OIx:focus-visible{background-color:var(--fc-classic-faint)}.fc-classic-tCP:focus-visible{background-color:var(--fc-classic-muted)}.fc-classic-uqo:focus-visible{outline-width:2px;outline-style:solid}.fc-classic-sOR:focus-visible{outline-width:3px;outline-style:solid}.fc-classic-aIH:active{border-color:var(--fc-classic-button-strong-border)}.fc-classic-5ky:active{background-color:var(--fc-classic-button-strong)}.fc-classic-28F:active{background-color:var(--fc-classic-muted)}.fc-classic-8gz:active{background-color:var(--fc-classic-strong)}@media print{.fc-classic-jsy{border-width:1px}.fc-classic-nQ5{border-color:var(--fc-classic-button-strong-border)}.fc-classic-DO7{border-color:var(--fc-event-color)}.fc-classic-4MR{border-color:#000}.fc-classic-vwH{background-color:#fff}.fc-classic-cfp{color:#000}}[dir=rtl] .fc-classic-jY6{rotate:none}[dir=rtl] .fc-classic-asP{rotate:180deg}:root{--fc-classic-button:#334155;--fc-classic-button-border:#334155;--fc-classic-button-strong:#1e293b;--fc-classic-button-strong-border:#0f172a;--fc-classic-button-outline:#47556980;--fc-classic-button-foreground:#fff;--fc-classic-primary:#3788d8;--fc-classic-primary-foreground:#fff;--fc-classic-event:var(--fc-classic-primary);--fc-classic-event-contrast:var(--fc-classic-primary-foreground);--fc-classic-background-event:#22c55e;--fc-classic-background-event-opacity:15%;--fc-classic-background-event-foreground-opacity:50%;--fc-classic-highlight:#cffafe66;--fc-classic-today:#facc1526;--fc-classic-now:#ef4444;--fc-classic-small-dot-width:8px;--fc-classic-large-dot-width:10px;--fc-classic-background:#fff;--fc-classic-faint:#0000000a;--fc-classic-muted:#00000014;--fc-classic-strong:#00000024;--fc-classic-foreground:#030712;--fc-classic-faint-foreground:#9ca3af;--fc-classic-muted-foreground:#6b7280;--fc-classic-border:#ddd;--fc-classic-strong-border:#9ca3af}@media not print{[data-color-scheme=dark]{--fc-classic-highlight:#3b82f633;--fc-classic-today:#fef08a1a;--fc-classic-background:#030712;--fc-classic-faint:#ffffff0a;--fc-classic-muted:#ffffff14;--fc-classic-strong:#ffffff24;--fc-classic-foreground:#fff;--fc-classic-faint-foreground:#4b5563;--fc-classic-muted-foreground:#9ca3af;--fc-classic-border:#1f2937;--fc-classic-strong-border:#374151}}.sasba-calendar-page,.sasba-calendar-popover{--calendar-primary:#3061af;--calendar-primary-dark:#204075;--calendar-primary-soft:#f1f5fb;--calendar-yellow:#c48a17;--calendar-red:#d42a46;--calendar-green:#118c42;--calendar-info:#34a4ca;--calendar-today:#b33778;--calendar-today-soft:#fff0f7;--calendar-text:#2b2e33;--calendar-muted:#6b7280;--calendar-line:#e4e6e9;--calendar-soft:#f8f9f9;color:var(--calendar-text);background:#fff;font-family:Roboto,sans-serif}.sasba-calendar-page{padding-top:clamp(1rem,2.5vw,2.25rem);overflow-x:clip}.sasba-calendar-page *,.sasba-calendar-page :before,.sasba-calendar-page :after{box-sizing:border-box}.sasba-calendar-page [hidden]{display:none!important}.sasba-calendar-shell{width:calc(100% - 1.5rem);max-width:120rem;margin-inline:auto}.sasba-calendar-hero{border-bottom:2px solid var(--calendar-primary);padding:0 0 1rem}.sasba-calendar-hero-heading{align-items:center;gap:.8rem;display:flex}.sasba-calendar-heading-icon{background:var(--calendar-primary);color:#fff;border-radius:.45rem;flex:none;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;display:inline-flex}.sasba-calendar-heading-icon .material-symbols-outlined{font-size:1.55rem}.sasba-calendar-hero h1{color:var(--calendar-text);margin:0;font-family:Oswald,sans-serif;font-size:clamp(1.6rem,3vw,2.25rem);font-weight:600;line-height:1.05}.sasba-calendar-hero p{color:var(--calendar-muted);margin:.3rem 0 0;font-size:clamp(.85rem,1.4vw,1rem);line-height:1.45}.sasba-calendar-workspace{margin-top:clamp(.85rem,.65rem + .35vw,1.25rem)}.sasba-calendar-toolbar{border-bottom:1px solid var(--calendar-line);grid-template-columns:auto minmax(12rem,1fr) auto;grid-template-areas:"navigation title actions";align-items:center;gap:clamp(.75rem,.5rem + .45vw,1.25rem);padding:.25rem 0 clamp(.85rem,.7rem + .25vw,1.15rem);display:grid}.sasba-calendar-navigation{grid-area:navigation;grid-template-columns:clamp(2.75rem,2.55rem + .25vw,3rem) auto clamp(2.75rem,2.55rem + .25vw,3rem);display:inline-grid}.sasba-calendar-navigation button,.sasba-calendar-period-toggle,.sasba-calendar-period-picker button,.sasba-calendar-view-switch button,.sasba-calendar-filter-toggle,.sasba-calendar-filter-options button,.sasba-calendar-filter-header button,.sasba-calendar-message-actions button,.sasba-calendar-agenda-actions button,.sasba-calendar-agenda-actions a,.sasba-calendar-detail-actions a,.sasba-calendar-detail-actions button{color:#404650;font:inherit;border:1px solid #d6d9de;justify-content:center;align-items:center;gap:.35rem;min-height:clamp(2.75rem,2.55rem + .25vw,3rem);font-size:clamp(.8rem,.72rem + .08vw,.9rem);font-weight:700;line-height:1;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.sasba-calendar-navigation button{background:#fff;border-radius:0;margin-left:-1px}.sasba-calendar-navigation button:first-child{border-radius:.45rem 0 0 .45rem;margin-left:0}.sasba-calendar-navigation button:last-child{border-radius:0 .45rem .45rem 0}.sasba-calendar-today-button{padding-inline:clamp(.8rem,.65rem + .3vw,1.15rem)}.sasba-calendar-period{grid-area:title;justify-content:center;align-items:center;gap:.5rem;min-width:0;display:flex;position:relative}.sasba-calendar-period>h2{color:#2b2e33;text-align:center;text-transform:capitalize;min-width:0;margin:0;font-family:Oswald,sans-serif;font-size:clamp(1.4rem,1.05rem + .7vw,2rem);font-weight:600}.sasba-calendar-period-toggle{background:#fff;border-radius:.45rem;flex:none;min-height:2.75rem;padding:0 .7rem}.sasba-calendar-period-toggle>span:last-child{font-size:.78rem}.sasba-calendar-period-picker{border:1px solid var(--calendar-line);z-index:20;background:#fff;border-radius:.55rem;gap:.75rem;min-width:min(22rem,100vw - 2rem);padding:.85rem;display:grid;position:absolute;top:calc(100% + .55rem);left:50%;transform:translate(-50%);box-shadow:0 12px 32px #2b2e3329}.sasba-calendar-period-jumps{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;display:grid}.sasba-calendar-period-jumps button,.sasba-calendar-period-apply{background:#fff;border-radius:.4rem;min-height:2.75rem;padding:0 .7rem}.sasba-calendar-period-fields{grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);gap:.55rem;display:grid}.sasba-calendar-period-fields label{color:var(--calendar-muted);gap:.28rem;font-size:.72rem;font-weight:700;display:grid}.sasba-calendar-period-fields select{appearance:auto;color:var(--calendar-text);font:inherit;text-transform:capitalize;background:#fff;border:1px solid #cfd3d9;border-radius:.4rem;width:100%;min-height:2.75rem;padding:0 .65rem;font-size:.9rem}.sasba-calendar-period-apply{width:100%;background:var(--calendar-primary)!important;border-color:var(--calendar-primary)!important;color:#fff!important}.sasba-calendar-toolbar-actions{grid-area:actions;justify-content:flex-end;gap:clamp(.5rem,.4rem + .2vw,.75rem);min-width:0;display:flex}.sasba-calendar-view-switch{grid-template-columns:repeat(2,minmax(0,1fr));display:inline-grid}.sasba-calendar-view-switch button{background:#fff;border-radius:0;margin-left:-1px;padding-inline:.75rem}.sasba-calendar-view-switch button:first-child{border-radius:.45rem 0 0 .45rem;margin-left:0}.sasba-calendar-view-switch button:last-child{border-radius:0 .45rem .45rem 0}.sasba-calendar-view-switch button.is-active{background:var(--calendar-primary-soft);border-color:var(--calendar-primary);box-shadow:inset 0 -3px 0 var(--calendar-yellow);color:var(--calendar-primary-dark);z-index:1;position:relative}.sasba-calendar-filter-toggle{background:#fff;border-radius:.45rem;padding:0 clamp(.75rem,.6rem + .25vw,1rem)}.sasba-calendar-filter-toggle>[data-calendar-active-filter-count]{background:var(--calendar-yellow);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:1.2rem;height:1.2rem;font-size:.68rem;display:inline-flex}.sasba-calendar-navigation button:hover,.sasba-calendar-period-toggle:hover,.sasba-calendar-period-picker button:not(.sasba-calendar-period-apply):hover,.sasba-calendar-view-switch button:not(.is-active):hover,.sasba-calendar-filter-toggle:hover,.sasba-calendar-filter-options button:hover,.sasba-calendar-filter-header button:hover{background:var(--calendar-primary-soft);border-color:var(--calendar-primary);color:var(--calendar-primary-dark)}.sasba-calendar-page button:focus-visible,.sasba-calendar-page a:focus-visible,.sasba-calendar-page summary:focus-visible,.sasba-calendar-page select:focus-visible,:is(.sasba-calendar-page,.sasba-calendar-popover) .fc-event:focus-visible{outline-offset:2px;outline:3px solid #c48a1773}:is(.sasba-calendar-page,.sasba-calendar-popover) .material-symbols-outlined{font-size:1.15rem}.sasba-calendar-summary{border-bottom:1px solid var(--calendar-line);padding:.75rem 0}.sasba-calendar-section-heading{color:#565d6b;align-items:center;gap:.4rem;display:flex}.sasba-calendar-section-heading h2{letter-spacing:.03em;text-transform:uppercase;margin:0;font-size:.8rem;font-weight:800}.sasba-calendar-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-top:.55rem;display:grid}.sasba-calendar-summary-card{--event-accent:var(--calendar-primary);border:1px solid var(--calendar-line);border-left:3px solid var(--event-accent);color:var(--calendar-text);cursor:pointer;font:inherit;text-align:left;background:#fff;border-radius:.4rem;align-items:center;gap:.55rem;min-width:0;padding:.55rem .65rem;display:flex}.sasba-calendar-summary-card>.material-symbols-outlined{color:var(--event-accent);flex:none}.sasba-calendar-summary-card>span:last-child{min-width:0;display:grid}.sasba-calendar-summary-card small,.sasba-calendar-summary-card time{color:var(--calendar-muted);font-size:.68rem}.sasba-calendar-summary-card strong{text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.sasba-calendar-filter-panel{border-bottom:1px solid var(--calendar-line);padding:.75rem 0}.sasba-calendar-filter-header{justify-content:space-between;align-items:center;display:flex}.sasba-calendar-filter-header strong{font-size:.85rem}.sasba-calendar-filter-header button{background:#fff;border:0;min-height:2.25rem;padding:0 .4rem}.sasba-calendar-filter-options{flex-wrap:wrap;gap:.4rem;margin-top:.55rem;display:flex}.sasba-calendar-filter-options button{--event-accent:var(--calendar-primary);--event-soft:var(--calendar-primary-soft);--event-text:var(--calendar-primary-dark);background:#fff;border-radius:999px;min-height:2.5rem;padding:.35rem .7rem}.sasba-calendar-filter-options button .material-symbols-outlined{color:var(--event-accent)}.sasba-calendar-filter-options button[class*=calendar-tone--]{background:var(--event-soft);border-color:var(--event-accent);color:var(--event-text)}.sasba-calendar-filter-options button[class*=calendar-tone--]:hover{background:var(--event-soft);border-color:var(--event-accent);color:var(--event-text);box-shadow:inset 0 -2px 0 var(--event-accent)}.sasba-calendar-filter-options button small{background:#f1f2f4;border-radius:999px;justify-content:center;align-items:center;min-width:1.25rem;height:1.25rem;padding:0 .3rem;font-size:.68rem;display:inline-flex}.sasba-calendar-filter-options button.is-active,.sasba-calendar-filter-options button[class*=calendar-tone--].is-active{background:var(--calendar-primary);border-color:var(--calendar-primary);color:#fff}.sasba-calendar-filter-options button[class*=calendar-tone--].is-active{background:var(--event-accent);border-color:var(--event-accent)}.sasba-calendar-filter-options button.is-active .material-symbols-outlined,.sasba-calendar-filter-options button[class*=calendar-tone--].is-active .material-symbols-outlined{color:#fff}.sasba-calendar-personal-filter{color:#404650;cursor:pointer;align-items:center;gap:.4rem;min-height:2.75rem;margin-top:.65rem;font-size:.8rem;font-weight:700;display:inline-flex}.sasba-calendar-personal-filter input{accent-color:var(--calendar-primary);width:1.1rem;height:1.1rem}.sasba-calendar-content{min-width:0;padding-top:.75rem;position:relative}.sasba-calendar-loading{padding:.25rem 0}.sasba-calendar-skeleton-heading{gap:.5rem;margin-bottom:.65rem;display:flex}.sasba-calendar-skeleton-heading span,.sasba-calendar-skeleton-grid span{background:#f1f2f4;border-radius:.35rem;animation:1.25s ease-in-out infinite sasba-calendar-pulse}.sasba-calendar-skeleton-heading span:first-child{width:10rem;height:1rem}.sasba-calendar-skeleton-heading span:last-child{width:5rem;height:1rem}.sasba-calendar-skeleton-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;display:grid}.sasba-calendar-skeleton-grid span{height:4.5rem}@keyframes sasba-calendar-pulse{50%{opacity:.48}}.sasba-calendar-message{background:var(--calendar-soft);border-left:3px solid var(--calendar-primary);align-items:center;gap:.65rem;margin:.25rem 0 .75rem;padding:.65rem .75rem;display:flex}.sasba-calendar-message-icon{color:var(--calendar-primary);font-size:1.45rem!important}.sasba-calendar-message-copy{flex:1;gap:.1rem;min-width:0;display:grid}.sasba-calendar-message-copy strong{font-size:.85rem}.sasba-calendar-message-copy span{color:var(--calendar-muted);font-size:.78rem}.sasba-calendar-message-actions{gap:.4rem;display:flex}.sasba-calendar-message-actions button{background:#fff;border-radius:.35rem;min-height:2.5rem;padding:0 .65rem}.sasba-calendar-message.is-error{border-left-color:var(--calendar-red)}.sasba-calendar-message.is-error .sasba-calendar-message-icon{color:var(--calendar-red)}:is(.sasba-calendar-page .fc,.sasba-calendar-popover){--fc-classic-border:var(--calendar-line);--fc-classic-background:#fff;--fc-classic-muted:var(--calendar-soft);--fc-classic-today:var(--calendar-today-soft);color:var(--calendar-text);font-family:Roboto,sans-serif}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-scrollgrid{border-color:var(--calendar-line)}.sasba-calendar-page .sasba-calendar-day-row{flex-basis:calc(clamp(7.5rem,11.5vh,9.25rem) + 1px)!important}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-daygrid-day,:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-col-header-cell{border-color:var(--calendar-line)}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-col-header-cell{background:var(--calendar-soft)}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-col-header-cell-cushion{color:#565d6b;letter-spacing:.03em;text-transform:uppercase;padding:clamp(.65rem,.55rem + .2vw,.9rem) .3rem;font-size:clamp(.75rem,.66rem + .1vw,.875rem);font-weight:800;text-decoration:none}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-day-sat,:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-day-sun{background:#fcfcfd}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-day-other{background:#fafafa}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-day-other .fc-daygrid-day-number{color:#9ca3af}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-day-today{box-shadow:inset 0 3px 0 var(--calendar-today)}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-daygrid-day{padding:clamp(.18rem,.12rem + .08vw,.3rem)}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-daygrid-day-number{color:#404650;justify-content:center;align-items:center;min-width:1.65rem;height:1.65rem;margin:.1rem;padding:0;font-size:clamp(.78rem,.7rem + .08vw,.875rem);font-weight:700;text-decoration:none;display:inline-flex}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-day-today .fc-daygrid-day-number{background:var(--calendar-today);color:#fff;border-radius:999px}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-daygrid-event{white-space:normal;margin-top:clamp(.2rem,.16rem + .06vw,.3rem);margin-inline:.08rem}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-event{--event-accent:var(--calendar-primary);--event-soft:var(--calendar-primary-soft);--event-text:#17263d;--event-meta:#3f536f;background:var(--event-soft);border:0;border-left:4px solid var(--event-accent);color:var(--event-text);cursor:pointer;border-radius:.35rem;padding:clamp(.3rem,.22rem + .08vw,.42rem) clamp(.32rem,.24rem + .1vw,.48rem)}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-event:not(.is-static):hover,:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-event:not(.is-static):focus{box-shadow:0 2px 8px #2b2e331f}.sasba-calendar-event-content{grid-template-columns:auto minmax(0,1fr) auto;align-items:flex-start;gap:clamp(.28rem,.2rem + .08vw,.4rem);min-width:0;display:grid}.sasba-calendar-event-icon{color:var(--event-accent);margin-top:.08rem;font-size:clamp(1rem,.85rem + .12vw,1.125rem)!important}.sasba-calendar-event-copy{gap:.12rem;min-width:0;display:grid}.sasba-calendar-event-mainline{color:var(--event-text);-webkit-line-clamp:2;white-space:normal;-webkit-box-orient:vertical;font-size:clamp(.75rem,.58rem + .18vw,.875rem);font-weight:700;line-height:1.3;display:-webkit-box;overflow:hidden}.sasba-calendar-event-mainline time{font-variant-numeric:tabular-nums;white-space:nowrap}.sasba-calendar-event-meta{color:var(--event-meta);text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.6875rem,.58rem + .1vw,.75rem);font-weight:700;line-height:1.3;overflow:hidden}.sasba-calendar-event-title{color:inherit}.sasba-calendar-event-markers{align-items:center;gap:.08rem;display:flex}.sasba-calendar-event-markers .sasba-calendar-relation,.sasba-calendar-event-cancelled,.sasba-calendar-event-state{color:var(--event-accent);display:inline-flex}.sasba-calendar-event-markers .material-symbols-outlined,.sasba-calendar-event-cancelled,.sasba-calendar-event-state{font-size:.78rem!important}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-event.is-personal{box-shadow:inset 0 -2px 0 var(--calendar-yellow)}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-event.is-static{cursor:default}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-event.is-finished{border-left-color:var(--event-accent);background-color:#f1f2f4;background-image:repeating-linear-gradient(135deg,#565e6813 0 4px,#0000 4px 10px);box-shadow:inset 0 0 0 1px #d5d8dc}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-event.is-finished .sasba-calendar-event-mainline{color:#343a42}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-event.is-finished .sasba-calendar-event-meta,:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-event.is-finished .sasba-calendar-event-state{color:#565e68}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-event.is-cancelled{background:#f8edef;border-left-color:#9f3341;box-shadow:inset 0 0 0 1px #9f334159}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-event.is-cancelled .sasba-calendar-event-state{color:#861a2c}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-event.is-cancelled .sasba-calendar-event-title{text-decoration:line-through}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-more-link{color:var(--calendar-primary-dark);font-size:.68rem;font-weight:800}.sasba-calendar-popover{border:1px solid var(--calendar-line);border-radius:.45rem;box-shadow:0 8px 24px #2b2e3329}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-popover-header{background:var(--calendar-soft);padding:.55rem;font-size:.8rem}.sasba-calendar-mobile-day-summary,.sasba-calendar-mobile-day{display:none}.sasba-calendar-agenda{gap:1.1rem;display:grid}.sasba-calendar-agenda-day{grid-template-columns:7rem minmax(0,1fr);gap:.75rem;display:grid}.sasba-calendar-agenda-day>header{align-self:start;align-items:center;gap:.55rem;display:flex;position:sticky;top:.5rem}.sasba-calendar-agenda-day>header>span:first-child{background:var(--calendar-primary);color:#fff;border-radius:.35rem;justify-content:center;align-items:center;width:2.45rem;height:2.45rem;font-family:Oswald,sans-serif;font-size:1.1rem;display:inline-flex}.sasba-calendar-agenda-day.is-today>header>span:first-child{background:var(--calendar-today);color:#fff}.sasba-calendar-agenda-day.is-past>header>span:first-child{background:#68717d}.sasba-calendar-agenda-day>header>span:last-child{min-width:0;display:grid}.sasba-calendar-agenda-day header strong{text-transform:capitalize;font-size:.75rem}.sasba-calendar-agenda-day header small{color:var(--calendar-muted);text-transform:capitalize;font-size:.66rem}.sasba-calendar-agenda-cards{gap:.5rem;min-width:0;display:grid}.sasba-calendar-agenda-card{--event-accent:var(--calendar-primary);--event-soft:var(--calendar-primary-soft);--event-text:#17263d;--event-meta:#3f536f;border:1px solid var(--calendar-line);border-left:4px solid var(--event-accent);background:#fff;border-radius:.45rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;min-width:0;padding:clamp(.7rem,.58rem + .18vw,.95rem) clamp(.75rem,.62rem + .2vw,1rem);display:grid}.sasba-calendar-agenda-card.is-static{grid-template-columns:auto minmax(0,1fr)}.sasba-calendar-agenda-card.is-finished{border-color:#d5d8dc;border-left-color:var(--event-accent);background-color:#f1f2f4;background-image:repeating-linear-gradient(135deg,#565e680f 0 5px,#0000 5px 12px)}.sasba-calendar-agenda-card.is-cancelled{background:#f8edef;border-left-color:#9f3341;box-shadow:inset 0 0 0 1px #9f33412e}.sasba-calendar-agenda-card.is-cancelled h3{text-decoration:line-through}.sasba-calendar-agenda-icon{background:var(--event-soft);color:var(--event-accent);border-radius:.35rem;justify-content:center;align-items:center;width:2.45rem;height:2.45rem;display:inline-flex}.sasba-calendar-agenda-body{min-width:0}.sasba-calendar-agenda-meta{color:var(--event-meta);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:clamp(.72rem,.66rem + .08vw,.8rem);font-weight:700;display:flex}.sasba-calendar-agenda-meta span:first-child{color:var(--event-accent);text-transform:uppercase}.sasba-calendar-agenda-body h3{color:var(--event-text);margin:.18rem 0 0;font-size:clamp(.95rem,.86rem + .12vw,1.08rem);font-weight:700;line-height:1.25}.sasba-calendar-agenda-body>p{color:var(--calendar-muted);align-items:center;gap:.25rem;margin:.28rem 0 0;font-size:.75rem;display:flex}.sasba-calendar-agenda-badges,.sasba-calendar-detail-badges{flex-wrap:wrap;gap:.3rem;margin-top:.35rem;display:flex}.sasba-calendar-relation,.sasba-calendar-status{color:var(--calendar-primary-dark);background:#f1f5fb;border-radius:999px;align-items:center;gap:.2rem;min-height:1.5rem;padding:.15rem .45rem;font-size:.66rem;font-weight:800;display:inline-flex}.sasba-calendar-status .material-symbols-outlined{font-size:.85rem}.sasba-calendar-relation--material_overdue,.sasba-calendar-status--cancelled{color:#861a2c;background:#fdeaea}.sasba-calendar-status--finished{color:#353b43;background:#e7e9ec}.sasba-calendar-relation--material_due_soon,.sasba-calendar-relation--payment_pending{color:#73510d;background:#fff7e5}.sasba-calendar-agenda-actions{align-items:center;gap:.35rem;display:flex}.sasba-calendar-agenda-actions button,.sasba-calendar-agenda-actions a{background:#fff;border-radius:.35rem;min-height:2.75rem;padding:0 .65rem}.sasba-calendar-agenda-actions a{width:2.75rem;padding:0}.sasba-calendar-legend{border-top:1px solid var(--calendar-line);margin-top:.85rem;padding:.7rem 0 0}.sasba-calendar-legend>summary{cursor:pointer;list-style:none}.sasba-calendar-legend>summary::-webkit-details-marker{display:none}.sasba-calendar-legend-chevron{margin-left:auto;transition:transform .15s}.sasba-calendar-legend:not([open]) .sasba-calendar-legend-chevron{transform:rotate(-90deg)}.sasba-calendar-legend>div:last-child{flex-wrap:wrap;gap:clamp(.4rem,.32rem + .1vw,.55rem);margin-top:.65rem;display:flex}.sasba-calendar-legend-item{--event-accent:var(--calendar-primary);--event-soft:var(--calendar-primary-soft);--event-text:var(--calendar-primary-dark);background:var(--event-soft);border:1px solid var(--event-accent);color:var(--event-text);border-radius:999px;align-items:center;gap:.35rem;min-height:2.125rem;padding:.28rem .65rem;font-size:clamp(.75rem,.69rem + .06vw,.8125rem);font-weight:700;display:inline-flex}.sasba-calendar-legend-item .material-symbols-outlined{color:var(--event-accent);font-size:1rem}.sasba-calendar-legend-state{color:#292e34;background-color:#f1f2f4;border-color:#68717d}.sasba-calendar-legend-state.is-finished{background-image:repeating-linear-gradient(135deg,#565e6813 0 4px,#0000 4px 10px)}.sasba-calendar-legend-state.is-cancelled{color:#49252a;background:#f8edef;border-color:#9f3341}.sasba-calendar-legend-state.is-cancelled .material-symbols-outlined{color:#9f3341}.sasba-calendar-legend-state.is-finished .material-symbols-outlined{color:#68717d}:is(.sasba-calendar-page,.sasba-calendar-popover) .calendar-tone--activity.calendar-tone--activity{--event-accent:#245aa6;--event-soft:#edf3fc;--event-text:#17263d;--event-meta:#3f536f}:is(.sasba-calendar-page,.sasba-calendar-popover) .calendar-tone--registrationOpen.calendar-tone--registrationOpen{--event-accent:#18763b;--event-soft:#edf8f1;--event-text:#183522;--event-meta:#355d43}:is(.sasba-calendar-page,.sasba-calendar-popover) .calendar-tone--registrationClose.calendar-tone--registrationClose{--event-accent:#9a5808;--event-soft:#fff4df;--event-text:#3d2a12;--event-meta:#6b4d25}:is(.sasba-calendar-page,.sasba-calendar-popover) .calendar-tone--course.calendar-tone--course{--event-accent:#6b3a9d;--event-soft:#f5effb;--event-text:#2f2140;--event-meta:#5b476e}:is(.sasba-calendar-page,.sasba-calendar-popover) .calendar-tone--theoretical.calendar-tone--theoretical{--event-accent:#4051a3;--event-soft:#eef0fb;--event-text:#202b55;--event-meta:#4a567c}:is(.sasba-calendar-page,.sasba-calendar-popover) .calendar-tone--practical.calendar-tone--practical{--event-accent:#14756f;--event-soft:#eaf7f5;--event-text:#173d3a;--event-meta:#3d6662}:is(.sasba-calendar-page,.sasba-calendar-popover) .calendar-tone--confinedWater.calendar-tone--confinedWater{--event-accent:#16769a;--event-soft:#eaf7fb;--event-text:#173846;--event-meta:#3b6475}:is(.sasba-calendar-page,.sasba-calendar-popover) .calendar-tone--openWater.calendar-tone--openWater{--event-accent:#174a7a;--event-soft:#edf3f8;--event-text:#172f46;--event-meta:#405d75}:is(.sasba-calendar-page,.sasba-calendar-popover) .calendar-tone--evaluation.calendar-tone--evaluation{--event-accent:#682d83;--event-soft:#f6eef8;--event-text:#392044;--event-meta:#624d6d}:is(.sasba-calendar-page,.sasba-calendar-popover) .calendar-tone--general.calendar-tone--general{--event-accent:#5f6f82;--event-soft:#f1f4f7;--event-text:#252f3a;--event-meta:#53606e}:is(.sasba-calendar-page,.sasba-calendar-popover) .calendar-tone--social.calendar-tone--social{--event-accent:#9b356c;--event-soft:#faeef5;--event-text:#462039;--event-meta:#714c62}:is(.sasba-calendar-page,.sasba-calendar-popover) .calendar-tone--conference.calendar-tone--conference{--event-accent:#71409b;--event-soft:#f5eff9;--event-text:#352241;--event-meta:#614d6c}:is(.sasba-calendar-page,.sasba-calendar-popover) .calendar-tone--collaboration.calendar-tone--collaboration{--event-accent:#236d65;--event-soft:#edf7f5;--event-text:#193b37;--event-meta:#45655f}:is(.sasba-calendar-page,.sasba-calendar-popover) .calendar-tone--material.calendar-tone--material{--event-accent:#a34f10;--event-soft:#fff1e7;--event-text:#412718;--event-meta:#704b32}:is(.sasba-calendar-page,.sasba-calendar-popover) .calendar-tone--dueSoon.calendar-tone--dueSoon{--event-accent:#986000;--event-soft:#fff5dc;--event-text:#3e2d0c;--event-meta:#6a5224}:is(.sasba-calendar-page,.sasba-calendar-popover) .calendar-tone--overdue.calendar-tone--overdue{--event-accent:#b42335;--event-soft:#fdecee;--event-text:#4a1c23;--event-meta:#753f47}:is(.sasba-calendar-page,.sasba-calendar-popover) .calendar-tone--cancelled.calendar-tone--cancelled{--event-accent:#9f3341;--event-soft:#f8edef;--event-text:#49252a;--event-meta:#714a50}:is(.sasba-calendar-page,.sasba-calendar-popover) .calendar-tone--finished.calendar-tone--finished{--event-accent:#68717d;--event-soft:#f1f2f4;--event-text:#292e34;--event-meta:#565e68}.sasba-calendar-dialog{background:0 0;border:0;width:clamp(640px,38vw,760px);max-width:calc(100vw - 2rem);height:100dvh;max-height:none;margin:0 0 0 auto;padding:0}.sasba-calendar-dialog::backdrop{background:#101f3b6b}.sasba-calendar-dialog-card{overscroll-behavior:contain;background:#fff;height:100%;padding:clamp(1.1rem,.8rem + .6vw,1.5rem);position:relative;overflow-y:auto;box-shadow:-8px 0 28px #2b2e332e}.sasba-calendar-dialog-close{border:1px solid var(--calendar-line);cursor:pointer;z-index:2;background:#fff;border-radius:999px;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;display:inline-flex;position:absolute;top:.75rem;right:.75rem}.sasba-calendar-event-detail{--event-accent:var(--calendar-primary);--event-soft:var(--calendar-primary-soft);--event-text:#17263d;--event-meta:#3f536f;padding-top:2.8rem}.sasba-calendar-event-detail>img{aspect-ratio:16/7;-o-object-fit:cover;object-fit:cover;border-radius:.5rem;width:100%;max-height:20rem;margin-bottom:1rem}.sasba-calendar-detail-heading{grid-template-columns:minmax(0,1fr);gap:.7rem;display:grid}.sasba-calendar-detail-kicker{align-items:center;gap:.65rem;min-width:0;display:flex}.sasba-calendar-detail-icon{background:var(--event-soft);color:var(--event-accent);border-radius:.4rem;justify-content:center;align-items:center;width:3rem;height:3rem;display:inline-flex;font-size:1.55rem!important}.sasba-calendar-detail-heading p{color:var(--event-accent);text-transform:uppercase;margin:0;font-size:clamp(.75rem,.69rem + .08vw,.875rem);font-weight:800}.sasba-calendar-detail-heading h2{color:var(--event-text);overflow-wrap:anywhere;text-overflow:clip;white-space:normal;max-height:none;margin:0;font-family:Roboto,sans-serif;font-size:clamp(1.45rem,1.1rem + .8vw,2rem);font-weight:700;line-height:1.28;overflow:visible}html.sasba-calendar-scroll-locked,body.sasba-calendar-scroll-locked{overscroll-behavior:none}.sasba-calendar-event-detail dl{border-bottom:1px solid var(--calendar-line);border-top:1px solid var(--calendar-line);margin:1.1rem 0;padding:.45rem 0}.sasba-calendar-event-detail dl>div{grid-template-columns:10rem minmax(0,1fr);gap:.75rem;padding:.55rem 0;display:grid}.sasba-calendar-event-detail dt{color:var(--calendar-muted);align-items:center;gap:.3rem;font-size:clamp(.8rem,.74rem + .08vw,.9rem);font-weight:700;display:flex}.sasba-calendar-event-detail dd{margin:0;font-size:clamp(.85rem,.78rem + .08vw,.95rem);line-height:1.5}.sasba-calendar-detail-description{color:#404650;overflow-wrap:anywhere;font-size:clamp(.95rem,.88rem + .08vw,1.05rem);line-height:1.6}.sasba-calendar-detail-description>:first-child{margin-top:0}.sasba-calendar-detail-description>:last-child{margin-bottom:0}.sasba-calendar-detail-description p{margin:.9rem 0}.sasba-calendar-detail-description h1,.sasba-calendar-detail-description h2,.sasba-calendar-detail-description h3,.sasba-calendar-detail-description h4{color:var(--event-text);margin:1.1rem 0 .45rem;font-family:Roboto,sans-serif;font-weight:700;line-height:1.35}.sasba-calendar-detail-description h1,.sasba-calendar-detail-description h2{font-size:clamp(1.15rem,1.04rem + .12vw,1.3rem)}.sasba-calendar-detail-description h3,.sasba-calendar-detail-description h4{font-size:clamp(1.05rem,.98rem + .08vw,1.15rem)}.sasba-calendar-detail-description ul,.sasba-calendar-detail-description ol{gap:.42rem;margin:.75rem 0;padding-left:1.35rem;display:grid}.sasba-calendar-detail-description li>p{margin:0}.sasba-calendar-detail-description a{color:#204f90;text-underline-offset:.14em;font-weight:700;text-decoration:underline;text-decoration-thickness:.08em}.sasba-calendar-detail-actions{gap:.45rem;margin-top:1rem;display:grid}.sasba-calendar-detail-actions a,.sasba-calendar-detail-actions button{border-radius:.35rem;min-height:3rem;padding:0 .8rem}html:has(.sasba-calendar-page){scrollbar-gutter:stable}@media (width>=768px) and (width<=1199px){.sasba-calendar-dialog{width:82vw;max-width:90vw}}.sasba-calendar-detail-actions a.is-primary,.sasba-calendar-detail-actions button.is-primary{background:var(--calendar-primary);border-color:var(--calendar-primary);color:#fff}.sasba-calendar-export-dialog{background:0 0;border:0;width:min(38rem,100vw - 2rem);max-width:calc(100vw - 2rem);max-height:calc(100dvh - 2rem);margin:auto;padding:0}.sasba-calendar-export-dialog::backdrop{background:#101f3b7a}.sasba-calendar-export-card{overscroll-behavior:contain;background:#fff;border-radius:.7rem;max-height:calc(100dvh - 2rem);padding:clamp(1rem,.8rem + .5vw,1.4rem);overflow-y:auto;box-shadow:0 18px 50px #2b2e3338}.sasba-calendar-export-card>header{grid-template-columns:auto minmax(0,1fr) auto;align-items:flex-start;gap:.75rem;display:grid}.sasba-calendar-export-heading-icon{background:var(--calendar-primary-soft);color:var(--calendar-primary);border-radius:.45rem;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;display:inline-flex;font-size:1.45rem!important}.sasba-calendar-export-card h2{color:var(--calendar-text);margin:0;font-family:Oswald,sans-serif;font-size:clamp(1.3rem,1.05rem + .5vw,1.65rem);font-weight:600;line-height:1.25}.sasba-calendar-export-card header p{color:var(--calendar-muted);margin:.25rem 0 0;font-size:.86rem;line-height:1.45}.sasba-calendar-export-close{border:1px solid var(--calendar-line);color:var(--calendar-text);background:#fff;border-radius:999px;flex:none;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;display:inline-flex}.sasba-calendar-export-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-top:1rem;display:grid}.sasba-calendar-export-option{border:1px solid var(--calendar-line);color:var(--calendar-text);font:inherit;text-align:left;background:#fff;border-radius:.5rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.65rem;width:100%;min-height:4.25rem;padding:.65rem .75rem;text-decoration:none;transition:background-color .15s,border-color .15s;display:grid}.sasba-calendar-export-option:hover{background:var(--calendar-primary-soft);border-color:var(--calendar-primary)}.sasba-calendar-export-option[aria-busy=true]{cursor:progress}.sasba-calendar-export-option-icon{background:var(--calendar-primary-soft);color:var(--calendar-primary);border-radius:.4rem;justify-content:center;align-items:center;width:2.4rem;height:2.4rem;display:inline-flex;font-size:1.25rem!important}.sasba-calendar-export-option>span:nth-child(2){gap:.18rem;min-width:0;display:grid}.sasba-calendar-export-option strong{color:var(--calendar-text);font-size:.9rem;line-height:1.25}.sasba-calendar-export-option small{color:var(--calendar-muted);font-size:.7rem;line-height:1.3}.sasba-calendar-export-option>.material-symbols-outlined:last-child{color:var(--calendar-muted);font-size:1rem}.sasba-calendar-export-error{border-left:3px solid var(--calendar-red);color:#6f1725;background:#fdecee;margin:.75rem 0 0;padding:.65rem .75rem;font-size:.82rem;font-weight:700;line-height:1.4}@media (width<=1023px){.sasba-calendar-toolbar{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"title title""navigation actions"}.sasba-calendar-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sasba-calendar-page .sasba-calendar-day-row{flex-basis:calc(7rem + 1px)!important}}@media (width<=767px){.sasba-calendar-page{padding-top:.75rem}.sasba-calendar-shell{width:calc(100% - 1rem);margin-inline:auto}.sasba-calendar-hero{padding-bottom:.7rem}.sasba-calendar-heading-icon{width:2.4rem;height:2.4rem}.sasba-calendar-hero h1{font-size:1.55rem}.sasba-calendar-hero p{margin-top:.2rem;font-size:.8rem}.sasba-calendar-toolbar{grid-template-columns:minmax(0,1fr);grid-template-areas:"title""navigation""actions";align-items:stretch;gap:.45rem;padding-bottom:.65rem}.sasba-calendar-period>h2{min-height:1.8rem;font-size:1.25rem;line-height:1.2}.sasba-calendar-period{justify-content:space-between}.sasba-calendar-period-toggle{min-height:2.75rem}.sasba-calendar-navigation{grid-template-columns:2.75rem minmax(0,1fr) 2.75rem;width:100%}.sasba-calendar-toolbar-actions{grid-template-columns:minmax(0,2fr) minmax(0,1fr);width:100%;display:grid}.sasba-calendar-view-switch{width:100%}.sasba-calendar-navigation button,.sasba-calendar-view-switch button,.sasba-calendar-filter-toggle{width:100%;min-width:0;min-height:2.75rem;padding-inline:.35rem}.sasba-calendar-summary{padding:.65rem 0}.sasba-calendar-summary-grid{grid-template-columns:minmax(0,1fr)}.sasba-calendar-summary-card strong{white-space:normal}.sasba-calendar-filter-options{grid-template-columns:minmax(0,1fr);display:grid}.sasba-calendar-filter-options button{border-radius:.35rem;justify-content:flex-start;width:100%}.sasba-calendar-filter-options button small{margin-left:auto}.sasba-calendar-skeleton-grid{grid-template-columns:minmax(0,1fr)}.sasba-calendar-skeleton-grid span{height:3.5rem}.sasba-calendar-message{flex-wrap:wrap;align-items:flex-start}.sasba-calendar-message-actions{flex-basis:100%;padding-left:2rem}.sasba-calendar-message-actions button{flex:1}.sasba-calendar-agenda{gap:.9rem}.sasba-calendar-agenda-day{grid-template-columns:minmax(0,1fr);gap:.45rem}.sasba-calendar-agenda-day>header{border-bottom:1px solid var(--calendar-line);padding-bottom:.4rem;position:static}.sasba-calendar-agenda-card{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.5rem;padding:.6rem}.sasba-calendar-agenda-actions{grid-column:1/-1;justify-content:flex-end}.sasba-calendar-agenda-actions button{flex:1}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-col-header-cell-cushion{padding:.45rem .05rem;font-size:.58rem}.sasba-calendar-page .sasba-calendar-day-row{flex-basis:calc(5.25rem + 1px)!important}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-daygrid-day{padding:.1rem}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-daygrid-day-number{min-width:1.45rem;height:1.45rem;font-size:.68rem}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-daygrid-day-events,:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-more-link,:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-daygrid-day-bottom{display:none}.sasba-calendar-mobile-day-summary{color:#434a54;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:.35rem;flex-direction:column;justify-content:center;align-items:center;gap:.32rem;width:calc(100% - .1rem);min-height:2.9rem;margin:.05rem auto 0;padding:.25rem .08rem;display:flex}.sasba-calendar-mobile-day-summary:hover,.sasba-calendar-mobile-day-summary:focus-visible{background:var(--calendar-primary-soft)}.sasba-calendar-mobile-day-dots{flex-wrap:wrap;justify-content:center;gap:.18rem;max-width:2.25rem;display:flex}.sasba-calendar-mobile-day-dot{background:var(--event-accent);border-radius:999px;width:.38rem;height:.38rem;display:block}.sasba-calendar-mobile-day-count{text-align:center;font-size:clamp(.62rem,2.75vw,.72rem);font-weight:800;line-height:1.1}:is(.sasba-calendar-page .fc,.sasba-calendar-popover) .fc-daygrid-day.is-mobile-day-selected{box-shadow:inset 0 0 0 2px var(--calendar-primary);background:#f4f7fc}.sasba-calendar-mobile-day{border-bottom:1px solid var(--calendar-line);border-top:2px solid var(--calendar-primary);margin-top:.85rem;padding:.75rem 0 .9rem;display:block}.sasba-calendar-mobile-day>header{justify-content:space-between;align-items:flex-start;gap:.65rem;margin-bottom:.65rem;display:flex}.sasba-calendar-mobile-day>header>div{align-items:flex-start;gap:.45rem;min-width:0;display:flex}.sasba-calendar-mobile-day>header .material-symbols-outlined{color:var(--calendar-primary);margin-top:.1rem}.sasba-calendar-mobile-day h3{color:var(--calendar-text);text-transform:capitalize;margin:0;font-size:1rem;font-weight:800;line-height:1.35}.sasba-calendar-mobile-day>header button{border:1px solid var(--calendar-line);color:var(--calendar-text);background:#fff;border-radius:999px;flex:none;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;display:inline-flex}.sasba-calendar-mobile-day-events{gap:.55rem;display:grid}.sasba-calendar-dialog{width:100%;max-width:none;height:min(82dvh,48rem);margin:auto 0 0}.sasba-calendar-dialog-card{padding-bottom:calc(1rem + env(safe-area-inset-bottom));border-radius:.8rem .8rem 0 0;box-shadow:0 -8px 28px #2b2e332e}.sasba-calendar-export-dialog{width:100%;max-width:none;max-height:min(88dvh,48rem);margin:auto 0 0}.sasba-calendar-export-card{max-height:min(88dvh,48rem);padding-bottom:calc(1rem + env(safe-area-inset-bottom));border-radius:.8rem .8rem 0 0}.sasba-calendar-export-options{grid-template-columns:minmax(0,1fr)}.sasba-calendar-export-option{min-height:4rem}}@media (width<=430px){.sasba-calendar-period-toggle>span:last-child{display:none}.sasba-calendar-period-picker{width:100%;min-width:100%;left:0;transform:none}.sasba-calendar-period-jumps button{padding-inline:.35rem;font-size:.72rem}.sasba-calendar-view-switch button span:last-child,.sasba-calendar-filter-toggle span:nth-child(2){font-size:.75rem}.sasba-calendar-event-detail dl>div{grid-template-columns:minmax(0,1fr);gap:.15rem}}@media (prefers-reduced-motion:reduce){.sasba-calendar-page *,.sasba-calendar-page :before,.sasba-calendar-page :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
