*{box-sizing:border-box} :root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#162c29;background:#f4f7f6;font-synthesis:none} body{margin:0;font-size:16px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #177c70;outline-offset:4px}button:disabled{opacity:.4;cursor:default}.header{min-height:88px;background:#102724;color:white;display:flex;align-items:center;gap:30px;padding:20px 3%}.brand{color:inherit;text-decoration:none;font-size:22px;font-weight:650;display:flex;gap:12px;align-items:center;letter-spacing:-.7px}.brand-mark{background:#b7ed8e;color:#102724;padding:10px 8px;border-radius:9px;font-size:16px;font-weight:800;letter-spacing:-1px}.header-label{font-size:12px;letter-spacing:2px;color:#abc2bc;border-left:1px solid #49605a;padding-left:28px}.sample{margin-left:auto;font-size:13px;color:#d9e9e3;border:1px solid #50675e;border-radius:20px;padding:7px 12px}main{max-width:1840px;margin:auto;padding:34px 3% 20px}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;gap:20px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:2px;color:#45766b;margin:0 0 10px}h1{font-size:clamp(28px,3vw,40px);font-weight:620;letter-spacing:-1.5px;margin:0 0 10px}.heading p:last-child{color:#5b706a;margin:0;line-height:1.5}.totals{display:flex;align-items:center;gap:14px}.totals strong{font-size:42px;font-weight:500;letter-spacing:-2px}.totals span{color:#61726e;font-size:14px;max-width:90px}.workspace{display:grid;grid-template-columns:220px minmax(0,1fr) 270px;border:1px solid #d7e0dc;border-radius:14px;background:#fff;overflow:hidden;min-height:650px}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:23px 20px 18px}h2{font-size:16px;margin:0;font-weight:650}.panel-heading span{background:#eef3f0;padding:2px 8px;border-radius:6px;font-size:13px;color:#586f64}.catalogue{border-right:1px solid #dfe7e2;display:flex;flex-direction:column}.course-item{display:block;width:100%;text-align:left;border:0;border-left:3px solid transparent;background:white;padding:11px 17px;color:#29443c}.course-item:hover{background:#f4f8f5}.course-item[aria-pressed=true]{background:#edf5ee;border-left-color:#297451}.course-item small{display:block;color:#65786e;font-size:12px;margin-bottom:3px;font-weight:600;letter-spacing:.5px}.course-item span{font-size:14px;line-height:1.4;display:block}.catalogue-note{font-size:12px;line-height:1.6;color:#6a7c72;margin:auto 20px 20px;padding-top:24px}.diagram-panel{min-width:0;display:flex;flex-direction:column;background:#f8fbf9}.diagram-heading{padding:21px 23px;display:flex;gap:14px;align-items:center;justify-content:space-between;border-bottom:1px solid #e2e9e5;background:#fff}.diagram-heading p{font-size:13px;color:#667970;margin:6px 0 0}.text-button{border:0;background:none;color:#366b56;font-size:13px;padding:8px}.text-button:hover{text-decoration:underline}#viewport{position:relative;min-height:480px;flex:1;overflow:hidden;background-image:radial-gradient(#c9d9cf 1px,transparent 1px);background-size:20px 20px;touch-action:none;cursor:grab}#viewport.dragging{cursor:grabbing}#world{position:absolute;transform-origin:0 0}#connections,#nodes{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.level-label{position:absolute;font-size:13px;color:#62796d;font-weight:650;letter-spacing:1px}.node{position:absolute;width:220px;height:104px;border:1px solid #c7dbcd;border-left:4px solid var(--area);border-radius:10px;background:#fff;text-align:left;padding:14px 15px;color:#244337;box-shadow:0 4px 9px #1a443709;transition:opacity .18s,border-color .18s,box-shadow .18s}.node:hover{box-shadow:0 5px 16px #1a443725}.node .node-top{display:flex;justify-content:space-between;color:#5d7769;font-size:12px;font-weight:600}.node strong{display:block;font-size:16px;line-height:1.3;margin-top:9px}.node.selected{border:2px solid #1c6847;border-left:5px solid #1c6847;background:#e8f6df;box-shadow:0 0 0 4px #20674814}.node.upstream{background:#eff5ff;border-color:#769acd}.node.downstream{background:#fff6e6;border-color:#b89350}.node.dim{opacity:.3}.edge{fill:none;stroke:#a8bfb0;stroke-width:1.5}.edge.upstream{stroke:#4976b2;stroke-width:2.5}.edge.downstream{stroke:#a67825;stroke-width:2.5}.edge.dim{opacity:.14}.map-footer{padding:16px 20px;border-top:1px solid #e2e9e5;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fff}.legend{display:flex;gap:13px;flex-wrap:wrap}.legend span{display:flex;align-items:center;gap:6px;font-size:12px;color:#617268}.legend i{width:8px;height:8px;border-radius:2px}.math{background:#2c7e65}.computing{background:#6472c7}.statistics{background:#bc822e}.zoom-controls{display:flex;align-items:center;gap:3px;border:1px solid #d8e3db;border-radius:7px;padding:3px}.zoom-controls button{height:30px;min-width:30px;border:0;background:white;color:#355b46;border-radius:4px;font-size:16px}.zoom-controls button:hover{background:#edf4ee}.zoom-controls output{font-size:12px;min-width:40px;text-align:center}#fit{font-size:13px;border-left:1px solid #dfe7e2;border-radius:0;padding:0 10px}.details{border-left:1px solid #dfe7e2;padding:24px 22px}.detail-eyebrow{font-size:12px;letter-spacing:1.3px;color:#68806f;font-weight:650;margin:0 0 20px}.detail-code{display:inline-block;font-size:13px;background:#e9f3e4;border:1px solid #d5e6cb;border-radius:5px;padding:5px 8px;color:#396543;font-weight:650}.details h2{font-size:26px;letter-spacing:-.7px;line-height:1.2;margin:13px 0}.detail-description{font-size:14px;line-height:1.65;color:#627568}.detail-meta{display:flex;gap:16px;border-bottom:1px solid #e1e8e1;padding:10px 0 22px;margin-bottom:23px}.detail-meta span{font-size:12px;line-height:1.9;color:#667b6b}.detail-meta strong{display:block;font-size:14px;color:#324b3c;font-weight:600}.details h3{font-size:14px;margin:23px 0 10px;display:flex;gap:8px;align-items:center}.details h3 small{font-size:12px;color:#71806f;font-weight:400}.related-course{display:block;text-align:left;width:100%;border:1px solid #dbe5dd;border-radius:7px;padding:9px 10px;background:#fff;margin-top:7px;color:#395840;font-size:14px}.related-course:hover{background:#f1f6ef}.related-course small{display:block;font-size:12px;color:#748575;margin-bottom:3px}.empty-note{color:#748174;font-size:13px;line-height:1.5}.path-key{border-top:1px solid #e1e8e1;margin-top:28px;padding-top:18px;display:flex;flex-direction:column;gap:10px;font-size:12px;color:#64766a}.path-key span{display:flex;gap:8px;align-items:center}.path-key i{width:18px;height:3px}.page-footer{display:flex;gap:14px;justify-content:space-between;color:#708077;font-size:12px;padding-top:18px}.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip:focus{position:fixed;z-index:10;background:white;padding:12px}#error{padding:20px;background:#fff0ee;color:#8e3021;border:1px solid #e5b8ad;border-radius:8px;margin-bottom:20px}@media(min-width:1600px){.workspace{grid-template-columns:245px minmax(0,1fr) 300px}#viewport{min-height:610px}}@media(max-width:1150px){.workspace{grid-template-columns:190px minmax(0,1fr)}.details{grid-column:1/-1;border-left:0;border-top:1px solid #dfe7e2}.details .related-course{max-width:460px}.header-label{display:none}}@media(max-width:650px){main{padding:25px 16px}.header{padding:16px;gap:10px;min-height:76px}.brand{font-size:19px}.sample{font-size:12px;padding:6px 9px}.totals{display:none}.heading{margin-bottom:22px}.heading p:last-child{font-size:14px}.workspace{display:flex;flex-direction:column}.catalogue{order:2;border:0;border-top:1px solid #dfe7e2}.diagram-panel{order:0}.details{order:1}.catalogue-note{margin-top:0}#course-list{display:grid;grid-template-columns:1fr 1fr}#viewport{height:410px;min-height:410px}.diagram-heading{padding:18px 14px}.map-footer{padding:12px}.page-footer{flex-direction:column}.node strong{font-size:17px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Programme planner */
.header .sample{text-decoration:none}.header .sample:hover{background:#29453b}.heading h1{font-size:clamp(28px,2.9vw,42px)}.target-strip{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid #d7e1d9;border-radius:10px;padding:16px 20px;background:#fff;margin-bottom:16px}.section-label{font-size:12px;font-weight:700;letter-spacing:1.2px;color:#6a7d6e}#targets{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.target-chip{border:1px solid #bad6ab;border-radius:6px;background:#edf8e6;color:#254f32;font-size:14px;padding:8px 10px;max-width:100%;text-align:left}.target-chip:hover{background:#dceecf}.workspace{height:770px;grid-template-columns:250px minmax(0,1fr) 300px}.catalogue{min-height:0}.catalogue-filters{padding:0 15px;display:flex;gap:8px;flex-direction:column}input[type=search],select{font:inherit;font-size:14px;background:white;border:1px solid #ccd9ce;color:#284a32;padding:10px;border-radius:6px;width:100%;min-width:0}input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #177c70;outline-offset:2px}.list-help{font-size:12px;line-height:1.5;color:#708074;margin:12px 16px}#course-list{overflow:auto;min-height:0;flex:1}.catalogue-row{display:flex;align-items:center;gap:5px;padding-right:12px}.catalogue-row.active{background:#edf5ee}.catalogue-row .course-item{flex:1;min-width:0;background:transparent}.catalogue-note{flex-shrink:0;border-top:1px solid #e1e8e1;padding-top:14px;margin:14px 16px;font-size:12px}.add-target{flex-shrink:0;border:1px solid #d8e3d6;border-radius:6px;background:#fff;color:#507148;width:30px;height:30px;font-size:19px}.add-target.added{background:#ddecce;border-color:#b5cb9f}.details{overflow:auto;padding:23px 20px}.details h2{font-size:24px}.primary-button{width:100%;padding:11px 14px;font-size:14px;background:#1e5037;color:white;border:1px solid #1e5037;border-radius:7px}.primary-button:hover{background:#2f6846}.check-label{display:flex;align-items:center;gap:10px;font-size:14px;line-height:1.5}.check-label input,.background-row input{accent-color:#2f7149;width:17px;height:17px;flex-shrink:0}.studied-check{margin:17px 0 8px}.requirement-group{border-left:2px solid #d7e3d4;padding-left:10px;margin:14px 0}.requirement-kind{display:block;font-size:12px;color:#6d7f68;margin-bottom:6px}.requirement-group select{font-size:13px}.requirement-group .empty-note{display:block;margin:7px 0;line-height:1.5}.source-link{font-size:13px;color:#2c6b49;display:inline-block;margin:8px 12px 0 0}.official-requirements{border-top:1px solid #dde6d8;border-bottom:1px solid #dde6d8;padding:16px 0;margin-top:22px}.official-requirements summary{font-size:14px;cursor:pointer;color:#395b39;line-height:1.5}.diagram-heading{align-items:flex-start}.diagram-heading p{line-height:1.6;max-width:460px}.map-hint{font-size:12px;white-space:nowrap;color:#748474}.node{height:124px}.node strong{font-size:16px;margin-top:7px}.node-status{display:block;font-size:12px;color:#607961;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node.target-node{background:#edf6df;border-color:#98b97b;--area:#668b40}.node.complete-node{background:#edf0f2;border-color:#a8b5b9;--area:#829397}.node.selected{box-shadow:0 0 0 4px #20674822}.edge{stroke:#8eac91;stroke-width:1.8}.edge.parallel{stroke-dasharray:6 4}.target-color{background:#a8ce79}.done-color{background:#9fadb0}.map-scope{font-size:12px;line-height:1.6;color:#6c7d70;margin:0;padding:12px 20px;background:#f6f9f4;border-top:1px solid #e4ebe0}#map-empty{position:absolute;left:15%;right:15%;top:42%;font-size:18px;line-height:1.6;text-align:center;color:#69806a}.study-plan{margin-top:38px;border:1px solid #d7e1d9;border-radius:12px;background:white;padding:28px}.plan-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.plan-heading h2{font-size:29px;letter-spacing:-.7px}.plan-heading p:last-child{color:#667b69;font-size:14px;line-height:1.6;margin-bottom:0}.secondary-button{font-size:14px;white-space:nowrap;border:1px solid #b9cbb4;border-radius:7px;padding:11px 16px;background:#f4f8ef;color:#365938}.secondary-button:hover{background:#e8f1dc}.plan-settings{display:flex;align-items:end;gap:22px;flex-wrap:wrap;background:#f6f8f3;padding:18px;margin-top:25px;border-radius:8px}.plan-settings>label:not(.check-label){display:flex;flex-direction:column;gap:8px;font-size:13px;color:#65775e}.plan-settings select{min-width:140px}.plan-settings .check-label{align-self:center;max-width:230px}#save-state{font-size:12px;color:#74856b;margin-left:auto;max-width:200px;align-self:center;line-height:1.5}.plan-explainer{font-size:13px;line-height:1.7;color:#62765e;margin:16px 0}#plan-summary{font-size:14px;color:#3d6137;border-bottom:1px solid #e0e8d8;padding:12px 0 20px;line-height:1.7}.timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:24px}.semester h3{font-size:17px;margin:0 0 5px}.semester-subtitle{font-size:12px;color:#7b8a72;margin:0 0 17px}.period{background:#f7f9f4;border:1px solid #e0e7da;border-radius:8px;padding:11px;margin:10px 0;min-height:130px}.period-heading{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:12px;color:#6b7d61;margin-bottom:13px}.period-heading strong{font-weight:650;color:#4b6b40}.plan-course{display:block;width:100%;text-align:left;background:white;border:1px solid #c8dbc0;border-left:3px solid #77a062;border-radius:6px;padding:10px;color:#335c32;margin:8px 0}.plan-course small,.plan-course span{display:block;font-size:12px;color:#6f8364;line-height:1.5}.plan-course strong{display:block;font-size:14px;line-height:1.4;margin:6px 0}.plan-course.projected{border-style:dashed;background:#faf9ef;border-color:#bbab6e}.plan-course.plan-target{border-left-color:#447425}.empty-period{font-size:12px;color:#8b9880;line-height:1.5;margin-top:20px}#unplaced:not(:empty){margin-top:22px;border:1px solid #e4d5b0;background:#fffcf4;padding:18px;border-radius:8px}#unplaced h3{font-size:16px;margin:0 0 8px}.unplaced-row{display:flex;gap:12px;align-items:baseline;border-top:1px solid #ede5d4;padding:10px 0}.unplaced-row .text-button{padding:0;text-align:left;flex:0 0 30%;font-size:14px}.unplaced-row>span{font-size:13px;color:#7e755d;line-height:1.6}.review-panel{margin-top:26px;border-top:1px solid #dee7d8;padding-top:22px}.review-panel>summary{font-size:15px;font-weight:650;color:#385c34;cursor:pointer;line-height:1.7}.review-intro,.planning-note{font-size:13px;line-height:1.7;color:#708269}.background-row{display:flex;gap:12px;align-items:flex-start;padding:12px;background:#f7f9f3;border:1px solid #e3e9db;border-radius:6px}.background-row strong{font-size:14px;line-height:1.5;font-weight:550}.background-row small{font-size:12px;color:#78876b;display:block;line-height:1.6;margin-top:4px}#background{display:grid;grid-template-columns:1fr 1fr;gap:10px}.eligibility-course{font-size:14px;line-height:1.6;padding:11px 0;border-bottom:1px solid #e3e8de}.eligibility-course summary{cursor:pointer;color:#4b6640}.eligibility-course p{color:#69795f}#eligibility h3{font-size:15px;margin-top:24px}.planning-note{margin-top:24px;padding-top:18px;border-top:1px solid #e1e8db;margin-bottom:0}.page-footer{line-height:1.6}
@media(min-width:1600px){.workspace{grid-template-columns:270px minmax(0,1fr) 330px;height:850px}}
@media(max-width:1250px){.workspace{grid-template-columns:230px minmax(0,1fr);height:auto}.details{grid-column:1/-1;max-height:500px;overflow:auto;border-left:0;border-top:1px solid #dfe7e2}.catalogue{max-height:730px}.diagram-panel{min-height:700px}.details .primary-button{width:auto;min-width:200px}.details .requirement-group{max-width:600px}.details .studied-check{max-width:450px}}
@media(max-width:900px){.timeline{grid-template-columns:1fr 1fr}.plan-settings{gap:14px}#save-state{margin-left:0}.plan-heading{align-items:flex-start}.plan-heading h2{font-size:25px}}
@media(max-width:650px){.header .sample{max-width:150px;line-height:1.5;text-align:center}.heading .eyebrow{line-height:1.7;font-size:11px}.heading h1{letter-spacing:-1px}.target-strip{padding:14px;align-items:flex-start}.workspace{display:flex;height:auto}.catalogue{max-height:580px;order:0}.diagram-panel{order:1;min-height:540px}.details{order:2;max-height:650px}#course-list{display:block;max-height:290px}.panel-heading{padding:18px 16px 14px}.catalogue-filters{flex-direction:row}.catalogue-filters input,.catalogue-filters select{width:50%}.catalogue-note{display:none}.list-help{margin:10px 16px}.course-item{padding:8px 14px}.map-hint{display:none}#viewport{height:390px;min-height:390px}.study-plan{padding:20px 14px;margin-top:25px}.plan-heading{flex-wrap:wrap}.timeline{gap:10px}.semester h3{font-size:16px}.period{padding:8px}.plan-settings{padding:12px}.plan-settings>label:not(.check-label){width:calc(50% - 8px)}.plan-settings select{min-width:0}.plan-settings .check-label{max-width:none}#background{grid-template-columns:1fr}.unplaced-row{display:block}.unplaced-row>span{display:block;margin-top:5px}.review-panel>summary{font-size:14px}.target-strip>.text-button{white-space:nowrap}.map-footer .legend{gap:10px}.node strong{font-size:16px}}
@media(max-width:380px){.timeline{grid-template-columns:1fr}}
@media print{.header,.heading,.target-strip,.workspace,.plan-settings,.secondary-button,.page-footer,.skip{display:none}main{padding:0}.study-plan{border:0;margin:0;padding:0}.timeline{grid-template-columns:repeat(4,1fr)}.period{break-inside:avoid}.review-panel{break-before:page}}
.planning-mode{font-size:14px;line-height:1.6;padding:12px 16px;background:#edf4e7;border:1px solid #d6e2cc;border-radius:7px;margin:16px 0}.period-dates{font-size:12px;line-height:1.5;color:#788571;margin:0 0 12px}.semester-subtitle{line-height:1.6}.course-offering{padding:10px 0;border-bottom:1px solid #e0e7db}.course-offering>strong{font-size:13px;line-height:1.6}.course-offering .empty-note{margin:5px 0;display:block}.plan-explainer a{color:#2f6846}
#unplaced .secondary-button{white-space:normal;line-height:1.5;text-align:left;max-width:100%}

#target-outcomes{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.target-outcome{flex:1 1 230px;text-align:left;padding:12px 14px;border:1px solid #bdd1ae;border-radius:7px;background:#f3f8ed;color:#335c32}.target-outcome strong,.target-outcome span{display:block;line-height:1.6}.target-outcome span{font-size:13px;margin-top:4px}.target-outcome.unscheduled{background:#fffcf4;border-color:#e4d5b0}.target-outcome.completed{background:#edf0f2;border-color:#b4c0c3}.extended-semester{border-top:3px solid #c6a86c;padding-top:12px}.extension-label{font-size:12px;line-height:1.5;color:#806432;margin:0 0 10px}

.plan-course .outline-warning{color:#896128;font-weight:600}

.programme-assessment:not(:empty){margin-top:22px;padding:18px;border:1px solid #d7e1d9;border-radius:8px;background:#f8faf5;font-size:13px;line-height:1.7;color:#506748}.programme-assessment h3{margin:0;font-size:17px;color:#335c32}.programme-headline{font-weight:650}.programme-loads{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.programme-loads p{margin:0;padding:10px;background:white;border-radius:5px}.programme-assessment summary{cursor:pointer;font-weight:600}.programme-assessment li{margin:8px 0}@media(max-width:800px){.programme-loads{grid-template-columns:repeat(2,minmax(0,1fr))}}
#semester-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.semester-choice{min-width:0;margin:16px 0}.semester-choice label{display:block;font-size:14px;font-weight:600;line-height:1.5;margin-bottom:8px}.semester-choice select{font-size:14px}.semester-choice p{font-size:13px;line-height:1.5}@media(max-width:800px){#semester-choices{grid-template-columns:1fr}}

.semester-reservations{border:1px dashed #bbab6e;border-radius:8px;padding:12px;margin:12px 0;background:#faf9ef}.semester-reservations h4{font-size:14px;margin:0 0 10px;color:#715a26}.semester-reservations .empty-note{font-size:13px;line-height:1.6}
.planning-disclaimer{margin:0 0 20px;padding:16px 20px;border:1px solid #d7e1d9;border-left:4px solid #45766b;border-radius:8px;background:#fff;color:#29443c;font-size:1rem;line-height:1.6}.planning-disclaimer a{color:#2c6b49;text-underline-offset:3px}

/* Keep explanatory text readable independently of the wide planning workspace. */
.planning-disclaimer,
.heading p,
.plan-heading p,
.map-scope,
.planning-mode,
.plan-explainer,
.review-intro,
.planning-note,
.detail-description,
.eligibility-course p,
.programme-assessment > p,
.programme-assessment > ul,
.programme-assessment details p,
.degree-requirements > ul,
.unplaced-row > span {
  max-inline-size: 75ch;
}

.degree-requirements{margin-top:20px;padding-top:18px;border-top:1px solid #d7e1d9;font-size:14px}
.degree-requirements > summary{font-size:16px;color:#335c32}
.degree-requirements > ul{padding-inline-start:24px;margin-block:14px}
.degree-requirements li{padding-inline-start:4px;margin-block:12px}

.plan-course[draggable=true]{cursor:grab}
.plan-course[draggable=true]:active{cursor:grabbing}
.semester{min-width:0;border-radius:8px}
.semester.drop-allowed{outline:2px dashed #45766b;outline-offset:5px}
.semester.drop-active{outline-style:solid;background:#e8f6df}
.drop-hint{visibility:hidden;min-height:1.5em;font-size:14px;line-height:1.5;margin:10px 0;color:#335c32}
.drop-allowed > .drop-hint,.drop-blocked > .drop-hint{visibility:visible}
.drop-blocked > .drop-hint{color:#896128}
.timeline-feedback{font-size:14px;line-height:1.6;max-inline-size:75ch;color:#335c32}
.timeline-feedback:empty{display:none}
.timeline-feedback.drag-feedback{position:fixed;z-index:20;inset-inline:16px;bottom:16px;margin:0 auto;padding:12px 16px;max-height:25vh;overflow:auto;background:#fff;border:1px solid #45766b;border-radius:8px;box-shadow:0 4px 16px #10272426;pointer-events:none}

.usage-guide{margin-block:24px;padding-block:20px;border-block:1px solid #d7e1d9}
.usage-guide > h2{font-size:18px;margin-bottom:18px}
.guide-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;list-style:none;padding:0;margin:0}
.guide-steps h3{font-size:16px;line-height:1.5;margin:0 0 8px;max-inline-size:45ch}
.guide-steps h3 span{display:block;font-size:14px;color:#45766b;margin-bottom:4px}
.guide-steps p{font-size:16px;line-height:1.6;margin:0;max-inline-size:45ch;color:#506748}
.guide-steps a{color:#2c6b49;text-underline-offset:3px}
@media(max-width:900px){.guide-steps{grid-template-columns:1fr;gap:20px}.guide-steps p,.guide-steps h3{max-inline-size:65ch}}
@media print{.usage-guide{display:none}}
.plan-actions{display:flex;flex-wrap:wrap;gap:10px}
#import-status:empty{display:none}
@media print{#import-help,#import-status{display:none}}

/* A shared planner with a focused phone workspace. */
[hidden]{display:none!important}
.mobile-only{display:none}
#map-area{display:contents}
.planning-guide{margin:0 0 22px;color:#395b49}
.planning-guide>summary,.plan-options>summary{cursor:pointer;padding:12px 0;font-size:14px;line-height:1.5}
.planning-guide[open]>.planning-disclaimer{margin-top:16px}
.plan-options{margin:18px 0;border-block:1px solid #dfe7e2}
.plan-options .plan-settings{margin-top:12px}
.plan-progress{margin-top:22px;background:#102f27;color:#fff;border-radius:10px;padding:20px}
.plan-progress h3{margin:0 0 10px;font-size:22px;letter-spacing:-.3px}
.plan-progress p{margin:8px 0;font-size:14px;line-height:1.6;color:#d9e8df}
.plan-progress progress{display:block;width:100%;height:8px;accent-color:#b7ed8e;margin:12px 0}
.progress-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.progress-actions button{font-size:14px;line-height:1.4;padding:10px 12px;border:1px solid #6c9180;border-radius:6px;background:#254b3e;color:#fff;text-align:left}
#course-drawer{padding:0;border:0;border-radius:18px 18px 0 0;color:#162c29;background:white;width:100%;max-width:800px;max-height:92dvh;margin:auto auto 0;overscroll-behavior:contain}
#course-drawer::backdrop{background:#10272499}
body:has(#course-drawer[open]){overflow:hidden}
.drawer-bar{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;background:#fff;padding:12px 20px;border-bottom:1px solid #dfe7e2;font-weight:600}
.drawer-bar button{border:0;border-radius:6px;padding:12px 18px;background:#eaf4e5;color:#254f32;min-height:44px}
#course-drawer .details{display:block!important;max-height:none;overflow:visible;border:0;padding:20px 24px 32px}
#course-drawer .details h2{font-size:26px}
#course-drawer select{font-size:16px}
.card-action{display:none}
@media(max-width:800px){
  body{padding-bottom:calc(80px + env(safe-area-inset-bottom))}
  main{padding:18px 16px}
  .header{min-height:64px;padding:12px 16px;gap:12px}
  .header .sample{font-size:12px;max-width:125px;padding:5px 9px;line-height:1.4;text-align:center}
  .brand{font-size:18px;gap:8px}.brand-mark{padding:8px 6px}.header-label{display:none}
  .heading{margin-bottom:6px}.heading h1{font-size:25px;letter-spacing:-.7px;margin-bottom:4px}
  .heading .eyebrow,.heading p:last-child,.totals{display:none}
  .planning-guide{margin-bottom:12px}.planning-guide>summary{font-size:14px}
  .planning-disclaimer{font-size:16px;padding:14px}.guide-steps{grid-template-columns:1fr}
  .mobile-only{display:block}
  .target-strip,.workspace,.study-plan,#prerequisites{display:none}
  body[data-mobile-view=courses] .target-strip{display:flex;align-items:flex-start;padding:14px}
  body[data-mobile-view=courses] .workspace{display:block}
  body[data-mobile-view=plan] .study-plan{display:block}
  body[data-mobile-view=prerequisites] #prerequisites{display:block}
  body[data-mobile-view=prerequisites][data-map-open=true] .workspace{display:block;margin-top:16px}
  .workspace{height:auto;min-height:0;overflow:visible}
  .workspace>.details{display:none}
  .catalogue{display:none;max-height:none;border:0}
  body[data-mobile-view=courses] .catalogue{display:flex}
  .catalogue-filters{flex-direction:column;padding:0 16px;gap:10px}
  .catalogue-filters input,.catalogue-filters select{width:100%;font-size:16px;min-height:46px}
  #course-list{display:block;max-height:none;overflow:visible}
  .panel-heading{padding:20px 16px 14px}.panel-heading h2{font-size:22px}
  .course-item{padding:14px}.course-item span{font-size:16px}.course-item small{font-size:12px}
  .catalogue-row{border-bottom:1px solid #edf1ee;padding-right:14px}
  .add-target{width:44px;height:44px}.catalogue-note{display:none}.list-help{font-size:14px}
  #map-area{display:none}
  body[data-mobile-view=prerequisites][data-map-open=true] #map-area{display:block}
  .diagram-panel{min-height:0;border-radius:12px;overflow:hidden}
  #viewport{height:350px;min-height:350px;flex:none}
  .map-footer{padding:12px}.zoom-controls button{height:44px;min-width:44px}
  .map-scope{font-size:14px}.map-hint{display:none}
  .prerequisite-view{background:white;border:1px solid #d7e1d9;border-radius:12px;padding:20px 16px}
  .prerequisite-view h2{font-size:24px;margin-bottom:20px}
  .prerequisite-view label{display:block;font-size:14px;margin-bottom:8px}
  .prerequisite-view select{font-size:16px;min-height:48px}
  .prerequisite-view .secondary-button{white-space:normal;line-height:1.5;width:100%}
  .prerequisite-view h3{font-size:18px;margin:24px 0 12px}
  .prerequisite-row{padding:14px 0;border-bottom:1px solid #e2e9e5}
  .prerequisite-row label{display:flex;align-items:flex-start;gap:12px;font-size:16px;line-height:1.5;margin:0}
  .prerequisite-row input{width:22px;height:22px;flex:none;accent-color:#2f7149;margin:2px 0}
  .prerequisite-row p{font-size:14px;color:#506748;line-height:1.6;margin:8px 0 0 34px}
  .prerequisite-row .text-button{font-size:14px;min-height:44px;margin-left:24px}
  #toggle-map{margin-top:22px}
  .study-plan{margin:0;padding:20px 16px}
  .plan-heading{display:block}.plan-heading .eyebrow{display:none}.plan-heading h2{font-size:24px}
  .plan-heading p:last-child{font-size:14px}.plan-actions{margin-top:16px}
  .plan-actions button{flex:1;padding:11px 8px}
  .plan-progress{padding:16px;margin-top:18px}.plan-progress h3{font-size:21px}
  .progress-actions{display:grid;grid-template-columns:1fr}.progress-actions button{min-height:44px}
  .plan-settings{display:grid;grid-template-columns:1fr;gap:16px;padding:12px}
  .plan-settings>label:not(.check-label){width:100%;font-size:14px}
  .plan-settings select{font-size:16px;width:100%}.plan-settings .check-label{max-width:none;font-size:16px}
  #save-state{font-size:14px;max-width:none;margin:0}
  #plan-summary{font-size:14px;padding:0 0 14px}
  #target-outcomes{display:flex}
  #timeline-help{display:none}
  .semester-navigation{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;margin-top:20px;align-items:center}
  .semester-navigation button{min-height:46px;border:1px solid #ccd9ce;border-radius:6px;background:white;color:#284a32}
  .semester-navigation select{min-height:46px;font-size:16px;padding:8px 4px}
  .timeline{display:block;margin-top:20px}
  .timeline>.semester:not(.mobile-active){display:none}
  .semester h3{font-size:22px}.semester-subtitle{font-size:14px;line-height:1.6}
  .drop-hint{display:none}.period{padding:14px;min-height:0}
  .period-heading,.period-dates{font-size:14px;color:#506748}
  .plan-course{padding:14px}.plan-course strong{font-size:18px}
  .plan-course small,.plan-course span{font-size:14px;color:#506748}
  .plan-course .card-action{display:block;margin-top:12px;font-weight:600;color:#236a47}
  .plan-course[draggable=true]{cursor:pointer}
  .empty-period{font-size:14px;color:#62765e}
  .review-intro,.planning-note{font-size:14px}
  .semester-choice select{font-size:16px}.programme-loads{grid-template-columns:1fr}
  .details .detail-description,.details .empty-note{font-size:16px}.details .check-label{font-size:16px}
  .details .requirement-kind,.details .source-link,.details summary{font-size:14px}
  .details .primary-button{width:100%;font-size:16px}
  .mobile-navigation{position:fixed;bottom:0;left:0;right:0;z-index:30;display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #cddcd4;box-shadow:0 -4px 20px #1027240d}
  .mobile-navigation button{min-height:48px;border:0;border-radius:8px;background:white;color:#506748;font-size:14px;font-weight:600;padding:10px 4px}
  .mobile-navigation button[aria-current=page]{background:#163f30;color:#fff}
  .page-footer{font-size:12px;flex-direction:column}
}
@media print{.mobile-only,.planning-guide,.plan-options,.plan-progress,.card-action,#course-drawer{display:none!important}.study-plan{display:block!important}.timeline>.semester{display:block!important}}

.target-placement-panel>summary{font-size:14px;line-height:1.5;padding:12px 0;cursor:pointer;color:#395b49}

/* Keep the planning steps and degree essentials visible without disclosure clicks. */
.quick-guide{padding:18px 22px;background:#e8f1eb;border:1px solid #c4d8cc;border-left:4px solid #397756;border-radius:10px;margin-bottom:8px}
.quick-guide h2{font-size:18px;margin:0 0 14px}
.quick-guide ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:0;padding-left:22px}
.quick-guide li{padding-left:4px;color:#285a40;font-weight:650;line-height:1.5}
.quick-guide a{color:#204d37;text-underline-offset:3px;font-size:16px}
.quick-guide span{display:block;color:#506748;font-weight:400;font-size:14px;margin-top:3px}
.degree-overview{margin-top:22px;border:2px solid #427857;border-radius:10px;padding:22px;background:#f3f8f1}
.degree-overview h3{font-size:25px;letter-spacing:-.4px;margin:0;color:#204a32}
.degree-intro,.degree-caveat{font-size:14px;line-height:1.6;color:#45614c;margin:10px 0 16px;max-width:75ch}
.degree-essentials{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.degree-essential{background:white;border:1px solid #d1dfcf;border-radius:7px;padding:16px}
.degree-essential>strong{font-size:25px;display:block;color:#244f32;margin-bottom:8px}
.degree-essential>span{display:block;font-size:16px;line-height:1.5;font-weight:600}
.degree-essential p{font-size:14px;line-height:1.6;margin:10px 0 0;color:#536950}
.degree-caveat{margin:16px 0 0}
.degree-overview .degree-requirements{margin-top:16px;padding-top:14px}
.degree-overview .degree-requirements summary{cursor:pointer;line-height:1.5}
@media(max-width:800px){
  .quick-guide{padding:16px;margin-top:14px}.quick-guide ol{grid-template-columns:1fr;gap:10px}.quick-guide h2{font-size:18px;margin-bottom:10px}
  .quick-guide span{margin:0}.quick-guide a{display:inline-block;min-height:24px}
  .degree-overview{padding:16px}.degree-overview h3{font-size:24px}.degree-essentials{grid-template-columns:1fr;gap:10px}
  .degree-essential{padding:14px}.degree-essential>strong{font-size:23px}
}
@media print{.quick-guide{display:none}.degree-overview{break-inside:avoid}}

.context-disclaimer{font-size:14px;line-height:1.6;margin:18px 0;padding:14px 16px;max-inline-size:75ch}
.degree-overview .context-disclaimer{margin:14px 0 18px}
