/* Fixed semantic subject colors: never assigned by selection order. */
[data-subject]{--subject-ink:#3e596d;--subject-bg:#e6eef3;--subject-line:#aabfcd}
[data-subject=BM]{--subject-ink:#923f55;--subject-bg:#f9e6ec;--subject-line:#dba4b4}
[data-subject=BMK]{--subject-ink:#8f5929;--subject-bg:#f9eddc;--subject-line:#d9bc92}
[data-subject=BI]{--subject-ink:#345f9a;--subject-bg:#e4edfc;--subject-line:#a6bce1}
[data-subject=MM]{--subject-ink:#625099;--subject-bg:#ede7fa;--subject-line:#bcb0db}
[data-subject=SJ]{--subject-ink:#8b4b25;--subject-bg:#fae8de;--subject-line:#d5ad96}
[data-subject=RG]{--subject-ink:#536c26;--subject-bg:#edf4d9;--subject-line:#bdcd95}
[data-subject=SN]{--subject-ink:#216b57;--subject-bg:#dff2e9;--subject-line:#92c5ad}
[data-subject=CHE]{--subject-ink:#216c82;--subject-bg:#e0f2f7;--subject-line:#95c4d2}
[data-subject=PHY]{--subject-ink:#535d8d;--subject-bg:#e6e9f7;--subject-line:#abb4d8}
[data-subject=BIO]{--subject-ink:#40753b;--subject-bg:#e5f3de;--subject-line:#a6c99a}
[data-subject=AM]{--subject-ink:#824a89;--subject-bg:#f4e4f5;--subject-line:#cba5cf}
[data-subject=PA]{--subject-ink:#865d22;--subject-bg:#f8efd6;--subject-line:#d5bf8b}
[data-subject=PN]{--subject-ink:#366f70;--subject-bg:#e0f1ef;--subject-line:#9fc8c6}
[data-subject=BG]{--subject-ink:#6e6454;--subject-bg:#efebe1;--subject-line:#c2b6a1}
.white-coast .original-table .course.chosen{background:var(--subject-bg);border:1px solid var(--subject-line);box-shadow:none;border-radius:4px}.white-coast .original-table .chosen .course-code,.white-coast .original-table .chosen .course-code>span{color:var(--subject-ink)}.white-coast .original-table .chosen .check{color:white;border-color:var(--subject-ink);background:var(--subject-ink)}.white-coast .original-table .course.chosen:hover{background:var(--subject-bg)}.white-coast .selected-item[data-subject]{background:var(--subject-bg);border:1px solid var(--subject-line);border-radius:8px;padding:12px;margin-top:8px;color:var(--subject-ink);gap:8px}.white-coast .selected-item[data-subject] small,.white-coast .selected-item[data-subject] div>span,.white-coast .selected-item[data-subject] button{color:var(--subject-ink)}.white-coast .review-courses>div[data-subject]{background:var(--subject-bg);border:1px solid var(--subject-line);padding:12px;border-radius:6px;margin-bottom:8px;color:var(--subject-ink)}.white-coast .review-courses>div[data-subject] small,.white-coast .review-courses>div[data-subject]>span{color:var(--subject-ink)}
/* Fluid sizes follow viewport width. Manual reading scale multiplies these bases. */
.white-coast main,.white-coast header,.white-coast footer{padding-left:clamp(12px,3.2vw,48px);padding-right:clamp(12px,3.2vw,48px)}.white-coast .workspace{display:grid;grid-template-columns:minmax(0,1fr) clamp(220px,20vw,280px);gap:clamp(14px,1.8vw,26px);padding:0 clamp(8px,1.8vw,26px);align-items:start}.white-coast .planner,.white-coast .details,.white-coast .grade-picker{max-width:1360px}.white-coast .section-heading{padding-left:clamp(14px,2vw,30px);padding-right:clamp(14px,2vw,30px)}.white-coast .section-heading h2{font-size:clamp(20px,calc(14px + 1.2vw),32px)}.white-coast .section-heading p:not(.eyebrow){font-size:clamp(11px,calc(8px + .4vw),14px)}.white-coast .original-table .course-code{font-size:clamp(10px,calc(6px + 1.1vw),15px);line-height:1.5;white-space:normal;overflow-wrap:anywhere}.white-coast .original-table .course-code>span{font-size:clamp(9px,calc(5px + 1vw),12px);line-height:1.5}.white-coast .original-table .course{padding:clamp(5px,.6vw,10px) clamp(2px,.3vw,5px);gap:clamp(2px,.35vw,6px);min-height:clamp(48px,4.4vw,64px)}.white-coast .original-table thead th,.white-coast .original-table .saturday-header th{font-size:clamp(12px,calc(8px + 1vw),20px);line-height:1.4}.white-coast .original-table th:first-child{width:clamp(36px,6vw,90px)}.white-coast .original-table tbody th{font-size:clamp(11px,calc(7px + .8vw),16px)}.white-coast .original-table tbody th span{font-size:clamp(9px,calc(5px + .75vw),14px)}.white-coast .details{gap:clamp(24px,4vw,64px);padding:clamp(24px,4vw,56px) clamp(16px,3vw,40px)}.white-coast form{padding:clamp(20px,2.5vw,36px)}.white-coast .details h2{font-size:clamp(28px,calc(20px + 1.6vw),40px)}.white-coast .field-help,.white-coast .preview-notice{font-size:clamp(12px,calc(10px + .3vw),14px)}.white-coast .selected-item strong{font-size:clamp(14px,calc(12px + .4vw),18px)}.white-coast .selected-item div>span{font-size:clamp(12px,calc(10px + .25vw),14px)}.white-coast .grade-options{gap:clamp(8px,1vw,16px)}.white-coast .grade-options strong{font-size:clamp(26px,calc(20px + 1.2vw),36px)}.white-coast.custom-title .night-hero h1{font-size:clamp(44px,calc(12px + 8vw),var(--title-size));letter-spacing:var(--title-space)}.white-coast.custom-title .night-term{font-size:clamp(16px,calc(12px + .8vw),22px)}.white-coast.custom-title .night-intro{font-size:clamp(13px,calc(10px + .8vw),22px)}.white-coast.custom-title .night-scroll{font-size:clamp(14px,calc(11px + .6vw),18px)}.white-coast .daily-transport{gap:clamp(6px,1vw,14px)}.white-coast .summary{padding:clamp(18px,1.8vw,26px)}
@media(max-width:1100px){.white-coast .workspace{grid-template-columns:1fr}.white-coast .summary{position:static;width:100%;margin:0;display:block}.white-coast .summary #selected-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:10px}.white-coast .summary .selected-item{margin-top:0}.white-coast .details{grid-template-columns:1fr 1.15fr}.white-coast .original-table{min-width:0}.white-coast .original-table .time-range{display:flex;flex-direction:column}.white-coast .summary-stat{justify-content:start;margin:16px 0}}
@media(min-width:761px) and (max-width:1100px){.white-coast .grade-options{grid-template-columns:repeat(5,minmax(0,1fr))}.white-coast .night-hero{min-height:640px}.white-coast .reading-tools input{max-width:none}.white-coast .details-intro h2{font-size:32px}}
@media(max-width:760px){.white-coast .details{grid-template-columns:1fr}.white-coast .workspace{display:grid;grid-template-columns:1fr;padding:0 5px}.white-coast .summary{width:auto;margin:0 5px}.white-coast .original-table tbody th{padding:12px 3px}.white-coast .original-table td{padding:6px 2px}.white-coast .original-table .course{gap:2px}.white-coast .original-table .course-code{letter-spacing:-.2px}.white-coast .grade-options{grid-template-columns:repeat(3,minmax(0,1fr))}.white-coast .reading-tools input{min-width:70px}.white-coast .summary #selected-list{grid-template-columns:1fr}.white-coast.junior-large .junior-schedule .original-table thead th{font-size:clamp(12px,3.3vw,16px)}.white-coast.junior-large .junior-schedule .original-table .course-code{font-size:clamp(10px,2.8vw,13px)}.white-coast .night-hero{padding-left:4px;padding-right:4px}}
.white-coast #review-dialog{max-width:1250px;width:calc(100% - 28px);padding:clamp(16px,2vw,32px);background:#f9fbfd}.personal-timetable-scroll{max-width:100%;overflow-x:auto;border:1px solid #cfdeea;border-radius:8px;background:white}.personal-timetable{width:100%;border-collapse:collapse;table-layout:fixed;min-width:700px}.personal-timetable th,.personal-timetable td{border:1px solid #d5e1eb;padding:8px;vertical-align:top;text-align:left}.personal-timetable th{background:#e4eef8;color:#365773;font-size:13px}.personal-timetable th:first-child{width:68px}.personal-timetable td{background:white}.personal-course{background:var(--subject-bg);color:var(--subject-ink);padding:8px;border-radius:5px;margin-bottom:6px;font-size:14px}.personal-course strong,.personal-course span{display:block}.personal-course span{font-size:11px;margin-top:4px}.personal-empty{color:#a1b1bf}.personal-trip td,.personal-trip th{background:#f0f6fa;font-size:12px;color:#49677e}.personal-caption{font-size:12px;color:#617180;line-height:1.7;margin-top:12px}.white-coast .modal-actions{flex-wrap:wrap;gap:10px}.white-coast #download-timetable{background:#477caa;color:#fff;border-color:#477caa}.white-coast #download-timetable:disabled{opacity:.7;cursor:wait}.white-coast #download-status{font-size:12px;color:#365773;margin:12px 0}.white-coast .review-transport strong{font-size:13px}.white-coast #review-dialog .review-name{margin:20px 0}
@media(max-width:760px){.white-coast #review-dialog{max-height:92dvh}.personal-timetable{min-width:620px}.personal-timetable th{font-size:12px}.white-coast .modal-actions .primary,.white-coast .modal-actions .secondary{padding:12px;font-size:12px}.white-coast #download-timetable{order:-1;width:100%;justify-content:center}.personal-caption{font-size:11px}}
.white-coast.custom-title .night-hero h1{font-size:clamp(48px,15vw,var(--title-size))}
.white-coast.custom-title .night-hero h1{font-size:clamp(34px,10.8vw,var(--title-size));letter-spacing:.015em;line-height:1.45}
/* Enlarge time labels without changing column widths or the existing two-line layout. */
.white-coast .original-table .time-range,.white-coast .original-table .time-range>span{font-size:clamp(14px,calc(10px + 1.25vw),24px);font-weight:650;line-height:1.2;letter-spacing:-.3px}
@media(max-width:760px){.white-coast .original-table .time-range{display:flex;flex-direction:column;align-items:center;gap:2px}.white-coast:not(.junior-large) .junior-schedule .original-table .time-range,.white-coast:not(.junior-large) .junior-schedule .original-table .time-range>span{font-size:clamp(9px,2.65vw,12px);line-height:1.35}}
/* Stronger timetable time/day hierarchy on screen and confirmation. */
.white-coast .original-table .time-range,.white-coast .original-table .time-range>span{font-size:clamp(15.5px,calc(10px + 1.7vw),28px);font-weight:700;line-height:1.2}
.white-coast .original-table tbody tr:not(.daily-transport-row):not(.saturday-header)>th{font-size:clamp(15px,calc(11px + .8vw),21px);font-weight:650;line-height:1.4}
.white-coast .original-table tbody tr:not(.daily-transport-row):not(.saturday-header)>th>span{font-size:clamp(11.5px,calc(8px + .8vw),17px);font-weight:650;letter-spacing:0}
.white-coast .personal-timetable th{font-size:17px;font-weight:650;line-height:1.45}.white-coast .personal-timetable th:first-child{width:78px}.white-coast .personal-trip th{font-size:13px}
.white-coast .selected-item div>span{font-size:clamp(13px,calc(11px + .4vw),16px);font-weight:500}
@media(max-width:760px){.white-coast:not(.junior-large) .junior-schedule .original-table .time-range,.white-coast:not(.junior-large) .junior-schedule .original-table .time-range>span{font-size:clamp(9.5px,2.8vw,12.5px);line-height:1.35}.white-coast:not(.junior-large) .junior-schedule .original-table tbody tr:not(.daily-transport-row):not(.saturday-header)>th{font-size:13px}.white-coast:not(.junior-large) .junior-schedule .original-table tbody tr:not(.daily-transport-row):not(.saturday-header)>th>span{font-size:10px}.white-coast .personal-timetable th{font-size:16px}.white-coast .personal-trip th{font-size:12px}}

/* Larger course labels without changing timetable columns. */
.white-coast .original-table .course-code{font-size:clamp(14px,calc(12px + .5vw),18px);font-weight:550;line-height:1.4;min-width:0}
.white-coast .original-table .course-code>span{font-size:clamp(12px,calc(10px + .4vw),14px);line-height:1.4;font-weight:400}
@media(max-width:760px){
.white-coast.junior-large .junior-schedule .original-table .course-code{font-size:clamp(14px,3.65vw,17px)}
.white-coast.junior-large .junior-schedule .original-table .course-code>span{font-size:clamp(12px,3.1vw,14px)}
.white-coast:not(.junior-large) .junior-schedule .original-table .course-code{font-size:clamp(10px,2.65vw,12px)}
.white-coast:not(.junior-large) .junior-schedule .original-table .course-code>span{font-size:clamp(9px,2.3vw,10.5px)}
}
