:root{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#202b3d;background:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;font-weight:400}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,a{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh}.page{max-width:1280px;padding:39px 28px 24px;margin:0 auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:1px 0 30px}.page-heading h1{margin:0;font-family:Manrope,sans-serif;font-weight:800;font-size:clamp(30px,3vw,38px);letter-spacing:-.055em;line-height:1.18;color:#17233d}.page-heading p.group-code{margin:5px 0 0;color:#8894a5;font-size:12px;letter-spacing:.01em}.week-navigation{display:flex;align-items:center;gap:3px;flex:0 0 auto}.week-nav-button{width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:7px;background:transparent;color:#748197;font-size:12px;font-weight:500;cursor:pointer;transition:color .15s,background .15s}.week-nav-current{width:auto;min-width:48px;padding:0 7px;color:#64748b;white-space:nowrap}.week-nav-button:not(:disabled):hover{background:#f3f6fa;color:#2d67aa}.week-nav-button:disabled{color:#9ca6b4;cursor:default}.week-nav-button:focus-visible{outline:2px solid #7ca8e2;outline-offset:2px}.week-nav-icon{display:inline-flex;color:currentColor}.week-nav-icon.is-left svg{transform:rotate(180deg)}.notice{margin:-10px 0 18px;padding:11px 0;border-top:1px solid;border-bottom:1px solid;font-size:13px;line-height:1.5}.notice-warning{color:#825411;border-color:#f1dfb6}.notice-error{color:#8a3940;border-color:#f2d8d9}.content-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:30px;align-items:start}.schedule-column,.deadline-column{min-width:0}.week-panel{width:100%}.week-missing{margin:0 0 14px;padding:9px 0;border-top:1px solid #eee2c9;border-bottom:1px solid #eee2c9;color:#7d663f;font-size:12px;line-height:1.45}.week-board-scroll{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-color:#c8d2e0 transparent;scrollbar-width:thin}.week-board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.day-column{min-width:0;padding:0 13px;border-left:1px solid #e9edf2}.day-column.is-today{background:#f1f7ff}.day-column:first-child{padding-left:0;border-left:0}.day-column:last-child{padding-right:0}.day-column-head{min-height:43px;padding:8px 0 10px;display:flex;align-items:baseline;justify-content:space-between;gap:8px;border-bottom:1px solid #e9edf2}.day-column.is-today .day-column-head{border-bottom-color:#b9cee9}.day-column-name{color:#354257;font:700 13px Manrope,sans-serif;text-transform:capitalize}.day-column-date{color:#7d899a;font-size:11px;font-weight:600;white-space:nowrap}.day-column.is-today .day-column-name,.day-column.is-today .day-column-date{color:#2868b2}.day-lesson-list{display:flex;flex-direction:column}.lesson-card{position:relative;padding:13px 3px 14px;display:flex;flex-direction:column;align-items:flex-start;gap:7px;border-bottom:1px solid #edf0f4;background:transparent}.lesson-card.is-next{padding-left:10px;border-bottom-color:#c1daf7;border-radius:6px;background:#dcecff;box-shadow:inset 3px 0 #3e7fca}.lesson-time{display:flex;align-items:baseline;gap:5px;color:#2e405f;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.time-separator{color:#7788a2;font-weight:500}.lesson-card h3{margin:0;overflow-wrap:anywhere;color:#25324b;font:600 13px Manrope,sans-serif;line-height:1.4}.lesson-details{width:100%;display:flex;flex-direction:column;gap:4px}.lesson-details p{margin:0;font-size:12px;line-height:1.4;overflow-wrap:anywhere}.lesson-kind{color:#526580;font-weight:600}.lesson-teacher{color:#3f5069;font-size:13px!important;font-weight:500}.course-link{width:max-content;display:inline-flex;align-items:center;gap:6px;margin-top:1px;color:#53749f;font-size:12px;font-weight:600;text-decoration:underline;text-decoration-color:#53749f8c;text-decoration-thickness:1px;text-underline-offset:3px;transition:color .15s,text-decoration-color .15s}.course-link:hover{color:#285b9f;text-decoration-color:currentColor}.course-pending{color:#8994a4;font-size:11px;white-space:nowrap}.day-empty{margin:0;padding:14px 3px;color:#818b9a;font-size:12px}.week-loading{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#7e8ba0;font-size:12px}.week-loading p{margin:0}.empty-state{min-height:170px;padding:26px 0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left}.empty-state h3{margin:0 0 5px;color:#34415a;font:600 14px Manrope,sans-serif}.empty-state p{max-width:340px;margin:0;color:#8b96a8;font-size:12px;line-height:1.6}.loader{width:22px;height:22px;border:2px solid #dce6f4;border-top-color:#2468d5;border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.deadlines-panel{padding:25px 0 0;border-top:1px solid #e3e8ef}.deadlines-heading{display:flex;justify-content:space-between;align-items:baseline;padding:0 0 12px}.deadlines-heading h2{margin:0;color:#202d47;font:700 16px Manrope,sans-serif;letter-spacing:-.02em}.deadlines-heading p{margin:4px 0 0;color:#8994a6;font-size:11px}.deadline-count{color:#7a8799;font-size:12px;font-variant-numeric:tabular-nums}.deadline-list{display:flex;flex-direction:column}.deadline-item{min-height:72px;display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:center;padding:10px 0;border-top:1px solid #edf0f5}.date-tile{width:38px;min-height:42px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#53627c}.date-tile strong{font:700 17px Manrope,sans-serif;line-height:1.15}.date-tile span{color:#8692a5;font-size:9px;text-transform:capitalize}.date-tile.is-today{color:#ba7b11}.date-tile.is-today span{color:#bd8626}.deadline-copy{min-width:0}.deadline-copy a{display:inline}.deadline-copy h3{margin:0;display:flex;align-items:flex-start;gap:4px;color:#293750;font:600 12px Manrope,sans-serif;line-height:1.45}.deadline-copy h3 svg{margin-top:2px;color:#8e9ab0;flex:0 0 auto}.deadline-copy a:hover h3{color:#2468d5}.deadline-copy p{margin:3px 0 4px;overflow:hidden;color:#8995a7;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.deadline-copy time{color:#a36c1c;font-size:10px}.deadline-copy time.due-today{color:#c47f0d;font-weight:700}.deadline-empty{min-height:115px;padding:22px 0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;text-align:left;border-top:1px solid #edf0f5}.deadline-empty h3{margin:0 0 5px;color:#34415a;font:600 13px Manrope,sans-serif;line-height:1.5}.deadline-empty p{margin:0;color:#8b96a8;font-size:11px;line-height:1.6}.page-footer{margin-top:27px;padding:15px 1px 0;display:flex;justify-content:space-between;gap:14px;border-top:1px solid #e5eaf1;color:#9aa4b3;font-size:10px}@media(max-width:700px){.page{padding:26px 16px 20px}.page-heading{gap:8px;margin-bottom:25px}.page-heading h1{font-size:29px}.page-heading p.group-code{margin-top:3px;font-size:11px}.week-navigation{gap:1px}.week-nav-button{width:32px;height:32px}.week-nav-current{width:auto;min-width:43px;padding:0 4px;font-size:11px}.content-grid{gap:25px}.week-board-scroll{margin-right:-16px;padding-right:16px;padding-bottom:5px;scroll-snap-type:x proximity}.week-board{width:max-content;grid-template-columns:repeat(5,244px)}.day-column{padding:0 14px;scroll-snap-align:start}.day-column:first-child{padding-left:0}.day-column:last-child{padding-right:14px}.lesson-card{padding-top:12px;padding-bottom:13px}.deadlines-panel{padding-top:21px}.page-footer{flex-direction:column;gap:5px;font-size:9px}}@media(min-width:701px)and (max-width:1100px){.week-board{width:max-content;grid-template-columns:repeat(5,228px)}.week-board-scroll{scroll-snap-type:x proximity}.day-column{scroll-snap-align:start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
