body{color:#1a1a1a;margin:0;padding:2rem;font-family:system-ui,sans-serif;line-height:1.6}main{max-width:40rem;margin:0 auto}a{color:#0b5fff}nav[aria-label=site]{flex-wrap:wrap;gap:1.25rem;margin-block-end:1rem;font-size:.95rem;display:flex}nav[aria-label=site] a{text-decoration:none}nav[aria-label=site] a:hover,nav[aria-label=site] a:focus-visible{text-decoration:underline}form{flex-wrap:wrap;align-items:center;gap:.5rem;margin-block:1.5rem;display:flex}input{min-width:12rem;font:inherit;flex:1;padding:.4rem .6rem}button{font:inherit;cursor:pointer;background:#f4f4f4;border:1px solid #bbb;border-radius:.35rem;padding:.4rem 1rem}button:hover{background:#e9e9e9}button:disabled{cursor:not-allowed;opacity:.6}button.btn-primary{color:#fff;background:#0b5fff;border-color:#0b5fff}button.btn-primary:hover,button.btn-primary:focus-visible{background:#0947cc;border-color:#0947cc}button.btn-danger{color:#c53030;background:#fff;border-color:#c53030}button.btn-danger:hover,button.btn-danger:focus-visible{color:#fff;background:#c53030}#messages{padding-inline-start:1.2rem}main.planner,main.courses{max-width:68rem}main.planner input[type=checkbox],main.planner input[type=radio],main.courses input[type=checkbox],main.courses input[type=radio]{flex:none;width:auto;min-width:0;margin:0;padding:0}main.planner input[type=checkbox]:focus-visible,main.planner input[type=radio]:focus-visible,main.courses input[type=checkbox]:focus-visible,main.courses input[type=radio]:focus-visible{outline-offset:2px;outline:2px solid #0b5fff}.planner-layout{align-items:flex-start;gap:1.5rem;display:flex}.planner-left{flex:0 0 19rem;min-width:0}.planner-right{flex:1;min-width:0}.course-filters{flex-wrap:wrap;align-items:center;gap:.75rem;margin-block:1rem;display:flex}.course-filters input{flex:1;min-width:12rem}.disclaimer{background:#fff6da;border:1px solid #e8d27a;border-radius:.5rem;margin-block-end:1.5rem;padding:.75rem 1rem}main.home{max-width:44rem}.home-actions{flex-wrap:wrap;gap:1rem;margin-block:1.5rem;display:flex}.primary-action{color:#fff;background:#0b5fff;border:1px solid #0b5fff;border-radius:.5rem;flex-direction:column;flex:16rem;gap:.25rem;padding:1rem 1.25rem;text-decoration:none;display:flex}.primary-action:hover,.primary-action:focus-visible{background:#0947cc;border-color:#0947cc}.primary-action:focus-visible{outline-offset:2px;outline:2px solid #1a1a1a}.primary-action-title{font-size:1.1rem;font-weight:600}.primary-action-detail{color:#e6edff;font-size:.9rem}.course-card{border:1px solid #ddd;border-radius:.5rem;margin-block-end:1rem;padding:1rem}.course-card h3{margin-block-start:0}.sessions-label{margin-block-end:.25rem;font-weight:600}.candidate-controls{flex-wrap:wrap;align-items:center;gap:1rem;margin-block-start:.75rem;display:flex}.required-toggle,.preview-toggle{align-items:center;gap:.4rem;font-size:.9rem;display:inline-flex}.badge{color:#fff;background:#0b5fff;border-radius:1rem;margin-inline:.4rem;padding:.1rem .6rem;font-size:.8rem}#candidate-list{padding-inline-start:0;list-style:none}#candidate-list li{border-bottom:1px solid #eee;flex-wrap:wrap;align-items:center;gap:.5rem;padding-block:.4rem;display:flex}.preview-status{color:#555;font-size:.85rem}.preview-course{border:1px solid #ddd;border-radius:.5rem;margin-block-end:1rem;padding:1rem}.tutorial-option{margin-block-end:.5rem;display:block}.conflict-note{color:#a30000}.ok-note{color:#0a7a2f}.incomplete-note{color:#8a6100}.lecture-hint{color:#0b5fff}.schedule-card{border:1px solid #ddd;border-radius:.5rem;margin-block-end:.5rem;padding:.5rem .75rem}.schedule-card-summary{align-items:center;gap:.5rem;display:flex}.schedule-card-toggle{min-width:0;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-wrap:wrap;flex:1;align-items:baseline;gap:.4rem;padding:.15rem 0;display:flex}.schedule-card-toggle .chevron{color:#666;flex:none;display:inline-block}.schedule-card-toggle .course-code{font-weight:600}.schedule-card-toggle .current-time{color:#555;font-size:.8rem}.preview-toggle-label{color:#666;font-size:.72rem}.tutorial-options{border:none;margin:.5rem 0 0;padding:0}.tutorial-options legend{padding:0;font-weight:600}.tutorial-option-row{margin-block-end:.3rem}.tutorial-option{flex-wrap:wrap;align-items:baseline;gap:.4rem;font-size:.9rem;display:flex}.option-time{font-weight:500}.room-picker{border:none;margin:.2rem 0 .5rem 1.4rem;padding:0}.room-option{margin-block-end:.2rem;font-size:.85rem;display:block}.tutorial-location{color:#0a7a2f;margin:0 0 0 1.4rem;font-size:.85rem}.weekly-grid{margin-block:1rem}.day-tabs{display:none}.weekly-grid-scroll{border:1px solid #ccc;border-radius:.5rem}.weekly-grid-header{z-index:2;background:#fff;border-bottom:1px solid #ccc;display:flex;position:sticky;top:0}.time-axis-spacer{flex:0 0 3.5rem}.day-header{text-align:center;border-left:1px solid #eee;flex:1;min-width:0;padding:.4rem .25rem;font-size:.85rem;font-weight:600}.weekly-grid-body{display:flex;position:relative}.time-axis{height:var(--grid-height);flex:0 0 3.5rem;position:relative}.hour-label{text-align:right;color:#666;font-size:.75rem;position:absolute;left:0;right:.3rem;transform:translateY(-.55em)}.day-column{min-width:0;height:var(--grid-height);background-image:repeating-linear-gradient(to bottom, #ddd 0, #ddd 1px, transparent 1px, transparent var(--hour-px)), repeating-linear-gradient(to bottom, #f0f0f0 0, #f0f0f0 1px, transparent 1px, transparent calc(var(--hour-px) / 2));border-left:1px solid #eee;flex:1;position:relative}.day-column-blocks{position:absolute;inset:0}.session-block{box-sizing:border-box;font:inherit;text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:.3rem;padding:.15rem .35rem;font-size:.72rem;line-height:1.2;position:absolute;overflow:hidden}.session-block.lecture{background:#e6f0ff;border:1px solid #b9d4ff}.session-block.tutorial{background:#e9f9ee;border:1px solid #bfe8cd}.session-block.conflict{background:#ffe6e6;border:1px solid #d33}.session-block.pending{background:#fff6da;border:1px dashed #b98900}.session-block.lecture-hint-block{outline-offset:-2px;outline:2px dashed #0b5fff}.session-detail{background:#fafafa;border:1px solid #ccc;border-radius:.5rem;margin-block-start:.75rem;padding:.75rem 1rem;position:relative}.session-detail h4{margin-block:0 .25rem}.session-detail p{margin-block:.25rem}.session-detail-close{cursor:pointer;background:0 0;border:none;padding:.2rem .4rem;font-size:1.1rem;line-height:1;position:absolute;top:.5rem;right:.5rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.autoschedule{border-top:1px solid #ddd;margin-block-start:2rem;padding-block-start:1.5rem}.preferences-panel{border:1px solid #ddd;border-radius:.5rem;margin-block-end:1rem;padding:1rem}.preferences-panel legend{font-weight:600}.preferences-note{color:#444;margin-block-start:0;font-size:.85rem}.day-checkbox-group{border:none;flex-wrap:wrap;align-items:center;gap:.75rem;margin:.75rem 0;padding:0;display:flex}.day-checkbox-group legend{flex-basis:100%;margin-block-end:.3rem;padding:0;font-size:.85rem;font-weight:500}.day-checkbox{align-items:center;gap:.3rem;font-size:.85rem;display:inline-flex}.minimize-days-toggle{align-items:center;gap:.4rem;margin-block:.75rem;font-size:.9rem;display:flex}.desired-count-group{border:none;flex-wrap:wrap;align-items:center;gap:1rem;margin:.75rem 0 0;padding:0;display:flex}.desired-count-group legend{flex-basis:100%;margin-block-end:.3rem;padding:0;font-size:.85rem;font-weight:500}.desired-count-group label{align-items:center;gap:.3rem;font-size:.9rem;display:inline-flex}#preferences-status{min-height:1.2em;font-size:.85rem}.autoschedule-triggers{flex-wrap:wrap;align-items:baseline;gap:.5rem 1.5rem;margin-block-end:1rem;display:flex}.autoschedule-triggers button{flex:none}.trigger-note{color:#555;flex-basis:100%;margin:0 0 .5rem;font-size:.82rem}.generate-results{background:#fafafa;border:1px solid #ccc;border-radius:.5rem;padding:1rem}.generated-plan-card{background:#fff;border:1px solid #ddd;border-radius:.5rem;margin-block-end:.6rem;padding:.6rem .8rem}.generated-plan-courses{margin-block:0 .25rem;font-weight:500}.generated-plan-meta{color:#555;margin-block:0 .4rem;font-size:.85rem}.generated-plan-actions{flex-wrap:wrap;gap:.5rem;display:flex}.generate-results-pagination{align-items:center;gap:.75rem;margin-block:.75rem;font-size:.9rem;display:flex}.plan-detail-modal{background:#fff;border:1px solid #ccc;border-radius:.5rem;margin-block-start:1rem;padding:.75rem 1rem;position:relative}.plan-detail-modal h4{margin-block:0 .5rem}.plan-detail-day{margin-block-end:.6rem}.plan-detail-day h4{margin-block-end:.2rem;font-size:.95rem}.plan-detail-day ul{margin:0;padding-inline-start:1.2rem;font-size:.88rem}.plan-detail-day li.pending{color:#8a6100}.confirm-section{background:#fafafa;border:1px solid #ccc;border-radius:.5rem;margin-block-end:1.5rem;padding:1rem}#confirm-status{color:#0a7a2f;min-height:1.2em;font-size:.9rem}.confirmed-actions{flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;margin-block-start:.75rem;display:flex}#confirmed-list{padding-inline-start:0;list-style:none}#confirmed-list li{border-bottom:1px solid #eee;flex-wrap:wrap;align-items:center;gap:.5rem;padding-block:.4rem;display:flex}.confirm-dialog{z-index:20;background:#fff;border-radius:.5rem;width:calc(100% - 2rem);max-width:32rem;max-height:calc(100vh - 4rem);margin:auto;padding:1.25rem 1.5rem;position:fixed;inset:0;overflow-y:auto;box-shadow:0 0 0 100vmax #00000073,0 .25rem 1rem #00000040}.confirm-dialog-actions{gap:.75rem;margin-block-start:1rem;display:flex}.diff-group{margin-block-end:.75rem}.diff-group h4{margin-block-end:.25rem;font-size:.9rem}.diff-group ul{margin:0;padding-inline-start:1.2rem;font-size:.9rem}.diff-added h4{color:#0a7a2f}.diff-removed h4{color:#a30000}.diff-changed h4{color:#8a6100}.diff-unchanged h4{color:#555}@media (width<=640px){main.planner,main.courses{max-width:100%}.planner-layout{flex-direction:column}.planner-left{flex-basis:auto;width:100%}.candidate-controls,.course-filters{flex-direction:column;align-items:flex-start}.day-tabs{gap:.25rem;margin-block-end:.5rem;display:flex;overflow-x:auto}.day-tab{font:inherit;background:#fff;border:1px solid #ccc;border-radius:1rem;flex:none;padding:.35rem .6rem;font-size:.85rem}.day-tab.mobile-active{color:#fff;background:#0b5fff;border-color:#0b5fff}.day-header,.day-column{display:none}.day-header.mobile-active,.day-column.mobile-active{display:block}}
