:root{--shadow-soft:0 10px 30px rgba(20,36,58,.08);--focus:0 0 0 3px rgba(49,95,134,.16)}
button,input,select{font:inherit}button{transition:transform .15s ease,box-shadow .15s ease,background .15s ease}button:hover{transform:translateY(-1px)}button:active{transform:translateY(0)}button:focus-visible,input:focus-visible,select:focus-visible{outline:0;box-shadow:var(--focus)}
.standalone-back{position:fixed;left:18px;top:14px;z-index:20;display:inline-flex;min-height:36px;padding:9px 13px;box-sizing:border-box;align-items:center;border-radius:8px;background:#173b5e!important;color:#fff!important;text-decoration:none!important;font-size:12px;font-weight:800;line-height:1.4;box-shadow:0 5px 18px rgba(10,25,40,.2)}
.standalone-brand{display:flex;width:max-content;max-width:100%;align-items:center;gap:10px;margin-bottom:16px;color:#fff;font-size:14px;font-weight:800;letter-spacing:-.2px}.standalone-brand img{display:block;width:38px;height:38px;padding:3px;box-sizing:border-box;border:1px solid rgba(255,255,255,.72);border-radius:10px;background:#fffaf4;box-shadow:0 5px 14px rgba(0,0,0,.24)}
.panel,.results{box-shadow:var(--shadow-soft)}
.section-title-actions{align-items:center}.section-title-actions>div{flex:1;min-width:0}.section-title-actions .reset-button{flex:0 0 auto;margin-left:auto}.reset-button{padding:6px 9px;border:1px solid #efd6d0;border-radius:8px;background:#fff;color:#a34b38;font-size:11px;font-weight:700;line-height:1.2;cursor:pointer}.reset-button:hover{background:#fff4f1}
.controls input,.weights select,.advanced-grid input,.toolbar input,.toolbar select{min-height:43px;border-color:#d5dde4}.controls input:hover,.weights select:hover,.advanced-grid input:hover,.toolbar input:hover,.toolbar select:hover{border-color:#9fb0be}
.weights label,.controls label,.advanced-grid label{color:#354453}.advanced-settings{background:linear-gradient(145deg,#f8fafb,#f3f7f9)!important}.advanced-settings h3{font-size:16px;color:var(--navy)}
.weekday-options{padding-top:2px}.weekday-options label{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:8px;background:#fff;border:1px solid var(--line);cursor:pointer}.weekday-options label:has(input:checked){background:#fff2eb;border-color:#e9a98e;color:#a5421d}
.toolbar{align-items:stretch}.toolbar button{white-space:nowrap}.secondary-button{background:var(--navy)!important;font-weight:700}.text-button{background:#eef2f4!important;color:#394957!important}.selection-help{padding:11px 13px;border-radius:9px;background:#f6f9fb;flex-wrap:wrap}.selected-box{background:#fbfcfd!important}.course-row{min-height:62px;border-radius:7px}.candidate-toggle,.required-toggle,.exclude-toggle{justify-content:center;padding:5px;border-radius:7px}.course-row:has([data-key]:checked) .candidate-toggle{background:#e9f2f8}.course-row:has(.exclude-toggle input:checked){opacity:.58;background:#fff4f2}.wide{min-height:42px}
.recommendation-action{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;text-align:left!important;margin:8px 0 28px;padding:30px!important;border-radius:18px;background:linear-gradient(125deg,#14243a,#244d6d);color:#fff;box-shadow:0 16px 34px rgba(20,36,58,.2)}.recommendation-copy h2{margin:5px 0 8px;font-size:23px}.recommendation-copy p{margin:0!important;color:#c8d6e1!important}.action-kicker{font-size:10px;letter-spacing:1.7px;color:#8fc0df}.recommendation-controls{display:flex;align-items:center;gap:14px}.mode-toggle{display:flex;align-items:center;gap:9px;padding:10px 13px;border:1px solid rgba(255,255,255,.18);border-radius:11px;background:rgba(255,255,255,.07);cursor:pointer}.mode-toggle input{width:17px;height:17px;accent-color:var(--orange)}.mode-toggle span{display:grid}.mode-toggle small{margin-top:2px;color:#c7d4de;font-size:10px}.recommendation-action #recommend{white-space:nowrap;box-shadow:none}.recommendation-action #recommend:hover{box-shadow:0 8px 20px rgba(224,107,60,.35)}
.result-page>.back{padding:9px 12px;border-radius:9px;background:#fff;box-shadow:var(--shadow-soft)}.result-tabs{padding:5px;border-radius:11px;background:#eef2f5;width:max-content;max-width:100%}.result-tabs button{background:transparent!important;color:#52616e!important;font-weight:700}.result-tabs button.active{background:#fff!important;color:var(--navy)!important;box-shadow:0 3px 10px rgba(20,36,58,.12)}.applied,.validation{border-left:0!important;border:1px solid #dbe5ec;background:#f7fafc!important}.result-actions{align-items:center;padding:12px;border-radius:11px;background:#f4f7f9}.result-actions button{background:#e7edf1!important;color:#26394c!important;font-weight:700}.result-actions .primary-result{background:var(--orange)!important;color:#fff!important}.result-actions .export-button{background:#fff!important;border:1px solid var(--line)}.action-divider{width:1px;height:27px;background:#ccd6dd}.course-card{box-shadow:0 4px 14px rgba(20,36,58,.05)}.copy-course{background:#edf3f7!important;color:var(--blue)!important;width:100%;font-size:11px;font-weight:700}.comparison table{border-radius:10px;overflow:hidden}.comparison th{background:#f1f5f7;color:#41515f}.favorite-actions button:first-child{background:var(--blue);color:#fff}.favorite-actions button:last-child{background:#fff0ec;color:#a5421d}.practice-target{display:flex;align-items:center;gap:7px;color:#41515f;font-size:11px;font-weight:800}.practice-target select{min-height:36px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}
@media(max-width:900px){.recommendation-action{grid-template-columns:1fr}.recommendation-controls{justify-content:space-between}.advanced-grid{grid-template-columns:repeat(2,1fr)!important}}
@media(max-width:650px){body{padding:0!important;overflow-x:hidden}.standalone-back{position:absolute;left:12px;top:12px}.standalone-brand{margin-top:16px;margin-bottom:13px;font-size:13px}.standalone-brand img{width:34px;height:34px}header{min-height:370px;padding:62px 7vw 42px;flex-direction:column;align-items:flex-start;justify-content:center;gap:20px}header h1{font-size:40px;letter-spacing:-1px}.data-badge{align-self:flex-start;max-width:100%;white-space:normal}main{width:94vw}.panel,.results{padding:20px}.upload-grid,.controls,.weights,.advanced-grid,.selected-groups{grid-template-columns:1fr!important}.toolbar{grid-template-columns:1fr!important}.recommendation-controls{align-items:stretch;flex-direction:column}.recommendation-action #recommend{width:100%}.data-tools{align-items:flex-start;gap:10px;flex-wrap:wrap}.reset-button{margin-left:0}.course-row{grid-template-columns:52px 52px 52px 1fr!important}.course-row .department,.course-row .professor,.course-row .rating{display:none}.result-actions{align-items:stretch}.result-actions button{flex:1 1 42%}.action-divider{display:none}.timetable{grid-template-columns:45px repeat(var(--timetable-day-count,6),140px)!important;overflow-x:auto}.selection-help{font-size:10px!important}}
@media(max-width:650px){header{width:100%;min-height:330px;padding:38px 20px;overflow:hidden}header h1{max-width:100%;font-size:32px;line-height:1.12;letter-spacing:-1px;overflow-wrap:anywhere}header p{max-width:100%;line-height:1.65;overflow-wrap:anywhere}main{width:calc(100% - 24px)}.panel,.results{padding:18px}.section-title{gap:11px}.section-title h2{font-size:20px}.data-tools>*{max-width:100%}.advanced-settings{padding:14px!important}}
@media(max-width:650px){.section-title-actions{align-items:flex-start}.section-title-actions .reset-button{margin:8px 0 0 49px}}
body{display:flex;min-height:100vh;min-height:100dvh;flex-direction:column}body>main{flex:1 0 auto}body>.site-footer{margin-top:auto}
