*{box-sizing:border-box}body{color:#16181d;background:#f6f7fb;margin:0;font-family:system-ui,sans-serif;line-height:1.5}a{color:#0b5fff}h1,h2,h3{margin:0}ul{margin:0;padding:0;list-style:none}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline-offset:2px;outline:2px solid #0b5fff}.sr-only{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}header{color:#fff;background:#0b1f3a;flex-wrap:wrap;align-items:center;gap:1.5rem;padding:.6rem 1.25rem;display:flex}.brand{align-items:center;gap:.6rem;font-weight:700;display:flex}.brand-mark{color:#0b1f3a;background:#cfe0ff;border-radius:.25rem;padding:.1rem .4rem;font-size:.85rem}.icon-button{color:#ffffffbf;background:0 0;border:1px solid #fff3;border-radius:.3rem;padding:.25rem .5rem}header nav{flex-wrap:wrap;gap:1rem;display:flex}header nav a{color:#cfe0ff;font-size:.9rem;text-decoration:none}header nav a[aria-current=page]{color:#fff;border-bottom:2px solid #cfe0ff;font-weight:600}.account{color:#ffffffa6;align-items:center;gap:.75rem;margin-left:auto;font-size:.8rem;display:flex}.account-name{color:#ffffffbf}.cta{color:#fff9;border:1px solid #ffffff40;border-radius:.3rem;padding:.25rem .55rem;font-size:.75rem;text-decoration:none}.cta:hover{color:#fff;border-color:#ffffff80}.layout{grid-template-columns:17rem minmax(0,1fr);align-items:start;gap:1.25rem;max-width:72rem;margin:0 auto;padding:1.25rem 1.25rem 3rem;display:grid}aside#sidebar{background:#fff;border:1px solid #e2e6ee;border-radius:.5rem;padding:1rem}aside#sidebar.collapsed{display:none}.who-name{margin:0;font-weight:700}.who-meta{color:#565f73;margin:.15rem 0 0;font-size:.8rem}.sample-tag{color:#a15c00}.summary{flex-wrap:wrap;gap:.4rem;margin:.9rem 0;display:flex}.chip{border-radius:999px;padding:.25rem .5rem;font-size:.75rem;font-weight:600}.chip-allocated{color:#0f6b32;background:#e4f6ea}.chip-pending{color:#8a5a00;background:#fff3da}.chip-unavailable{color:#565f73;background:#f1f2f5}.courses-header{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.section-label{text-transform:uppercase;letter-spacing:.04em;color:#8790a3;margin-bottom:.5rem;font-size:.75rem}.manage-toggle{color:#0b5fff;background:0 0;border:none;padding:0;font-size:.75rem;font-weight:600}.manage-toggle:hover{text-decoration:underline}.course{border-top:1px solid #eef0f5;border-radius:.3rem;padding:.5rem 0;transition:background .3s}.course.flash{background:#eef3fc}.course summary{cursor:pointer;align-items:baseline;gap:.5rem;font-size:.9rem;display:flex}.course-swatch{border-radius:999px;flex-shrink:0;align-self:center;width:.55rem;height:.55rem;display:inline-block}.course-code{font-weight:700}.course-name{color:#565f73;font-size:.8rem}.activity-list{flex-direction:column;gap:.4rem;margin-top:.5rem;display:flex}.activity-row{align-items:center;gap:.5rem;font-size:.85rem;display:flex}.status-dot{border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:1.4rem;height:1.4rem;font-size:.75rem;display:inline-flex}.status-allocated{color:#0f6b32;background:#e4f6ea}.status-pending{color:#8a5a00;background:#fff3da}.status-unavailable{color:#565f73;background:#f1f2f5}.activity-title{flex:1}.activity-status{color:#565f73;flex-shrink:0;font-size:.72rem}.status-text-allocated{color:#0f6b32}.status-text-pending{color:#8a5a00}.change-button,.waitlist-button{background:#fff;border:1px solid #c6cee0;border-radius:999px;flex-shrink:0;padding:.2rem .55rem;font-size:.75rem}.change-button:hover{background:#eef3fc}.fixed-tag,.changing-tag{color:#8790a3;flex-shrink:0;font-size:.7rem}.changing-tag{color:#0b5fff;font-weight:600}main{min-width:0}.up-next{background:#fff;border:1px solid #e2e6ee;border-radius:.5rem;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.5rem .75rem;display:flex}.next-class-icon{color:#fff;border-radius:.4rem;flex-shrink:0;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;font-size:1.1rem;display:flex}.next-class-info{flex:1;min-width:0}.next-class-eyebrow{text-transform:uppercase;letter-spacing:.05em;color:#8790a3;margin:0;font-size:.68rem}.next-class-title{margin:.05rem 0;font-size:.95rem;font-weight:700}.next-class-meta{color:#565f73;flex-wrap:wrap;gap:.5rem;margin:0;font-size:.78rem;display:flex}.next-class-countdown{color:#0b5fff;font-weight:600}.next-class-action{background:#fff;border:1px solid #c6cee0;border-radius:.3rem;flex-shrink:0;padding:.3rem .6rem;font-size:.78rem}.next-class-action:hover{background:#eef3fc}.next-class-empty{color:#565f73;margin:0;font-size:.85rem}.toolbar{background:#fff;border:1px solid #e2e6ee;border-radius:.5rem;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.6rem .9rem;font-size:.85rem;display:flex}.toolbar-group{align-items:center;gap:.6rem;display:flex}.toolbar-label{color:#565f73}.toolbar-week{color:#565f73;margin-left:auto}.toolbar button{background:#fff;border:1px solid #c6cee0;border-radius:.3rem;padding:.25rem .5rem}.view-toggle button.selected{color:#fff;background:#0b1f3a;border-color:#0b1f3a}.overflow-menu{gap:.4rem;display:flex}.change-bar{border-radius:.5rem;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.75rem;padding:.6rem .9rem;font-size:.85rem;display:flex}.change-bar-browse{background:#eef3fc;border:1px solid #cfe0ff}.change-bar-confirm{background:#fff8e6;border:1px solid #f0c766}.change-bar-title{flex:auto;min-width:12rem;margin:0;font-weight:700}.change-bar-hint{color:#565f73;flex:auto;margin:0}.change-bar-summary{flex:auto;gap:1rem;margin:0;display:flex}.change-bar-actions{flex-shrink:0;gap:.5rem;display:flex}.change-bar-cancel{background:#fff;border:1px solid #c6cee0;border-radius:.3rem;padding:.3rem .7rem}.change-bar-confirm-button{color:#fff;background:#0b1f3a;border:1px solid #0b1f3a;border-radius:.3rem;padding:.3rem .7rem;font-weight:600}.clash-banner{color:#a11a10;background:#fdecea;border:1px solid #d93025;border-radius:.4rem;margin-bottom:.75rem;padding:.6rem .9rem;font-size:.9rem;font-weight:600}#grid-view{overflow-x:auto}.timetable{background:#fff;border:1px solid #e2e6ee;border-radius:.5rem;grid-template-columns:3.5rem repeat(7,minmax(6rem,1fr));grid-auto-rows:1.7rem;min-width:48rem;display:grid;position:relative;overflow:hidden}.today-highlight{z-index:0;background:#f5f8fe}.grid-line{z-index:0;border-top:1px solid #f1f2f5}.grid-line-hour{border-top-color:#e6e9f0}.day-head{text-align:center;z-index:1;background:#f6f7fb;border-bottom:1px solid #e2e6ee;padding:.4rem;font-size:.85rem;font-weight:600}.day-head.today{color:#0b1f3a;background:#eef3fc}.today-badge{color:#0b5fff;font-size:.65rem;font-weight:600;display:block}.time-label{color:#7b8397;z-index:1;padding:.15rem .35rem;font-size:.75rem}.now-line{z-index:2;background:#d93025;align-self:start;height:2px}.now-label{color:#d93025;text-align:right;z-index:2;align-self:start;padding:0 .3rem;font-size:.65rem;font-weight:700;transform:translateY(-.5em)}.activity{color:#fff;z-index:1;background:var(--course-color,#5b6b82);border-radius:.3rem;flex-direction:column;gap:.1rem;margin:1px;padding:.3rem .4rem;font-size:.72rem;font-weight:600;display:flex;position:relative;overflow:hidden}.activity.conflict-partner{outline-offset:-2px;outline:2px solid #a11a10}.activity-code{opacity:.85;font-size:.68rem}.activity-room{opacity:.85;font-size:.68rem;font-weight:400}.activity.clash{background:#d93025;outline:2px dashed #7a0000}.activity-current{outline-offset:-3px;box-shadow:0 0 0 2px var(--course-border,#0f3d85);outline:2px solid #fff}.current-badge{background:#ffffff4d;border-radius:.2rem;align-self:flex-start;padding:0 .3rem;font-size:.65rem}.clash-tag{background:#ffffff40;border-radius:.2rem;align-self:flex-start;padding:0 .3rem;font-size:.65rem}.resolve-button{color:#a11a10;background:#fff;border:none;border-radius:.2rem;align-self:flex-start;margin-top:auto;padding:.1rem .4rem;font-size:.68rem;font-weight:700}.alt{z-index:1;text-align:left;border:2px dashed #0000;border-radius:.3rem;flex-direction:column;gap:.1rem;margin:1px;padding:.3rem .4rem;font-size:.68rem;font-weight:600;display:flex;position:relative;overflow:hidden}.alt-available{color:#0a6b3c;background:#0f9b581f;border-color:#0f9d58}.alt-available:hover{background:#0f9b5838}.alt-pending{background:var(--alt-color,#0b5fff);color:#fff;border-style:solid;border-color:#0000}.alt-conflict{color:#a11a10;background:#d930251a;border-color:#d93025}.alt-full{color:#565f73;background:#575f7314;border-color:#a6adbb}.alt-status{text-transform:uppercase;letter-spacing:.02em;font-size:.65rem;font-weight:700}.alt-explain{font-size:.65rem;font-weight:400}.list-day{color:#0b1f3a;margin:1rem 0 .4rem;font-size:.9rem}.list-day.today{color:#0b5fff}.list-items{flex-direction:column;gap:.4rem;display:flex}.list-item{background:#fff;border:1px solid #e2e6ee;border-radius:.4rem;align-items:center;gap:.6rem;padding:.5rem .7rem;font-size:.85rem;display:flex}.list-swatch{border-radius:999px;flex-shrink:0;width:.55rem;height:.55rem;display:inline-block}.list-item.clash{border-color:#d93025}.list-empty{color:#565f73;font-size:.85rem}footer{color:#565f73;max-width:72rem;margin:0 auto;padding:0 1.25rem 2rem;font-size:.8rem}@media (width<=760px){.layout{grid-template-columns:1fr}aside#sidebar{z-index:9;width:17rem;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}aside#sidebar.collapsed,.account-name{display:none}.change-bar-summary{flex-direction:column;gap:.2rem}}
