:root{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:#1f2340;background:#f7f7ff}*{box-sizing:border-box}body{margin:0;min-width:320px}button{font:inherit}main{max-width:1240px;margin:auto;padding:28px 22px 52px}header{display:grid;gap:9px;margin:0 0 22px}.eyebrow{margin:0;color:#6c70a1;font-size:12px;font-weight:700;letter-spacing:.08em}h1{margin:0;font-size:clamp(28px,5vw,42px);letter-spacing:-.05em}.week-title{display:flex;gap:12px;align-items:baseline}.week-title b{font-size:19px}.week-title span{color:#6c70a1}nav{display:flex;gap:9px;margin-top:6px}nav button{border:1px solid #dfe0f2;background:#fff;border-radius:12px;min-height:42px;padding:0 14px;color:#3e4267;cursor:pointer}nav .today{background:#4f46e5;color:#fff;border-color:#4f46e5}.timetable-scroll{overflow:auto;border:1px solid #dfdff0;border-radius:18px;background:#fff;box-shadow:0 10px 30px #37346e12}.timetable{display:grid;grid-template-columns:92px repeat(7,minmax(148px,1fr));grid-template-rows:48px repeat(12,118px);min-width:1128px;position:relative}.corner,.weekday{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:center;color:#5a5f85;font-weight:800;background:#fbfbff;border-bottom:1px solid #dfdff0}.corner{grid-column:1;grid-row:1;left:0;z-index:5}.period-label{position:sticky;left:0;z-index:2;display:grid;grid-template-columns:25px 1fr;align-content:center;gap:7px;padding:10px;background:#fbfbff;border-right:1px solid #dfdff0;border-bottom:1px solid #e9e9f5}.period-label b{font-size:17px;color:#4f46e5}.period-label small{font-size:11px;line-height:1.45;color:#666b91}.cell{min-width:0;border-right:1px solid #ececf5;border-bottom:1px solid #ececf5;padding:4px}.course-host{z-index:1;padding:5px}.course-card{width:100%;height:100%;min-height:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;border:0;border-radius:13px;padding:12px;text-align:left;cursor:pointer;color:#253143;box-shadow:0 3px 9px #2d36581a;overflow:hidden;transition:opacity .18s,transform .18s}.course-card:hover{transform:translateY(-1px)}.course-card.inactive{opacity:.36}.course-card strong{font-size:15px;line-height:1.3}.course-card span{font-size:12px;line-height:1.3}.course-card .location{font-size:13px;font-weight:700}.course-card em{align-self:flex-end;font-style:normal;font-size:11px;color:#4d5274}.course-microeconomics{background:#dbeafe}.course-research{background:#dcfce7}.course-thesis{background:#fce7f3}.course-modernization{background:#fef3c7}.unscheduled{margin-top:24px;display:grid;gap:10px}.unscheduled>div{display:flex;flex-direction:column;gap:4px;padding:15px 17px;background:#fff;border:1px solid #dfdff0;border-radius:14px}.unscheduled span{color:#6c70a1;font-size:14px}.modal-backdrop{position:fixed;inset:0;z-index:10;display:grid;place-items:end center;padding:16px;background:#1f234059}.modal{width:min(500px,100%);position:relative;padding:26px;border-radius:21px;background:#fff;box-shadow:0 24px 70px #00000040}.modal h2{margin:7px 34px 20px 0;font-size:22px}.close{position:absolute;right:18px;top:14px;border:0;background:none;font-size:30px;color:#626784;cursor:pointer}dl{display:grid;gap:13px;margin:0}dl div{display:grid;grid-template-columns:94px 1fr;gap:12px}dt{color:#777b9e}dd{margin:0;font-weight:600}@media(max-width:600px){main{padding:12px 8px 28px}header{gap:5px;margin-bottom:12px}h1{font-size:28px}.week-title b{font-size:16px}.week-title span{font-size:13px}nav{gap:5px;margin-top:3px}nav button{flex:1;min-height:36px;padding:0 5px;font-size:11px}.timetable-scroll{overflow:hidden;border-radius:13px}.timetable{grid-template-columns:36px repeat(7,minmax(0,1fr));grid-template-rows:34px repeat(12,50px);min-width:0}.weekday{font-size:9px}.period-label{display:grid;grid-template-columns:1fr;place-items:center;gap:1px;padding:2px 1px}.period-label b{font-size:13px;line-height:1}.period-label small{display:block;font-size:7px;line-height:1.15;text-align:center}.cell,.course-host{padding:2px}.course-card{justify-content:center;gap:2px;border-radius:7px;padding:3px}.course-card strong{font-size:9px;line-height:1.15;overflow-wrap:anywhere}.course-card span{display:block;font-size:7px;line-height:1.15;overflow-wrap:anywhere}.course-card .location{font-size:7px}.course-card em{display:none}.unscheduled{margin-top:14px}}
