body{color:#1a1a1a;margin:0;padding:1.5rem;font-family:system-ui,sans-serif;line-height:1.6}main{max-width:90rem;margin:0 auto}a{color:#0b5fff}.user-greeting{color:#555;margin:0 0 .5rem;font-size:.9rem}.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}.layout{grid-template-columns:16rem minmax(0,1fr) 20rem;align-items:start;gap:1.5rem;margin-top:1rem;display:grid}.course-list,.session-panel{border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem}.course-list h2,.grid-wrap h2,.session-panel h2{margin-top:0;font-size:1.1rem}@media (width>=900px){.session-panel{max-height:calc(100vh - 10rem);overflow-y:auto}}.course-list ul{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.course-entry{border-radius:.375rem;flex-direction:column;gap:.15rem;padding:.4rem .5rem;display:flex}.course-entry--current{background:#eef2ff;font-weight:600}.course-header{align-items:center;gap:.5rem;min-width:0;display:flex}.swatch{border:1px solid #00000026;border-radius:50%;flex:none;width:.9rem;height:.9rem}.course-code{font-weight:600}.course-title{color:#4b5563;overflow-wrap:break-word;font-size:.85rem}.course-list .course-activities{flex-direction:column;gap:.15rem;margin:.15rem 0 .5rem;padding:0 .5rem 0 1.4rem;list-style:none;display:flex}.course-nav-activity{color:#4b5563;justify-content:space-between;align-items:center;gap:.5rem;font-size:.8rem;display:flex}.course-nav-activity:hover,.course-nav-activity:focus-within{background:#f8fafc}.activity-link{min-width:0;color:inherit;touch-action:manipulation;align-items:center;text-decoration:none;display:flex}.activity-link:hover,.activity-link:focus-visible{text-decoration:underline}.activity-link[aria-current=page]{color:#1a1a1a;font-weight:600}.status-icon{flex:none;justify-content:center;align-items:center;width:1.1rem;height:1.1rem;font-size:.85rem;line-height:1;display:inline-flex}.status-icon--done{color:#15803d}.status-icon--todo{color:#b91c1c}.activity h3{margin-bottom:.35rem;font-size:1rem}.session-list{border:1px solid #e5e7eb;border-radius:.375rem;max-height:18rem;margin:0 0 1.25rem;padding:.25rem .5rem;list-style:none;overflow-y:auto}.session-list li{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;gap:.5rem;padding:.3rem .2rem;font-size:.9rem;display:flex}.session-list li:last-child{border-bottom:none}.session-list li.picked{background:#eef2ff;font-weight:600}.session-list form{flex:none;margin:0}.session-list button{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:.25rem;padding:.2rem .6rem;font-size:.8rem}.session-list li.picked button{border-color:#94a3b8}.grid-wrap{min-width:0}.grid-scroll{overflow-x:auto}.grid{border:1px solid #d1d5db;border-radius:.375rem;grid-template-columns:4rem repeat(5,minmax(6rem,1fr));min-width:34rem;display:grid}.grid-day-header,.grid-hour-label{background:#f9fafb;border-bottom:1px solid #d1d5db;padding:.25rem .4rem;font-size:.85rem;font-weight:600}.grid-hour-label{border-right:1px solid #d1d5db;align-items:flex-start;display:flex}.grid-cell{border-bottom:1px solid #f1f5f9;border-right:1px solid #f1f5f9}.grid-pick{text-align:center;color:#1a1a1a;border-radius:.25rem;justify-content:center;align-items:center;margin:1px;padding:.2rem;font-size:.75rem;font-weight:600;text-decoration:none;display:flex;overflow:hidden}.grid-pick.clash{outline-offset:-2px;outline:2px solid #b91c1c}.grid-pick.kind-other{box-shadow:inset .35rem 0 #0f172aa6}.grid-pick.preview{pointer-events:none;opacity:.55;z-index:1;border:2px solid #0f172a99;box-shadow:0 2px 6px #0f172a4d}@media (prefers-reduced-motion:no-preference){.grid-pick{transition:opacity .2s,box-shadow .2s,border-color .2s}}.session-list li[data-day]{cursor:pointer;touch-action:manipulation}.session-list li[data-day]:hover,.session-list li[data-day]:focus-visible{outline-offset:-2px;outline:2px solid #94a3b8}dialog{border:1px solid #d1d5db;border-radius:.5rem;max-width:28rem;padding:1.25rem}dialog::backdrop{background:#0f172a66}dialog a.button{color:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:.25rem;margin-top:.75rem;padding:.3rem .9rem;text-decoration:none;display:inline-block}@media (width<=900px){.layout{flex-direction:column;display:flex}.course-list{order:1}.session-panel{order:2}.grid-wrap{order:3}}
