:root{color-scheme:dark;font-family:Inter,system-ui,sans-serif;background:#101215;color:#eef0f5;font-size:16px;--line:#30353e;--muted:#a9b0bd}
*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button,summary{cursor:pointer}button{color:inherit}button:focus-visible,summary:focus-visible{outline:2px solid #a8bfff;outline-offset:3px}main{max-width:1800px;margin:auto;padding:0 32px 32px}h1,h2,h3,p{margin:0}h1{font-size:24px;letter-spacing:-.6px;font-weight:650}h1 span{color:var(--muted);font-weight:400}.site-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:32px 0}.course-menu{position:relative;font-size:14px}.course-menu summary{padding:10px 14px;border:1px solid var(--line);border-radius:8px}.course-menu[open] #courses{position:absolute;right:0;top:48px;width:300px;z-index:5;background:#171a1f;padding:8px;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 48px #0008}.course{display:flex;align-items:center;gap:12px;width:100%;padding:12px;border:0;border-radius:6px;background:transparent;text-align:left;color:var(--muted);font-size:14px}.course b{display:block;color:#eef0f5;margin-bottom:3px}.course i{width:8px;height:8px;border-radius:50%;flex-shrink:0}.course:hover,.course.active{background:#20242b}
.calendar{border:1px solid var(--line);border-radius:12px;background:#171a1f;overflow:hidden}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 24px;border-bottom:1px solid var(--line)}.toolbar h2{font-size:20px;font-weight:550}.controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.controls button{background:transparent;border:1px solid var(--line);border-radius:6px;padding:8px 12px;font-size:14px;min-height:38px}.controls button:hover{background:#2c323c}.view-switch{display:flex;gap:2px;padding:3px;background:#101215;border-radius:8px;margin-left:14px}.view-switch button{border:0}.view-switch button[aria-pressed=true]{background:#353d4a;color:white}.days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.day{padding:20px 16px;min-height:440px;border-right:1px solid var(--line)}.day:last-child{border-right:0}.day-head{display:flex;gap:10px;align-items:center;margin-bottom:22px}.date-number{font-size:30px;font-weight:500;letter-spacing:-1px}.day-name{font-size:14px}.day-name small{display:block;margin-top:3px;color:var(--muted);font-size:12px}
.event{width:100%;display:block;text-align:left;border:1px solid var(--line);border-left:3px solid var(--course-color);border-radius:7px;background:#20242b;color:#eef0f5;padding:15px;margin-bottom:10px}.event:hover{background:#2b313b}.event-type{display:flex;justify-content:space-between;gap:8px;color:#c6cbd5;font-size:12px;line-height:1.5}.event h3{font-size:16px;font-weight:550;line-height:1.45;margin:8px 0 12px;overflow-wrap:anywhere}.event p{font-size:14px;line-height:1.5;color:var(--muted)}.event .class-time{color:#eef0f5;font-size:14px;font-weight:550}.event .prep-preview{margin-top:12px;color:#bbd0f8}.event.exam,.event.due{background:#2c2521;border-color:#514035;border-left-color:#e2a76f}.empty{font-size:14px;line-height:1.6;color:var(--muted);padding:8px 0}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:840px}.weekday{padding:14px;text-align:center;font-size:14px;color:var(--muted);border-bottom:1px solid var(--line)}.month-cell{min-height:150px;padding:10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.month-cell>span{display:block;font-size:14px;color:var(--muted);margin-bottom:12px}.month-cell.outside{background:#101215}.month-cell .event{padding:8px;font-size:12px;line-height:1.5}.month-cell .event strong,.month-cell .event span{display:block;overflow-wrap:anywhere}.month-cell .event span{color:#bdc4d0}.calendar #grid{overflow-x:auto}.week-days{grid-template-columns:repeat(7,minmax(155px,1fr));min-width:1085px}.week-days .day{padding:18px 10px}.week-days .event{padding:12px 9px}.week-days .event h3{font-size:14px}.week-days .event-type>span:last-child{display:none}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
dialog{background:#171a1f;color:#eef0f5;border:1px solid var(--line);border-radius:14px;padding:26px;width:min(580px,calc(100% - 32px));max-height:90vh}dialog::backdrop{background:#000a;backdrop-filter:blur(3px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.pill{font-size:12px;letter-spacing:1px;color:var(--muted)}.dialog-top button{border:0;background:transparent;font-size:28px;padding:0 8px}dialog h2{font-size:24px;line-height:1.3;margin-bottom:8px}dialog h3{font-size:16px;margin:24px 0 10px}dialog p,dialog li{line-height:1.6}dialog ul{padding-left:22px;margin:10px 0}dialog dl{display:grid;grid-template-columns:85px 1fr;gap:12px;margin:24px 0}dialog dt{color:var(--muted);font-size:14px}dialog dd{margin:0;font-size:14px}.preserve-lines{white-space:pre-wrap}.detail-note{color:var(--muted);font-size:12px;border-top:1px solid var(--line);padding-top:16px;margin-top:22px}.edit-button,.save-button{background:#bbd0f8;color:#142139;border:0;border-radius:7px;padding:12px 16px;font-weight:600}.edit-button{width:100%;margin-top:20px}.demo-warning{color:var(--muted);font-size:14px;margin:12px 0 20px}#editor form>label{display:block;font-size:14px;margin-top:18px}#editor label small{font-size:12px;color:var(--muted);margin-left:6px}#editor input,#editor textarea{width:100%;background:#101215;color:#eef0f5;border:1px solid var(--line);border-radius:6px;padding:12px;margin-top:8px;line-height:1.5}#editor input:focus,#editor textarea:focus{outline:2px solid #a8bfff}.editor-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}#editor-reset{border:1px solid var(--line);background:transparent;border-radius:7px;padding:10px 14px}
@media(max-width:900px){.toolbar{align-items:flex-start;flex-direction:column}.site-header h1 span{display:block;font-size:16px;margin-top:6px}}@media(max-width:650px){main{padding:0 12px 20px}.site-header{padding:22px 4px}.site-header h1{font-size:21px}.toolbar{padding:16px;gap:14px}.toolbar h2{font-size:18px}.controls{gap:4px}.controls button{padding:8px 10px}.view-switch{margin-left:4px}.days,.week-days{display:block;min-width:0}.day,.week-days .day{min-height:0;border-right:0;border-bottom:1px solid var(--line);padding:20px 16px}.week-days .event{padding:15px}.week-days .event h3{font-size:16px}.course-menu[open] #courses{width:min(300px,85vw)}dialog{padding:20px}.editor-actions{flex-wrap:wrap}}
