.availability-dialog{width:min(640px,calc(100vw - 32px));max-height:85vh;border:1px solid #cdd6c0;border-radius:18px;padding:24px;background:#f6f4ef;color:#1c2d3f;font:14px system-ui;box-sizing:border-box}.availability-dialog::backdrop{background:#16242f88}.availability-dialog header{display:flex;justify-content:space-between;gap:20px}.availability-dialog h2{margin:0}.availability-dialog p{line-height:1.5}.availability-dialog label{display:grid;gap:6px;margin:14px 0}.availability-dialog input{padding:9px;border:1px solid #cdd6c0;border-radius:7px;font:inherit;min-width:0}.availability-dialog section{padding:12px 0;border-top:1px solid #cdd6c0}.availability-dialog h3{font-size:14px;margin:0 0 8px}.availability-window{display:flex;align-items:center;gap:8px;margin:8px 0}.availability-dialog button{border:1px solid #cdd6c0;border-radius:7px;padding:8px 12px;font:inherit;cursor:pointer;background:#eef1e9;color:#1c2d3f}.availability-dialog footer{display:flex;justify-content:flex-end;gap:10px;position:sticky;bottom:-24px;padding:16px 0;background:#f6f4ef}.availability-dialog button[type=submit]{background:#7a9461;color:#14231c}.availability-dialog button:disabled{opacity:.5;cursor:wait}.availability-dialog [data-status]{min-height:40px}.availability-dialog [data-close]{align-self:flex-start}.availability-dialog input:focus-visible,.availability-dialog button:focus-visible{outline:2px solid #7a9461;outline-offset:2px}@media(max-width:420px){.availability-dialog{padding:16px}.availability-window{flex-wrap:wrap}}

.availability-dialog select{padding:10px;border:1px solid #cdd6c0;border-radius:7px;background:white;font:inherit;width:100%}.availability-dialog [data-busy] label{display:flex;align-items:center;gap:10px}.availability-dialog fieldset{border:1px solid #cdd6c0;border-radius:8px}.availability-dialog h4{margin:4px 0 8px}.availability-dialog [data-slots]{display:flex;flex-wrap:wrap;gap:10px}.availability-dialog [data-slots] p{width:100%}.availability-dialog [data-google]{margin-top:16px}

.teacher-calendar-page{min-width:0}.calendar-heading,.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.calendar-heading h1{margin:6px 0 22px}.calendar-toolbar{flex-wrap:wrap;margin:20px 0}.calendar-toolbar h2{margin:0;font-size:24px}.teacher-calendar-page button{border:1px solid #cdd6c0;border-radius:8px;padding:9px 14px;background:#fff;color:#1c2d3f;cursor:pointer;font:inherit}.calendar-toolbar>div{display:flex;gap:6px}.calendar-weekdays,.calendar-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{background:#edf1e7;border:1px solid #d9dfd0;border-radius:12px 12px 0 0;padding:12px 0}.calendar-weekdays span{padding-left:10px;font-size:12px;font-weight:600}.calendar-month{border-left:1px solid #d9dfd0;background:#fff}.calendar-day{min-height:120px;padding:9px;border-right:1px solid #d9dfd0;border-bottom:1px solid #d9dfd0;min-width:0}.calendar-day>strong{display:inline-grid;place-items:center;width:26px;height:26px;font-size:13px}.calendar-day.is-today>strong{background:#7a9461;border-radius:50%;color:white}.calendar-day.is-outside{background:#f6f5f1;color:#7f8790}.calendar-event{display:grid;margin-top:7px;padding:5px 7px;background:#eaf0e4;border-left:3px solid #7a9461;border-radius:4px;color:#243524;font-size:12px;overflow-wrap:anywhere}.calendar-event small{font-weight:600}.calendar-connect{padding:18px;margin:16px 0;border:1px solid #d9dfd0;border-radius:12px;background:#edf1e7}.calendar-connect[hidden]{display:none}.calendar-toolbar [data-timezone]{font-size:12px;color:#617080}@media(max-width:700px){.calendar-weekdays span{font-size:9px;padding-left:3px}.calendar-day{min-height:90px;padding:3px}.calendar-event{font-size:10px;padding:3px}.calendar-toolbar h2{font-size:20px}}

.calendar-event.is-google{background:#edf0f2;border-left-color:#9aa2a8;color:#45515b}.calendar-legend{display:flex;gap:20px;flex-wrap:wrap;font-size:12px;color:#52606b}.calendar-legend span{display:flex;gap:7px;align-items:center}.calendar-legend span::before{content:"";width:10px;height:10px;border-radius:3px;background:#7a9461}.calendar-legend .legend-google::before{background:#9aa2a8}
.calendar-view-switch button[aria-pressed=true]{background:#e5ecdc;border-color:#7a9461}.calendar-weekdays.is-week{padding-left:48px}.calendar-month.is-week{grid-template-columns:48px repeat(7,minmax(0,1fr));max-height:65vh;overflow-y:auto;position:relative;scrollbar-gutter:stable}.calendar-time-axis{height:1232px;position:relative;background:#f6f5f1}.calendar-time-axis span{position:absolute;font-size:10px;left:4px;color:#63707a}.calendar-week-day{height:1232px;position:relative;border-right:1px solid #d9dfd0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 47px,#e5e8e1 47px,#e5e8e1 48px);background-position:0 80px}.calendar-week-day.is-today{background-color:#f5f8f0}.calendar-all-day{height:80px;overflow-y:auto;background:#fffdf9;border-bottom:1px solid #d9dfd0}.calendar-week-day>.calendar-event{margin:0;padding:4px;overflow:hidden;box-sizing:border-box;font-size:11px}.calendar-all-day .calendar-event{font-size:10px}.calendar-week-day>.calendar-event small{font-size:10px}

.calendar-week-day.has-availability{background-color:#e8f0f8}.calendar-available-window{position:absolute;left:0;right:0;background:repeating-linear-gradient(to bottom,#fff 0,#fff 47px,#e5e8e1 47px,#e5e8e1 48px);pointer-events:none}.calendar-month:not(.is-week)>.calendar-day.is-unavailable{background:#e8f0f8}.calendar-month:not(.is-week)>.calendar-day.has-hours{background:#fff}.calendar-legend .legend-available::before{background:white;border:1px solid #bdc5b6}.calendar-legend .legend-unavailable::before{background:#e8f0f8;border:1px solid #bdc5b6}
.calendar-weekdays>span:first-child{background:#dbe9f5;border-radius:6px}.calendar-month.is-week>.calendar-week-day:nth-child(2){background-color:#e8f0f8}.calendar-month.is-week>.calendar-week-day:nth-child(2)>.calendar-available-window{background:repeating-linear-gradient(to bottom,#f1f6fb 0,#f1f6fb 47px,#dce7f1 47px,#dce7f1 48px)}.calendar-month:not(.is-week)>.calendar-day:nth-child(7n+1){background-color:#e8f0f8}.calendar-event.is-platform{background:#c4d4af;border-left-color:#647d4b;color:#24371c}.calendar-event.is-google{background:#d1d6da;border-left-color:#7e8992;color:#303d46}
.calendar-month.is-week{max-height:var(--calendar-grid-height,65vh)}.calendar-time-axis,.calendar-week-day{height:var(--calendar-grid-height,1232px)}.calendar-week-day{background-size:100% var(--calendar-hour-height,48px);background-image:linear-gradient(to bottom,transparent calc(100% - 1px),#dbe1d5 calc(100% - 1px));background-position:0 var(--calendar-all-day-height,80px)}.calendar-all-day{height:var(--calendar-all-day-height,80px)}.calendar-available-window{background-image:linear-gradient(to bottom,#fff calc(100% - 1px),#e5e8e1 calc(100% - 1px));background-size:100% var(--calendar-hour-height,48px)}.calendar-month.is-week>.calendar-week-day:nth-child(2)>.calendar-available-window{background-image:linear-gradient(to bottom,#f1f6fb calc(100% - 1px),#dce7f1 calc(100% - 1px));background-size:100% var(--calendar-hour-height,48px)}.calendar-week-day>.calendar-event{padding:2px 4px;font-size:10px;line-height:1.15}.calendar-week-day>.calendar-event small{font-size:9px}
.content.teacher-calendar-page{max-width:none;width:100%;margin:0;padding:16px 20px 12px}.teacher-calendar-page .calendar-heading h1{margin:4px 0 8px}.teacher-calendar-page .calendar-toolbar{margin:10px 0 14px}.teacher-calendar-page [data-calendar-status]{margin:10px 0}.teacher-calendar-page .calendar-legend{gap:16px}@media(max-width:700px){.content.teacher-calendar-page{padding:12px 8px}}
