/* Personal, Moscow-time schedule. Only actual teacher-created events are shown. */
.student-calendar-rail,.student-calendar-page{font:400 15px/1.6 Manrope,sans-serif;color:var(--cabinet-ink);min-width:0}
.student-calendar-rail :is(h2,h3,p),.student-calendar-page :is(h1,h2,h3,p){margin:0;font-family:inherit;letter-spacing:normal;font-style:normal;text-transform:none}
.student-calendar-rail :is(a,button),.student-calendar-page :is(a,button){font-family:inherit;text-underline-offset:4px}
.student-calendar-rail .icon,.student-calendar-page .icon{width:18px;height:18px;flex:none}
.student-calendar-rail{background:#fff;border:1px solid var(--cabinet-line);border-radius:14px;padding:18px;align-self:start}
.calendar-rail-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}
.app-layout .calendar-rail-heading h2{font-size:17px;font-weight:750;line-height:1.4;letter-spacing:-.015em}
.calendar-rail-heading>a{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:var(--cabinet-canvas);color:var(--cabinet-accent)}
.calendar-rail-heading>a:hover{background:var(--cabinet-accent-soft)}
.app-layout .student-calendar-rail h3{font-size:12px;font-weight:650;line-height:1.5;color:var(--cabinet-muted);margin-bottom:10px}
.calendar-rail-lesson>time{display:block;font-size:13px;line-height:1.6;color:var(--cabinet-ochre)}
.calendar-rail-lesson>time>strong{display:block;font-size:24px;font-weight:750;line-height:1.35;color:var(--cabinet-ink);margin-top:4px;font-variant-numeric:tabular-nums}
.calendar-rail-lesson p.calendar-rail-title{font-size:14px;font-weight:650;line-height:1.6;margin-top:8px;overflow-wrap:anywhere}
.calendar-join{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:10px 14px;border-radius:8px;background:var(--cabinet-accent);color:#fff;font-size:13px;font-weight:700;line-height:1.4;text-decoration:none;margin-top:16px}
.calendar-join:hover{background:var(--cabinet-accent-hover)}
.calendar-rail-lesson .calendar-join{width:100%;justify-content:space-between}
.calendar-no-room{font-size:12px;color:var(--cabinet-muted);line-height:1.65;margin-top:12px!important}
.calendar-rail-empty{font-size:13px;line-height:1.7;color:var(--cabinet-muted)}
.calendar-rail-deadlines{margin-top:21px;padding-top:17px;border-top:1px solid var(--cabinet-line)}
.calendar-rail-deadlines>ul{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.calendar-rail-deadlines a{display:block;color:var(--cabinet-ink);text-decoration:none;padding:2px 0}
.calendar-rail-deadlines a:hover>strong{text-decoration:underline}
.calendar-rail-deadlines strong{font-size:13px;line-height:1.5;font-weight:650;display:block;overflow-wrap:anywhere}
.calendar-rail-deadlines time{display:block;font-size:12px;line-height:1.5;color:var(--cabinet-ochre);margin-top:4px;font-variant-numeric:tabular-nums}
.student-calendar-rail>footer{margin-top:19px;padding-top:14px;border-top:1px solid var(--cabinet-line)}
.student-calendar-rail>footer>a{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:36px;font-size:13px;font-weight:700;color:var(--cabinet-accent);text-decoration:none}
.student-calendar-rail>footer>a:hover{text-decoration:underline}
.student-calendar-rail>footer>span{display:block;margin-top:6px;font-size:11px;line-height:1.5;color:var(--cabinet-muted)}
.calendar-loading{display:flex;align-items:center;gap:9px;padding:20px 0;font-size:13px;color:var(--cabinet-muted)}
.calendar-error{padding:14px 0;color:var(--cabinet-muted);font-size:13px;line-height:1.65}
.calendar-error>p{font-weight:650;color:var(--cabinet-ink)}
.calendar-error>span{display:block;margin-top:6px;overflow-wrap:anywhere}
.calendar-error>button{display:inline-flex;align-items:center;gap:8px;min-height:44px;background:none;border:0;padding:7px 0;font-size:13px;font-weight:700;color:var(--cabinet-accent)}
.calendar-back{display:inline-flex;align-items:center;gap:8px;min-height:40px;font-size:14px;font-weight:650;color:var(--cabinet-accent);text-decoration:none;margin-bottom:15px}
.calendar-back>.icon{transform:rotate(180deg)}
.calendar-back:hover{text-decoration:underline}
.student-calendar-heading{margin-bottom:23px}
.app-layout .student-calendar-heading h1{font-size:27px;line-height:1.3;font-weight:800;letter-spacing:-.025em}
.student-calendar-heading>p{font-size:15px;line-height:1.6;color:var(--cabinet-muted);margin-top:8px}
.student-calendar-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(250px,.8fr);gap:25px;align-items:start}
.calendar-month-panel{background:#fff;border:1px solid var(--cabinet-line);border-radius:14px;padding:22px;min-width:0}
.calendar-month-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px}
.app-layout .calendar-month-toolbar h2{font-size:19px;line-height:1.4;font-weight:750;text-transform:capitalize;letter-spacing:-.015em}
.calendar-month-toolbar>div{display:flex;gap:5px;align-items:center}
.calendar-month-toolbar button{background:var(--cabinet-canvas);color:var(--cabinet-accent);border:0;min-height:40px;border-radius:8px;font-weight:650}
.calendar-month-toolbar button:hover{background:var(--cabinet-accent-soft)}
.calendar-month-arrow{display:grid;place-items:center;width:40px;flex:none;padding:9px}
.calendar-month-arrow--previous>.icon{transform:rotate(180deg)}
.calendar-month-toolbar .calendar-today{font-size:12px;padding:9px 12px;margin-right:2px}
.calendar-weekdays,.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.calendar-weekdays{margin-bottom:8px}
.calendar-weekdays>span{text-align:center;font-size:12px;font-weight:600;color:var(--cabinet-muted);padding:4px}
.calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:62px;padding:7px 3px;background:#fff;color:var(--cabinet-ink);border:1px solid transparent;border-radius:8px;text-align:center;font-size:15px;line-height:1.3;position:relative;cursor:pointer;font-variant-numeric:tabular-nums}
.calendar-day:hover{background:var(--cabinet-hover)}
.calendar-day.is-outside{color:#8b7c70;background:#faf9f6}
.calendar-day.is-today{border-color:var(--cabinet-ochre)}
.calendar-day.is-today>time{font-weight:800}
.calendar-day.is-selected{background:var(--cabinet-accent);border-color:var(--cabinet-accent);color:#fff}
.calendar-day-marks{display:flex;align-items:center;justify-content:center;gap:3px;min-height:10px}
.calendar-mark{display:inline-block;width:6px;height:6px;border-radius:50%;flex:none}
.calendar-mark--lesson{background:#54331f}
.calendar-mark--deadline{background:#bd8019}
.calendar-day-count{font-size:10px;font-weight:650;margin-left:2px;color:var(--cabinet-muted)}
.calendar-day.is-selected .calendar-mark--lesson{background:#fff}
.calendar-day.is-selected .calendar-mark--deadline{background:#e8b65b}
.calendar-day.is-selected .calendar-day-count{color:#fff}
.calendar-legend{display:flex;gap:19px;flex-wrap:wrap;padding-top:17px;margin-top:14px;border-top:1px solid var(--cabinet-line);font-size:12px;color:var(--cabinet-muted)}
.calendar-legend>span{display:inline-flex;align-items:center;gap:7px}
.calendar-legend .calendar-mark{width:7px;height:7px}
.calendar-selected-day>header{margin-bottom:15px}
.app-layout .calendar-selected-day>header h2{font-size:19px;font-weight:750;line-height:1.5;letter-spacing:-.015em;text-transform:capitalize}
.calendar-selected-day>header>span{display:block;margin-top:4px;font-size:12px;color:var(--cabinet-muted)}
.calendar-event{background:#fff;border:1px solid var(--cabinet-line);border-radius:12px;padding:20px}
.calendar-event+.calendar-event{margin-top:12px}
.calendar-event-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px;flex-wrap:wrap}
.calendar-event-type{display:inline-flex;gap:6px;align-items:center;font-size:12px;font-weight:700;color:var(--cabinet-accent)}
.calendar-event-type>.icon{width:16px;height:16px}
.calendar-event--deadline .calendar-event-type{color:var(--cabinet-ochre)}
.calendar-event-heading>time{font-size:13px;font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap}
.app-layout .calendar-event h3{font-size:16px;line-height:1.55;font-weight:700;overflow-wrap:anywhere}
.calendar-event-description{font-size:14px;line-height:1.7;color:var(--cabinet-muted);margin-top:9px!important;white-space:pre-wrap;overflow-wrap:anywhere}
.calendar-day-empty{padding:26px 22px;border:1px dashed var(--cabinet-control-line);border-radius:12px}
.calendar-day-empty>.icon{color:var(--cabinet-muted);width:23px;height:23px;margin-bottom:13px}
.app-layout .calendar-day-empty h3{font-size:16px;line-height:1.5;font-weight:700}
.calendar-day-empty>p{font-size:14px;line-height:1.7;color:var(--cabinet-muted);margin-top:9px}
.calendar-day-empty>a{display:inline-flex;align-items:center;gap:7px;min-height:44px;color:var(--cabinet-accent);font-size:13px;font-weight:700;text-decoration:none;margin-top:10px}
.calendar-day-empty>a:hover{text-decoration:underline}
@media(max-width:1200px){.student-calendar-layout{grid-template-columns:1fr;gap:24px}.calendar-selected-day{max-width:none}.calendar-month-grid{gap:6px}.calendar-day{min-height:63px}}
@media(max-width:760px){.app-layout .student-calendar-heading h1{font-size:25px}.calendar-month-panel{padding:18px}.calendar-month-toolbar{gap:10px;flex-wrap:wrap}.app-layout .calendar-month-toolbar h2{font-size:18px}.calendar-day{min-height:56px}.calendar-month-grid,.calendar-weekdays{gap:3px}.calendar-event{padding:18px}.student-calendar-rail{padding:18px}.calendar-rail-lesson .calendar-join{max-width:340px}}
@media(max-width:400px){.calendar-month-panel{padding:15px 12px}.calendar-month-toolbar{gap:9px}.app-layout .calendar-month-toolbar h2{font-size:16px}.calendar-month-toolbar>div{gap:3px}.calendar-month-arrow{width:35px}.calendar-month-toolbar .calendar-today{padding:8px;font-size:11px}.calendar-day{min-height:51px;font-size:14px}.calendar-day-count{display:none}.calendar-event-heading{gap:8px}}
