.semester-page{max-width:1180px;margin:0 auto 72px;color:#192737}
.semester-page *{box-sizing:border-box}
.semester-hero{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:36px;align-items:center;padding:28px 0 30px;border-bottom:1px solid #d4dfec}
.semester-hero .section-label,.semester-kicker{display:block;color:#59708e;font-size:12px;font-weight:700;letter-spacing:.04em}
.semester-hero h1{font-size:clamp(32px,4vw,54px);line-height:1.08;letter-spacing:-.045em;margin:12px 0 14px;color:#192737}
.semester-hero p{max-width:630px;font-size:18px;line-height:1.55;color:#526784}
.semester-hero img{display:block;width:100%;height:auto}
.semester-hero-links{display:flex;flex-wrap:wrap;gap:18px;margin-top:25px}
.semester-hero-links a{color:#174da7;font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.semester-privacy{margin:19px 0 25px;color:#526784;font-size:13px}
.semester-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:22px}
.semester-summary>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border:1px solid #d0dced;border-radius:12px;background:#edf3fb;padding:17px 19px}
.semester-summary span{font-size:13px;color:#4d6481;font-weight:650}
.semester-summary strong{font-size:27px;line-height:1;color:#193958}
.semester-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,.75fr);gap:20px;align-items:start}
.semester-main,.semester-side{display:grid;gap:20px;min-width:0}
.semester-panel{background:#fff;border:1px solid #d0dced;border-radius:14px;padding:22px;min-width:0}
.semester-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.semester-section-head h2,.semester-backup h2{font-size:23px;letter-spacing:-.025em;line-height:1.2;margin:5px 0 0}
.semester-week-nav{display:flex;align-items:center;gap:5px}
.semester-week-nav button,.semester-filter button,.semester-item-actions button,.semester-cancel,.semester-backup-actions button,.semester-backup-actions label,.semester-clear{background:#fff;border:1px solid #c5d3e7;color:#214771;border-radius:8px;padding:7px 10px;font-size:13px;font-weight:650;cursor:pointer}
.semester-week-nav button:hover,.semester-filter button:hover,.semester-item-actions button:hover,.semester-cancel:hover,.semester-backup-actions button:hover,.semester-backup-actions label:hover{background:#edf3fb}
.semester-week-nav button:focus-visible,.semester-filter button:focus-visible,.semester-page button:focus-visible,.semester-page a:focus-visible,.semester-page input:focus-visible,.semester-page select:focus-visible,.semester-backup-actions label:focus-within{outline:3px solid #2b67ca;outline-offset:2px}
.semester-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.semester-day{min-height:144px;min-width:0;background:#f7f9fc;border:1px solid #e2e9f2;border-radius:9px;padding:9px;overflow-wrap:anywhere}
.semester-day.is-today{background:#edf4ff;border-color:#7aa3e6}
.semester-day-head{display:flex;align-items:center;justify-content:space-between;gap:4px;border-bottom:1px solid #dce5ef;padding-bottom:6px;margin-bottom:8px}
.semester-day-head span{font-size:11px;color:#536b87;text-transform:capitalize}
.semester-day-head strong{font-size:15px}
.semester-day>p{font-size:11px;color:#8a99aa}
.semester-day .semester-deadline{align-items:start;display:block;border:0;border-left:3px solid #2b5baa;background:#e9f0fb;border-radius:4px;padding:7px;margin:0 0 5px}
.semester-day .semester-deadline.is-done{opacity:.6}
.semester-day .semester-done{float:right;margin:0 0 3px 3px;width:18px;height:18px;font-size:12px}
.semester-day .semester-deadline-meta{display:none}
.semester-day .semester-deadline strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:11px;line-height:1.3;word-break:normal}
.semester-deadline{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #e1e8f0}
.semester-deadline:first-child{border-top:0}
.semester-deadline>div:nth-child(2){min-width:0;flex:1}
.semester-deadline strong{display:block;font-size:15px;line-height:1.35;overflow-wrap:anywhere}
.semester-deadline.is-done strong{text-decoration:line-through;color:#6c7a8b}
.semester-deadline-meta,.semester-date{display:block;color:#647895;font-size:12px;line-height:1.4}
.semester-deadline-meta{font-weight:700;margin-bottom:3px}
.semester-date{margin-top:3px}
.semester-done{width:23px;height:23px;flex:0 0 23px;border:2px solid #4774b9;border-radius:6px;background:white;color:white;font-size:15px;line-height:1;padding:0;text-align:center}
.semester-done[aria-pressed=true]{background:#2857a1}
.semester-item-actions{display:flex;gap:6px;flex-wrap:wrap}
.semester-item-actions button{font-size:11px;padding:5px 7px}
.semester-empty{font-size:14px;color:#62758e;background:#f7f9fc;border:1px dashed #cad8e8;border-radius:9px;padding:18px;margin:0}
.semester-filter{display:flex;flex-wrap:wrap;gap:5px}
.semester-filter button{padding:6px 8px}
.semester-filter button[aria-pressed=true]{background:#214fa2;color:#fff;border-color:#214fa2}
.semester-side label:not(.semester-backup-actions label){display:block;font-size:13px;font-weight:700;color:#2f4968;margin:15px 0 6px}
.semester-side label span{font-weight:400;color:#77879b}
.semester-side input:not([type=hidden]):not([type=file]),.semester-side select{display:block;width:100%;height:43px;border:1px solid #b9cce6;border-radius:8px;background:#fff;color:#192737;padding:9px 11px;font-size:14px;min-width:0}
.semester-side input::placeholder{color:#8897a9}
.semester-side input[type=date]{font-variant-numeric:tabular-nums}
.semester-form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.semester-primary{display:block;width:100%;background:#214fa2;color:#fff;border:1px solid #214fa2;border-radius:8px;margin-top:18px;padding:11px 15px;font-size:14px;font-weight:700}
.semester-primary:hover{background:#173e86}
.semester-cancel{margin-top:9px;width:100%}
.semester-cancel[hidden]{display:none}
.semester-course-list{margin-top:17px;border-top:1px solid #e1e8f0}
.semester-course{display:flex;align-items:start;justify-content:space-between;gap:8px;border-bottom:1px solid #e1e8f0;padding:13px 0}
.semester-course>div:first-child{min-width:0;overflow-wrap:anywhere}
.semester-course strong,.semester-course span,.semester-course a{display:block}
.semester-course strong{font-size:14px}
.semester-course span{font-size:12px;color:#6a7c92}
.semester-course a{font-size:12px;color:#174da7;text-decoration:underline;text-underline-offset:2px;margin-top:4px}
.semester-backup p{font-size:13px;color:#61758f;margin-top:8px}
.semester-backup-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}
.semester-backup-actions label{display:inline-block}
.semester-backup-actions input{position:absolute;width:1px;height:1px;opacity:0}
.semester-clear{margin-top:18px;color:#9a3540;border-color:#e5c5cb}
.semester-clear:hover{background:#fff2f3}
#semester-status:empty{display:none}
#semester-status{border-top:1px solid #e0e8f1;padding-top:12px}
.semester-noscript{margin:15px 0;padding:15px;border:1px solid #d0dced;background:white}
@media(max-width:1100px){.semester-week-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.semester-day{min-height:105px}}
@media(max-width:850px){.semester-layout{grid-template-columns:1fr}.semester-side{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.semester-backup{grid-column:1/-1}.semester-hero{grid-template-columns:minmax(0,1fr) 190px}}
@media(max-width:600px){.semester-hero{grid-template-columns:1fr;padding-top:10px}.semester-hero img{display:none}.semester-hero p{font-size:16px}.semester-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.semester-summary>div{display:block;padding:12px}.semester-summary span{display:block;font-size:11px;min-height:32px}.semester-summary strong{display:block;margin-top:7px;font-size:24px}.semester-side{grid-template-columns:1fr}.semester-backup{grid-column:auto}.semester-week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.semester-day{min-height:95px}.semester-section-head{align-items:start;flex-wrap:wrap}.semester-filter{width:100%}.semester-panel{padding:17px}.semester-item-actions{display:block}.semester-item-actions button{margin:2px 0}}
