:root{--explorer-bg: #0f1a26;--explorer-bg-glow: #1d2f44;--label-bg: rgba(12, 22, 34, .84);--label-text: #fff;--st-in-use: #35c95c;--st-soon: #f2c230;--st-no-class-now: #4aa8ff;--st-listed: #8fb6e6;--st-none-listed: #9eabba;--st-unknown: #a5a5a5;--st-bookable: #3ecf8e;--st-booked: #ff6b81;--st-closed: #6f7b8a;--focus: #ffcd00}@media (prefers-color-scheme: light){:root{--explorer-bg: #e4ebf1;--explorer-bg-glow: #f7fafc;--label-bg: rgba(255, 255, 255, .92);--label-text: #0b1a2a;--st-in-use: #14a03a;--st-soon: #d9a400;--st-no-class-now: #1f7fe0;--st-listed: #5f8fc8;--st-none-listed: #8d9aaa;--st-unknown: #8a8a8a;--st-bookable: #12a150;--st-booked: #d9364f;--st-closed: #9aa4b1;--focus: #1866ba}}.explorer-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}.scroll-area{transition:filter .4s}.buildings-explorer-open .scroll-area{filter:saturate(.45) brightness(.7)}@media (prefers-color-scheme: light){.buildings-explorer-open .scroll-area{filter:saturate(.45) brightness(.9) contrast(.85)}}.buildings-explorer-open .building-btn:not(.selected){opacity:.45}.buildings-explorer-open .building-btn.selected{z-index:1;box-shadow:0 0 0 3px #ffcd00,0 0 16px #ffcd0080}.building-panel-content{display:contents}.building-panel.explorer-mode{max-width:1240px;height:min(76vh,800px);display:grid;grid-template-columns:minmax(0,1fr) 400px;background-color:transparent;overflow:hidden}.explorer-mode .building-panel-content{display:flex;flex-direction:column;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;background-color:var(--modal);border-radius:0 15px 15px 0;border-left:1px solid var(--card-line)}.explorer-mode .building-name .close{visibility:hidden}.explorer{display:flex;flex-direction:column;min-width:0;min-height:0;border-radius:15px 0 0 15px;overflow:hidden}.explorer-toolbar,.explorer-footer{background-color:var(--modal);flex:none}.explorer-toolbar{display:flex;align-items:center;gap:8px;padding:4px 4px 4px 16px;border-bottom:1px solid var(--card-line)}.explorer-title{flex:auto;min-width:0;display:flex;align-items:baseline;gap:10px;white-space:nowrap;overflow:hidden}.explorer-code{font-family:var(--narrow);font-size:22px}.explorer-name{color:var(--secondary);font-size:14px;overflow:hidden;text-overflow:ellipsis}.explorer-text-btn{color:var(--link);font-size:14px;padding:8px 10px;border-radius:8px;min-height:36px}.explorer-text-btn:hover{background-color:var(--icon-button-hover)}.explorer-close{display:flex;padding:10px;border-radius:10px}.explorer-close:hover{background-color:var(--icon-button-hover)}.explorer-viewport{position:relative;flex:auto;min-height:0;background:radial-gradient(ellipse 70% 60% at 50% 45%,var(--explorer-bg-glow),var(--explorer-bg)) var(--explorer-bg)}.explorer-stage{position:absolute;inset:0;touch-action:none;-webkit-user-select:none;user-select:none}.explorer-labels{position:absolute;inset:0;overflow:hidden;pointer-events:none}.explorer-label{position:absolute;left:0;top:0;padding:3px 5px;border-radius:5px;background-color:var(--label-bg);color:var(--label-text);font-size:11px;font-weight:700;line-height:1;white-space:nowrap;transition:opacity .2s}.explorer-labels:not(.explorer-labels-shown) .explorer-label,.explorer-label-hidden{opacity:0;visibility:hidden}.explorer-room-label{font-weight:400;opacity:.85}.explorer-room-label.selectable{pointer-events:auto;cursor:pointer;font-weight:700;opacity:1;border:1px solid var(--st-none-listed)}.explorer-room-label[data-glyph]:not([data-glyph=""]):before{content:attr(data-glyph) " "}.explorer-room-label[data-status=in-use]{border-color:var(--st-in-use)}.explorer-room-label[data-status=soon]{border-color:var(--st-soon)}.explorer-room-label[data-status=no-class-now]{border-color:var(--st-no-class-now)}.explorer-room-label[data-status=listed]{border-color:var(--st-listed)}.explorer-room-label[data-status=unknown]{border-style:dashed}.explorer-room-label[data-status=bookable]{border-color:var(--st-bookable)}.explorer-room-label[data-status=booked]{border-color:var(--st-booked)}.explorer-room-label[data-status=closed]{border-color:var(--st-closed)}.explorer-label.hovered{outline:2px solid var(--label-text)}.explorer-label.selected{background-color:var(--label-text);color:var(--explorer-bg);box-shadow:0 2px 8px #0006}.explorer-floor-tag{pointer-events:auto;cursor:pointer;background-color:transparent;color:var(--text);font-family:var(--narrow);font-weight:400;font-size:13px;text-shadow:0 0 4px var(--explorer-bg),0 0 2px var(--explorer-bg)}.explorer-feature-label{font-size:10px;font-weight:400;opacity:.8}.explorer-with-plan .explorer-area-label{background-color:var(--label-bg);color:var(--label-text)}.explorer-area-label{background-color:transparent;color:var(--secondary);font-style:italic;font-weight:400}.explorer-floors{position:absolute;left:10px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:4px;max-height:calc(100% - 20px);overflow-y:auto;scrollbar-width:none;padding:2px}.explorer-floor-btn{flex:none}.explorer-floor-btn,.explorer-view-btn{min-width:36px;height:36px;padding:0 8px;border-radius:8px;background-color:var(--modal);box-shadow:var(--card-shadow-hover);font-family:var(--narrow);font-size:15px;transition:background-color .15s,color .15s}.explorer-floor-btn:hover,.explorer-view-btn:hover{background-color:var(--button-hover);color:#fff}.explorer-floor-btn[aria-pressed=true],.explorer-view-btn[aria-pressed=true]{background-color:var(--button);color:#fff}.explorer-view-controls{position:absolute;right:10px;bottom:10px;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:calc(100% - 66px)}.explorer-explode-btn{font-family:var(--normal);font-size:13px}.explorer-floors,.explorer-view-controls{transition:opacity .3s}.explorer:not(.explorer-intro-done) .explorer-floors,.explorer:not(.explorer-intro-done) .explorer-view-controls{opacity:.4}.explorer-selection{position:absolute;top:10px;left:56px;right:10px;pointer-events:none;font-size:13px;color:var(--text);text-shadow:0 0 6px var(--explorer-bg),0 0 3px var(--explorer-bg)}.explorer-message{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;color:var(--secondary);background-color:var(--explorer-bg)}.explorer-loading:after{content:"\2026";animation:explorer-dots 1s steps(3,end) infinite;display:inline-block;width:1ch;overflow:hidden;vertical-align:bottom}@keyframes explorer-dots{0%{width:0}to{width:1.2ch}}.explorer-footer{padding:8px 12px 8px 16px;border-top:1px solid var(--card-line);display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;font-size:12px}.explorer-legend{display:flex;flex-wrap:wrap;gap:4px 12px;list-style:none;margin:0;padding:0;flex:auto}.explorer-legend-item{display:flex;align-items:center;gap:5px}.explorer-swatch{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;box-sizing:border-box;border-radius:4px;font-size:10px;color:#0b1a2a}[data-status=in-use]>.explorer-swatch{background-color:var(--st-in-use)}[data-status=soon]>.explorer-swatch{background-color:var(--st-soon)}[data-status=no-class-now]>.explorer-swatch{background-color:var(--st-no-class-now)}[data-status=listed]>.explorer-swatch{background-color:var(--st-listed)}[data-status=none-listed]>.explorer-swatch{background-color:var(--st-none-listed)}[data-status=bookable]>.explorer-swatch{background-color:var(--st-bookable)}[data-status=booked]>.explorer-swatch{background-color:var(--st-booked)}[data-status=closed]>.explorer-swatch{background-color:var(--st-closed)}[data-status=unknown]>.explorer-swatch{border:1px dashed var(--st-unknown);color:var(--text)}.explorer-legend-note{color:var(--secondary)}.explorer-provenance .explorer-text-btn{font-size:12px;min-height:0;padding:4px 6px}.explorer-sources{max-height:30vh;overflow:auto;padding:6px 0;color:var(--secondary);display:flex;flex-direction:column;gap:6px}.explorer-sources ul{margin:0;padding-left:18px}.room-section-title{font-family:var(--narrow);font-weight:400;font-size:15px;color:var(--secondary);margin:14px 20px 8px}.room-section:first-child .room-section-title{margin-top:0}.room-section-note{margin:-4px 20px 8px;color:var(--secondary);font-size:12px}.room.unlisted .current-meeting{font-family:var(--normal)}.room-highlighted{box-shadow:0 0 0 2px var(--link)}.room-notice{margin:10px 10px 0;padding:8px 12px;border-radius:8px;background-color:var(--field);font-size:14px;display:flex;flex-direction:column;gap:4px}.explorer button:focus-visible,.explorer a:focus-visible,.room:focus-visible,.building-name .icon-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media (max-width: 950px){.building-panel.explorer-mode{grid-template-columns:minmax(0,1fr) 320px}}@media (max-width: 690px){.building-panel.explorer-mode{height:80vh;height:80dvh;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,60fr) minmax(0,40fr)}.explorer{border-radius:15px 15px 0 0}.explorer-mode .building-panel-content{border-radius:0;border-left:none;border-top:1px solid var(--card-line)}.explorer-name{display:none}.explorer-footer{padding:6px 10px;font-size:11px}.explorer-legend{flex-wrap:nowrap;gap:8px;overflow-x:auto;scrollbar-width:thin;white-space:nowrap}.explorer-legend>li{flex:none}.explorer-floor-btn,.explorer-view-btn{min-width:34px;height:34px}.explorer-floors{top:8px;left:8px;transform:none;flex-direction:row;gap:3px;max-height:none;max-width:calc(100% - 16px);overflow-x:auto}.explorer-view-controls{right:8px;bottom:8px;gap:3px;max-width:calc(100% - 16px)}.explorer-toolbar{padding-top:10px}.explorer-selection{top:56px;left:10px;font-size:12px}.room-section-title,.room-section-note{margin-left:10px;margin-right:10px}}@media (pointer: coarse){.explorer-floor-btn,.explorer-view-btn{min-width:40px;height:40px}}@media (prefers-reduced-motion: reduce){.scroll-area,.explorer-label,.explorer-floors,.explorer-view-controls{transition:none}.explorer-loading:after{animation:none;width:auto}}.explorer-mode .building-actions{padding-left:15px;padding-right:15px}:root{color-scheme:dark;--background: #182330;--text: rgba(255, 255, 255, .9);--secondary: rgba(255, 255, 255, .5);--exam: #c1d84d;--line: #435060;--card-line: rgba(255, 255, 255, .1);--card-header: rgba(255, 255, 255, .05);--result-hover: rgba(255, 255, 255, .1);--button: rgba(0, 184, 255, .3);--button-hover: rgba(0, 184, 255, .5);--field: rgba(255, 255, 255, .1);--card-shadow-hover: 0 2px 5px rgba(0, 0, 0, .3);--card-shadow-active: 0 0 0 rgba(0, 0, 0, .6);--modal: #324153;--modal-shadow: 0 3px 10px rgba(0, 0, 0, .5);--red: #ff4e84;--active: #41cf46;--soon: #f3d500;--dropdown: url("./material-arrow-drop-down-white-6SBEOKL6.svg");--link: #9acfff;--highlight: rgba(255, 255, 255, .5);--icon-button-hover: rgba(255, 255, 255, .05);--normal: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--narrow: "Oswald", Impact, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"}@media (prefers-color-scheme: light){:root{color-scheme:light;--background: #f1f4f5;--text: rgba(0, 0, 0, .9);--secondary: rgba(0, 0, 0, .5);--exam: #c1a20a;--line: #e9eef1;--card-line: rgba(0, 0, 0, .1);--card-header: rgba(0, 0, 0, .05);--result-hover: rgba(0, 0, 0, .1);--button: #2789f2;--button-hover: #1866ba;--field: rgba(0, 0, 0, .05);--card-shadow-hover: 0 2px 5px rgba(0, 0, 0, .1);--card-shadow-active: 0 0 0 rgba(0, 0, 0, .3);--modal: white;--modal-shadow: 0 3px 10px rgba(0, 0, 0, .3);--red: #ff004e;--active: #09880d;--soon: #966f01;--dropdown: url("./material-arrow-drop-down-black-6REO6Q3L.svg");--link: #2597ff}}html{height:100%}body{margin:0;height:100%;font-family:var(--normal);font-size-adjust:cap-height from-font;background-color:var(--background);color:var(--text);overflow:hidden}button,input,select{-webkit-appearance:none;appearance:none;background:none;border:none;padding:0;color:inherit;font:inherit}button:not(:disabled),select:not(:disabled),input[type=checkbox]:not(:disabled){cursor:pointer}h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}::placeholder{color:inherit;opacity:.3}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.icon{fill:currentColor;width:24px}input[type=checkbox]{border:1px solid var(--card-line);border-radius:5px;width:1.2em;height:1.2em;margin:0}input[type=checkbox]:hover{background-color:var(--field)}input[type=checkbox]:checked{border-color:transparent;background-color:var(--button);background-image:url("./material-check-white-EO6UTSEL.svg");background-position:center;background-size:cover}input[type=checkbox]:checked:hover{background-color:var(--button-hover)}#root{height:100%;display:flex;flex-direction:column}.buildings-wrapper{height:0;flex:auto;display:flex;position:relative;overflow:hidden}.notice{position:absolute;inset:0;z-index:1;text-align:center;padding:20px;display:flex;justify-content:center;align-items:center;background-color:#00000080;backdrop-filter:grayscale(1) blur(5px);opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s,padding-right .2s;font-family:var(--normal)}.notice-visible{opacity:1;visibility:visible}.notice-date-open{padding-right:360px}@media (max-width: 690px){.notice-date-open{padding-right:20px;padding-bottom:calc(70vh + 20px)}}.notice-text{color:#fff;display:block;max-width:500px;transform:scale(.9);transition:transform .5s}.notice-visible .notice-text{transform:none}.buildings{flex:auto;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}.scroll-area{background-image:url("./map-I6WS5TM4.webp");background-repeat:no-repeat;image-rendering:pixelated;image-rendering:crisp-edges}.building-btn{font-family:var(--narrow);position:absolute;transform:translate(-50%,-50%);padding:5px 10px;border-radius:10px;background-image:linear-gradient(120deg,#00629b,#182b49);color:#ffcd00;box-shadow:var(--card-shadow-hover);white-space:nowrap;transition:box-shadow .2s,visibility .2s,opacity .2s}.building-btn:active{box-shadow:var(--card-shadow-active)}.building-btn.selected{box-shadow:0 0 0 3px var(--highlight)}.building-btn-hidden{visibility:hidden;opacity:0}.room-count{background-color:var(--modal);color:var(--secondary);font-size:10px;position:absolute;top:0;right:0;transform:translate(50%,-50%);border-radius:50px;padding:2px 5px;box-shadow:var(--card-shadow-hover);font-family:var(--normal);box-sizing:border-box;height:16px;min-width:16px;text-align:center}.in-use{color:var(--text)}.info-panel{display:flex;flex-direction:row;align-items:center;padding:0 20px}.title{font-weight:400;font-size:18px;margin-right:20px}.subtitle{color:var(--secondary)}.instructions{font-size:14px;color:var(--secondary)}.link{color:var(--link);text-decoration:none}.link:hover{text-decoration:underline}@media (max-width: 530px){.panel{height:80px}.title{font-size:16px}.info-panel{flex-direction:column;align-items:flex-start;justify-content:center;padding:0 15px}}.abbrev-heading{position:relative;line-height:1}.abbrev{font-family:var(--narrow);white-space:nowrap;opacity:.15}.colon{color:transparent;font-size:1px;position:absolute;z-index:-1}.long{position:absolute;bottom:.6em;left:.4em;right:.2em;font-size:.25em;font-family:var(--normal);font-weight:700;word-break:break-word}.corner{position:fixed;z-index:3;top:0;right:0;margin:20px;display:flex;flex-direction:column;background-color:var(--modal);box-shadow:var(--modal-shadow);border-radius:10px;transition:opacity .2s,visibility .2s,box-shadow .2s,border-radius .2s}@media (max-width: 690px){.corner{top:unset;right:unset;bottom:0;left:0;margin:10px;flex-direction:column-reverse}}.date-panel-open{box-shadow:none;border-radius:15px}@media (max-width: 950px){.bottom-panel-open{opacity:0;visibility:hidden}}.date-time-button{display:flex;gap:15px;align-items:center;padding:10px 15px}.showing-schedule-wrapper{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.showing-schedule-text{font-size:.8em;font-family:var(--normal);color:var(--secondary)}.date-time{font-family:var(--normal);font-weight:700}.quarter-week{font-size:.8em;font-family:var(--normal)}.selected-term{font-family:var(--normal);font-weight:700}.edit-icon{background-image:url("./material-edit-white-PLQSK4RU.svg")}.date-time-panel{position:fixed;z-index:5;top:0;right:0;width:320px;background-color:var(--modal);box-shadow:var(--modal-shadow);margin:20px;padding:10px 0;border-radius:15px;display:flex;flex-direction:column;gap:10px;transition:transform .2s,opacity .2s,visibility .2s;overflow:hidden}.date-time-panel-hidden{transform:translate(20px);opacity:0;visibility:hidden}.date-time-panel-bottom-panel.date-time-panel-hidden,.date-time-panel-notice-visible.date-time-panel-hidden{transform:translate(350px)}.calendar-open{bottom:0;padding-bottom:0}@media (max-width: 950px){.date-time-panel-bottom-panel,.date-time-panel-bottom-panel.date-time-panel-hidden{transform:translate(20px);opacity:0;visibility:hidden}}@media (max-width: 690px){.date-time-panel{top:unset;width:unset;bottom:0;left:0;margin:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.date-time-panel-hidden,.date-time-panel-bottom-panel,.date-time-panel-bottom-panel.date-time-panel-hidden,.date-time-panel-notice-visible.date-time-panel-hidden{transform:translateY(20px)}.calendar-open{height:70vh}}.calendar-scroll-area{overflow:auto;-webkit-overflow-scrolling:touch;height:0;flex:auto;position:relative}.calendar-scroll-area .gradient-top{height:120px;margin-bottom:-120px;z-index:1}.calendar-row{display:flex;align-items:center;min-height:30px}.calendar-header-row{position:sticky;top:0;background-color:var(--modal);z-index:5}.calendar-deco-row{margin-bottom:-30px;height:0;position:sticky;top:30px}.calendar-deco{position:absolute;left:0;right:0;top:0;transform:translateY(90px)}.calendar-header-line{border-bottom:1px solid var(--line);margin-bottom:-1px;position:relative;z-index:1}.calendar-week-num{width:25px;flex:none;align-self:stretch;display:flex;align-items:center;justify-content:flex-end;border-right:1px solid var(--line);padding-right:10px;color:var(--secondary);font-family:var(--narrow)}.calendar-header-row .calendar-week-num span{display:block;position:relative;top:90px}.calendar-item{flex:1 1 0;height:30px;display:flex;justify-content:center;align-items:center;position:relative;z-index:0}.calendar-week-day{font-family:var(--narrow)}.calendar-day{cursor:pointer}.calendar-day:focus-within{outline:1px solid var(--text);border-radius:50%}.calendar-break-day{color:var(--secondary)}.calendar-finals-day{color:var(--exam)}.calendar-selected{background-color:var(--button);color:#fff}.calendar-day.calendar-selected{border-radius:30px}.calendar-heading-row{position:sticky;z-index:1}.calendar-quarter-heading-row{top:0;z-index:3}.calendar-month-heading-row{top:90px}.calendar-heading-row:nth-child(2){margin-top:0}.calendar-heading{flex:auto;font-weight:400;text-align:center}.calendar-quarter-heading{font-size:64px;white-space:nowrap;padding-top:30px}.calendar-month-heading{font-size:1em;font-family:var(--normal)}.show-year-btn{font-family:var(--normal);margin:10px auto;padding:5px 10px;background-color:var(--button);color:#fff;border-radius:5px;height:100%}.show-year-btn:hover{background-color:var(--button-hover)}.show-year-btn-top{position:relative;z-index:4;margin-bottom:-30px}.date-time-flex{display:flex;padding:0 10px;gap:10px}.checkbox-label{display:flex;align-items:center;gap:10px;font-family:var(--normal)}.tz-note{display:block;font-size:.8em;color:var(--secondary)}.date-input,.time-input,.today-btn{height:40px;padding:0 15px;border-radius:10px}.date-input,.time-input{font-family:var(--narrow);background-color:var(--field)}.today-btn{font-family:var(--normal)}.today-btn,.filled-icon-btn{background-color:var(--button);color:#fff}.today-btn:hover,.filled-icon-btn:hover,.date-time-button:hover .filled-icon-btn{background-color:var(--button-hover)}.checkbox-label,.date-input{flex:auto}.filled-icon-btn{width:40px;height:40px;border-radius:50%;font-size:0;font-size-adjust:none;background-size:24px;background-position:center;background-repeat:no-repeat}.close-date-btn{background-image:url("./material-done-white-EO6UTSEL.svg")}.building-panel{position:fixed;z-index:3;left:20px;right:20px;bottom:20px;margin:0 auto;max-width:820px;height:60vh;display:flex;flex-direction:column;background-color:var(--modal);box-shadow:var(--modal-shadow);border-radius:15px;transition:transform .2s,opacity .2s,visibility .2s,right .2s;overflow:auto;-webkit-overflow-scrolling:touch}.building-panel-invisible{opacity:0;transform:translateY(20px);visibility:hidden}.right-panel-open{right:360px}@media (max-width: 950px){.right-panel-open{right:20px}}@media (max-width: 690px){.building-panel{left:0;right:0;bottom:0;height:70vh;border-bottom-left-radius:0;border-bottom-right-radius:0}.room-list .gradient-top{margin-top:-10px}}.building-name,.rooms,.schedule{width:100%;box-sizing:border-box}.building-name{height:160px;flex:none;position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;transition:height .5s;background-image:linear-gradient(120deg,#00629b,#182b49);color:#fff;overflow:hidden}.schedule-view{height:48px}.building-name .abbrev-heading{font-weight:400;position:absolute;bottom:0;left:0;right:0;font-size:140px;margin:20px 20px 0;transition:transform .5s;transform-origin:bottom left}.schedule-view .abbrev-heading{transform:translate(28px,-9px) scale(.2)}.building-name .abbrev,.building-name .long{transition:opacity .5s,visibility .5s}.building-name .abbrev{opacity:.3}.schedule-view .abbrev{opacity:1}.schedule-view .long{opacity:0;visibility:hidden}.room-number{font-family:var(--narrow);transition:opacity .5s}.list-view .room-number{opacity:0}.building-header-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;opacity:.5}.schedule-view .building-header-image{opacity:0}.image{transition:opacity .5s}.image-loading{opacity:0;transition:none}.icon-btn{font-size:0;font-size-adjust:none;padding:12px;position:relative;z-index:1}.icon-btn:hover{background-color:var(--icon-button-hover)}.close{margin-left:auto}.list-view .close{border-bottom-left-radius:15px}.back{transition:opacity .5s,margin-left .5s,visibility .5s}.list-view .back{visibility:hidden;opacity:0;margin-left:-48px}.building-images{padding:20px 20px 0;column-width:200px;column-gap:20px;column-fill:balance}.building-image-link{display:flex;margin-bottom:20px}@media (max-width: 690px){.building-images{padding:10px 10px 0}.building-image-link{margin-bottom:10px}}.building-image{width:100%;height:auto;border-radius:10px;transition:box-shadow .2s,opacity .2s}.building-image-link:hover .building-image{box-shadow:var(--card-shadow-hover)}.empty{flex:auto;display:flex;padding:20px;align-items:center;justify-content:center;color:var(--secondary);font-family:var(--normal);text-align:center}.empty p{max-width:350px}.rooms{padding:0 20px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(14ch,1fr))}@media (max-width: 690px){.rooms{padding:0 10px}}.room{text-align:left;padding:10px 15px;border-radius:10px;border:1px solid var(--card-line);transition:box-shadow .2s}.room:hover,.meeting:hover{box-shadow:var(--card-shadow-hover)}.room:active,.meeting:active{box-shadow:var(--card-shadow-active)}.room-name{font-family:var(--narrow)}.current-meeting{font-family:var(--narrow);color:var(--secondary);font-size:.8em}.active .current-meeting{color:var(--secondary)}.soon .current-meeting{color:var(--soon)}.inactive .current-meeting{font-family:var(--normal);color:var(--active)}.schedule{display:flex;flex-direction:column}.day-names,.meetings-wrapper{display:flex;gap:10px;padding:0 10px}.day-names-wrapper{position:sticky;top:0;z-index:1}.day-names{padding:10px}.day{flex:1 0 0;position:relative}.day-name{text-align:center}.selected-day{background-color:var(--text);color:var(--modal);border-radius:5px;box-shadow:var(--card-shadow-hover)}.meetings-wrapper{flex:auto}.has-holiday{display:flex;justify-content:center;align-items:center;text-align:center}.schedule-holiday-notice{color:var(--secondary);font-family:var(--normal)}.meeting{display:flex;flex-direction:column;text-align:left;padding:5px;border-radius:10px;border:1px solid var(--card-line);position:absolute;left:0;right:0;box-sizing:border-box;transition:box-shadow .2s}.special-summer{font-family:var(--narrow);color:var(--exam);position:absolute;bottom:5px;right:5px;font-size:.8em;cursor:help;text-decoration:none}.exam{border-color:var(--exam)}.meeting-name{font-family:var(--narrow)}.meeting-time{font-size:.5em;font-family:var(--normal)}@media (max-width: 690px){.full-week .meeting-name{font-size:.55em}.full-week .meeting-time{font-size:.4em}}.gradient{display:flex;flex-direction:column;height:20px}.gradient-sticky{position:sticky}.gradient-bg{position:absolute;z-index:-1;left:0;width:100%;height:100%}.gradient-top{top:0}.gradient-bottom{bottom:0}.gradient-top:before,.gradient-bottom:after{content:"";background-color:var(--modal);flex:auto}.gradient-top:after,.gradient-bottom:before{content:"";height:20px}.gradient-top:after{background-image:linear-gradient(var(--modal),transparent)}.gradient-bottom:before{background-image:linear-gradient(transparent,var(--modal))}.now{border-top:1px solid var(--red);box-shadow:0 0 5px var(--red);position:absolute;left:0;right:0}.disclaimer-wrapper{position:sticky;bottom:0}.disclaimer{padding:10px;color:var(--secondary);font-size:12px;font-family:var(--normal)}.term-buttons{position:relative;height:45px;overflow:hidden;border-top:1px solid var(--line)}.term-buttons:before,.term-buttons:after{content:"";position:absolute;display:block;top:0;bottom:0;width:20px;z-index:5;pointer-events:none}.term-buttons:before{left:0;background-image:linear-gradient(to left,transparent,var(--modal))}.term-buttons:after{right:0;background-image:linear-gradient(to right,transparent,var(--modal))}.term-button{position:absolute;top:10px;left:50%;display:flex;align-items:center;justify-content:center;border:1px solid var(--card-line);width:6ch;height:25px;font-size:.8em;border-radius:5px;box-sizing:border-box;transition:transform .2s,box-shadow .2s}.term-button:hover{box-shadow:var(--card-shadow-hover)}.term-button-selected{border-color:transparent;background-color:var(--button);color:#fff}.term-button-selected:hover{background-color:var(--button-hover);box-shadow:none}.term-button-hidden{display:none}.term-statuses{border-top:1px solid var(--line);font-size:.8em;padding:10px 15px;gap:2px;display:flex;flex-direction:column;font-family:var(--normal);color:var(--secondary);transition:opacity .2s,visibility .2s,transform .2s}.term-code{font-family:var(--narrow);color:var(--text)}.updated-date{color:var(--text)}.term-offline{color:var(--red)}.term-unavailable{color:var(--soon)}.credit{border-top:1px solid var(--line);padding:10px 15px;font-size:.8em;font-family:var(--normal);color:var(--secondary)}@media (max-width: 690px){.term-buttons,.term-statuses,.credit{border-top:none;border-bottom:1px solid var(--line)}}.search-wrapper{position:fixed;z-index:5;top:0;left:0;margin:20px;background-color:var(--modal);box-shadow:var(--modal-shadow);border-radius:10px;width:360px;transition:opacity .4s,visibility .4s;max-height:calc(100% - 40px);display:flex;flex-direction:column}.hide-search{visibility:hidden;opacity:0}.search-bar{display:flex;padding-left:8px;height:40px;font-family:var(--normal);flex:none}.search-input{padding:0 8px;flex:auto}.clear-btn{width:40px;padding:0;border-top-right-radius:10px}.ongoing-only{display:none;padding:10px;font-family:var(--normal);gap:10px}.show-ongoing-only,.search-wrapper:focus-within .ongoing-only{display:flex}.no-results,.results{border-top:1px solid var(--line)}.no-results{font-family:var(--normal);padding:10px 10px 0;color:var(--secondary)}.results{padding:5px 0;list-style:none;overflow:auto;-webkit-overflow-scrolling:touch;flex:auto}.result-heading{color:var(--secondary);font-size:.8em;text-transform:uppercase;padding:5px 10px;font-family:var(--normal);font-weight:400}.result{display:flex;flex-direction:column;width:100%;box-sizing:border-box;padding:5px 10px;text-align:left}.result:hover,.result-selected{background-color:var(--result-hover)}.result-secondary{font-size:.8em}.result-name{font-family:var(--normal)}.result-code{font-family:var(--narrow)}.result-match{background-color:var(--button);color:#fff;border-radius:2px}@media (max-width: 690px){.search-wrapper{right:0;width:unset;margin:10px;max-height:calc(100% - 20px)}.clear-btn{border-radius:50%}.showing-results{margin:0;padding:10px 0;border-radius:0}.showing-results .search-bar,.result-heading,.no-results,.ongoing-only{margin:0 10px}.result{padding:5px 20px}}.modal{display:block;visibility:hidden;border:none;position:fixed;z-index:10;top:0;left:0;width:100%;height:100%;overflow:hidden;box-sizing:border-box;padding:40px;display:flex;justify-content:center;align-items:center;background-color:#00000080;backdrop-filter:blur(10px);opacity:0;pointer-events:none;user-select:none;transition:visibility .2s,opacity .2s}.modal[open]{visibility:visible;opacity:1;pointer-events:unset;user-select:text}.modal:modal{max-width:unset;max-height:unset}.modal::backdrop{background:none}.modal:focus{outline:none}.modal-body{width:100%;max-width:1000px;max-height:100%;overflow:auto;-webkit-overflow-scrolling:touch;background-color:var(--modal);box-shadow:var(--modal-shadow);border-radius:20px;transform:scale(.95);transition:transform .2s,border-radius .2s}.modal[open] .modal-body{transform:none}.modal-title{font-weight:400}.modal-title-course-code{font-size:140px;line-height:1}.modal-title-professor{font-family:var(--normal);font-size:36px}.last-name{font-weight:700}.modal-header{display:flex;align-items:flex-start}.modal-header h1{flex:auto;width:0;padding:40px;overflow:hidden}.modal-header .long{margin:40px}.modal-header .close{margin:28px 28px 28px 0;border-radius:50%}@media (max-width: 700px){.modal{padding:0;backdrop-filter:none;align-items:flex-start;overflow:auto}.modal-body{min-height:100%;max-height:unset}.modal[open] .modal-body{transform:none;border-radius:0}.modal-header h1{padding:20px}.modal-header .long{margin:20px}}.course-info{margin:0 40px 40px;display:flex;flex-direction:column;gap:20px}.group{display:flex;flex-direction:column;border:1px solid var(--card-line);border-radius:10px;gap:5px;padding-bottom:5px}.group-info{display:flex;border-top-left-radius:10px;border-top-right-radius:10px;background-color:var(--card-header);overflow:hidden;position:relative;min-height:40px;padding:10px;gap:10px;box-sizing:border-box}.course-code{line-height:20px;font-family:var(--narrow)}.group-code{font-family:var(--narrow);line-height:20px;opacity:.15;font-size:1.5em}.group-code-small{font-size:1em;opacity:.5}.section-title{font-family:var(--normal);font-weight:400;font-size:1em}.instructors{display:flex;flex-direction:column;text-align:right;margin-left:auto;gap:5px}.instructor,.staff{font-family:var(--normal)}.additional-meetings-divider{border:none;border-top:1px solid var(--card-line);margin:0;width:100%}.meeting-card{display:flex;align-items:baseline;padding:0 10px}.meeting-code{font-family:var(--narrow)}.meeting-type{display:flex;align-items:baseline;gap:5px;font-family:var(--normal);margin-right:auto}.section-capacity{width:120px;font-family:var(--normal)}.meeting-date{font-family:var(--narrow);width:180px}.live-marker{background-color:var(--active);display:inline-block;width:.5em;height:.5em;margin:.2em .25em;border-radius:50%;position:relative}.live-marker:after{content:"";background-color:var(--active);display:block;position:absolute;inset:0;border-radius:50%;animation:live 1s infinite}@keyframes live{0%{transform:scale(1);opacity:1}to{transform:scale(2);opacity:0}}.location{font-family:var(--narrow);width:80px;text-align:left}.location-not-room{font-family:var(--normal)}.instructor,.location[href]{color:var(--link)}.instructor:hover,.location[href]:hover{text-decoration:underline}.mobile-break{display:none}@media (max-width: 700px){.course-info{margin:0 20px 20px}}@media (max-width: 570px){.meeting-card{flex-wrap:wrap;justify-content:flex-end;gap:0 10px}.section-capacity,.meeting-date,.location{width:auto}.mobile-break{display:block;width:100%}}.college-revelle{background-image:linear-gradient(120deg,#2045c5,#273b80);color:#fff}.college-muir{background-image:linear-gradient(120deg,#24a53b,#095540);color:#fff}.college-marshall{background-image:linear-gradient(120deg,#e90a19,#b01e28);color:#fff}.college-warren{background-image:linear-gradient(120deg,#c3165b,#802449);color:#fff}.college-erc{background-image:linear-gradient(120deg,#20a2f1,#5a8ab5);color:#fff}.college-sixth{background-image:linear-gradient(120deg,#11b0bf,#068a96);color:#fff}.college-seventh{background-image:linear-gradient(120deg,#e9b418,#d09228);color:#fff}.college-eighth{background-image:linear-gradient(120deg,#6c2ab3,#46206f);color:#fff}.college-pepperCanyon{background-image:linear-gradient(120deg,#068a96,#08484e);color:#fff}.college-med,.college-health{background-image:linear-gradient(120deg,#f0f5f6,#d6e8f0);color:#ff004e}.weekly-calendar .calendar-header-row .calendar-week-num{display:none}.weekly-calendar .calendar-header-row{top:0}.weekly-calendar .calendar-header-row .calendar-week-num span{display:none}.weekly-calendar .calendar-month-heading-row{position:static;top:auto}.weekly-calendar .calendar-month-heading-row .calendar-heading{padding:8px 0}.weekly-calendar .calendar-month{position:static}.weekly-calendar{height:auto;min-height:180px;flex:1 1 auto}.weekly-calendar .calendar-date-row{min-height:60px}.weekly-calendar .calendar-date-row .calendar-item{height:60px}.weekly-calendar .calendar-date-row .calendar-week-num{display:none}.weekly-calendar .calendar-row{width:100%;box-sizing:border-box}.weekly-calendar .calendar-date-row{overflow:visible}.weekly-calendar .calendar-date-row .calendar-item{min-width:0}.weekly-calendar .weekly-hidden-week-num{display:none}.date-time-panel.calendar-open{position:fixed;inset:85px auto 20px 20px;width:340px;height:auto;margin:0;max-height:calc(100vh - 105px);border-radius:15px;transform:none;opacity:1;visibility:visible}.weekly-time-grid{flex:auto;height:0;overflow:auto;-webkit-overflow-scrolling:touch;font-family:var(--normal)}.weekly-time-grid-header,.weekly-time-grid-body{display:grid;grid-template-columns:50px repeat(7,minmax(0,1fr));min-width:520px}.weekly-time-grid-header{position:sticky;top:0;z-index:5;background:var(--modal);border-bottom:1px solid var(--line)}.weekly-time-gutter,.weekly-time-labels{border-right:1px solid var(--line);position:sticky;left:0;background-color:var(--modal)}.weekly-time-gutter{z-index:1}.weekly-time-labels{z-index:3}.weekly-time-day{text-align:center;padding:10px 2px;border-right:1px solid var(--line);font-size:.9rem}.weekly-time-day-selected{color:var(--link);font-weight:700}.weekly-time-label{height:60px;box-sizing:border-box;padding:0 6px;text-align:right;font-size:.75rem;color:var(--secondary);transform:translateY(-7px)}.weekly-time-label:first-child{transform:none}.weekly-time-column{position:relative;display:grid;grid-template-rows:repeat(24,60px);border-right:1px solid var(--line);touch-action:none;user-select:none;cursor:crosshair;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 59px,var(--line) 59px,var(--line) 60px),repeating-linear-gradient(to bottom,transparent 0,transparent 29px,var(--card-header) 29px,var(--card-header) 30px)}.weekly-time-selection{position:absolute;left:2px;right:2px;box-sizing:border-box;background-color:var(--button);border:1px solid var(--link);border-radius:5px;color:#fff;font-size:.7rem;padding:2px 4px;overflow:hidden;pointer-events:auto}.current-time-indicator{position:absolute;left:0;right:0;height:2px;background-color:#ea4335;z-index:10;pointer-events:none}.current-time-indicator:before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background-color:#ea4335}.week-nav-btn{flex:none;width:40px;height:40px;border-radius:50%;background-color:var(--field);font-size:1.4em}.week-nav-btn:hover{background-color:var(--result-hover)}.time-search-row{display:flex;align-items:center;gap:10px;padding:10px;border-top:1px solid var(--line);flex:none}.selection-summary{flex:auto;font-family:var(--narrow);color:var(--secondary)}.time-search-btn{height:40px;padding:0 20px;border-radius:10px;background-color:var(--button);color:#fff;font-family:var(--normal)}.time-search-btn:hover:not(:disabled){background-color:var(--button-hover)}.time-search-btn:disabled{opacity:.4}.term-buttons{display:none}.tutorial-help-button{position:fixed;bottom:24px;right:24px;z-index:1000;background:#3b82f6;color:#fff;border:none;border-radius:24px;padding:12px 20px;font-size:16px;cursor:pointer;box-shadow:0 4px 12px #0003}.tutorial-help-button:hover{background:#2563eb}.date-time-panel-bottom-panel.calendar-open{transform:none;opacity:1;visibility:visible}@media (max-width: 690px){.date-time-panel.calendar-open{inset:80px 10px 10px;width:auto;height:auto;max-height:calc(100vh - 90px);margin:0}}.calendar-toggle-btn{position:fixed;top:80px;left:20px;z-index:10;width:340px;height:44px;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 15px;background-color:var(--modal);color:var(--text);border-radius:12px;box-shadow:var(--modal-shadow);font-family:var(--normal);font-size:14px;font-weight:600;cursor:pointer}.calendar-toggle-btn:hover{background-color:var(--field)}.date-time-panel.calendar-open{position:fixed;inset:136px auto 20px 20px;width:340px;height:auto;margin:0;max-height:calc(100vh - 156px);border-radius:15px}.date-time-panel.calendar-open.date-time-panel-hidden{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-10px)}.date-time-panel.calendar-open:not(.date-time-panel-hidden){opacity:1;visibility:visible;pointer-events:auto;transform:none}.current-time-display{display:flex;flex-direction:column;gap:5px;padding:12px 15px;font-family:var(--normal)}.current-time-label{color:var(--secondary);font-size:12px}.current-time-display strong{font-size:15px;font-weight:600}@media (max-width: 690px){.calendar-toggle-btn{top:65px;left:10px;width:220px}.date-time-panel.calendar-open{inset:120px 10px 10px;width:auto;height:auto;max-height:calc(100vh - 130px);margin:0}}.left-controls{position:fixed;top:20px;left:20px;z-index:6;width:360px;max-width:calc(100vw - 40px);display:flex;flex-direction:column;gap:10px}.left-controls .search-wrapper{position:relative;inset:auto;width:100%;margin:0;box-sizing:border-box}.left-controls .calendar-toggle-btn{position:static!important;inset:auto!important;width:100%!important;height:44px;margin:0!important;display:flex;align-items:center;justify-content:center;gap:10px;background-color:var(--modal);color:var(--text);border:none;border-radius:10px;box-shadow:var(--modal-shadow);font-family:var(--normal);font-size:14px;font-weight:600;cursor:pointer}.left-controls .calendar-toggle-btn:hover{background-color:var(--field)}.date-time-panel.calendar-open{left:20px;width:360px}@media (max-width: 690px){.left-controls{top:10px;left:10px;width:calc(100vw - 20px);max-width:none}.date-time-panel.calendar-open{left:10px;right:10px;width:auto}}.map-zoom-buttons{position:fixed;right:24px;bottom:105px;z-index:7;display:flex;flex-direction:column;gap:8px}.map-zoom-buttons button{width:44px;height:44px;border-radius:12px;background:var(--modal);color:var(--text);box-shadow:var(--modal-shadow);font-size:25px;font-weight:500;cursor:pointer}.map-zoom-buttons button:hover:not(:disabled){background:var(--field)}.map-zoom-buttons button:disabled{opacity:.35;cursor:default}@media (max-width: 690px){.map-zoom-buttons{right:18px;bottom:100px}}.current-time-indicator{position:absolute;left:0;right:0;height:2px;background-color:var(--red);z-index:4;pointer-events:none}.current-time-indicator:before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background-color:var(--red)}.welcome-overlay{position:fixed!important;inset:0!important;width:100vw;height:100vh;height:100dvh;display:grid!important;place-items:center!important;padding:20px;box-sizing:border-box;background-color:#00000080;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);z-index:99999}.welcome-modal{position:relative!important;inset:auto!important;transform:none!important;width:min(420px,100%);max-width:420px;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow-y:auto;margin:0!important;padding:30px;box-sizing:border-box;color:var(--text);background-color:var(--modal);border:1px solid var(--card-line);border-radius:15px;box-shadow:var(--modal-shadow);font-family:var(--normal);text-align:left}.welcome-modal h2{margin:0 0 15px;color:var(--text);font-family:var(--normal);font-size:22px;font-weight:600;line-height:1.4}.welcome-modal p{margin:0 0 24px;color:var(--secondary);font-size:15px;line-height:1.6}.welcome-actions{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:10px}.welcome-actions button{min-height:40px;padding:10px 16px;border:1px solid var(--card-line);border-radius:8px;color:var(--text);font-family:var(--normal);font-size:14px;cursor:pointer;transition:background-color .2s ease}.welcome-actions .welcome-primary{border-color:transparent;background-color:var(--button);color:#fff}.welcome-actions .welcome-primary:hover{background-color:var(--button-hover)}.welcome-actions .welcome-secondary{background-color:transparent}.welcome-actions .welcome-secondary:hover{background-color:var(--result-hover)}@media (max-width: 530px){.welcome-modal{padding:24px 20px}.welcome-modal h2{font-size:20px}.welcome-actions{flex-direction:column;align-items:stretch;.tutorial-modal{width:min(700px,95vw);max-width:700px}.tutorial-modal video{display:block;width:100%;aspect-ratio:16 / 9;background:#000;border-radius:10px;margin-bottom:20px}.tutorial-placeholder{display:flex;align-items:center;justify-content:center;aspect-ratio:16 / 9;background:#202020;color:#fff;border-radius:10px;margin-bottom:20px}}.welcome-actions button{width:100%}}
