.schedule-page{padding-top:42px}.schedule-groups{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0 18px}.schedule-group-btn{border:2px solid var(--em);background:transparent;color:var(--em);border-radius:999px;padding:9px 16px;font:700 13px Inter,system-ui,sans-serif;cursor:pointer;transition:.16s}.schedule-group-btn:hover{background:rgba(20,100,63,.06)}.schedule-group-btn.active{background:var(--em);color:#fff}
.schedule-week-nav{display:grid;grid-template-columns:72px minmax(0,1fr) 72px;gap:10px;align-items:center;margin-bottom:18px}.schedule-week-arrow{width:72px;height:72px;min-width:72px;min-height:72px;padding:0;border:2px solid var(--line);background:#edf6ef;color:var(--em);border-radius:16px;font:700 30px/1 Inter,system-ui,sans-serif;cursor:pointer;transition:background .15s,transform .15s,opacity .15s;display:grid;place-items:center}.schedule-week-arrow:hover:not(:disabled){background:#dcefe3}.schedule-week-arrow:active:not(:disabled){background:#cee7d7;transform:translateY(1px)}.schedule-week-arrow:disabled{opacity:.3;cursor:default}.schedule-week-summary{height:72px;border-radius:18px;background:linear-gradient(135deg,#dff1e5,#cfe8d8);border:1px solid #b9dac4;display:grid;align-content:center;justify-items:center;text-align:center;padding:8px 16px;min-width:0}.schedule-week-range{font-weight:800;color:var(--emd);font-size:18px;font-variant-numeric:tabular-nums}.schedule-week-number{margin-top:2px;color:var(--em);font-size:13px;font-weight:700}
.schedule-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}.schedule-day-head{appearance:none;background:linear-gradient(135deg,#dff1e5,#cfe8d8);border:1px solid var(--line);border-radius:14px;padding:10px 8px;text-align:center;font:inherit;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s}.schedule-day-head:hover{background:#e7f3eb;border-color:#b8d8c2}.schedule-day-head:active{background:#dceee2;transform:translateY(1px)}.schedule-day-head.active{background:var(--em);border-color:var(--em);box-shadow:0 7px 18px rgba(20,100,63,.12)}.schedule-day-date,.schedule-day-name{font-weight:800;color:var(--emd);font-size:15px;line-height:1.35}.schedule-day-name{text-transform:lowercase}.schedule-day-head.active .schedule-day-date,.schedule-day-head.active .schedule-day-name{color:#fff}
.schedule-grid{display:block}.schedule-day-column{display:grid;gap:12px;min-width:0;width:100%}.lesson-card{position:relative;overflow:hidden;width:100%;border:2px solid var(--em);background:transparent;border-radius:17px;padding:16px 17px;text-align:left;color:var(--text);font:inherit;cursor:pointer;transition:background .16s,border-color .16s,box-shadow .16s,opacity .16s,filter .16s;min-width:0}.lesson-card>*{position:relative;z-index:2}.lesson-card.is-past{opacity:.42;filter:saturate(.68)}.lesson-card.is-current{border-width:3px;border-color:var(--emd);background:rgba(20,100,63,.12);box-shadow:0 7px 20px rgba(13,77,48,.10)}.lesson-card.is-current::after{content:"";position:absolute;z-index:3;pointer-events:none;left:3px;top:3px;bottom:3px;width:var(--lesson-progress,0%);max-width:calc(100% - 6px);border-radius:13px 0 0 13px;background:rgba(242,249,244,.72);transition:width .35s ease}.lesson-card:hover{background:rgba(20,100,63,.035);box-shadow:0 7px 18px rgba(29,86,60,.06)}.lesson-card:active{background:rgba(20,100,63,.065)}.lesson-main-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}.lesson-title{font-size:16px;font-weight:800;color:var(--emd);line-height:1.35;overflow-wrap:anywhere}.lesson-type{display:inline-flex;align-items:center;border:1.5px solid currentColor;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:800;white-space:nowrap}.lesson-type.lecture{color:#177245;background:#ddf2e5}.lesson-type.practice{color:#a85b11;background:#faead8}.lesson-type.lab{color:#8c3442;background:#f3dfe3}.lesson-type.consultation{color:#65706c;background:#e8edeb}.lesson-meta{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:11px;color:var(--muted);font-size:13px;font-style:italic;font-weight:600}.lesson-meta span:first-child{font-style:italic;font-weight:800}.lesson-meta span:nth-child(2){text-align:center}.lesson-meta span:nth-child(3){text-align:right}.lesson-counts{margin-top:10px;color:var(--em);font-size:13px;font-weight:800}
.schedule-assignment{display:grid;grid-template-columns:64px minmax(0,1fr);gap:9px;align-items:start}.schedule-assignment .date{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:64px;min-width:64px;height:28px;margin:0;padding:2px 7px;border:2px solid transparent;border-radius:999px;line-height:20px;font-variant-numeric:tabular-nums;text-align:center}.schedule-assignment .date.near{border-color:var(--red)}.schedule-assignment .date.urgent{border-color:var(--bright);background:var(--bright);color:#fff}.schedule-assignment-text{color:var(--blue);font-size:13px;font-weight:600;overflow-wrap:anywhere}.schedule-empty{border:1px dashed var(--line);border-radius:14px;padding:18px 10px;text-align:center;color:#91a39c;font-size:13px}.schedule-note{margin:16px 0 0;color:var(--muted);font-size:11px;text-align:center}
/* Modal lesson details */
.schedule-modal-overlay{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px;background:rgba(13,52,39,.30);backdrop-filter:blur(3px);animation:scheduleFade .14s ease}.schedule-modal{position:relative;width:min(620px,100%);max-height:min(82vh,760px);overflow:auto;background:#f7fbf8;border:1px solid var(--line);border-radius:22px;box-shadow:0 24px 80px rgba(15,55,38,.24);padding:26px}.schedule-modal-close{position:absolute;right:13px;top:12px;width:36px;height:36px;border:0;border-radius:50%;background:rgba(231,242,235,.9);color:var(--muted);font:500 25px/1 Inter,system-ui,sans-serif;cursor:pointer}.schedule-modal-close:hover{background:#dcece1}.schedule-modal-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;padding-right:42px;margin-bottom:20px}.schedule-modal-title{font-size:20px;font-weight:800;color:var(--emd);line-height:1.3;overflow-wrap:anywhere}.schedule-modal-values{display:grid;gap:13px}.schedule-modal-value{font-size:15px;font-weight:600;color:var(--text);overflow-wrap:anywhere}.schedule-modal-value.meta{font-style:italic;color:var(--muted)}.schedule-modal-assignments{display:grid;gap:9px;padding-top:3px}.schedule-modal-empty{color:var(--muted);font-size:13px;font-style:italic}.schedule-modal-open{overflow:hidden}@keyframes scheduleFade{from{opacity:0}to{opacity:1}}
@media(max-width:900px){.lesson-title{font-size:15px}.lesson-meta{font-size:12px}}
@media(max-width:640px){.schedule-week-nav{grid-template-columns:58px minmax(0,1fr) 58px;gap:7px}.schedule-week-arrow{width:58px;height:58px;min-width:58px;min-height:58px;border-radius:14px}.schedule-week-summary{height:58px;border-radius:15px;padding:6px 10px}.schedule-week-range{font-size:15px}.schedule-week-number{font-size:11px}.schedule-days{gap:6px}.schedule-day-head{padding:8px 4px;border-radius:12px}.schedule-day-date,.schedule-day-name{font-size:13px}.lesson-card{padding:14px}.lesson-main-row{grid-template-columns:minmax(0,1fr)}.lesson-type{justify-self:start}.lesson-meta{font-size:11px}.schedule-modal{padding:22px 18px}.schedule-modal-head{grid-template-columns:1fr;padding-right:42px}.schedule-modal-title{font-size:18px}}
@media(max-width:520px){.schedule-group-btn{flex:1 1 0;text-align:center;padding-inline:9px}.lesson-meta{grid-template-columns:1fr;gap:2px}.lesson-meta span,.lesson-meta span:nth-child(2),.lesson-meta span:nth-child(3){text-align:left}}

/* Live RUZ source states */
.schedule-loading,.schedule-error{border:1px dashed var(--line);border-radius:14px;padding:20px;text-align:center;color:var(--muted);font-size:13px}.schedule-error{border-color:#d9aaaa;color:#9b3d3d;background:rgba(255,255,255,.26)}.lesson-type.other{color:#496b82;background:#e4eef4}

/* 2026-09-09: inactive day buttons mirror the week field */
.schedule-day-head:not(.active){background:linear-gradient(135deg,#dff1e5,#cfe8d8);border-color:#b9dac4}
.schedule-day-head:not(.active):hover{background:linear-gradient(135deg,#d7ecdf,#c5e2cf);border-color:#a9cfb6}

/* Assignment counts and safe markdown-style links */
.lesson-counts-urgent{color:#7f2637;font-weight:900}
.schedule-assignment-link{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
.schedule-assignment-link:hover{color:var(--em)}

.schedule-day-announcements{display:grid;gap:10px;margin:0 0 14px}
.schedule-announcement{box-sizing:border-box;border-radius:14px;padding:12px 14px;line-height:1.45;overflow-wrap:anywhere}
.schedule-announcement a{color:inherit;text-decoration:underline;text-underline-offset:2px;font-weight:inherit}
.schedule-announcement.p10{background:#a82436;color:#fff;border:2px solid #a82436;font-weight:700}
.schedule-announcement.p9{background:transparent;color:#7f1727;border:2px solid #a82436;font-weight:700}
.schedule-announcement.p8{background:transparent;color:#7f1727;border:2px dashed #a82436;font-weight:700}
.schedule-announcement.p7{background:#315f9d;color:#fff;border:2px solid #315f9d;font-weight:700}
.schedule-announcement.p6{background:transparent;color:#244c80;border:2px solid #315f9d}
.schedule-announcement.p5{background:transparent;color:#244c80;border:2px dashed #315f9d}
.schedule-announcement.p4{background:transparent;color:#176344;border:2px solid #278a61}
.schedule-announcement.p1,.schedule-announcement.p2,.schedule-announcement.p3{background:transparent;color:#176344;border:2px dashed #278a61}

.lesson-counts-urgent{color:#7f1727}
.lesson-counts.all-urgent{color:#7f1727}
.lesson-countdown{margin:2px 4px -2px 0;text-align:right;color:var(--muted);font-size:13px;font-style:italic;line-height:1.3}
.lesson-countdown-time{font-style:italic;font-weight:800;color:inherit}
