.calendar{display:flex;flex-direction:column;position:relative;overflow:hidden;width:78%;gap:34px}.loader-indicator{position:absolute;display:none;flex-direction:column;gap:4px;align-items:center;justify-content:center;width:100%;height:100%;top:0;left:0;background-color:transparent;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:5}.spin{width:28px;height:28px;border:5px solid var(--accent-color);border-bottom:5px solid transparent;border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation 1s linear infinite}@keyframes rotation{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.calendar-header{display:flex;flex-direction:row;justify-content:space-between;height:90px}.calendar-container{display:flex;flex-direction:row;height:100%;border:2px solid var(--border-color);border-radius:var(--border-radius) 0 0 0;overflow:hidden;background-color:var(--background-color);transition:background-color var(--animation-duration)}.column:has(.calendar-top.selected) .content-box:last-child,.content-box:last-child{border-bottom:none}.calendar-hours{display:flex;flex-direction:column;min-width:70px;height:100%;border-right:2px solid var(--border-color)}.calendar-columns{flex-direction:row;overflow-x:scroll;scrollbar-width:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.calendar-columns,.column{display:flex;width:100%;height:100%}.column{flex-direction:column;min-width:115px;border-right:2px solid var(--border-color)}.column:last-child{border-right:none}.calendar-top{display:flex;flex-direction:row;align-items:center;justify-content:center;width:100%;min-height:50px;border-bottom:2px solid var(--border-color)}.calendar-hours-display>p{height:0;transform:translateY(-10px)}.calendar-hours-display>p,.calendar-top>p{margin:0;font-size:14px;font-weight:600;color:var(--neutral-color-dark)}.calendar-top>p>.day{color:var(--on-background-color);margin-left:4px}.calendar-top.selected>p,.calendar-top.selected>p>.day{color:var(--on-neutral-color)}.calendar-top.selected{background-color:var(--neutral-color);border-bottom:2px solid var(--neutral-color-light)}.column:has(.calendar-top.selected) .content-box{background-color:var(--neutral-color-light)}.column:has(.calendar-top.selected) .content-box{border-bottom:2px solid var(--neutral-color)}.column-content{flex-direction:column;height:100%;overflow:hidden}.column-content,.content-box{display:flex;position:relative}.content-box{flex-direction:row;flex:1 1;border-bottom:2px solid var(--border-color)}.calendar-hours-display{display:flex;position:relative;flex-direction:column;align-items:flex-end;margin-right:10px;height:100%;justify-content:space-evenly}.indicator-hour{position:absolute;transform:translateY(-12.5px);z-index:2;right:-10px;display:flex;align-items:center}.indicator-hour .bubble{background-color:var(--accent-color);padding:4px 10px;border-radius:var(--border-radius);color:white!important;font-size:14px;font-weight:600;z-index:1}.indicator-hour .bar{height:2px;background-color:var(--accent-color);width:100vw;position:absolute}.course{display:flex;z-index:1;cursor:pointer;position:absolute;flex-direction:column;justify-content:space-between;height:calc(100% - 16px);width:calc(100% - 16px);background-color:#e17055;padding:8px;border-radius:2px;box-sizing:border-box}.course>h2{font-size:14px}.course>h2,.course>p{margin:0;font-weight:600;color:white;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.course>p{font-size:12px}.week-switcher{flex-direction:row;gap:16px;padding:0;border:2px solid var(--border-color);border-top:0;border-radius:0 0 var(--border-radius) var(--border-radius)}.current-week-icon,.week-switcher,.week-switcher-icon{display:flex;align-items:center;justify-content:center}.current-week-icon,.week-switcher-icon{padding:0 24px;height:100%;cursor:pointer}.week-switcher-actions{display:flex;gap:24px;align-items:center}.current-week-icon{padding:0}.week-infos{color:var(--neutral-color-dark);font-weight:600;font-size:14px;display:flex;flex-direction:column;align-items:center;gap:4px}.week-infos p{margin:0}.week-number{color:var(--on-surface-color)}.week-month{font-size:12px}.availability-box{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:16px;height:100%;padding:0 24px;border:2px solid var(--border-color);border-top:0;border-right:0;border-radius:0 0 0 var(--border-radius)}.availability-box>p{margin:0;color:var(--on-surface-color);text-transform:uppercase;font-size:14px;font-weight:600}.menu-mobile{display:none;justify-content:space-between;width:calc(100% - 40px);padding:20px;box-shadow:0 0 20px rgba(0,0,0,.05);z-index:5;gap:10px}.current-room{display:flex;flex-direction:column;min-width:0}.current-room>p{margin:0;font-size:12px;font-weight:600;color:var(--neutral-color-dark)}.current-room>h2{margin:0;font-size:16px;font-weight:600;color:var(--on-surface-color);text-overflow:ellipsis;overflow-x:hidden;white-space:nowrap}.course-box{display:flex;flex-direction:column;gap:8px;width:100%}.course-box>p{margin:0;font-size:14px;font-weight:600;color:var(--neutral-color-dark)}.course-box>.course-container{padding:16px;width:calc(100% - 32px);border-radius:4px;background-color:#e74c3c}.course-container>p{font-size:14px;font-weight:600;color:white;margin:0 0 30px}.detail{display:flex;flex-direction:column;gap:4px;margin-top:8px}.detail>h2{color:var(--neutral-color-dark)}.detail>h2,.detail>p{margin:0;font-size:14px;font-weight:600}.detail>p{color:var(--on-surface-color);max-height:20vh;overflow-y:auto;word-break:break-word}@media screen and (max-width:1024px){.calendar{width:100%;border:none;gap:0}.calendar-container{border-radius:0;border:none;border-top:2px solid var(--border-color)}.availability-box{display:none}.week-switcher{width:100%;border:none;justify-content:space-between;border-radius:0}.menu-mobile{display:flex}}@media screen and (max-height:700px){.course>p{display:none}}.drawer{position:fixed;display:none;align-items:end;justify-content:center;opacity:0;width:100%;height:100%;z-index:1001;background-color:var(--scrim-color);transition:all var(--animation-duration) ease-in-out}.drawer.active{display:flex;animation:scrim-open var(--animation-duration) ease-in-out forwards}@keyframes scrim-open{0%{opacity:0}to{opacity:1}}.drawer.active>.drawer-content{animation:drawer-open var(--animation-duration) cubic-bezier(.4,0,.2,1) forwards}@keyframes drawer-open{0%{transform:translateY(100%)}to{transform:translateY(0)}}.drawer-content{position:absolute;display:flex;flex-direction:column;width:100%;max-width:500px;max-height:85%;padding:24px;background-color:var(--surface-color);color:var(--on-surface-color);border-radius:28px 28px 0 0;bottom:0;transition:background-color var(--animation-duration);overflow:auto;box-shadow:0 -4px 16px rgba(0,0,0,.1)}.drawer-content>div{display:flex;flex-direction:column;width:calc(100% - 40px);height:-moz-fit-content;height:fit-content}@media screen and (min-width:768px){.drawer-content{max-width:600px;padding:32px}}.drawer-content::-webkit-scrollbar{width:8px}.drawer-content::-webkit-scrollbar-track{background:transparent}.drawer-content::-webkit-scrollbar-thumb{background:var(--outline-color);border-radius:4px}.drawer-content::-webkit-scrollbar-thumb:hover{background:var(--on-surface-variant-color)}.feedback-drawer{display:flex;flex-direction:column;gap:24px;padding-inline:20px;width:calc(100%- 40px);animation:fade-in .3s ease-in-out}@keyframes fade-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.feedback-header{display:flex;flex-direction:column;gap:6px;text-align:center}.feedback-header h2{font-size:22px;font-weight:600;color:var(--on-surface-color);margin:0}.feedback-header p{font-size:13px;color:var(--on-surface-variant-color);margin:0}.feedback-rating{display:flex;flex-direction:column;align-items:center;gap:12px}.stars-container{gap:6px;flex-wrap:wrap}.star-button,.stars-container{display:flex;justify-content:center}.star-button{background:none;border:none;cursor:pointer;padding:2px;transition:all .2s cubic-bezier(.4,0,.2,1);color:var(--outline-color);align-items:center}.star-button:hover{transform:scale(1.1)}.star-button:active{transform:scale(.95)}.star-button.active{color:#FFB800;filter:drop-shadow(0 2px 8px rgba(255,184,0,.3))}.star-button svg{transition:all .2s cubic-bezier(.4,0,.2,1)}.rating-text{font-size:14px;font-weight:500;color:var(--on-surface-color);margin:0;animation:slide-up .3s ease-in-out}@keyframes slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.feedback-comment{display:flex;flex-direction:column;gap:12px}.feedback-comment label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--on-surface-color)}.feedback-comment textarea{width:100%;border:1px solid #cccccc;padding:12px;border-radius:12px;font-family:inherit;font-size:14px;color:var(--on-surface-color);background-color:var(--surface-variant-color);resize:vertical;transition:all .2s ease-in-out;box-sizing:border-box}.feedback-comment textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px rgba(var(--primary-rgb),.1)}.feedback-comment textarea::placeholder{color:var(--on-surface-variant-color)}.character-count{font-size:12px;color:var(--on-surface-variant-color);text-align:right}.feedback-actions{display:flex;gap:12px;width:100%}.feedback-actions .button{flex:1 1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;font-weight:500;border-radius:24px;transition:all .2s ease-in-out}.feedback-actions .button.secondary{background-color:var(--surface-variant-color);color:var(--on-surface-color);border:1px solid var(--outline-color)}.feedback-actions .button.secondary:hover{background-color:var(--surface-color)}.feedback-actions .button.primary{background-color:var(--primary-color);color:var(--on-primary-color);border:none}.feedback-actions .button.primary:hover{box-shadow:0 4px 12px rgba(var(--primary-rgb),.3)}.feedback-actions .button.button--loading{opacity:.6;cursor:not-allowed}@media screen and (max-width:480px){.feedback-header h2{font-size:20px}.star-button svg{width:32px;height:32px}.feedback-actions{flex-direction:column}}