/* Shared calendar: colours follow the current university and appearance. */
.admin-glass .week-picker{padding:14px;border-radius:23px}
.admin-glass .week-picker-head{gap:8px;margin-bottom:13px}
.admin-glass .week-picker-head :is(a,button){display:grid;place-items:center;width:38px;height:38px;box-sizing:border-box;padding:0;border:1px solid var(--line);border-radius:13px;color:var(--ink-soft);background:var(--glass);box-shadow:inset 0 1px 0 #ffffff10;text-decoration:none}
.admin-glass .week-picker-head .month-calendar-button{color:var(--brand-strong);background:var(--brand-soft);border-color:color-mix(in srgb,var(--brand) 25%,var(--line))}
.admin-glass .week-picker-head strong{font-size:13px;font-weight:500;letter-spacing:.01em}
.admin-glass .week-days a{min-width:0;padding:10px 2px;border-radius:14px}
.admin-glass .week-days a strong{font-size:18px;font-weight:500}
.admin-glass .week-days a span{font-size:10px;font-weight:450;margin-top:5px}
.admin-glass .week-days a.is-selected{border-color:color-mix(in srgb,var(--brand) 45%,var(--line));background:linear-gradient(145deg,var(--brand-soft),transparent),var(--glass);color:var(--brand-strong)}
.admin-glass dialog.modal.month-calendar-dialog {
 inset:0; width:min(720px,calc(100% - 48px)); height:auto; max-height:calc(100dvh - 64px);
 margin:auto; padding:28px; box-sizing:border-box; border:1px solid var(--line); border-top-color:color-mix(in srgb,var(--ink) 22%,transparent);
 border-radius:30px; color:var(--ink); background:var(--glass),var(--paper);
 box-shadow:0 30px 100px #00000040,inset 0 1px 0 #ffffff16;
 -webkit-backdrop-filter:blur(28px); backdrop-filter:blur(28px);
}
.admin-glass dialog.modal.month-calendar-dialog[open]{overflow-y:auto;overscroll-behavior:contain}
.admin-glass dialog.month-calendar-dialog::backdrop{background:#080b106e;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.admin-glass .month-calendar-head{position:static;padding:0 0 22px;background:none;backdrop-filter:none}
.admin-glass .month-calendar-heading{display:flex;align-items:center;gap:13px;min-width:0}
.admin-glass .month-calendar-mark{display:grid;place-items:center;width:48px;height:48px;flex:none;border-radius:16px;color:var(--brand-strong);background:var(--brand-soft);border:1px solid color-mix(in srgb,var(--brand) 24%,var(--line));box-shadow:inset 0 1px 0 #ffffff16}
.admin-glass .month-calendar-mark svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.admin-glass .month-calendar-head .eyebrow{margin:0 0 6px;font-size:9px;letter-spacing:.14em}
.admin-glass .month-calendar-head h2{margin:0;font-size:clamp(21px,4vw,30px);font-weight:550;letter-spacing:-.04em;line-height:1.15}
.admin-glass .month-calendar-head .modal-close.month-calendar-close{width:40px;height:40px;flex:none;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);box-shadow:inset 0 1px 0 #ffffff12}
.admin-glass .month-calendar-close span{font-size:25px}
.admin-glass .month-calendar-nav{margin:0 0 22px;padding:0;gap:12px}
.admin-glass .month-calendar-nav a{width:44px;height:44px;flex:none;border-radius:15px;border:1px solid var(--line);background:var(--glass);color:var(--ink);box-shadow:inset 0 1px 0 #ffffff12;font-size:19px;font-weight:500}
.admin-glass .month-calendar-nav .month-calendar-today{display:flex;align-items:center;justify-content:center;gap:8px;width:auto;height:38px;padding:0 15px;font-size:12px;color:var(--brand-strong);background:var(--brand-soft);border-color:color-mix(in srgb,var(--brand) 22%,var(--line));border-radius:99px}
.admin-glass .month-calendar-today span{font-size:11px;color:var(--brand-strong);opacity:.75;font-weight:450}
.admin-glass .month-calendar-weekdays{gap:7px;margin-bottom:10px}
.admin-glass .month-calendar-weekdays span{font-size:10px;font-weight:500;letter-spacing:.08em}
.admin-glass .month-calendar-weekdays span:nth-last-child(-n+2){color:var(--brand-strong)}
.admin-glass .month-calendar-grid{gap:7px}
.admin-glass .month-calendar-day{min-height:94px;padding:11px 7px 8px;border-radius:17px;background:color-mix(in srgb,var(--surface) 70%,transparent);border:1px solid var(--line);box-shadow:inset 0 1px 0 #ffffff08;transition:background .2s,border-color .2s,transform .2s}
.admin-glass .month-calendar-day>b{display:grid;place-items:center;width:27px;height:27px;font-size:14px;font-weight:550;line-height:1;border-radius:9px}
.admin-glass .month-calendar-day.is-outside{opacity:.34}
.admin-glass .month-calendar-day.is-today>b{background:var(--brand-soft);color:var(--brand-strong)}
.admin-glass .month-calendar-day.is-today{border-color:color-mix(in srgb,var(--brand) 40%,var(--line))}
.admin-glass .month-calendar-day.is-selected{background:linear-gradient(145deg,color-mix(in srgb,var(--brand) 13%,transparent),transparent),var(--glass);border-color:color-mix(in srgb,var(--brand) 60%,var(--line));box-shadow:inset 0 1px 0 #ffffff25,0 4px 16px #0000000c;color:var(--brand-strong)}
.admin-glass .month-lesson-strips{margin-top:10px;gap:2px}
.admin-glass .month-lesson-strips i{height:5px;border-radius:3px;box-shadow:none}
.admin-glass .month-lesson-strips i.is-empty{background:color-mix(in srgb,var(--ink-soft) 16%,transparent)}
.admin-glass .month-extra-lessons{gap:3px;margin-top:4px}
.admin-glass .month-activity-dots{padding-top:7px;gap:3px}
.admin-glass .month-activity-dots i{width:4px;height:4px}
.admin-glass .month-note-label{font-weight:550;font-size:8px;line-height:1.2;border-color:color-mix(in srgb,var(--note-color) 35%,transparent);background:color-mix(in srgb,var(--note-color) 14%,var(--surface));margin-top:5px}
.admin-glass .month-calendar-day .month-note-glow{opacity:.3}
.admin-glass .month-calendar-legend{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);gap:10px 16px;font-size:10px;line-height:1.4}
.admin-glass .month-calendar-legend span{gap:6px}
.admin-glass .month-calendar-legend .legend-strip{width:11px;height:4px;background:var(--lesson-tone);box-shadow:none}
.admin-glass .month-calendar-legend .legend-dot{background:var(--ink-soft);width:4px;height:4px}
.admin-glass .month-calendar-hint{margin:12px 0 0;color:var(--ink-soft);font-size:11px;line-height:1.6}
.admin-glass .month-calendar-dialog :is(a,button):focus-visible{outline:2px solid var(--brand-strong);outline-offset:3px}
@media(hover:hover){.admin-glass .month-calendar-day:hover{border-color:color-mix(in srgb,var(--brand) 48%,var(--line));background:var(--brand-soft)}.admin-glass .month-calendar-nav a:hover{border-color:var(--brand)}}
@media(max-width:600px){
 .admin-glass dialog.modal.month-calendar-dialog{width:calc(100% - 20px);max-height:calc(100dvh - max(24px,var(--tg-top,0px),env(safe-area-inset-top)) - max(24px,var(--tg-bottom,0px),env(safe-area-inset-bottom)));padding:21px 14px;border-radius:25px}
 .admin-glass .month-calendar-head{padding-bottom:20px;gap:8px}
 .admin-glass .month-calendar-heading{gap:10px}.admin-glass .month-calendar-mark{width:39px;height:42px;border-radius:13px}.admin-glass .month-calendar-mark svg{width:22px;height:22px}
 .admin-glass .month-calendar-head h2{font-size:22px}.admin-glass .month-calendar-nav{margin-bottom:20px}
 .admin-glass .month-calendar-grid,.admin-glass .month-calendar-weekdays{gap:4px}
 .admin-glass .month-calendar-day{min-height:76px;padding:7px 3px 6px;border-radius:12px}
 .admin-glass .month-calendar-day>b{font-size:13px;width:25px;height:25px}
 .admin-glass .month-lesson-strips{margin-top:8px;gap:1.5px}.admin-glass .month-lesson-strips i{height:4px}
 .admin-glass .month-calendar-legend{margin-top:18px;padding-top:15px;gap:10px 12px;font-size:9px}
 .admin-glass .month-calendar-hint{font-size:10px}
}
@media(max-width:350px){.admin-glass dialog.modal.month-calendar-dialog{padding-inline:10px}.admin-glass .month-calendar-day{min-height:69px}.admin-glass .month-calendar-head h2{font-size:19px}.admin-glass .month-calendar-mark{display:none}.admin-glass .month-calendar-legend{column-gap:9px}}
@media(prefers-reduced-motion:reduce){.admin-glass .month-calendar-day{transition:none}}
