*,*:before,*:after{box-sizing:border-box;margin:0}body,html{width:100%;height:100%}:root{--bg-500: #ffffff;--bg-selected-500: #f8f8f8;--bg-highlight-500: #f0f0f0;--border-400: #e8e8e8;--border-500: #d8d8d8;--border-600: #c0c0c0;--border-highlight-500: #b0b0b0;--border-selected-500: #909090;--text-500: #282828;--accent-100: #d6ffc2;--accent-500: #6cc16c;--accent-900: #244624;--event-red: hsl(359, 100%, 85%);--event-purple: hsl(274, 100%, 85%);--event-blue: hsl(241, 100%, 85%);--event-yellow: hsl(50, 100%, 85%);--event-green: hsl(125, 100%, 85%);--event-orange: hsl(25, 100%, 85%);--event-lightlightblue: hsl(176, 100%, 85%);--event-lightblue: hsl(198, 100%, 85%);--bold-on-dark: 300}body.dark-mode{--bg-400: hsl(269, 24%, 3%);--bg-500: hsl(269, 24%, 7%);--bg-selected-500: hsl(276, 56%, 30%);--bg-highlight-500: hsl(277, 66%, 35%);--border-400: hsl(269, 40%, 45%);--border-500: hsl(269, 60%, 30%);--border-600: hsl(269, 80%, 35%);--border-highlight-500: hsl(269, 80%, 50%);--border-selected-500: #b66af6;--text-500: #e6cff6;--accent-100: hsl(269, 50%, 50%);--accent-500: hsl(269, 40%, 70%);--accent-900: hsl(269, 30%, 90%);--event-red: hsl(359, 40%, 31%);--event-purple: hsl(274, 40%, 31%);--event-blue: hsl(241, 40%, 31%);--event-yellow: hsl(50, 40%, 31%);--event-green: hsl(125, 40%, 31%);--event-orange: hsl(25, 40%, 31%);--event-lightblue: hsl(176, 40%, 31%);--bold-on-dark: 500}a,a:visited{color:var(--text-500);font-weight:400}code{font-size:90%}sup{display:inline-block;transform:translateY(-.25rem)}h1{margin:0;font-size:35.15625px;font-weight:500}h1:not(:first-child){padding-top:.9765625rem}h1{line-height:1;display:flex;align-items:center;gap:.5rem}h2{margin:0;font-size:28.125px;font-weight:500}h2:not(:first-child){padding-top:.78125rem}h2{line-height:1;display:flex;align-items:center;gap:.5rem}h3{margin:0;font-size:22.5px;font-weight:500}h3:not(:first-child){padding-top:.625rem}h3{line-height:1;display:flex;align-items:center;gap:.5rem}h4{margin:0;font-size:18px;font-weight:500}h4:not(:first-child){padding-top:.5rem}h4{line-height:1;display:flex;align-items:center;gap:.5rem}button,.button{display:flex;align-items:center;justify-content:center;gap:.25rem;color:var(--text-500);background:var(--bg-500);border:2px solid var(--border-400);border-radius:.5rem;font:inherit;font-weight:400;padding:.5rem 1rem;cursor:pointer;position:relative;overflow:hidden}button:hover:after,.button:hover:after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.0470588235);z-index:1}button.primary,.button.primary{background:var(--accent-100);border-color:var(--accent-500)}button.primary:hover:after,.button.primary:hover:after{background:rgba(0,0,0,.1254901961)}button.icon,.button.icon{padding:.5rem;width:2.5rem;height:2.5rem}button.flat,.button.flat{border:none}button.small,.button.small{padding:.25rem}.input-combo{display:flex;justify-content:center;height:3rem;background:var(--bg-500);border:2px solid var(--border-400);border-radius:.5rem;font-weight:400;user-select:none;cursor:pointer;position:relative}.input-combo select{border:none;background:none;color:var(--text-500);appearance:none;font-family:inherit;font-size:inherit;font-weight:300;height:100%;padding-left:1rem;padding-right:3rem;width:100%}.input-combo .icon{position:absolute;right:0;height:100%;width:calc(3rem - 4px);display:grid;place-content:center;pointer-events:none}.logo{display:flex;align-items:center}.logo>img{max-height:2.5rem}body.dark-mode .logo>img{filter:hue-rotate(135deg) brightness(1.1)}.logo{gap:.25rem}.popup-container{position:absolute;inset:0;z-index:10;background:rgba(0,0,0,.6);max-width:100%}.popup-container .popup-wrapper{max-width:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:1rem}.popup-container .popup-wrapper .popup{display:flex;flex-direction:column;gap:1rem;box-shadow:0 0 1.5rem #0003}.popup-container .popup-wrapper .popup .header{display:flex;align-items:center;justify-content:space-between;user-select:none}.popup-container .popup-wrapper .popup .header .title{display:flex;align-items:center;gap:.5rem;font-size:24px}.popup-container .popup-wrapper .popup .content{width:60ch;max-width:100%;height:fit-content;max-height:60vh;overflow-y:auto;padding-bottom:3rem}.popup-container .popup-wrapper .popup{max-width:100%}.compound{display:flex}.compound .material-symbols-outlined{font-size:20px}.compound button,.compound .button{border-radius:0;border-right:none;padding-left:.75rem;padding-right:.75rem;height:2.5rem}.compound button:first-child,.compound .button:first-child{padding-left:1rem;border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.compound button:last-child,.compound .button:last-child{padding-right:1rem;border-top-right-radius:.5rem;border-bottom-right-radius:.5rem;border:2px solid var(--border-400)}.compound button.radio.selected,.compound .button.radio.selected{background:var(--accent-100);border-color:var(--accent-500)}.compound button.radio.selected+.radio,.compound .button.radio.selected+.radio{border-left-color:var(--accent-500)}.compound button.radio.selected:hover:after,.compound .button.radio.selected:hover:after{background:rgba(0,0,0,.0941176471)}.compound button.radio.icon,.compound .button.radio.icon{padding:0 .5rem}.date-picker{position:relative;display:flex;justify-content:center;height:2.5rem;padding-left:.75rem;padding-right:.75rem;background:var(--bg-500);border:2px solid var(--border-400);border-radius:.5rem;font-weight:400;user-select:none;cursor:pointer}.date-picker input{z-index:-1;position:absolute;top:0;bottom:0;right:0;left:0;opacity:.2}.date-picker .date-picker-render{display:flex;align-items:center;gap:.5rem}.date-picker .date-picker-render .material-symbols-outlined{font-size:18px}.panel,.content .course-view .wrap-container .course,.option-bar,.settings-bar,.toolbar,.popup-container .popup-wrapper .popup{background:var(--bg-500);border:1px solid var(--border-500);border-radius:1rem;padding:1rem}.text-block,.content .menu .help,.content .warning,.popup-container .popup-wrapper .popup .content{display:flex;flex-direction:column;gap:.5rem}.text-block p,.content .menu .help p,.content .warning p,.popup-container .popup-wrapper .popup .content p{line-height:1.5}.text-block p .material-symbols-outlined,.content .menu .help p .material-symbols-outlined,.content .warning p .material-symbols-outlined,.popup-container .popup-wrapper .popup .content p .material-symbols-outlined{font-size:18px;vertical-align:text-top}.text-block ul,.content .menu .help ul,.content .warning ul,.popup-container .popup-wrapper .popup .content ul{padding:.5rem 0 .5rem 1.5rem;display:flex;flex-direction:column;gap:.5rem}body{background:var(--bg-400);color:var(--text-500);font-weight:300;font-family:Inter,sans-serif;position:relative}.toolbar{padding:1rem .75rem 1rem 1rem;border-radius:0;border:none;border-bottom:1px solid var(--border-500);height:4rem;display:flex;align-items:center;justify-content:space-between}.toolbar .option-group{display:flex;align-items:center;gap:.75rem}@media screen and (max-width: 900px),(pointer: coarse){.toolbar .option-group{display:none}}.option-bar,.settings-bar{padding:.5rem;border-radius:0;border:none;border-bottom:1px solid var(--border-500);height:4rem;display:none;align-items:center;justify-content:center;overflow-y:hidden;overflow-x:auto;max-width:100%;gap:.5rem}@media screen and (max-width: 900px),(pointer: coarse){.option-bar,.settings-bar{display:flex}}.option-bar .option-group,.option-bar .settings-group,.settings-bar .option-group,.settings-bar .settings-group{display:flex;align-items:center;gap:.75rem;width:100%;justify-content:space-evenly}@media screen and (max-width: 900px),(pointer: coarse){.settings-bar{display:flex;justify-content:space-between}}.content{height:calc(100vh - 4rem)}@media screen and (max-width: 900px),(pointer: coarse){.content{height:calc(100vh - 8rem)}}.content{overflow-y:scroll;padding:1rem 0rem}.content .warning{width:100%;display:flex;flex-direction:column;gap:1rem;align-items:center}.content .warning p{text-align:center}.content .course-view{padding:0rem 1rem;display:flex;flex-direction:column;align-items:center;min-height:100%;text-align:center;gap:1rem}.content .course-view .wrap-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(30ch,1fr));gap:1rem;width:100%;max-width:1200px}.content .course-view .wrap-container .course{display:flex;flex-direction:column;gap:.25rem;flex-grow:1;position:relative;cursor:pointer}.content .course-view .wrap-container .course.selected{background:var(--bg-selected-500)}.content .course-view .wrap-container .course.selected:after{content:"";position:absolute;inset:-1px;border-radius:1rem;border:3px solid var(--border-selected-500)}.content .course-view .wrap-container .course.highlight{background:var(--bg-highlight-500);border-color:var(--border-highlight-500)}.content .course-view .wrap-container .course .title{font-size:24px}.content .course-view .wrap-container .course .docenti{font-size:16px}.content .course-view .wrap-container .course .events{font-size:18px}.content .schedule-view{min-height:100%;width:100%;max-width:57rem;margin:auto;padding:0rem .5rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.content .schedule-view .schedule-card{width:100%}.content .schedule-view .schedule-card .grid{width:100%;display:grid;border:1px solid var(--border-600);border-radius:10px 10px 0 0}@media screen and (max-width: 900px),(pointer: coarse){.content .schedule-view .schedule-card .grid{font-size:12px}}.content .schedule-view .schedule-card .grid .transpose-button,.content .schedule-view .schedule-card .grid .day-label,.content .schedule-view .schedule-card .grid .time-label{display:flex;align-items:center;justify-content:center;padding:.5rem}.content .schedule-view .schedule-card .grid .transpose-button{width:4rem;height:3rem}.content .schedule-view .schedule-card .grid .event-block-wrapper{padding:.125rem}.content .schedule-view .schedule-card .grid .event-block-wrapper .event-block{width:100%;height:100%;position:relative}.content .schedule-view .schedule-card .grid .event-block-wrapper .event-block .event-wrapper{position:absolute;top:0%;left:0%;padding:.125rem}.content .schedule-view .schedule-card .grid .event-block-wrapper .event-block .event-wrapper .event{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--color);border-radius:10px;font-weight:var(--bold-on-dark)}.content .schedule-view .schedule-card .grid.original{grid-template-columns:auto repeat(5,1fr);grid-template-rows:min-content repeat(var(--time-slots),1fr)}.content .schedule-view .schedule-card .grid.original .transpose-button,.content .schedule-view .schedule-card .grid.original .day-label{grid-column:var(--position);grid-row:1}.content .schedule-view .schedule-card .grid.original .time-label{min-height:5rem;grid-column:1;grid-row:calc(var(--position) + 2)/span 4}.content .schedule-view .schedule-card .grid.original .day-line{grid-column:var(--position);grid-row:1/-1;width:0px;border-right:1px solid var(--border-500)}.content .schedule-view .schedule-card .grid.original .time-line{grid-row:calc(var(--position) + 2);grid-column:1/-1;height:0px;border-top:1px dashed var(--border-500)}.content .schedule-view .schedule-card .grid.original .event-block-wrapper{grid-row:calc(var(--time-start) + 2)/calc(var(--time-end) + 2);grid-column:calc(var(--day-position) + 1)}.content .schedule-view .schedule-card .grid.original .event-block-wrapper .event-block .event-wrapper{width:calc(100% / var(--of));height:calc(100% * var(--size) / var(--block-size));transform:translate(calc(100% * var(--index))) translateY(calc(100% * var(--relative-start) / var(--size)))}.content .schedule-view .schedule-card .grid.transposed{grid-template-rows:auto repeat(5,1fr);grid-template-columns:min-content repeat(var(--time-slots),1fr)}.content .schedule-view .schedule-card .grid.transposed .transpose-button,.content .schedule-view .schedule-card .grid.transposed .day-label{grid-row:var(--position);grid-column:1}.content .schedule-view .schedule-card .grid.transposed .day-label{min-height:5rem}.content .schedule-view .schedule-card .grid.transposed .time-label{grid-row:1;grid-column:calc(var(--position) + 2)/span 4}.content .schedule-view .schedule-card .grid.transposed .day-line{grid-row:var(--position);grid-column:1/-1;height:0px;border-top:1px solid var(--border-500)}.content .schedule-view .schedule-card .grid.transposed .time-line{grid-column:calc(var(--position) + 2);grid-row:1/-1;width:0px;border-right:1px dashed var(--border-500)}.content .schedule-view .schedule-card .grid.transposed .event-block-wrapper{grid-column:calc(var(--time-start) + 2)/calc(var(--time-end) + 2);grid-row:calc(var(--day-position) + 1)}.content .schedule-view .schedule-card .grid.transposed .event-block-wrapper .event-block .event-wrapper{height:calc(100% / var(--of));width:calc(100% * var(--size) / var(--block-size));transform:translateY(calc(100% * var(--index))) translate(calc(100% * var(--relative-start) / var(--size)))}.content .schedule-view .schedule-card .legend{display:grid;grid-template-columns:min-content 1fr;border:1px solid var(--border-600);border-radius:0 0 10px 10px;border-top:none;padding:1rem;gap:.5rem 1rem;align-items:center;justify-content:center;width:100%}.content .schedule-view .schedule-card .legend .name{width:100%}.content .schedule-view .schedule-card .legend .color{width:2rem;height:1.5rem;background-color:var(--color);border-radius:10px}.content .menu{width:100%;min-height:100%;background:var(--bg-500);z-index:10}.content .menu .header{height:4rem;padding:.75rem 1rem .75rem .75rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-500)}.content .menu .header .option-group{display:flex;gap:.5rem}.content .menu .options{padding:1rem;display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center}.content .menu .options .label{font-weight:400}.content .menu hr{position:relative;width:calc(100% - 2rem);height:1px;left:1rem;background:var(--border-500);border:none}.content .menu .help{padding:1rem 1rem 2.5rem;height:100%;overflow-y:scroll}.overlay{display:flex;position:fixed;bottom:3rem;right:3rem}@media screen and (max-width: 900px),(pointer: coarse){.overlay{bottom:1rem;right:1rem}}.overlay{gap:.5rem}.overlay button{width:3rem;height:3rem;border-radius:100%}.overlay button .material-symbols-outlined{font-size:22px}.overlay button{color:var(--accent-900);box-shadow:0 .25rem .75rem #0003}.overlay{animation:fade-in .15s ease-in forwards}@media screen and (min-width: 900px) and (pointer: fine){.mobile,.menu{display:none}}@media screen and (max-width: 900px),(pointer: coarse){.toolbar{padding:.75rem 1rem .75rem .75rem}}@media print{.toolbar,.menu,.overlay{display:none}.work-week-v-view{overflow:visible}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.fade-out{animation:fade-out .15s ease-in forwards}@keyframes fade-out{0%{opacity:1}to{opacity:0}}span.bold{font-weight:400}
