@charset "UTF-8";.calendar[data-astro-cid-xmq46uls]{--cal-row-h: calc(4rem / 12);--cal-row-15: transparent;--cal-time-col: 3.5rem;--cal-header-h: 2.25rem;--cal-tab-gap: .5rem;--cal-bg: transparent;--cal-surface: rgba(255, 255, 255, .07);--cal-surface-strong: rgba(255, 255, 255, .12);--cal-bg-soft: var(--cal-surface);--cal-border: rgba(255, 255, 255, .12);--cal-border-strong: rgba(255, 255, 255, .2);--cal-border-strong-on-dark: rgba(255, 255, 255, .4);--cal-text: #ffffff;--cal-text-muted: rgba(255, 255, 255, .7);--cal-accent: var(--accent-color-1, #004a97);--cal-accent-strong: var(--accent-color-1--dark, #002549);--cal-accent-light: var(--accent-color-1--light, #1f7ac0);--cal-pink: var(--accent-color-2, #f5a0a0);--cal-pink-strong: var(--accent-color-2--dark, #ee7b7b);--cal-event-color: var(--cal-accent);--cal-event-stripe: var(--cal-pink);--cal-status-no-lesson: var(--cal-pink-strong);--cal-status-adjusted: var(--cal-pink);--cal-status-ok: #22c55e;--cal-status-ok-tint: rgba(34, 197, 94, .18);--cal-status-adjusted-tint: rgba(245, 160, 160, .12);--cal-status-no-lesson-tint: rgba(238, 123, 123, .14);--cal-cols: 7;--cal-lanes: 1;--cal-font-body: var(--font-family-1, "Figtree"), system-ui, sans-serif;--cal-font-display: var(--font-family-2, "PlaypenSans"), cursive;color:var(--cal-text);font-family:var(--cal-font-body);background:var(--cal-bg);box-sizing:border-box;border:2px solid var(--cal-border-strong);border-radius:.5rem;margin:0 auto;overflow:hidden}.calendar[data-astro-cid-xmq46uls]{scroll-behavior:auto}.calendar__view[data-astro-cid-xmq46uls]{position:relative;padding:0;overflow:auto;min-height:50vh}.calendar__current-banner[data-astro-cid-xmq46uls]{margin:0}.calendar__current-banner[data-astro-cid-xmq46uls][hidden]{display:none}.calendar__all-list[data-astro-cid-xmq46uls]{display:none;flex-direction:column}.calendar__all-list-cards[data-astro-cid-xmq46uls]{display:flex;flex-wrap:nowrap;gap:1rem;padding:.5rem .25rem .75rem;overflow-x:auto;overflow-y:hidden;cursor:grab;align-items:flex-start}.calendar__all-list-cards[data-astro-cid-xmq46uls]:active{cursor:grabbing}.calendar__all-list-scroll[data-astro-cid-xmq46uls]{overflow-x:auto;overflow-y:hidden}.calendar__all-list-scroll--top[data-astro-cid-xmq46uls]{display:flex;flex-wrap:nowrap;gap:1rem;padding:.5rem .25rem 0}.calendar__all-list-scroll--top[data-astro-cid-xmq46uls]>*{flex:0 0 20rem;opacity:0;pointer-events:none;height:1px;padding:0;margin:0;border:none;box-sizing:border-box}.calendar__exceptions-list[data-astro-cid-xmq46uls]{display:none;flex-direction:column;gap:.5rem;padding:.75rem 1rem 1rem}.calendar__exceptions-list[data-astro-cid-xmq46uls][hidden],.calendar[data-astro-cid-xmq46uls][data-cal-view=all] .calendar__grid[data-astro-cid-xmq46uls],.calendar[data-astro-cid-xmq46uls][data-cal-view=all] .calendar__empty-hint[data-astro-cid-xmq46uls]{display:none}.calendar[data-astro-cid-xmq46uls][data-cal-view=all] .calendar__all-list[data-astro-cid-xmq46uls]{display:flex}.calendar[data-astro-cid-xmq46uls][data-cal-view=exceptions] .calendar__grid[data-astro-cid-xmq46uls],.calendar[data-astro-cid-xmq46uls][data-cal-view=exceptions] .calendar__empty-hint[data-astro-cid-xmq46uls],.calendar[data-astro-cid-xmq46uls][data-cal-view=exceptions] .calendar__all-list[data-astro-cid-xmq46uls]{display:none}.calendar[data-astro-cid-xmq46uls][data-cal-view=exceptions] .calendar__exceptions-list[data-astro-cid-xmq46uls]{display:flex}.calendar__grid[data-astro-cid-xmq46uls]{display:grid;grid-template-columns:var(--cal-time-col) repeat(var(--cal-cols),minmax(0,1fr));grid-template-rows:var(--cal-header-h) repeat(180,var(--cal-row-h));min-width:720px}.calendar__corner[data-astro-cid-xmq46uls]{grid-row:1;grid-column:1;position:sticky;top:0;left:0;z-index:6;background:var(--cal-accent-strong);border-top:2px solid var(--cal-border-strong-on-dark);border-right:2px solid var(--cal-border-strong-on-dark);border-bottom:2px solid var(--cal-border-strong-on-dark);display:flex;align-items:center;justify-content:center;padding:.75rem .5rem;font-family:var(--cal-font-display);font-size:.875rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--cal-text)}.calendar__day-header[data-astro-cid-xmq46uls]{grid-row:1;position:sticky;top:0;z-index:3;background:var(--cal-accent-strong);border-top:2px solid var(--cal-border-strong-on-dark);border-right:2px solid var(--cal-border-strong-on-dark);border-bottom:2px solid var(--cal-border-strong-on-dark);padding:.75rem .5rem;text-align:center;font-family:var(--cal-font-display);font-weight:500;font-size:.875rem;color:var(--cal-text);letter-spacing:.08em;text-transform:uppercase;display:flex;align-items:center;justify-content:center}.calendar__day-header[data-astro-cid-xmq46uls]:nth-child(8){border-right:none}.calendar__time-label[data-astro-cid-xmq46uls]{grid-column:1;position:sticky;left:0;z-index:5;background:var(--cal-accent);border-right:2px solid var(--cal-border-strong);border-bottom:1px solid var(--cal-border);padding:.15rem .5rem 0;font-size:.65rem;color:var(--cal-text-muted);text-align:left;display:flex;align-items:flex-start;justify-content:flex-start}.calendar__time-label--hour[data-astro-cid-xmq46uls]{color:var(--cal-text);font-weight:600;font-size:.75rem;font-variant-numeric:tabular-nums}.calendar__time-label--last[data-astro-cid-xmq46uls]{border-bottom:none}.calendar__cell[data-astro-cid-xmq46uls]{border-right:1px solid var(--cal-border);transition:background-color .3s ease}.calendar__cell--60min[data-astro-cid-xmq46uls]{border-bottom:1px solid var(--cal-border)}.calendar__cell--last-col[data-astro-cid-xmq46uls]{border-right:none}.calendar__cell--last-row[data-astro-cid-xmq46uls]{border-bottom:none}.calendar__empty-hint[data-astro-cid-xmq46uls]{position:absolute;inset:0;display:grid;place-items:center;color:var(--cal-text-muted);pointer-events:none;text-align:center;padding:1rem;margin:0}.calendar__empty-hint[data-astro-cid-xmq46uls][hidden]{display:none}.calendar__event{grid-row:auto;margin:0 4px;padding:.5rem .75rem;background:var(--cal-accent-strong);color:var(--cal-text);border-radius:.5rem;border:1px solid var(--cal-border);border-left:3px solid transparent;font-size:.8125rem;line-height:1.25;cursor:default;display:flex;flex-direction:column;gap:.2rem;z-index:2;position:relative;transition:background-color .3s ease,border-color .3s ease}.calendar__event:has(.calendar__event-notes){border-left-color:var(--cal-event-stripe)}.calendar__event:hover{z-index:50;background-color:var(--cal-accent-light);border-color:var(--cal-pink)}.calendar__event-loc{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar__event-time{font-size:.6875rem;font-weight:500;opacity:.85;font-variant-numeric:tabular-nums}.calendar__event-line{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600}.calendar__event-title{font-weight:600}.calendar__event-notes{font-size:.6875rem;font-weight:500;font-style:italic;color:var(--cal-event-stripe);opacity:.95}.calendar__event--clickable{cursor:pointer}.calendar__event--clickable:hover{background-color:var(--cal-accent-light);border-color:var(--cal-pink)}.calendar__event--compact{padding:.375rem .625rem;display:flex;flex-direction:row;align-items:center;gap:.4rem}.calendar__event--compact .calendar__event-line{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar__event--compact .calendar__event-time{flex:0 0 auto;opacity:.75;margin-top:0}.calendar__event--tiny{padding:.2rem .5rem;justify-content:center;align-items:center}.calendar__event--tiny .calendar__event-line,.calendar__event--tiny .calendar__event-notes{display:none}.calendar__event--tiny .calendar__event-time{margin-top:0;text-align:center;width:100%;opacity:.95}.calendar__event-delete{position:absolute;top:.25rem;right:.25rem;width:1.25rem;height:1.25rem;padding:0;border:0;background:#ffffff2e;color:var(--cal-text);border-radius:50%;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background-color .3s ease,color .3s ease}.calendar__event-delete svg[data-astro-cid-xmq46uls]{width:.75rem;height:.75rem}.calendar__event-delete:hover{background:var(--cal-pink-strong);color:var(--cal-text)}.calendar__event-tooltip{position:absolute;top:calc(100% + .4rem);left:0;z-index:100;min-width:180px;max-width:280px;padding:.55rem .75rem;background:#fff;color:#111827;border-radius:.5rem;border:1px solid var(--cal-accent);font-size:.8125rem;line-height:1.4;text-align:left;pointer-events:none;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .3s ease,transform .3s ease,visibility 0s linear .3s;display:flex;flex-direction:column;gap:.2rem}.calendar__event-tooltip-title{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:.4rem;font-weight:600;font-size:.875rem;overflow-wrap:anywhere;color:var(--cal-accent)}.calendar__event-tooltip-notes{font-weight:500;font-style:italic;font-size:.75rem;color:#4b5563}.calendar__event-tooltip-notes:before{content:"·";margin-right:.35rem;opacity:.6;font-style:normal}.calendar__event-tooltip-time{font-size:.75rem;font-weight:500;color:#4b5563;font-variant-numeric:tabular-nums}.calendar__event:hover .calendar__event-tooltip{opacity:1;visibility:visible;transform:translateY(0);transition:opacity .3s ease,transform .3s ease,visibility 0s linear 0s}.calendar__tabs[data-astro-cid-xmq46uls]{display:flex;flex-direction:column;gap:.6rem;padding:1.1rem 1.25rem 1.5rem;align-items:stretch;background:var(--cal-accent-strong)}.calendar__locations-header{display:flex;align-items:center;gap:.6rem;padding-bottom:.85rem;margin-bottom:.5rem;border-bottom:1px solid var(--cal-border);flex-wrap:wrap}.calendar__tab-row{display:grid;grid-template-columns:5.5rem 1fr;gap:.4rem;align-items:baseline;width:100%}.calendar__tab-row-pills{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;min-width:0}.calendar__tab{appearance:none;background:transparent;color:var(--cal-text);border:1px solid transparent;border-radius:999px;padding:.3rem .75rem .3rem .65rem;font:inherit;font-family:var(--cal-font-body);font-size:.8rem;font-weight:500;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease;display:inline-flex;align-items:center;gap:.45rem;line-height:1.3}.calendar__tab:hover{background-color:var(--cal-surface-strong);border-color:var(--cal-pink)}.calendar__tab.is-active{background-color:var(--cal-pink);color:var(--cal-text);border-color:var(--cal-pink);font-weight:600}.calendar__tab:focus-visible{outline:2px solid var(--cal-pink);outline-offset:2px}.calendar__tab--location:before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--cal-pink);flex-shrink:0;transition:background-color .15s ease}.calendar__tab--location.is-active:before{background:#ffffff80}.calendar__tab--all:before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:transparent;box-shadow:0 0 0 1.5px var(--cal-pink) inset;flex-shrink:0;transition:background-color .15s ease,box-shadow .15s ease}.calendar__tab--all.is-active:before{background:#ffffff80;box-shadow:0 0 0 1.5px #fff9 inset}.calendar__tab--exceptions{margin-left:auto;border-color:var(--cal-pink)}.calendar__tab--exceptions:before{content:"";display:inline-block;width:8px;height:8px;background:var(--cal-pink);flex-shrink:0;transition:background-color .15s ease}.calendar__tab--exceptions.is-active{background-color:var(--cal-pink);border-color:var(--cal-pink);color:var(--cal-text)}.calendar__tab--exceptions.is-active:before{background:var(--cal-text)}.calendar__tab-group{display:inline-flex;align-items:center;justify-content:flex-start;padding:.3rem .65rem .3rem 0;font-family:var(--cal-font-display);font-size:.95rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--cal-text-muted);line-height:1.3}.calendar__tab-wrap{display:inline-flex;align-items:center;gap:.25rem}.calendar__tab-edit{display:inline-flex;align-items:center;gap:.15rem}.calendar__tab-edit-btn{width:1.5rem;height:1.5rem;padding:0;background:transparent;border:1px solid var(--cal-border-strong);color:var(--cal-text);border-radius:.5rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background-color .3s ease,color .3s ease,border-color .3s ease}.calendar__tab-edit-btn svg[data-astro-cid-xmq46uls]{width:.85rem;height:.85rem}.calendar__tab-edit-btn:hover{background:var(--cal-surface-strong);color:var(--cal-pink);border-color:var(--cal-pink)}.calendar__tab-edit-btn--delete:hover{background:var(--cal-pink-strong);color:var(--cal-text);border-color:var(--cal-pink-strong)}.calendar__tabs-empty{margin:0;padding:.5rem 0 0;color:var(--cal-text-muted);font-size:.85rem;font-style:italic}.calendar__location-card{background:var(--cal-surface);border:1px solid var(--cal-border);border-radius:.5rem;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.9rem;transition:background-color .3s ease;position:relative;overflow:hidden;flex:0 0 20rem}.calendar__location-card:before{content:"";position:absolute;top:0;left:0;bottom:0;width:3px;background:var(--cal-event-stripe)}.calendar__location-card:hover{background:var(--cal-surface-strong)}.calendar__all-list-cards,.calendar__all-list-scroll--top{scrollbar-width:thin;scrollbar-color:var(--cal-event-stripe) transparent}.calendar__all-list-cards::-webkit-scrollbar,.calendar__all-list-scroll--top::-webkit-scrollbar{height:8px}.calendar__all-list-cards::-webkit-scrollbar-track,.calendar__all-list-scroll--top::-webkit-scrollbar-track{background:transparent}.calendar__all-list-cards::-webkit-scrollbar-thumb,.calendar__all-list-scroll--top::-webkit-scrollbar-thumb{background:var(--cal-event-stripe);border-radius:4px}.calendar__all-list-cards::-webkit-scrollbar-thumb:hover,.calendar__all-list-scroll--top::-webkit-scrollbar-thumb:hover{background:var(--cal-pink-strong)}.calendar__location-title{margin:0;padding-bottom:.6rem;border-bottom:1px solid var(--cal-border);display:flex;flex-direction:column;gap:.2rem;line-height:1.2}.calendar__location-city{font-family:var(--cal-font-display);font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--cal-text-muted)}.calendar__location-label{font-family:var(--cal-font-display);font-size:1.125rem;font-weight:500;color:var(--cal-text);letter-spacing:.01em}.calendar__location-empty{margin:0;color:var(--cal-text-muted);font-size:.85rem;font-style:italic;padding:.25rem 0}.calendar__day-block{display:flex;flex-direction:column;gap:.3rem}.calendar__day-label{margin:0;font-family:var(--cal-font-display);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--cal-text-muted);display:flex;align-items:center;gap:.5rem}.calendar__time-slots{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.calendar__time-slot{display:grid;grid-template-columns:5rem 1fr;gap:.6rem;align-items:baseline;font-size:.875rem;line-height:1.3;padding:.3rem 0 .3rem .7rem;border-left:2px solid var(--cal-border);transition:border-left-color .3s ease,background-color .3s ease}.calendar__time-slot:hover{border-left-color:var(--cal-event-stripe);background-color:var(--cal-surface)}.calendar__slot-content{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem;min-width:0}.calendar__slot-time{color:var(--cal-text-muted);font-variant-numeric:tabular-nums;font-weight:500;white-space:nowrap;font-size:.8125rem}.calendar__slot-title{color:var(--cal-text);font-weight:600}.calendar__slot-notes{display:inline-block;padding:.05rem .5rem;font-size:.6875rem;font-weight:500;font-style:italic;color:var(--cal-event-stripe);opacity:.95;letter-spacing:.01em;white-space:nowrap;align-self:center}.calendar__slot-edit{display:inline-flex;align-items:center;gap:.25rem;margin-left:auto;align-self:center}.calendar__slot-edit-btn{width:1.5rem;height:1.5rem;padding:0;background:transparent;border:1px solid var(--cal-border-strong);color:var(--cal-text);border-radius:.5rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background-color .3s ease,color .3s ease,border-color .3s ease}.calendar__slot-edit-btn svg[data-astro-cid-xmq46uls]{width:.85rem;height:.85rem}.calendar__slot-edit-btn:hover{background:var(--cal-surface-strong);color:var(--cal-event-stripe);border-color:var(--cal-event-stripe)}.calendar__slot-edit-btn--delete:hover{background:var(--cal-pink-strong);color:var(--cal-text);border-color:var(--cal-pink-strong)}.calendar__week-banner{display:flex;align-items:stretch;gap:0;padding:.85rem 1.1rem;border-radius:.5rem .5rem 0 0;font-size:.875rem;line-height:1.4;background:var(--cal-accent-strong);color:var(--cal-text);flex-direction:column;gap:.5rem}.calendar__week-banner-content{display:flex;flex-direction:column;gap:.5rem}.calendar__week-banner-header{font-family:var(--cal-font-display);font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--cal-text)}.calendar__week-banner-list{display:flex;flex-direction:column;gap:.5rem}.calendar__week-banner-row{display:flex;align-items:center;gap:.65rem;min-width:0}.calendar__week-banner-row-dot{flex-shrink:0;width:.55rem;height:.55rem;border-radius:0;margin-top:.15rem}.calendar__week-banner-row-dot--no-lesson{background:var(--cal-status-no-lesson)}.calendar__week-banner-row-dot--adjusted{background:var(--cal-status-adjusted)}.calendar__week-banner-row-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.05rem}.calendar__week-banner-row-label{font-size:.9375rem;font-weight:600;line-height:1.3;color:var(--cal-text);overflow-wrap:anywhere}.calendar__week-banner-row-meta{font-size:.75rem;font-weight:500;letter-spacing:.01em;opacity:.85;color:var(--cal-text)}.calendar__week-banner-row-edit{flex-shrink:0;width:1.75rem;height:1.75rem;padding:0;background:transparent;border:1px solid var(--cal-text);color:var(--cal-text);border-radius:.5rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;opacity:.85;transition:background-color .3s ease,opacity .3s ease}.calendar__week-banner-row-edit svg[data-astro-cid-xmq46uls]{width:.95rem;height:.95rem}.calendar__week-banner-row-edit:hover{opacity:1;background:var(--cal-surface-strong)}.calendar__week-remarks{display:flex;flex-direction:column;gap:.5rem;padding:1rem 1.25rem 1.25rem;border-top:1px solid var(--cal-border);background:var(--cal-bg)}.calendar__week-remark{display:grid;grid-template-columns:8rem 6.5rem 1fr;gap:.85rem;align-items:baseline;padding:.7rem .85rem;border-radius:.5rem;background:var(--cal-surface);font-size:.85rem;line-height:1.4;border-left:2px solid var(--cal-border)}.calendar__week-remark-range{color:var(--cal-text);font-variant-numeric:tabular-nums;font-weight:600;font-size:.875rem;white-space:nowrap}.calendar__week-remark-kind{font-family:var(--cal-font-display);font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.calendar__week-remark-label{color:var(--cal-text);font-weight:500}.calendar__week-remark--normal{background:transparent;border-left-color:var(--cal-border)}.calendar__week-remark--normal .calendar__week-remark-kind[data-astro-cid-xmq46uls],.calendar__week-remark--normal .calendar__week-remark-label[data-astro-cid-xmq46uls]{color:var(--cal-text-muted);font-weight:500}.calendar__week-remark--adjusted{background:var(--cal-status-adjusted-tint);border-left-color:var(--cal-pink)}.calendar__week-remark--adjusted .calendar__week-remark-kind[data-astro-cid-xmq46uls]{color:var(--cal-pink)}.calendar__week-remark--adjusted .calendar__week-remark-label[data-astro-cid-xmq46uls]{color:var(--cal-text)}.calendar__week-remark--no-lesson{background:var(--cal-status-no-lesson-tint);border-left-color:var(--cal-pink-strong)}.calendar__week-remark--no-lesson .calendar__week-remark-kind[data-astro-cid-xmq46uls]{color:var(--cal-pink-strong)}.calendar__week-remark--no-lesson .calendar__week-remark-label[data-astro-cid-xmq46uls]{color:var(--cal-text)}.calendar__week-remark[data-active=true]{background:var(--cal-status-ok-tint);border-left-color:var(--cal-status-ok)}.calendar__week-remark[data-active=true] .calendar__week-remark-kind[data-astro-cid-xmq46uls]{color:var(--cal-status-ok)}.calendar__week-remark[data-active=true] .calendar__week-remark-label[data-astro-cid-xmq46uls]{color:var(--cal-text)}.calendar__week-remark-edit{display:inline-flex;align-items:center;gap:.25rem;margin-left:auto}.calendar__week-remark-edit button{width:1.5rem;height:1.5rem;padding:0;background:transparent;border:1px solid var(--cal-border-strong);color:var(--cal-text);border-radius:.5rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background-color .3s ease,color .3s ease,border-color .3s ease}.calendar__week-remark-edit button svg[data-astro-cid-xmq46uls]{width:.85rem;height:.85rem}.calendar__week-remark-edit button:hover{background:var(--cal-surface-strong);color:var(--cal-event-stripe);border-color:var(--cal-event-stripe)}.calendar__week-remark-delete:hover{background:var(--cal-pink-strong)!important;color:var(--cal-text)!important;border-color:var(--cal-pink-strong)!important}.calendar__exceptions-empty{margin:0;padding:.5rem 0;color:var(--cal-text-muted);font-size:.85rem;font-style:italic}.calendar__toolbar[data-astro-cid-xmq46uls]{display:flex;gap:.5rem;margin-top:1rem}.calendar__toolbar[data-astro-cid-xmq46uls][hidden]{display:none}.calendar__toolbar[data-astro-cid-xmq46uls] button[data-astro-cid-xmq46uls]{appearance:none;border:1px solid var(--cal-accent);background:var(--cal-accent);color:var(--cal-text);padding:.55rem 1.25rem;border-radius:.5rem;cursor:pointer;font-family:var(--cal-font-display);font-size:.8125rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;transition:background-color .3s ease,border-color .3s ease}.calendar__toolbar[data-astro-cid-xmq46uls] button[data-astro-cid-xmq46uls]:hover{background-color:var(--cal-accent-strong);border-color:var(--cal-accent-strong)}.calendar__toolbar[data-astro-cid-xmq46uls] button[data-astro-cid-xmq46uls]:focus-visible{outline:2px solid var(--cal-text);outline-offset:2px}.calendar__dialog[data-astro-cid-xmq46uls]{border:1px solid var(--cal-border-strong);border-radius:.5rem;padding:1.25rem;min-width:20rem;background:var(--cal-accent);color:var(--cal-text)}.calendar__dialog[data-astro-cid-xmq46uls]::backdrop{background-color:#00000080}.calendar__dialog-title[data-astro-cid-xmq46uls]{margin:0 0 .75rem;font-family:var(--cal-font-display);font-size:1.1rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.calendar__field[data-astro-cid-xmq46uls]{display:grid;gap:.25rem;margin-bottom:.5rem;font-size:.85rem}.calendar__field[data-astro-cid-xmq46uls] input[data-astro-cid-xmq46uls],.calendar__field[data-astro-cid-xmq46uls] select[data-astro-cid-xmq46uls],.calendar__field[data-astro-cid-xmq46uls] textarea[data-astro-cid-xmq46uls]{font:inherit;padding:.4rem .5rem;border:1px solid var(--cal-border-strong);border-radius:.5rem;background:var(--cal-bg);color:var(--cal-text);width:100%;resize:vertical}.calendar__field-label[data-astro-cid-xmq46uls]{color:var(--cal-text-muted);font-family:var(--cal-font-display);font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.calendar__dialog-actions[data-astro-cid-xmq46uls]{display:flex;gap:.5rem;justify-content:flex-end;margin:.75rem 0 0;padding:0}.calendar__dialog-actions[data-astro-cid-xmq46uls] button[data-astro-cid-xmq46uls]{font:inherit;padding:.55rem 1.25rem;border-radius:.5rem;border:1px solid var(--cal-border-strong);background:var(--cal-bg);color:var(--cal-text);cursor:pointer;font-family:var(--cal-font-display);font-size:.8125rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;transition:background-color .3s ease,color .3s ease,border-color .3s ease}.calendar__dialog-actions[data-astro-cid-xmq46uls] button[data-astro-cid-xmq46uls][value=save]{background:var(--cal-accent);color:var(--cal-text);border-color:var(--cal-accent)}.calendar__dialog-actions[data-astro-cid-xmq46uls] .calendar__dialog-delete[data-astro-cid-xmq46uls]{background:transparent;color:var(--cal-pink-strong);border-color:var(--cal-pink-strong);margin-right:auto}.calendar__dialog-actions[data-astro-cid-xmq46uls] .calendar__dialog-delete[data-astro-cid-xmq46uls]:hover{background:var(--cal-pink-strong);color:var(--cal-text)}.calendar__dialog-actions[data-astro-cid-xmq46uls] .calendar__dialog-delete[data-astro-cid-xmq46uls][hidden]{display:none}.calendar[data-astro-cid-xmq46uls]:not(.calendar--edit) .calendar__edit-only{display:none!important}.calendar[data-astro-cid-xmq46uls].calendar--edit .calendar__public{display:none!important}.calendar__editor{display:flex;flex-direction:column;gap:1.25rem;width:100%;max-width:none}.calendar__editor-section{background:var(--cal-bg, #ffffff);border:1px solid var(--cal-border, #e5e7eb);border-radius:.5rem;padding:1rem 1.25rem;width:100%;box-sizing:border-box}.calendar__editor-section-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:0 0 .75rem}.calendar__editor-section-header h3{margin:0;font-size:.95rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--cal-text, #111827);display:flex;align-items:center;gap:.5rem}.calendar__editor-section-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--cal-pink);flex:0 0 auto}.calendar__editor-section-icon svg{width:1.25em;height:1.25em;display:block}.calendar__editor-count{font-size:.8rem;font-weight:700;background:var(--cal-bg-soft, #f1f5f9);color:var(--cal-text-muted, #6b7280);padding:.15rem .55rem;border-radius:999px;letter-spacing:0;line-height:1}.calendar__editor-add{background:transparent;border:1px dashed var(--cal-border-strong, #d1d5db);color:var(--cal-pink);padding:.35rem .75rem;font-size:.8rem;font-weight:600;border-radius:.5rem;cursor:pointer}.calendar__editor-add:hover{background:var(--cal-surface-strong);border-style:solid}.calendar__editor-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.calendar__editor-list li:before,.calendar__editor-weekdays li:before,.calendar__editor-events li:before,.calendar__editor-group:before,.calendar__editor-group:after,.calendar__editor-location-summary:before,.calendar__editor-location-summary:after{content:none!important}.calendar__editor-row--inline{display:flex;align-items:flex-start;gap:.5rem;padding:.65rem .75rem;position:relative;background:var(--cal-bg-soft, #f8fafc);border:1px solid var(--cal-bg-soft, #f1f5f9);border-radius:.5rem;transition:border-color .12s ease}.calendar__editor-row--inline:focus-within{border-color:var(--cal-accent, #004a97);background:var(--cal-bg, #ffffff)}.calendar__editor-row--inline--location{border-left:4px solid var(--cal-line, var(--cal-border, #e5e7eb));padding-left:calc(.75rem + 4px)}.calendar__editor-row--inline--location:focus-within{border-left-color:var(--cal-line, var(--cal-border, #e5e7eb))}.calendar__editor-fields{flex:1 1 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,10rem));gap:.6rem 1rem;align-items:center}.calendar__editor-fields--wide{flex:0 1 auto;display:grid;grid-template-columns:minmax(8rem,14rem) auto auto;gap:.6rem .5rem;align-items:center}.calendar__editor-row--inline--location .calendar__editor-status{position:static;top:auto;right:auto;transform:none}.calendar__editor-fields--wide-remark .calendar__editor-field.calendar__editor-field--fill input,.calendar__editor-fields--wide-remark .calendar__editor-field.calendar__editor-field--fill select,.calendar__editor-fields--wide-remark .calendar__editor-field.calendar__editor-field--fill textarea{max-width:none}.calendar__editor-fields--wide-remark{flex:1 1 auto;display:grid;grid-template-columns:minmax(7rem,9rem) minmax(7rem,9rem) minmax(7.5rem,13rem) minmax(12rem,1fr) auto;column-gap:1rem;row-gap:.6rem;align-items:center}.calendar__editor-row--inline--remark .calendar__editor-status{position:static;top:auto;right:auto;transform:none}.calendar__editor-row--inline--remark{border-left:4px solid var(--cal-border, #e5e7eb);padding-left:calc(.75rem + 4px)}.calendar__editor-row--inline--remark[data-kind=adjusted]{border-left-color:var(--cal-status-adjusted)}.calendar__editor-row--inline--remark[data-kind=no-lesson]{border-left-color:var(--cal-pink-strong)}.calendar__editor-row--inline--remark:focus-within[data-kind=adjusted]{border-left-color:var(--cal-status-adjusted)}.calendar__editor-row--inline--remark:focus-within[data-kind=no-lesson]{border-left-color:var(--cal-pink-strong)}.calendar__editor-row--inline--remark[data-active=true]{background:var(--cal-status-ok-tint);border-left-color:var(--cal-status-ok)}.calendar__editor-field{display:flex;flex-direction:row;align-items:center;gap:.25rem;min-width:0}.calendar__editor-field input,.calendar__editor-field select,.calendar__editor-field textarea{font:inherit;font-size:.95rem;padding:.45rem .6rem;border:1px solid var(--cal-border, #e5e7eb);border-radius:.5rem;background:var(--cal-bg-soft, #f8fafc);color:var(--cal-text, #111827);flex:1 1 auto;width:auto;min-width:0;box-sizing:border-box}.calendar__editor-field input:hover:not(:focus),.calendar__editor-field select:hover:not(:focus),.calendar__editor-field textarea:hover:not(:focus){background:var(--cal-surface-strong);border-color:var(--cal-border-strong)}.calendar__editor-field input,.calendar__editor-field select,.calendar__editor-field textarea{transition:border-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1),background-color .15s cubic-bezier(.4,0,.2,1)}.calendar__editor-field input::placeholder,.calendar__editor-field select::placeholder,.calendar__editor-field textarea::placeholder{color:var(--cal-text-muted, rgba(255, 255, 255, .7));opacity:1}.calendar__editor-field input[type=time]{min-width:5.5rem}.calendar__editor-field input[type=date]{min-width:8rem}.calendar__editor-field:not(.calendar__editor-field--grow) input,.calendar__editor-field:not(.calendar__editor-field--grow) select,.calendar__editor-field:not(.calendar__editor-field--grow) textarea{max-width:14rem}.calendar__editor-time-split{display:inline-flex;align-items:center;gap:.1rem;flex:0 1 auto}.calendar__editor-time-colon{color:var(--cal-text-muted, #6b7280);font-weight:700;padding:0 .05rem;user-select:none}.calendar__editor-field .calendar__editor-time-select{padding-right:.5rem;text-align:center}.calendar__editor input:focus,.calendar__editor select:focus,.calendar__editor textarea:focus{outline:none;border-color:var(--cal-accent, #004a97);box-shadow:0 0 0 2px color-mix(in srgb,var(--cal-accent, #004a97) 25%,transparent)}.calendar__editor-field--grow{grid-column:span 2}@media(max-width:720px){.calendar__editor-field--grow{grid-column:span 1}}.calendar__editor-fields--wide-event{flex:1 1 auto;display:grid;grid-template-columns:minmax(11rem,12rem) minmax(11rem,12rem) minmax(10rem,1fr) minmax(10rem,1fr) minmax(14rem,20rem);column-gap:1rem;row-gap:.6rem;align-items:center;padding-right:11rem}.calendar__editor-field-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--cal-text-muted, #6b7280);font-weight:700;flex:0 0 auto}.calendar__editor-status{position:absolute;top:50%;right:3.25rem;transform:translateY(-50%);font-size:.8rem;font-weight:500;white-space:nowrap;display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .65rem;border-radius:999px;background:var(--cal-bg-soft, #f8fafc);border:1px solid transparent;z-index:1}.calendar__editor-status:empty{display:none}.calendar__editor-status{transition:opacity .2s ease,background-color .2s ease,border-color .2s ease}.calendar__editor-status svg{width:.95em;height:.95em;flex:0 0 auto}.calendar__editor-status[data-cal-editor-status-kind=saving]{color:#fff;background:color-mix(in srgb,var(--cal-accent, #004a97) 18%,transparent);border-color:color-mix(in srgb,var(--cal-accent, #004a97) 40%,transparent)}.calendar__editor-status[data-cal-editor-status-kind=saved]{color:#86efac;background:#22c55e26;border-color:#22c55e66}.calendar__editor-status[data-cal-editor-status-kind=error]{color:var(--cal-pink);background:#f5a0a026;border-color:#f5a0a066}@keyframes calendar-editor-spin{to{transform:rotate(360deg)}}.calendar__editor-spinner{animation:calendar-editor-spin .7s linear infinite;transform-origin:50% 50%}@keyframes calendar-editor-row-flash-saved{0%{background-color:#22c55e38}to{background-color:transparent}}.calendar__editor-row--flash-saved{animation:calendar-editor-row-flash-saved .6s ease-out}@media(prefers-reduced-motion:reduce){.calendar__editor-spinner{animation:none}.calendar__editor-row--flash-saved{animation:none;background-color:transparent}}.calendar__editor-status--fading{opacity:0}.calendar__editor-status-text{white-space:nowrap}.calendar__editor-delete-btn{flex:0 0 auto;width:1.75rem;height:1.75rem;padding:0;margin-top:.25rem;background:transparent;border:1px solid transparent;color:var(--cal-text-muted, #9ca3af);border-radius:.5rem;cursor:pointer;align-self:start;display:inline-flex;align-items:center;justify-content:center;transition:background-color .15s cubic-bezier(.4,0,.2,1),color .15s cubic-bezier(.4,0,.2,1),border-color .15s cubic-bezier(.4,0,.2,1),transform .15s cubic-bezier(.4,0,.2,1)}.calendar__editor-delete-btn svg{width:.95rem;height:.95rem;display:block;transition:transform .15s cubic-bezier(.4,0,.2,1)}.calendar__editor-delete-btn:hover{background:var(--cal-surface);color:var(--cal-pink-strong);border-color:var(--cal-border);transform:scale(1.08)}.calendar__editor-delete-btn:hover svg{transform:scale(1.05)}.calendar__editor-group{list-style:none;display:flex;flex-direction:column;gap:.5rem}.calendar__editor-location{border:1px solid var(--cal-bg-soft, #f1f5f9);border-radius:.5rem;background:var(--cal-bg-soft, #f8fafc);overflow:hidden}.calendar__editor-location>summary{list-style:none}.calendar__editor-location>summary::-webkit-details-marker{display:none}.calendar__editor-location-summary{align-items:center!important;user-select:none;cursor:pointer;transition:box-shadow .15s cubic-bezier(.4,0,.2,1),background-color .15s cubic-bezier(.4,0,.2,1)}.calendar__editor-location-summary:hover{box-shadow:0 2px 4px #0000000a}.calendar__editor-location-summary .calendar__editor-chevron{flex:0 0 auto;width:1.1rem;height:1.1rem;display:inline-flex;align-items:center;justify-content:center;color:var(--cal-text-muted, #6b7280);transition:transform .2s cubic-bezier(.4,0,.2,1)}.calendar__editor-chevron:before{content:"▸";font-size:.85rem;line-height:1}.calendar__editor-location[open]>.calendar__editor-location-summary .calendar__editor-chevron,.calendar__editor-weekday-details[open]>.calendar__editor-weekday-summary .calendar__editor-chevron{transform:rotate(90deg)}.calendar__editor-location-count{flex:0 0 auto;align-self:center;font-size:.7rem;font-weight:700;background:var(--cal-bg, #ffffff);color:var(--cal-text-muted, #6b7280);padding:.15rem .5rem;border-radius:999px;border:1px solid var(--cal-border, #e5e7eb);letter-spacing:0;white-space:nowrap;margin-left:auto}.calendar__editor-location-body{padding:.4rem .85rem .85rem;border-top:1px solid var(--cal-bg, #ffffff)}.calendar__editor-weekdays{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.calendar__editor-weekday{list-style:none}.calendar__editor-weekday-details{border:1px solid var(--cal-border, #e5e7eb);border-radius:.4rem;background:var(--cal-bg, #ffffff);overflow:hidden}.calendar__editor-weekday-details>summary{list-style:none}.calendar__editor-weekday-details>summary::-webkit-details-marker{display:none}.calendar__editor-weekday-summary{display:flex;align-items:center;gap:.5rem;padding:.45rem .7rem;cursor:pointer;user-select:none;font-size:.85rem;font-weight:600;color:var(--cal-text, #111827);transition:background-color .15s cubic-bezier(.4,0,.2,1)}.calendar__editor-weekday-summary:hover{background:var(--cal-bg-soft, #f8fafc)}.calendar__editor-weekday-name{flex:1 1 auto}.calendar__editor-weekday-count{flex:0 0 auto;font-size:.7rem;font-weight:700;background:var(--cal-bg-soft, #f1f5f9);color:var(--cal-text-muted, #6b7280);padding:.05rem .45rem;border-radius:999px}.calendar__editor-weekday-count[data-cal-editor-weekday-empty=true]{background:transparent;border:1px dashed var(--cal-border, #e5e7eb);color:var(--cal-text-muted, #9ca3af);font-weight:500}.calendar__editor-weekday-body{padding:.35rem .7rem .7rem;border-top:1px solid var(--cal-bg-soft, #f1f5f9);display:flex;flex-direction:column;gap:.4rem}.calendar__editor-empty--inline{margin:0;padding:.4rem .5rem;font-size:.8rem;background:transparent;border-radius:.5rem;border:1px dashed var(--cal-border, #e5e7eb)}.calendar__editor-events{list-style:none;margin:0;padding:.35rem .7rem .7rem;display:flex;flex-direction:column;gap:.4rem;border-top:1px solid var(--cal-bg-soft, #f1f5f9)}.calendar__editor-row--child{background:var(--cal-bg, #ffffff)}.calendar__editor-row--child:focus-within{background:var(--cal-bg, #ffffff)}.calendar__editor-event-add{list-style:none}.calendar__editor-add--weekday{flex:0 0 auto;padding:.15rem .55rem;font-size:.75rem;border-style:dotted}@supports (interpolate-size: allow-keywords){.calendar__editor-location::details-content,.calendar__editor-weekday-details::details-content{block-size:0;overflow-y:clip;transition:content-visibility .22s allow-discrete,block-size .22s ease}.calendar__editor-location[open]::details-content,.calendar__editor-weekday-details[open]::details-content{block-size:auto}}.calendar__editor-empty{margin:.25rem 0 0;padding:.6rem .75rem;font-size:.85rem;color:var(--cal-text-muted, #6b7280);font-style:italic;text-align:center;background:var(--cal-bg-soft, #f8fafc);border-radius:.5rem}[data-cal-editor-new=true]{animation:calendar-editor-row-pulse .4s cubic-bezier(.4,0,.2,1) forwards}@keyframes calendar-editor-row-pulse{0%{box-shadow:0 0 0 4px #004a9773;background-color:#004a971a}to{box-shadow:0 0 #004a9700;background-color:transparent}}@media(prefers-reduced-motion:reduce){.calendar__editor *,.calendar__editor *:before,.calendar__editor *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
