@charset "UTF-8";.not-found-container{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 100px);padding:20px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.not-found-content{background:white;border-radius:10px;padding:40px;max-width:600px;width:100%;box-shadow:0 10px 40px #0003;text-align:center}.not-found-title{font-size:120px;font-weight:700;margin:0;color:#667eea;line-height:1}.not-found-subtitle{font-size:28px;margin:10px 0 20px;color:#333}.not-found-message{font-size:16px;color:#666;margin-bottom:30px}.not-found-actions{display:flex;gap:10px;justify-content:center;margin-bottom:30px;flex-wrap:wrap}.btn{padding:10px 20px;border-radius:5px;text-decoration:none;font-weight:500;cursor:pointer;transition:all .3s ease;border:none;display:inline-block}.btn-primary{background-color:#667eea;color:#fff}.btn-primary:hover{background-color:#5568d3;transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.btn-secondary{background-color:#f0f0f0;color:#333;border:1px solid #ddd}.btn-secondary:hover{background-color:#e8e8e8;transform:translateY(-2px)}.debug-info{margin-top:40px;border-top:2px solid #f0f0f0;text-align:left;background-color:#f9f9f9;border-radius:5px;padding:20px}.debug-info h3{margin-top:0;color:#667eea;font-size:18px}.debug-info p{margin:12px 0;font-size:14px}.debug-info strong{display:inline-block;width:150px;color:#333}.debug-info code{background-color:#f0f0f0;padding:2px 6px;border-radius:3px;font-family:Courier New,monospace;color:#d63384;word-break:break-all;display:inline-block;margin-left:10px}.debug-info details{margin-top:15px;cursor:pointer}.debug-info summary{font-weight:500;color:#667eea;padding:8px;background-color:#fff;border-radius:3px;border:1px solid #e0e0e0;-webkit-user-select:none;user-select:none}.debug-info summary:hover{background-color:#f5f5f5}.debug-info pre{background-color:#2d2d2d;color:#f8f8f2;padding:12px;border-radius:3px;overflow-x:auto;font-size:12px;margin:10px 0 0}.debug-info .available-routes{list-style:none;padding:0;margin:10px 0 0}.debug-info .available-routes li{padding:6px;background-color:#fff;border-left:3px solid #667eea;margin-bottom:4px;font-size:13px}.debug-info .available-routes code{color:#d63384;padding:2px 4px}@media (max-width: 600px){.not-found-content{padding:30px 20px}.not-found-title{font-size:80px}.not-found-subtitle{font-size:22px}.not-found-actions{flex-direction:column}.btn{width:100%}.debug-info{font-size:12px}.debug-info strong{display:block;margin-bottom:5px;width:auto}.debug-info code{display:block;margin:5px 0 0}}:root{font-family:Helvetica,sans-serif;--clr-bg: hsl(215, 61%, 93%);--clr-accent: hsl(216, 61%, 69%);--clr-text: hsl(210, 21%, 15%);--clr-red: hsl(0, 45%, 36%);--clr-bg-red: hsl(0, 61%, 93%);--gradient: linear-gradient(to bottom, white, var(--clr-bg));--gradient-darker: linear-gradient(to bottom, var(--clr-bg), var(--clr-accent));--gradient-red: linear-gradient(to bottom, var(--clr-bg-red), var(--clr-red))}*{margin:0;padding:0;box-sizing:border-box;color:var(--clr-text)}body{overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:var(--clr-accent)}section+section{margin-top:2em}.btn-list{display:flex;gap:1em;margin-bottom:1em}@media (width < 400px){.btn-list .btn--material-icons{width:24px;height:24px;overflow:hidden}}.ignored-lessons{border:1px solid var(--clr-accent);margin-bottom:1em;background-color:var(--clr-bg)}.ignored-lessons .btn-list{margin:0;background-image:var(--gradient);border-top:1px solid var(--clr-accent);padding:.5em}.ignored-lessons__list{display:flex;flex-direction:column;justify-content:start;gap:.2em;padding:.5em}.ignored-lessons__list>div{display:flex;gap:.5em;align-items:center}.ignored-lessons__list>div span{opacity:.5}.ignored-lessons__list>div span:hover{opacity:1}.ignored-lessons .btn-uncheck-all span{opacity:1}.btn--material-icons{display:flex;gap:.2em;align-items:center;cursor:pointer}.btn--material-icons.active{color:var(--clr-accent)}.btn--material-icons.active>.material-icons{color:var(--clr-accent)}.btn--material-icons:hover,.btn--material-icons:hover span{color:red}.btn--material-icons:hover>.material-icons{color:red}input[type=text],input[type=search],input[type=password]{outline:none;font-family:Helvetica,sans-serif;font-size:12pt;padding:.1em .2em}.login{position:absolute;top:50%;left:50%;translate:-50% -50%;animation:fadeInAnimation .5s ease forwards}.period-selector{display:flex;flex-direction:column;gap:1em;align-items:center}.period-selector .custom-period{display:flex;gap:1em}.period-selector .custom-period.hidden{display:none}.user-list{display:flex;flex-direction:column;gap:1em}.user-list .user{border:2px solid var(--clr-accent);display:flex;flex-direction:column}.user-list .user.admin .user__groups{display:none}.user-list .user.admin .user__header{border:none}.user-list .user__header{display:grid;grid-template-columns:max-content max-content auto;background-image:var(--gradient);border-bottom:2px solid var(--clr-accent);padding:.5em;align-items:center;gap:.5em}.user-list .user__header>*:last-child{justify-self:end}.user-list .user__header__admin{font-style:italic;color:gray;font-size:.9em}.user-list .user__header__login{color:gray}.user-list .user__header__fullname{font-weight:700}.user-list .user__groups__title{width:100%;color:gray;padding:.5em .5em 0}.user-list .user__groups__title:has(+.user__groups__list:empty){display:none}.user-list .user__groups__list{display:flex;flex-wrap:wrap;gap:.5em;padding:.5em}.user-list .user__groups__list .user-group{cursor:pointer}.user-list .user__groups__list .user-group:hover{color:red}.user-list .user__groups__list:empty:after{content:"Группы не назначены";color:gray;font-style:italic}.user-list .user__groups__menu{border-top:2px solid var(--clr-accent);align-items:center;gap:.5em;display:flex;padding:.5em}.nav{display:flex;width:100%;background-color:var(--clr-bg);justify-content:space-between;height:60px}@media (width < 400px){.nav__profile__name{display:none}}.nav__profile{display:flex;padding:1em;align-items:center;gap:1em}.nav__profile__name{font-weight:550}.nav__profile__logout{cursor:pointer}.nav__link-list{display:flex}.nav__link-list__item{text-decoration:none;padding:1em;color:var(--clr-text);animation:opacity .5s ease forwards}.nav__link-list__item.active{background-color:#fff}.material-icons{width:24px}.material-icons.btn{cursor:pointer}.material-icons.btn:hover{color:red}header{margin-bottom:1em}footer{color:silver;background-color:var(--clr-bg);padding:1em;margin-top:4em;text-align:center}main{max-width:800px;margin:auto auto 4em;padding:1em;min-height:calc(100vh - 193px - 1em)}main section{opacity:0;animation:opacity .3s ease forwards .3s}@keyframes header{0%{translate:-100px 0;opacity:0}to{translate:0px 0;opacity:1}}@keyframes opacity{0%{opacity:0}to{opacity:1}}h1{margin-bottom:1em;animation:header .5s ease forwards;opacity:0}h2,.group-period{margin-bottom:1em}.group-percentage{margin-bottom:1em;font-weight:700}.student-table{--grid: 85px 85px 100px 60px auto;border:1px solid var(--clr-accent);margin-bottom:1em;overflow-x:auto}.student-table__header{display:grid;gap:.5em;grid-template-columns:20px 280px var(--grid);background-image:var(--gradient);text-align:center;font-weight:700;align-items:center}@media (width < 400px){.student-table__header{width:-moz-fit-content;width:fit-content}}.student-table__list{display:flex;flex-direction:column}@media (width < 400px){.student-table__list{width:-moz-fit-content;width:fit-content}}.student-table__list .student{display:grid;gap:.5em;grid-template-columns:20px 280px auto 20px;align-items:center;padding:.2em;width:100%}.student-table__list .student.ignored *{color:#b3b3b3}.student-table__list .student__stat-list{display:grid;gap:.5em;grid-template-columns:var(--grid);align-items:center}.student-table__list .student:nth-child(2n){background-color:var(--clr-bg)}.student-table__list .student__index{width:1.2em;text-align:right;color:var(--clr-accent)}.student-table__list .student__fullname{text-decoration:none;color:var(--clr-text)}.student-table__list .student__fullname:hover{text-decoration:underline}.student-table__list .student__progressbar[role=progressbar]{--fg: hsl(max(0deg, calc(120deg - var(--skipped) * 8deg)), 100%, 30%)}.student-table__list .student>*:nth-child(n+3){text-align:center}.student-table__list .student input[type=checkbox]{justify-self:end}@keyframes fadeInAnimation{0%{transform:translateY(8px);opacity:0}to{translate:translate(0,0px);opacity:1}}@keyframes passageLineAnimation{0%{width:0px}to{width:calc(var(--length) * var(--width))}}.day-graph{border:1px solid var(--clr-accent);overflow-x:auto;overflow-y:hidden;position:relative;--width: 1.2px;--min: 15;background-image:var(--gradient)}.day-graph__passage-list{position:absolute;width:100%;height:20px;top:20px;left:0}.day-graph__passage-list .passage-line{position:absolute;height:20px;left:calc(var(--start) * var(--width));background-color:#acff2f77;animation:passageLineAnimation 1s ease forwards;animation-delay:.5s}.day-graph__passage-list .passage-line.red{background-color:#ff00004b;animation-delay:1s}.day-graph__period-list{display:flex}.day-graph__period-list .graph-period{height:60px;position:relative;width:calc(var(--width) * var(--min));flex-shrink:0}.day-graph__period-list .graph-period:not(:last-child){border-right:1px solid var(--clr-accent)}.day-graph__period-list .graph-period__time{position:absolute;color:#ececec;bottom:0;font-size:.8em}.day-graph__period-list .graph-period__time--start{left:2px}.day-graph__period-list .graph-period__time--end{right:2px}.day-graph__period-list .graph-period__index{left:50%;bottom:0;translate:-50% 10%;height:-moz-fit-content;height:fit-content;font-size:1.2em;color:#0000001a!important;filter:blur(.2px);font-weight:700}.day-graph__period-list .graph-period__lesson-name{color:gray;padding:2px;left:0;overflow:hidden;width:inherit;height:2.5em;overflow-wrap:break-word;position:absolute}.day-graph__period-list .graph-period__lesson-name:hover{text-overflow:initial;background-color:var(--clr-accent);color:#fff;height:3.6em;z-index:1000}.day-graph__period-list .graph-period.lesson{--min: 90}.day-graph__period-list .graph-period.lesson.active{background-image:var(--gradient-darker)}.day-graph__period-list .graph-period.lesson.ignored{background-image:linear-gradient(to bottom,white,#93a0ad)}.day-graph__period-list .graph-period.lesson.skipped{background-image:linear-gradient(to bottom,white,#d06b6b)}.day-graph__period-list .graph-period.lesson.skipped .graph-period__lesson-name:hover{background-color:#d06b6b}.day-graph__period-list .graph-period.lesson:not(.active){background-color:#8080801a}.day-graph__period-list .graph-period.lesson:not(.active),.day-graph__period-list .graph-period.morning,.day-graph__period-list .graph-period.evening,.day-graph__period-list .graph-period.break:has(+.lesson:not(.active)),.day-graph__period-list .graph-period.lesson:not(.active)+.break{background-color:#80808033}.day-graph__period-list .graph-period.lesson:not(.active)>*,.day-graph__period-list .graph-period.morning>*,.day-graph__period-list .graph-period.evening>*,.day-graph__period-list .graph-period.break:has(+.lesson:not(.active))>*,.day-graph__period-list .graph-period.lesson:not(.active)+.break>*{color:#919191}.day-graph__period-list .graph-period.morning{--min: 90}.day-graph__period-list .graph-period.evening{--min: 120}.day-graph__period-list .graph-period.break--short{--min: 10}.day-graph__period-list .graph-period.break--long{--min: 50}a{text-decoration:none;color:var(--clr-accent)}a:hover{text-decoration:underline}.student-search{display:flex;flex-direction:column}.student-search__status{color:gray;padding:.5em;text-align:right}.student-search__list{display:flex;flex-direction:column}.student-search__student{display:grid;grid-template-columns:300px auto;padding:.5em}@media (width < 400px){.student-search__student{grid-template-columns:auto max-content}}.student-search__student a{color:var(--clr-text)}.student-search__student:nth-child(2n){background-color:var(--clr-bg)}.week-stat{border:1px solid var(--clr-accent);overflow-x:auto}@media (width < 400px){.week-stat{margin-inline:-1em}}.week-stat__header{display:grid;grid-template-columns:100px 100px 140px 100px 100px;background-image:var(--gradient);text-align:center;font-weight:700;padding:.5em}@media (width < 400px){.week-stat__header{width:-moz-fit-content;width:fit-content}}.week-stat__day-list{display:flex;flex-direction:column}.week-stat__day{display:flex;flex-direction:column;gap:.5em;padding:.5em}.week-stat__day.sunday{background-color:var(--clr-bg)}.week-stat__day.sunday .week-stat__day__header__date div{color:var(--clr-red)}@media (width < 400px){.week-stat__day{width:-moz-fit-content;width:fit-content}}.week-stat__day.total{background-image:var(--gradient)}.week-stat__day:not(:last-child){border-bottom:1px solid var(--clr-accent)}.week-stat__day__header{display:grid;grid-template-columns:100px min-content min-content auto;align-items:center}.week-stat__day__header__date{font-weight:700;display:flex;justify-content:space-between}.week-stat__day__header__progressbar[role=progressbar]{--fg: hsl(max(0deg, calc(120deg - var(--skipped) * 45deg)), 100%, 30%)}.week-stat__day__header__stat-list{display:grid;grid-template-columns:100px 140px 100px 100px;text-align:center}.week-stat__day__header__stat-list>.no-data{width:300px;text-align:center;color:gray;font-style:italic}.week-stat__day__header__btn-list{display:flex;gap:.5em;justify-content:flex-end}.week-stat__day__date{font-weight:700}.week-stat__day__lesson-table{border:1px solid var(--clr-accent)}.week-stat__day__lesson-table:has(.week-stat__day__lesson-table__list:empty){display:none}.week-stat__day__lesson-table__header{display:grid;gap:.5em;grid-template-columns:1.5em 180px 60px 90px 90px 60px auto;text-align:center;background-image:var(--gradient);padding:.5em 0;border-bottom:1px solid var(--clr-accent);font-weight:700}.week-stat__day__lesson-table__list{display:flex;flex-direction:column}.week-stat__day__lesson-table__list .lesson-stat{display:grid;gap:.5em;grid-template-columns:1.5em 180px 60px 90px 90px 60px auto;align-items:center}.week-stat__day__lesson-table__list .lesson-stat:not(:last-child){border-bottom:1px solid var(--clr-accent)}.week-stat__day__lesson-table__list .lesson-stat>*{text-align:center}.week-stat__day__lesson-table__list .lesson-stat>*.gray{opacity:.5}.week-stat__day__lesson-table__list .lesson-stat__name{text-align:left}.week-stat__day__lesson-table__list .lesson-stat__index{color:var(--clr-accent);text-align:center}.week-stat__day__lesson-table__list .lesson-stat__progressbar[role=progressbar]{--fg: hsl(max(0deg, calc(120deg - (90 - var(--minutes)) * 2deg)), 100%, 30%)}.week-stat__day__lesson-table__list .lesson-stat__is-skipped{color:gray;text-align:center}.week-stat__day__lesson-table__list .lesson-stat__is-skipped.skipped{color:#b10000}.week-stat__day__passage-list{border-left:2px solid var(--clr-accent);margin-left:.5em;padding-left:.5em}.week-stat__day__passage-list .passage{display:grid;gap:.5em;grid-template-columns:9ch 68px auto}.week-stat__day__passage-list .passage__type{display:flex;flex-direction:row-reverse;align-items:center;gap:.2em;color:gray}.week-stat__day__passage-list .passage__type .material-icons{font-size:12pt}.week-stat__day__passage-list .passage__time{font-family:Courier New,Courier,monospace}.group-list{display:flex;flex-direction:column;gap:2em}.group-list .group-year{display:flex;flex-direction:column;gap:1em;animation:fadeInAnimation .5s ease forwards;opacity:0;animation-delay:calc(.1s + .1s * var(--index))}.group-list .group-year:has(:empty){display:none}.group-list .group-year__title{font-weight:700}.group-list .group-year__list{display:flex;gap:.5em;flex-wrap:wrap}.group-list .group-year .group{background-image:var(--gradient);padding:.5em 1em;border-radius:1.5em;border:2px solid var(--clr-accent);cursor:pointer;text-decoration:none;color:var(--clr-text)}.group-list .group-year .group:hover{scale:1.1}.calendar{width:-moz-fit-content;width:fit-content;margin:auto;border:1px solid var(--clr-accent);--gap: 3px;--size: 40px}@media (width < 400px){.calendar{--gap: 1px;--size: 32px}}.calendar.hidden{display:none}.calendar__header{display:flex;justify-content:space-between;background-image:var(--gradient);padding:1em}.calendar__header input,.calendar__header select{border:1px solid var(--clr-accent)}.calendar__header input[type=number]{width:50px;text-align:center}.calendar__grid{padding:1em}.calendar__day-names{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-weight:700;margin-bottom:var(--gap)}.calendar__day-names>div:last-child{color:red}.calendar__row-list{display:flex;flex-direction:column}.calendar__row{display:grid;grid-template-columns:repeat(7,1fr);gap:calc(var(--gap) * 2);padding:var(--gap)}.calendar__row.selected,.calendar__row:hover{background-color:var(--clr-bg)}.calendar__day{display:flex;justify-content:center;align-items:center;width:var(--size);aspect-ratio:1/1;border:1px solid var(--clr-accent);border-radius:4px}.calendar__day.has-data{background-image:var(--gradient)}.calendar__day.has-data:hover:after{display:block}.calendar__day.has-data:after{content:"Eсть проходы и расписание";display:none;position:absolute;padding:.5em;border:1px solid var(--clr-accent);translate:-50% -50%;box-shadow:1px 1px 4px #80808080;border-radius:.5em .5em 0;background-image:var(--gradient)}.calendar__day.no-data{color:gray;border:none}.calendar__day.no-lessons{background-image:linear-gradient(to bottom,rgb(225,255,227),white)}.calendar__day.no-lessons:hover:after{display:block}.calendar__day.no-lessons:after{content:"Проходы есть, расписания нет";display:none;position:absolute;padding:.5em;border:1px solid var(--clr-accent);translate:-50% -50%;box-shadow:1px 1px 4px #80808080;border-radius:.5em .5em 0;background-image:var(--gradient)}.calendar__day.no-passages{background-image:linear-gradient(to bottom,rgb(255,226,226),var(--clr-bg))}.calendar__day.no-passages:hover:after{display:block}.calendar__day.no-passages:after{content:"Проходов нет";display:none;position:absolute;padding:.5em;border:1px solid var(--clr-accent);translate:-50% -50%;box-shadow:1px 1px 4px #80808080;border-radius:.5em .5em 0;background-image:var(--gradient)}.calendar__day.another-month{opacity:.3}.calendar__day:not(:first-child):last-child{color:#b91a1a;border-color:#b9b9b9}.student-title{display:flex;justify-content:space-between;margin-bottom:2em;flex-wrap:wrap;gap:.5em}.student-title__name{font-size:2em;font-weight:700}.student-title__group{display:flex;align-items:center;gap:.2em;text-decoration:none!important}.cb-fake-data{position:absolute;right:1em;top:5em;opacity:0}.cb-fake-data:hover{opacity:1}.import-form{display:flex;flex-direction:column;margin-bottom:1em;gap:1em}.import-form__section{display:grid;grid-template-columns:185px 220px 100px auto;align-items:center;gap:.5em;border:1px solid var(--clr-accent)}@media (width < 800px){.import-form__section{display:flex;flex-direction:column;height:-moz-fit-content;height:fit-content;align-items:start;width:220px;margin:auto;padding-bottom:.5em}.import-form__section>*{padding-inline:.5em}.import-form__section__title{width:100%;padding:.5em;border-right:none!important}.import-form__section input{width:128px}}.import-form__section__counter{animation:import .8s ease}.import-form__section__title{display:flex;background-color:var(--clr-bg);border-right:1px solid var(--clr-accent);padding:.5em;align-items:center;gap:.5em}@keyframes import{0%{color:green;scale:1.2}to{color:var(--clr-text);scale:1}}.loading:after{content:"";margin-left:.1em;font-size:20pt;letter-spacing:0px;line-height:0;animation:chatTyping 1s linear infinite}@keyframes chatTyping{0%{content:""}33%{content:"."}66%{content:".."}to{content:"..."}}input::file-selector-button{margin-right:1em;width:120px}input::file-selector-button,button{border-radius:2em;border:2px solid var(--clr-accent);background-image:var(--gradient);padding:.5em 1em;transition:background-color .3s ease}input::file-selector-button:hover,button:hover{background:var(--clr-accent);color:#fff}input::file-selector-button:active,button:active{scale:.95}button.red{--clr-accent: #B85450;--gradient: linear-gradient(to bottom, white, #F8CECC)}.progress-bar{width:200px;height:20px;--percentage: 0%;background-image:var(--gradient);border:1px solid var(--clr-accent)}.progress-bar:after{content:"";display:block;width:var(--percentage);height:100%;background-color:#00800080}.timetable{display:flex;gap:1em;flex-wrap:wrap}.timetable .week{display:grid;gap:.5em;grid-template-rows:repeat(6,1fr);width:280px}.timetable .week .day{border:1px solid var(--clr-accent)}.timetable .week .day__class-list{display:grid;grid-template-rows:repeat(5,36px)}.timetable .week .day__class-list .class{display:flex;align-items:center;gap:.5em;border-top:1px solid var(--clr-accent)}.timetable .week .day__class-list .class__index{padding-left:.2em;color:var(--clr-accent)}.timetable .week .day__date{font-weight:700;text-align:center;background-image:var(--gradient)}form{display:grid;grid-template-columns:max-content 200px;gap:.5em;align-items:center}form label{grid-column:1}form input,form button{grid-column:2}@keyframes growProgressBar{0%,33%{--pgPercentage: 0}to{--pgPercentage: var(--value)}}@property --pgPercentage{syntax: "<number>"; inherits: false; initial-value: 0;}div[role=progressbar]{--size: 24px;--fg: #369;--bg: #def;--pgPercentage: var(--value);animation:growProgressBar 2s 1 forwards;width:var(--size);height:var(--size);border-radius:50%;display:grid;place-items:center;background:radial-gradient(closest-side,white 40%,transparent 0 99.9%,white 0),conic-gradient(var(--fg) calc(var(--pgPercentage) * 1%),var(--bg) 0);font-family:Helvetica,Arial,sans-serif;font-size:calc(var(--size) / 5);color:var(--fg)}div[role=progressbar]:before{counter-reset:percentage var(--value)}
