:root{--navy:#14243a;--blue:#315f86;--sky:#e8f1f6;--cream:#f7f4ee;--ink:#17202a;--muted:#6e7781;--line:#dce2e7;--white:#fff;--orange:#e06b3c}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:Pretendard,"Noto Sans KR",sans-serif}header{min-height:330px;padding:64px max(5vw,28px);display:flex;justify-content:space-between;align-items:flex-end;background:linear-gradient(130deg,#112238,#244863);color:#fff}header h1{margin:10px 0 12px;font-family:Georgia,"Noto Serif KR",serif;font-size:clamp(38px,5vw,68px);line-height:1.06;letter-spacing:-2px}header p{color:#c9d5df}.eyebrow{font-size:12px;letter-spacing:2px;color:#91b7d1}.data-badge{padding:12px 16px;border:1px solid #ffffff42;border-radius:999px;background:#ffffff12;font-size:13px}main{width:min(1220px,92vw);margin:-30px auto 80px}.panel,.results{margin-bottom:24px;padding:30px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 35px #1a324514}.section-title{display:flex;gap:16px;align-items:flex-start;margin-bottom:24px}.section-title>span{flex:0 0 38px;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--navy);color:#fff;font-size:12px}.section-title h2{margin:2px 0 5px;font-size:23px}.section-title p{margin:0;color:var(--muted);font-size:13px}.upload-grid,.controls,.weights{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.upload-grid{grid-template-columns:1fr 1fr;margin-bottom:16px}.upload{padding:16px;border:1px dashed #aebbc6;border-radius:12px;background:#f8fafb;font-weight:700}.upload input{display:block;margin:10px 0 7px;width:100%}.upload small{color:var(--muted);font-weight:400}.controls label,.weights label{font-size:12px;font-weight:700}.controls input,.toolbar input,.toolbar select{width:100%;margin-top:7px;padding:11px;border:1px solid var(--line);border-radius:9px;background:#fff}.weights{margin-top:20px}.weights b{float:right;color:var(--blue)}.weights input{width:100%;margin-top:12px;accent-color:var(--blue)}.toolbar{display:grid;grid-template-columns:2fr 1fr auto auto;gap:8px}.toolbar input,.toolbar select{margin:0}.toolbar button,.wide,.result-tabs button{padding:10px 14px;border:0;border-radius:9px;background:var(--navy);color:#fff;cursor:pointer}.ghost{background:#eef2f4!important;color:var(--ink)!important}.selection-summary{margin:16px 0 10px;color:var(--blue);font-size:13px;font-weight:700}.course-list{max-height:520px;overflow:auto;border-top:1px solid var(--line)}.course-row{display:grid;grid-template-columns:30px 1.6fr 1fr .55fr .65fr;gap:10px;align-items:center;padding:12px 8px;border-bottom:1px solid #edf0f2;font-size:13px}.course-row:hover{background:#f8fafb}.course-row strong{display:block}.course-row small{color:var(--muted)}.rating{color:#d4562f;font-weight:800}.wide{width:100%;margin-top:12px}.action{text-align:center;padding:35px}.action button{padding:17px 28px;border:0;border-radius:12px;background:var(--orange);color:#fff;font-size:17px;font-weight:800;cursor:pointer;box-shadow:0 10px 25px #e06b3c45}.action button span{margin-left:35px}.action p{color:var(--muted);font-size:13px}.result-tabs{display:flex;gap:8px;flex-wrap:wrap}.result-tabs button.active{background:var(--orange)}.result-head{display:flex;justify-content:space-between;align-items:center;margin:22px 0}.metrics{display:flex;gap:18px;flex-wrap:wrap}.metric{padding:10px 14px;background:var(--sky);border-radius:10px;font-size:12px}.metric b{display:block;font-size:18px}.timetable{display:grid;grid-template-columns:52px repeat(var(--timetable-day-count,6),1fr);position:relative;border:1px solid var(--line);border-radius:12px;overflow:hidden}.day-head{height:42px;padding:12px;text-align:center;background:#f2f5f7;font-size:12px;font-weight:800;border-left:1px solid var(--line)}.time-col{position:relative;height:var(--timetable-height,720px);background:#fafafa}.time-label{position:absolute;right:8px;transform:translateY(-7px);color:#87909a;font-size:10px}.day-col{position:relative;height:var(--timetable-height,720px);border-left:1px solid var(--line);background:repeating-linear-gradient(to bottom,#fff 0,#fff 29px,#edf0f2 30px)}.class-block{position:absolute;left:4px;right:4px;padding:6px;border-radius:7px;background:#315f86;color:#fff;font-size:10px;overflow:hidden}.class-block:nth-child(3n+1){background:#567c62}.class-block:nth-child(3n+2){background:#8b6257}.class-block strong{display:block;font-size:11px}.course-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:18px}.course-card{padding:14px;border:1px solid var(--line);border-radius:12px}.course-card h4{margin:0 0 5px}.course-card p{margin:4px 0;color:var(--muted);font-size:12px}.site-footer{display:flex;width:100%;min-height:76px;margin:48px 0 0;padding:0 24px;align-items:center;justify-content:center;background:var(--navy);color:#c9d5df;font-size:12px;line-height:1.5;text-align:center}@media(max-width:800px){header{min-height:280px}.upload-grid,.controls,.weights{grid-template-columns:1fr 1fr}.toolbar{grid-template-columns:1fr 1fr}.course-row{grid-template-columns:28px 1fr .6fr}.course-row .department,.course-row .professor{display:none}.timetable{overflow-x:auto;grid-template-columns:45px repeat(var(--timetable-day-count,6),150px)}}
