:root{
  --navy:#00356b; --blue:#0b5bd3; --light-blue:#eaf3ff; --mid-blue:#bcd8ff;
  --green:#0f7f35; --light-green:#edf8ef; --soft-green:#d9f2df;
  --purple:#7d55c7; --light-purple:#f4efff; --orange:#b56b00; --light-orange:#fff4df;
  --border:#d8e1ee; --text:#101828; --muted:#52627a; --bg:#f6f8fb; --white:#fff;
  --shadow:0 6px 20px rgba(16,24,40,.08);
}
*{box-sizing:border-box}
body{margin:0;font-family:Arial, Helvetica, sans-serif;background:var(--bg);color:var(--text)}
.topbar{height:88px;background:linear-gradient(90deg,#001f49,var(--navy));color:white;display:flex;align-items:center;justify-content:space-between;padding:10px 24px;gap:24px;box-shadow:var(--shadow);position:sticky;top:0;z-index:10}
.brand{display:flex;align-items:center;gap:14px;min-width:380px}.brand img{width:64px;height:64px;object-fit:contain;border-radius:50%;background:white}.brand h1{font-size:24px;margin:0}.brand p{margin:4px 0 0;font-size:14px;opacity:.9}
.tabs{display:flex;gap:8px}.tab{background:transparent;color:white;border:0;padding:16px 18px;cursor:pointer;font-weight:700;border-bottom:3px solid transparent;font-size:15px}.tab.active{border-bottom-color:white;background:rgba(255,255,255,.08)}
main{padding:18px}.page{display:none;grid-template-columns:300px 1fr 330px;gap:18px}.page.active-page{display:grid}.hidden{display:none!important}.loading,.error{padding:30px}.error{background:#ffe8e8;border:1px solid #ffb6b6;border-radius:12px}
.left-panel,.center-panel,.right-panel,.compare-panel{min-height:calc(100vh - 124px)}.left-panel,.right-panel{display:flex;flex-direction:column;gap:14px}.center-panel{min-width:0}.card,.map-canvas,.program-map,.compare-panel{background:white;border:1px solid var(--border);border-radius:12px;box-shadow:0 2px 8px rgba(16,24,40,.04)}
h2{margin:0 0 8px}.muted{color:var(--muted);line-height:1.45}.search{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:10px;font-size:14px;background:white}.selected-box{min-height:70px}.selected-card{border:1px solid var(--blue);background:linear-gradient(180deg,#eff6ff,#fff);border-radius:10px;padding:14px}.selected-card strong{color:var(--blue);font-size:19px}.card{padding:16px}.legend h3{margin-top:0}.legend div{display:flex;align-items:center;gap:10px;margin:12px 0;font-size:14px}.legend-chip{display:inline-block;width:20px;height:20px;border-radius:5px;border:2px solid}.legend-chip.selected{background:#eff6ff;border-color:var(--blue)}.legend-chip.required{background:var(--light-green);border-color:var(--green)}.legend-chip.selection{background:var(--light-blue);border-color:var(--blue)}.legend-chip.muted-chip{background:#f3f4f6;border-color:#c7cdd6}
.info-banner{background:#eff6ff;border:1px solid #bcd8ff;border-radius:10px;padding:12px 14px;margin-bottom:12px;color:#0b2f66}.toolbar{display:flex;gap:10px;justify-content:flex-end;margin-bottom:12px}.secondary-btn,.primary-btn{border:1px solid #bcd0ea;background:white;color:var(--blue);padding:10px 14px;border-radius:9px;cursor:pointer;font-weight:700}.primary-btn{background:var(--blue);color:white;border-color:var(--blue)}
.map-canvas{position:relative;min-height:650px;padding:20px;overflow:auto}.course-map-grid{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:28px;min-width:760px;position:relative}.course-column h3{text-align:center;margin:0 0 12px;color:#172036}.course-stack{display:flex;flex-direction:column;gap:12px}.course-card{position:relative;border:1.5px solid var(--border);border-radius:10px;background:white;padding:12px;min-height:78px;cursor:pointer;transition:.15s;z-index:2}.course-card:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.course-card .code{font-weight:800;font-size:16px;color:#0b2350}.course-card .title{font-size:12.5px;line-height:1.25;margin-top:5px}.course-card .tag{display:inline-block;margin-top:8px;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:700}.course-card.selected{background:#eff6ff;border-color:var(--blue);box-shadow:0 0 0 3px rgba(11,91,211,.12)}.course-card.selected .code{color:var(--blue)}.course-card.required{background:var(--light-green);border-color:var(--green)}.course-card.required .code{color:var(--green)}.course-card.selection{background:var(--light-blue);border-color:#6da8f7}.course-card.selection .code{color:#0746a8}.course-card.other{opacity:.35;background:#f7f8fa}.course-card.further{background:#f7f2ff;border-color:#a881e6}.course-card.further .code{color:#5b36a7}.tag.required{background:var(--soft-green);color:var(--green)}.tag.selection{background:#dcecff;color:#0746a8}.arrows{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.arrow-line{stroke:#6d7f96;stroke-width:1.2;opacity:.25;fill:none}.arrow-line.direct{stroke:var(--green);stroke-width:1.4;opacity:.35}.arrow-line.selected{stroke:var(--blue);stroke-width:1.4;opacity:.38}
.details-card h2,.details-card h3{margin-top:0}.detail-row{border-top:1px solid var(--border);padding:12px 0}.detail-label{font-weight:800;margin-bottom:5px}.link-btn{display:block;text-align:center;text-decoration:none;border:1px solid #bcd0ea;border-radius:8px;padding:10px;margin-top:10px;color:var(--blue);font-weight:700}.impact-group h4{margin:12px 0 8px}.program-impact-card{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin:8px 0;background:white;cursor:pointer}.program-impact-card:nth-child(even){background:#f5f9ff}.program-impact-card:hover{border-color:var(--blue)}.program-impact-card .ptype{float:right;font-size:12px;background:#edf8ef;color:var(--green);padding:3px 7px;border-radius:999px;font-weight:700}
.program-list{display:flex;flex-direction:column;gap:8px;max-height:560px;overflow:auto}.program-item{border:1px solid var(--border);padding:10px;border-radius:10px;background:white;cursor:pointer}.program-item:nth-child(even){background:#f5f9ff}.program-item.active{border-color:var(--blue);box-shadow:0 0 0 2px rgba(11,91,211,.12)}.program-item .ptype{float:right;font-size:12px;border-radius:999px;padding:3px 7px;background:#eef7ee;color:#0f7f35;font-weight:700}.program-map{padding:24px;overflow:auto;min-height:650px}.program-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--border);padding-bottom:14px;margin-bottom:18px}.program-grid{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:14px;min-width:880px}.level-column{border-left:1px solid var(--border);padding-left:14px}.level-column:first-child{border-left:0}.level-column h3{text-align:center;margin:0 0 14px}.program-course{margin-bottom:10px}.program-course.highlight{box-shadow:0 0 0 3px rgba(11,91,211,.2)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:9999;padding:18px}.modal.hidden{display:none!important}.modal-content{background:white;max-width:820px;width:min(94vw,820px);max-height:88vh;overflow-y:auto;border-radius:14px;padding:28px 24px 24px;box-shadow:var(--shadow);position:relative}.modal-close{position:sticky;top:0;float:right;margin-top:-14px;margin-right:-10px;border:1px solid var(--border);background:#fff;border-radius:999px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;font-size:28px;line-height:1;cursor:pointer;color:#0a2f5f;z-index:10000;box-shadow:0 4px 12px rgba(0,0,0,.12)}.modal-close:hover{background:#eff6ff;border-color:#60a5fa}.modal-content::after{content:"";display:block;clear:both}@media(max-width:760px){.modal{align-items:flex-start;padding:10px}.modal-content{width:96vw;max-height:92vh;padding:24px 16px 18px}.modal-close{width:42px;height:42px;font-size:30px}}
.compare-panel{padding:22px}.compare-selectors{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:14px}.compare-selectors label{font-weight:800}.compare-selectors select{display:block;width:100%;margin-top:6px;padding:12px;border:1px solid var(--border);border-radius:9px}.warning{background:#fff8e7;border-color:#ffda89;color:#7a4a00}.compare-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:14px 0}.summary-card{padding:18px;border-radius:12px;text-align:center;border:1px solid var(--border);background:white}.summary-card.shared{background:var(--light-green);border-color:var(--green)}.summary-card strong{font-size:34px;display:block}.compare-columns{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.compare-box{background:white;border:1px solid var(--border);border-radius:12px;padding:16px}.compare-course{border:1px solid var(--border);border-radius:9px;padding:9px;margin:7px 0;background:white}.compare-course:nth-child(even){background:#f5f9ff}.compare-course.shared{background:var(--light-green);border-color:var(--green)}

.search-wrap{position:relative}
.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:white;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);z-index:50;max-height:340px;overflow:auto}
.search-result{padding:10px 12px;border-bottom:1px solid #edf1f7;cursor:pointer;background:white}
.search-result:last-child{border-bottom:0}.search-result:hover,.search-result:focus{background:#eff6ff}
.search-result .result-code{font-weight:800;color:var(--navy)}
.search-result .result-title{font-size:12px;color:var(--muted);margin-top:2px;line-height:1.25}
.search-empty{padding:12px;color:var(--muted);font-size:13px}
@media(max-width:1100px){.search-results{position:static;margin-top:6px;max-height:280px}.search-result{padding:13px 12px}}

@media(max-width:1100px){.page{grid-template-columns:1fr}.topbar{height:auto;flex-direction:column;align-items:flex-start}.brand{min-width:0}.right-panel,.left-panel{min-height:auto}.compare-columns,.compare-summary,.compare-selectors{grid-template-columns:1fr}}
.empty-state{border:1px dashed #b9c7d8;background:#f8fbff;border-radius:16px;padding:42px;text-align:center;color:#23324a;max-width:760px;margin:40px auto;}
.empty-state h2{margin:0 0 10px;font-size:26px;color:#08346b;}
.empty-state p{font-size:16px;line-height:1.6;color:#42526b;}


/* v5 improvements: drag maps, mobile ordering, program type colours */
.map-canvas, .program-map{cursor:default; -webkit-overflow-scrolling:touch; touch-action:pan-x pan-y;}
.map-canvas.dragging, .program-map.dragging{cursor:grabbing; user-select:none;}
.mobile-impact-holder{display:none;}
.ptype{display:inline-block;font-size:12px;border-radius:999px;padding:3px 8px;font-weight:800;margin-right:6px;float:right;}
.ptype-specialist{background:#f4efff;color:#6b3fb3;border:1px solid #d8c7ff;}
.ptype-major{background:#eaf3ff;color:#0b5bd3;border:1px solid #bcd8ff;}
.ptype-minor{background:#edf8ef;color:#0f7f35;border:1px solid #c7eccc;}
.ptype-certificate{background:#fff4df;color:#9a5a00;border:1px solid #ffd99b;}
.ptype-program{background:#f3f4f6;color:#344054;border:1px solid #d0d5dd;}
.program-item .ptype,.program-impact-card .ptype{float:right;margin-left:8px;margin-right:0;}
@media(max-width:1100px){
  #course{grid-template-columns:1fr;}
  #course .left-panel{order:1;}
  #course .center-panel{order:2;}
  #mobileImpactHolder{display:block;order:3;}
  #course .right-panel{order:4;}
  #impactPrograms{margin-top:14px;}
  .map-canvas,.program-map{min-height:420px;}
  .course-map-grid{min-width:720px;}
}

/* v7: non-course prerequisites and advisor alerts */
.prep-card{
  border:1.5px dashed #d4a72c;
  background:#fff8e6;
  border-radius:10px;
  padding:12px;
  font-size:13px;
  line-height:1.35;
  color:#604400;
  position:relative;
  z-index:2;
}
.prep-title{
  font-weight:800;
  margin-bottom:5px;
  color:#7a5600;
}
.advisor-alert{
  border:1.5px solid #e2a43a;
  background:#fff7e8;
  border-radius:10px;
  padding:12px;
  margin:12px 0;
  color:#5f3f00;
}
.advisor-alert .alert-title{
  font-weight:900;
  margin-bottom:5px;
}
.advisor-alert a{color:#0b5bd3;font-weight:700;word-break:break-word;}


/* Final DPES refinements */
.course-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;}
.course-title-row h2{margin:0;color:#00356b;font-size:28px;}
.course-title-row h2 span{font-size:18px;color:#00356b;font-weight:800;}
.about-card h3{margin:0 0 10px;color:#00356b;}
.about-card h3 span{font-size:12px;color:#00356b;}
.about-card ul{margin:8px 0 10px 18px;padding:0;color:#00356b;line-height:1.5;}
.about-card p{margin:8px 0;color:#00356b;line-height:1.45;}
.course-card.selected .code{font-size:18px;font-weight:900;color:#0b2350;}
.course-card.selected{border:3px solid var(--green);background:linear-gradient(180deg,#f1fbf3,#ffffff);}
.course-card.selected .title{font-weight:700;}
.course-card.required{background:#fff8e8;border-color:#f2a819;}
.course-card.required .code{color:#111827;}
.course-card.further{background:#fff8e8;border-color:#f2a819;}
.course-card.further .code{color:#111827;}
.prep-card{background:#fff8e8;border:1.5px solid #f2a819;border-radius:10px;padding:12px;line-height:1.35;}
.prep-card .prep-title{font-weight:900;color:#9a5a00;margin-bottom:6px;}
.advisor-alert{background:#fff0f0;border:1.5px solid #ff7b7b;border-radius:10px;padding:13px 14px;margin:12px 0;color:#7a1111;}
.advisor-alert .alert-title{font-weight:900;color:#b42318;margin-bottom:6px;}
.advisor-alert a{color:#005fcc;font-weight:800;}
/* Program type colours requested */
.ptype-specialist{background:#e7f7ec!important;color:#0f7f35!important;border:1px solid #b9e7c5!important;}
.ptype-major{background:#fff4df!important;color:#b56b00!important;border:1px solid #ffd99b!important;}
.ptype-minor{background:#eaf3ff!important;color:#0b5bd3!important;border:1px solid #bcd8ff!important;}
.ptype-certificate{background:#f4efff!important;color:#7d55c7!important;border:1px solid #d8c7ff!important;}
@media(max-width:1100px){.course-title-row{display:block}.course-title-row .toolbar{justify-content:flex-start;margin-top:10px}.course-title-row h2{font-size:22px}.course-title-row h2 span{font-size:15px}}

/* Compare Programs full-width fix */
#compare.page.active-page{
  display:block;
}
#compare .compare-panel{
  width:100%;
  max-width:1600px;
  margin:0 auto;
  min-height:calc(100vh - 124px);
  padding:28px;
}
#compare .compare-panel h2{
  font-size:30px;
  color:var(--navy);
  margin-bottom:18px;
}
/* Enrollment Priority full-width fix */
#priority.page.active-page{
  display:block;
}
#priority .priority-panel{
  width:100%;
  max-width:1600px;
  margin:0 auto;
  min-height:calc(100vh - 124px);
  padding:28px;
}
#priority .priority-panel h2{
  font-size:30px;
  color:var(--navy);
  margin-bottom:10px;
}
#priority .priority-panel > p.muted{
  font-size:15.5px;
  max-width:900px;
  margin-bottom:22px;
}
#priority .priority-toprow{
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:18px;
  align-items:start;
  margin-bottom:20px;
}
#priority .priority-toprow .search-wrap{position:relative;}
.priority-search-group{display:flex;flex-direction:column;gap:8px;}
#priority .priority-program-check{margin:0;}
@media(max-width:900px){
  #priority .priority-toprow{grid-template-columns:1fr;}
}
.compare-selectors.card{
  display:grid;
  grid-template-columns:repeat(2,minmax(360px,1fr));
  gap:24px;
  padding:20px;
  margin-bottom:18px;
}
.compare-selectors label{
  font-size:16px;
  font-weight:900;
  color:#0b2350;
}
.compare-selectors select{
  display:block;
  width:100%;
  margin-top:8px;
  padding:14px 16px;
  min-height:54px;
  border:1px solid var(--border);
  border-radius:10px;
  font-size:15px;
  background:#fff;
}
#programWarning.warning.card{
  max-width:none;
  margin-bottom:18px;
  font-size:15px;
  line-height:1.45;
}
.compare-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(240px,1fr));
  gap:18px;
  margin:18px 0;
}
.summary-card{
  min-height:110px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:20px;
  border-radius:14px;
  line-height:1.25;
}
.summary-card strong{
  font-size:42px;
  line-height:1;
  margin-bottom:8px;
}
.compare-columns{
  display:grid;
  grid-template-columns:repeat(3,minmax(300px,1fr));
  gap:18px;
  align-items:start;
}
.compare-box{
  min-height:420px;
  padding:18px;
  border-radius:14px;
}
.compare-box h3{
  font-size:20px;
  line-height:1.2;
  margin:0 0 14px;
  color:#0b2350;
  word-break:normal;
}
.compare-course{
  padding:11px 12px;
  margin:8px 0;
  line-height:1.25;
}
.compare-course strong{
  color:#0b2350;
  font-size:15px;
}
.compare-course span{
  color:#344054;
  font-size:13px;
}
@media(max-width:900px){
  #compare .compare-panel{padding:16px;}
  .compare-selectors.card,
  .compare-summary,
  .compare-columns{grid-template-columns:1fr;}
}

.search-help{font-size:.95rem;line-height:1.4;color:#334;margin:8px 0 12px}
.search{min-height:56px;border:3px solid #2f6fed;background:#eef5ff;font-size:1.05rem;border-radius:12px;padding:12px 14px;width:100%}
.major-badge{background:#ffe680!important;color:#000!important}
.specialist-badge{background:#c8f0c8!important;color:#000!important}
.minor-badge{background:#cfe0ff!important;color:#000!important}
.certificate-badge{background:#ead6ff!important;color:#000!important}

/* v10 release candidate refinements */
.search-help strong{color:#00356b}
.empty-state.welcome-state{text-align:left;max-width:860px;padding:44px 48px;background:linear-gradient(180deg,#ffffff,#f4f8ff);}
.empty-state.welcome-state h2{font-size:32px;color:#00356b;margin-bottom:14px;text-align:center;}
.empty-state.welcome-state p{font-size:17px;line-height:1.6;color:#334155;text-align:center;}

.empty-state.program-picker{max-width:900px;text-align:left;padding:32px 36px;}
.empty-state.program-picker h2{text-align:center;}
.empty-state.program-picker > p{text-align:center;margin-bottom:22px;}
.program-picker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;}
.program-picker-col label{display:block;font-weight:800;color:var(--navy);font-size:14px;margin-bottom:6px;}
.program-picker-select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;font-size:14px;color:#1f2937;cursor:pointer;}
.program-picker-select:hover{border-color:var(--blue);}
.program-picker-select:focus{outline:2px solid var(--blue);outline-offset:1px;}
@media(max-width:700px){.empty-state.program-picker{padding:24px 20px;}.program-picker-grid{grid-template-columns:1fr;}}
.welcome-points{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px;margin-top:24px;}
.welcome-points div{background:white;border:1px solid #d8e1ee;border-radius:12px;padding:14px 16px;font-weight:800;color:#0b2350;box-shadow:0 2px 8px rgba(16,24,40,.04)}
.welcome-points div:before{content:'✓';display:inline-block;margin-right:8px;color:#0f7f35;font-weight:900}

.prereq-group{border:1px solid var(--border);border-radius:12px;background:#fff;padding:12px;display:flex;flex-direction:column;gap:9px;}
.prereq-group.choice{background:#f7fbff;border-color:#bcd8ff;}
.prereq-group.required{background:#fff8e8;border-color:#f2c66d;}
.prereq-group-title{font-weight:900;color:#0b2350;background:rgba(255,255,255,.72);border-radius:8px;padding:8px 10px;}
.prereq-row{display:grid;grid-template-columns:26px 1fr;gap:8px;align-items:center;}
.prereq-icon{font-size:18px;font-weight:900;color:#00356b;text-align:center;}
.detail-prereq-group{background:#f8fbff;border:1px solid #d8e1ee;border-radius:10px;padding:10px 12px;margin:8px 0;}
.detail-prereq-group.choice{background:#f3f8ff;border-color:#bcd8ff;}
.detail-prereq-group.required{background:#fff8e8;border-color:#f2c66d;}
.detail-prereq-group ul{margin:8px 0 0 18px;padding:0;line-height:1.45;}

/* Program type colour on whole program cards */
.program-item.program-specialist,.program-impact-card.program-specialist{background:#e7f7ec!important;border-color:#b9e7c5!important;}
.program-item.program-major,.program-impact-card.program-major{background:#fff4df!important;border-color:#ffd99b!important;}
.program-item.program-minor,.program-impact-card.program-minor{background:#eaf3ff!important;border-color:#bcd8ff!important;}
.program-item.program-certificate,.program-impact-card.program-certificate{background:#f4efff!important;border-color:#d8c7ff!important;}
.program-item.active{outline:3px solid rgba(11,91,211,.18)}

/* Selected course remains highly visible without implying it is a button */
.course-card.selected{background:#eff6ff!important;border:3px solid #0b5bd3!important;box-shadow:0 0 0 4px rgba(11,91,211,.10)!important;}
.course-card.selected .code{font-size:19px;font-weight:900;color:#00356b!important;}

@media(max-width:700px){.welcome-points{grid-template-columns:1fr}.empty-state.welcome-state{padding:28px 22px}.empty-state.welcome-state h2{font-size:25px}.empty-state.welcome-state p{text-align:left;font-size:15px}}

/* v10.1: program selection-block grouping and clearer credit prerequisite groups */
.prereq-group.credit .prereq-group-title{
  color:#075985;
}
.prereq-group.credit{
  border-left:4px solid #38bdf8;
  padding-left:10px;
}
.program-block{
  border:1.5px solid #bcd8ff;
  background:#f5f9ff;
  border-radius:12px;
  padding:10px;
  margin-bottom:12px;
}
.program-block-title{
  font-weight:900;
  color:#0746a8;
  background:#e8f2ff;
  border:1px solid #bcd8ff;
  border-radius:9px;
  padding:8px 10px;
  margin-bottom:10px;
  line-height:1.3;
}
.program-block-courses{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.program-block .program-course{
  margin-bottom:0;
}


/* v10.3 usability: clear/reset buttons directly under search */
.search-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  margin-top:10px;
}
.search-actions .secondary-btn{
  width:100%;
  text-align:center;
  min-height:42px;
  border-radius:10px;
}
.clear-under-search{
  background:#ffffff;
  border:1.5px solid #bcd0ea;
  color:#0b5bd3;
}
.reset-under-search{
  background:#f8fbff;
  color:#52627a;
}
.secondary-btn:disabled{
  opacity:.45;
  cursor:not-allowed;
  background:#f3f4f6;
  color:#667085;
  border-color:#d0d5dd;
}
.course-title-row{margin-bottom:12px;}


/* v10.4 final course-map visual categories */
.legend-chip.prereq{background:#fff8e8;border-color:#f2a819;}
.legend-chip.coreq{background:#f6efff;border-color:#8b5cf6;}
.legend-chip.direct{background:#edf8ef;border-color:#16a34a;}
.legend-chip.further{background:#eff6ff;border-color:#2f6fed;}
.legend-chip.breadth{background:#fff0f6;border-color:#ec4899;}
.legend-chip.experience{background:#ecfeff;border-color:#14b8a6;}
.legend-chip.other-info{background:#f8fafc;border-color:#94a3b8;}
.course-card.required,.course-card.selection{background:#fff8e8!important;border-color:#f2a819!important;}
.course-card.required .code,.course-card.selection .code{color:#9a3412!important;}
.course-card.direct{background:#edf8ef!important;border-color:#16a34a!important;}
.course-card.direct .code{color:#166534!important;}
.course-card.further{background:#eff6ff!important;border-color:#2f6fed!important;}
.course-card.further .code{color:#0746a8!important;}
.course-card.coreq{background:#f6efff!important;border-color:#8b5cf6!important;text-align:center;}
.course-card.coreq .code{color:#6d28d9!important;}
.coreq-map-block{margin-top:18px;border:1.5px solid #8b5cf6;background:#fbf7ff;border-radius:13px;padding:12px;display:flex;flex-direction:column;gap:10px;align-items:stretch;}
.coreq-title{font-weight:900;color:#6d28d9;text-align:center;line-height:1.25;}
.coreq-title span{display:block;font-size:12px;color:#4c1d95;font-weight:800;margin-top:2px;}
.impact-group-map{border:1.5px solid #16a34a;background:#f4fbf5;border-radius:13px;padding:12px;}
.impact-map-title{font-weight:900;color:#166534;margin:0 0 10px;}
.detail-card{border:1px solid var(--border);border-radius:10px;padding:12px;margin:10px 0;background:#fff;line-height:1.35;}
.detail-card .detail-label{font-weight:900;margin-bottom:6px;color:#0b2350;}
.detail-card .detail-note{font-size:12px;font-weight:800;margin-top:6px;color:#4c1d95;}
.coreq-detail{background:#fbf7ff;border-color:#8b5cf6;}
.breadth-detail{background:#fff0f6;border-color:#ec4899;}
.breadth-detail .detail-label{color:#be185d;}
.experience-detail{background:#ecfeff;border-color:#14b8a6;}
.experience-detail .detail-label{color:#0f766e;}
.other-detail{background:#f8fafc;border-color:#94a3b8;}
.arrow-line.selected{stroke:#f97316;stroke-width:1.6;opacity:.55;}
.arrow-line.direct{stroke:#16a34a;stroke-width:1.6;opacity:.55;}
.arrow-line.coreq{stroke:#8b5cf6;stroke-width:1.6;opacity:.65;stroke-dasharray:6 5;}
.map-canvas,.program-map{cursor:default;}
.map-canvas.dragging,.program-map.dragging{cursor:grabbing;}

.map-heading-note{font-size:12.5px;line-height:1.35;color:#667085;text-align:center;margin:-6px 0 12px;font-style:italic;}
.course-column h3{margin-bottom:8px;}


/* v10.7 - Compare Programs clickable courses */
.compare-course.clickable{
  cursor:pointer;
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.compare-course.clickable:hover,
.compare-course.clickable:focus{
  transform:translateY(-1px);
  border-color:#0b5bd3;
  box-shadow:0 6px 16px rgba(11,91,211,.14);
  outline:none;
}
.open-course-hint{
  margin-top:6px;
  font-size:11px;
  color:#0b5bd3;
  font-weight:700;
}


/* v10.8 - compare wording, calendar links, and site footer */
.compare-program-links{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0;}
.compare-disclaimer{background:#f8fafc;border:1px solid #cbd5e1;border-left:5px solid #0b5bd3;border-radius:10px;padding:12px 14px;margin:12px 0 18px;color:#334155;line-height:1.45;}
.site-footer{margin:24px auto 0;padding:18px 24px;background:#071f4f;color:#e7eefc;font-size:13px;line-height:1.55;}
.site-footer a{color:#ffffff;font-weight:800;text-decoration:underline;}
.site-footer div{max-width:1180px;margin:3px auto;}
@media(max-width:700px){.site-footer{padding:16px;font-size:12px}.compare-program-links{flex-direction:column}.compare-program-links .link-btn{text-align:center}}

/* v11 production polish */
.detail-prereq-group.required strong{color:#9a3412;}
.detail-prereq-group.choice strong,.detail-prereq-group.credit strong{color:#0746a8;}
.detail-card.other-detail{background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;margin:8px 0;}
.course-title-row h2 span{font-size:.72em;}

/* v11.1 compact layout and prerequisite parsing refinements */
@media (min-width: 1101px){
  .page{grid-template-columns:280px minmax(720px,1fr) 300px;gap:14px;}
  #program.page{grid-template-columns:280px minmax(720px,1fr);}
  main{padding:14px;}
  .card{padding:14px;}
  .map-canvas{padding:18px;min-height:600px;}
  .course-map-grid{grid-template-columns:.9fr .85fr 1fr;gap:18px;min-width:700px;}
  .course-card{padding:10px;min-height:64px;}
  .course-card .code{font-size:15px;}
  .course-card .title{font-size:12px;}
  .right-panel .card{font-size:14px;}
}

/* Program Map header: name/type/credits/career paths/actions now live in the
   center-panel header itself, since the right panel (which just repeated the
   program name) was removed. */
.program-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;border-bottom:1px solid var(--border);padding-bottom:14px;margin-bottom:18px;}
.program-header-main{flex:1;min-width:260px;}
.program-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.program-title-row h2{margin:0;}
.program-header-actions{display:flex;flex-direction:column;gap:8px;min-width:170px;}
.program-header-actions .link-btn,.program-header-actions .secondary-btn{margin:0;white-space:nowrap;}
.career-chip-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;}
.career-chip-label{font-weight:800;color:var(--navy);font-size:13px;margin-right:2px;}
.career-chip{background:var(--light-green);border:1px solid var(--green);color:#0f5f28;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:700;}

/* v14: on small laptop screens (1101px-1500px) the side panels stay open
   and in-flow by default (so search is visible right away), but shrink to
   fit alongside the map instead of forcing a wide 3-column grid. Each panel
   can be collapsed via its toggle button if the person wants more room. */
@media (min-width:1101px) and (max-width:1500px){
  #course.page.active-page,#program.page.active-page{
    display:flex;
    align-items:flex-start;
    gap:14px;
  }
  #course .left-panel,#program .left-panel{
    flex:0 0 250px;
    width:250px;
    transition:flex-basis .25s ease,width .25s ease,padding .25s ease,margin .25s ease,opacity .2s ease;
  }
  #course .right-panel{
    flex:0 0 270px;
    width:270px;
    transition:flex-basis .25s ease,width .25s ease,padding .25s ease,margin .25s ease,opacity .2s ease;
  }
  #course .left-panel.panel-collapsed,#program .left-panel.panel-collapsed,
  #course .right-panel.panel-collapsed{
    flex-basis:0;width:0;padding:0;margin:0;border-width:0;opacity:0;pointer-events:none;overflow:hidden;
  }
  #course .center-panel,#program .center-panel{flex:1 1 auto;min-width:0;}

  .panel-toggle{
    display:flex;align-items:center;justify-content:center;
    position:fixed;top:50%;transform:translateY(-50%);
    width:22px;height:56px;
    background:var(--blue);color:white;border:0;
    cursor:pointer;font-size:14px;font-weight:800;
    z-index:61;box-shadow:var(--shadow);
    transition:left .25s ease,right .25s ease;
  }
  .panel-toggle.left-toggle{left:250px;border-radius:0 8px 8px 0;}
  .panel-toggle.right-toggle{right:270px;border-radius:8px 0 0 8px;}
  .panel-toggle.left-toggle.panel-collapsed{left:0;}
  .panel-toggle.right-toggle.panel-collapsed{right:0;}
}
@media (max-width:1100px){
  .panel-toggle{display:none!important;}
}
@media (min-width:1501px){
  .panel-toggle{display:none!important;}
}
/* v12: compare selector columns (centered titles, per-program badge + link) */
.compare-selectors.card{align-items:start;}
.compare-select-col{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:16px;border-radius:12px;background:linear-gradient(180deg,#f8fbff,#ffffff);border:1px solid var(--border);}
.compare-select-col:first-child{border-top:4px solid var(--blue);}
.compare-select-col:last-child{border-top:4px solid var(--purple);}
.compare-select-col label{font-size:16px;font-weight:900;color:#0b2350;}
.compare-select-col select{margin-top:0;}
.compare-type-badge{margin-top:2px;}
.compare-type-badge .ptype{float:none;margin-right:0;}
.compare-col-link{width:100%;margin-top:4px;}
.compare-box h3{text-align:center;}
@media(max-width:900px){.compare-selectors.card{grid-template-columns:1fr;}}

/* v12: colour accents requested for a livelier feel */
.impactPrograms,#impactPrograms{border-top:4px solid var(--blue);}
.about-card{border-top:4px solid var(--navy);}
.legend{border-top:4px solid var(--green);}
.compare-box:nth-child(1){border-top:4px solid var(--green);}
.compare-box:nth-child(2){border-top:4px solid var(--blue);}
.compare-box:nth-child(3){border-top:4px solid var(--purple);}
.compare-box:nth-child(2) h3{color:var(--blue);}
.compare-box:nth-child(3) h3{color:var(--purple);}
.compare-box:nth-child(1) h3{color:var(--green);}
.summary-card{border-top:4px solid var(--border);}
.summary-card.shared{border-top:4px solid var(--green);}
#compare .compare-panel{border-top:6px solid var(--blue);}
#priority .priority-panel{border-top:6px solid var(--orange);padding:22px;}
.priority-program-check{margin:14px 0;border-top:4px solid var(--purple);}
.priority-program-check label{font-weight:800;display:block;margin-bottom:8px;}
.priority-program-check select{width:100%;padding:12px;border:1px solid var(--border);border-radius:9px;background:white;}
.priority-results{margin-top:14px;}
.priority-card{border-top:4px solid var(--orange);padding:26px 28px;}
.priority-card h3{font-size:24px;margin-bottom:16px;}
.priority-terms{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:20px;margin-top:6px;}
.priority-term{border-top:0;border:1px solid var(--border);border-radius:12px;padding:18px;background:#fbfcfe;}
.priority-term:first-of-type{padding-top:18px;}
.priority-term h4{margin:0 0 10px;color:var(--navy);font-size:17px;}
.priority-note{background:var(--light-orange);border:1px solid #f2cf94;color:#7a4a00;border-radius:9px;padding:12px 14px;font-size:14px;line-height:1.5;}
.priority-subhead{font-weight:800;margin:14px 0 8px;font-size:14.5px;}
.priority-list{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:8px;}
.priority-list li{line-height:1.4;font-size:14.5px;}
.priority-disclaimer{margin-top:20px;font-size:13px;color:var(--muted);border-top:1px solid var(--border);padding-top:14px;}
.priority-disclaimer a{color:var(--blue);font-weight:700;}
.priority-program-note{border-radius:10px;padding:14px 16px;margin:0 0 18px;line-height:1.45;font-size:15px;}
.priority-program-note.req-yes{background:var(--light-green);border:1px solid var(--green);color:#0f5f28;}
.priority-program-note.req-selection{background:var(--light-blue);border:1px solid var(--blue);color:#0746a8;}
.priority-program-note.req-none{background:var(--light-orange);border:1px solid #f2cf94;color:#7a4a00;}
.priority-link-btn{width:100%;margin-top:8px;}
.legend-chip{box-shadow:0 1px 3px rgba(16,24,40,.08);}
.tab.active{background:rgba(255,255,255,.16);}
.site-footer{background:linear-gradient(90deg,#001f49,var(--navy));}
.card h3{color:#0b2350;}
.details-card{border-top:4px solid var(--orange);}
.selected-card{border-left:5px solid var(--blue);}

.prereq-group .course-card{min-height:0;padding:9px 10px;}
.prereq-group.required{background:#f7fbff;border-color:#9bc4ff;}
.prereq-group.choice,.prereq-group.credit{background:#fff8e8;border-color:#f2a819;}
.prereq-text-item{display:grid;grid-template-columns:26px 1fr;gap:8px;align-items:start;padding:8px 10px;margin:6px 0;border:1px solid #d8e7ff;background:#ffffff;border-radius:8px;position:relative;z-index:2;}
.prereq-text-item .prereq-icon{font-weight:900;color:#0b5bd3;}
.detail-prereq-group.required{background:#f7fbff;border-color:#9bc4ff;}
.detail-prereq-group.choice,.detail-prereq-group.credit{background:#fff8e8;border-color:#f2a819;}
.detail-prereq-group ul{margin:8px 0 0 18px;padding:0;line-height:1.45;}


/* ===== Program Pathway mock redesign ===== */
.program-pathway-toolbar{
  display:flex;justify-content:space-between;align-items:center;gap:14px;
  flex-wrap:wrap;margin:0 0 18px;padding:14px 16px;
  background:#f8fbff;border:1px solid var(--border);border-radius:12px;
}
.program-pathway-toolbar .view-label{font-weight:900;color:var(--navy);}
.pathway-toggle{display:flex;gap:6px;flex-wrap:wrap;}
.pathway-toggle button{
  border:1px solid #bcd0ea;background:#fff;color:var(--navy);
  padding:9px 14px;border-radius:999px;font-weight:800;cursor:pointer;
}
.pathway-toggle button.active{
  background:var(--navy);color:#fff;border-color:var(--navy);
}
.program-pathway-summary{
  display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px;margin:0 0 12px;
}
.pathway-stat{
  background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px 16px;
  border-top:4px solid var(--blue);
}
.pathway-stat.required-stat{border-top-color:var(--green);}
.pathway-stat.options-stat{border-top-color:var(--blue);}
.pathway-stat strong{display:block;font-size:24px;color:var(--navy);margin-bottom:4px;}
.pathway-stat span{font-size:12px;color:var(--muted);font-weight:700;}
.program-total-credits{
  margin:4px 0 8px;color:var(--navy);font-size:22px;font-weight:900;
}
.program-approval-notice{
  margin:0 0 16px;padding:14px 16px;border:1px solid #e2b84b;
  border-left:5px solid #c58a00;border-radius:10px;background:#fff9e8;
  color:#5f4600;line-height:1.5;
}
.program-approval-notice strong{display:block;margin-bottom:3px;color:#493500;}
.program-credit-explanation{
  margin:0 0 18px;padding:12px 14px;border-radius:10px;
  background:#f5f8fc;border:1px solid var(--border);
  color:var(--muted);font-size:13px;line-height:1.5;
}
.program-credit-explanation strong{color:var(--navy);}

.program-pathway-grid{
  display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:14px;min-width:900px;
}
.pathway-level{
  background:#fbfcfe;border:1px solid var(--border);border-radius:14px;padding:14px;
}
.pathway-level > h3{
  text-align:left;margin:0 0 4px;color:var(--navy);font-size:19px;
}
.pathway-level .level-sub{
  color:var(--muted);font-size:12px;margin-bottom:12px;
}

.requirement-pathway-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start;
}
.requirement-section{
  background:#fbfcfe;border:1px solid var(--border);border-radius:14px;padding:16px;
}
.requirement-section h3{margin:0 0 5px;color:var(--navy);}
.requirement-section .section-help{font-size:12px;color:var(--muted);margin-bottom:14px;}
.requirement-section.required-section{border-top:5px solid var(--green);}
.requirement-section.selection-section{border-top:5px solid var(--blue);}
.requirement-section.other-section{border-top:5px solid var(--purple);grid-column:1/-1;}

.pathway-required-list{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;
}
.pathway-required-list .program-course{margin:0;}
.pathway-selection-list{display:flex;flex-direction:column;gap:12px;}
.pathway-selection-block{
  border:1.5px solid #bcd8ff;background:#f5f9ff;border-radius:12px;padding:12px;
}
.pathway-selection-title{
  font-weight:900;color:#0746a8;margin-bottom:10px;
}
.pathway-selection-courses{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;
}
.pathway-selection-courses .program-course{margin:0;}
.pathway-other-note{
  padding:12px;border:1px dashed #c9b5ef;background:#faf7ff;border-radius:10px;
  color:#563a91;line-height:1.4;
}

.pathway-level .program-block{margin-bottom:10px;}
.program-map.pathway-mode{overflow:auto;}

@media(max-width:1100px){
  .program-pathway-summary{grid-template-columns:1fr;}
  .requirement-pathway-grid{grid-template-columns:1fr;}
  .requirement-section.other-section{grid-column:auto;}
}


/* Program Pathway v12 */
#program.page.active-page{
  display:grid;
  grid-template-columns:300px minmax(0,1fr);
  gap:18px;
}
#program .program-pathway-controls{
  min-height:calc(100vh - 124px);
}
#program .center-panel{
  min-width:0;
}
.standalone-toggle{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  margin-bottom:4px;
}
.standalone-toggle button{
  width:100%;
}
.program-picker-groups{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.program-picker-groups .program-picker-col label{
  margin-bottom:6px;
}
.program-picker-groups .program-picker-select{
  width:100%;
}
#clearProgramSelection{
  width:100%;
  margin-top:4px;
}
#program .panel-toggle,
#program + .panel-toggle{
  display:none!important;
}
@media(max-width:1100px){
  #program.page.active-page{grid-template-columns:1fr;}
  #program .program-pathway-controls{min-height:auto;}
}


/* Compare Programs v13 - requirement-aware comparison */
.compare-shared-panel,
.compare-unique-panel{
  background:#fff;
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:0 2px 8px rgba(16,24,40,.04);
}
.compare-shared-panel{
  border-top:5px solid var(--green);
  margin-bottom:18px;
  padding:18px;
}
.compare-section-heading h3{
  margin:0 0 6px;
  font-size:22px;
  color:var(--navy);
}
.compare-section-heading p{
  margin:0 0 16px;
  color:var(--muted);
  font-size:14px;
}
.compare-shared-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(230px,1fr));
  gap:14px;
}
.compare-unique-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.compare-unique-panel{
  padding:18px;
}
.compare-unique-panel.program-a{border-top:5px solid var(--green);}
.compare-unique-panel.program-b{border-top:5px solid var(--blue);}
.compare-unique-inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.compare-subgroup{
  border:1px solid var(--border);
  border-radius:12px;
  padding:14px;
  background:#fbfcfe;
  min-width:0;
}
.compare-subgroup h4{
  margin:0 0 4px;
  font-size:16px;
  color:#0b2350;
}
.compare-subgroup-help{
  margin:0 0 10px;
  font-size:12.5px;
  color:var(--muted);
  line-height:1.35;
}
.compare-subgroup.required-both{background:#f3fbf5;border-color:#bfe6c9;}
.compare-subgroup.selection-both{background:#f5f9ff;border-color:#c7dcff;}
.compare-subgroup.mixed{background:#fff8e8;border-color:#f2c66d;}
.compare-subgroup.other{background:#faf7ff;border-color:#d8c7ff;}
.compare-unique-panel.program-a .compare-subgroup.required{background:#f3fbf5;border-color:#bfe6c9;}
.compare-unique-panel.program-a .compare-subgroup.selection{background:#f5f9ff;border-color:#c7dcff;}
.compare-unique-panel.program-b .compare-subgroup.required{background:#f5f9ff;border-color:#c7dcff;}
.compare-unique-panel.program-b .compare-subgroup.selection{background:#faf7ff;border-color:#d8c7ff;}
.compare-subgroup .compare-course{
  margin:8px 0;
}
@media(max-width:1250px){
  .compare-shared-grid{grid-template-columns:repeat(2,minmax(260px,1fr));}
}
@media(max-width:900px){
  .compare-shared-grid,
  .compare-unique-grid,
  .compare-unique-inner{grid-template-columns:1fr;}
}


/* Compare Programs v13.1 - compact mixed-requirement labels */
.compare-program-key{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  margin:10px 0 4px;
  padding:10px 12px;
  background:#f7f9fc;
  border:1px solid var(--border);
  border-radius:10px;
  font-size:13px;
  color:var(--navy);
}
.compare-program-key span{
  min-width:0;
}
.compare-subgroup.mixed h4{
  margin-bottom:3px;
}
.compare-subgroup.mixed .compare-subgroup-help{
  font-weight:700;
  color:#6b5a2b;
}


/* Compare Programs v14 - student-focused program-by-program view */
.compare-programs-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.compare-program-panel{
  background:#fff;
  border:1px solid var(--border);
  border-radius:14px;
  padding:18px;
  box-shadow:0 2px 8px rgba(16,24,40,.04);
}
.compare-program-panel.program-a{border-top:5px solid var(--green);}
.compare-program-panel.program-b{border-top:5px solid var(--blue);}
.compare-program-panel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}
.compare-program-panel-head h3{
  margin:0;
  color:var(--navy);
  font-size:21px;
}
.compare-program-panel-head .ptype{
  float:none;
  flex:0 0 auto;
}
.compare-accordion{
  border:1px solid var(--border);
  border-radius:12px;
  background:#fbfcfe;
  margin:12px 0;
  overflow:hidden;
}
.compare-accordion summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:14px 16px;
  font-weight:900;
  color:#0b2350;
  background:#f8fbff;
}
.compare-accordion summary::-webkit-details-marker{display:none;}
.compare-accordion summary::after{
  content:'▾';
  font-size:14px;
  color:var(--blue);
  margin-left:6px;
}
.compare-accordion:not([open]) summary::after{content:'▸';}
.compare-accordion-count{
  margin-left:auto;
  min-width:28px;
  text-align:center;
  padding:2px 8px;
  border-radius:999px;
  background:#eaf3ff;
  color:#0b5bd3;
  font-size:12px;
}
.compare-accordion-body{
  padding:12px 14px 14px;
  border-top:1px solid var(--border);
}
.compare-course-main{min-width:0;}
.compare-status-badge{
  display:inline-block;
  margin-top:8px;
  padding:4px 8px;
  border-radius:999px;
  background:#eef4ff;
  color:#244a7c;
  font-size:11px;
  font-weight:800;
  line-height:1.2;
}
.compare-program-panel.program-a .compare-accordion[open] summary{border-left:4px solid var(--green);}
.compare-program-panel.program-b .compare-accordion[open] summary{border-left:4px solid var(--blue);}
@media(max-width:900px){
  .compare-programs-grid{grid-template-columns:1fr;}
}


/* Compare Programs v14.1 - clearer shared-status colours */
.compare-course.status-required-both .compare-status-badge{
  background:#fff1f1;
  border:1px solid #ef4444;
  color:#c62828;
}
.compare-course.status-shared .compare-status-badge{
  background:#fff8df;
  border:1px solid #e8ad2f;
  color:#8a5a00;
}
.compare-course.status-unique .compare-status-badge{
  background:#eef9f0;
  border:1px solid #62b878;
  color:#176b32;
}


/* Compare Programs v14.2 - clickable summary cards */
.compare-summary-clickable .summary-card{
  width:100%;
  appearance:none;
  text-align:center;
  cursor:pointer;
  font:inherit;
}
.clickable-summary{
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.clickable-summary:hover,
.clickable-summary:focus{
  transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(16,24,40,.10);
  outline:none;
}
.clickable-summary span{
  display:block;
  font-weight:800;
  color:var(--navy);
}
.clickable-summary small{
  display:block;
  margin-top:8px;
  color:var(--blue);
  font-weight:800;
}
.summary-required{
  border-top:4px solid #ef4444!important;
  background:#fff7f7!important;
}
.summary-required strong{color:#c62828;}
.summary-different{
  border-top:4px solid #e8ad2f!important;
  background:#fffaf0!important;
}
.summary-different strong{color:#8a5a00;}

.compare-summary-table-wrap{
  overflow:auto;
  margin-top:14px;
}
.compare-summary-table{
  width:100%;
  border-collapse:collapse;
  min-width:760px;
}
.compare-summary-table th,
.compare-summary-table td{
  border-bottom:1px solid var(--border);
  padding:10px 12px;
  text-align:left;
  vertical-align:top;
}
.compare-summary-table th{
  background:#f8fbff;
  color:var(--navy);
  font-size:13px;
}
.compare-table-course{
  border:0;
  background:none;
  color:var(--blue);
  padding:0;
  cursor:pointer;
  font-weight:900;
  text-decoration:underline;
}
.compare-summary-table .compare-status-badge{
  white-space:nowrap;
}
.compare-summary-table .status-required-both{
  background:#fff1f1;
  border:1px solid #ef4444;
  color:#c62828;
}
.compare-summary-table .status-shared{
  background:#fff8df;
  border:1px solid #e8ad2f;
  color:#8a5a00;
}
.compare-summary-table .status-unique{
  background:#eef9f0;
  border:1px solid #62b878;
  color:#176b32;
}


/* v14.3 - certificate selector moved to the bottom */
.program-picker-col:has(#pick-Certificate){
  margin-top:8px;
  padding-top:12px;
  border-top:1px solid var(--border);
}
.program-picker-col:has(#pick-Certificate) label{
  color:var(--muted);
}


/* ===== v15: Optional Program 3 + 12 distinct-credit planning checker ===== */
.compare-actions{
  display:flex;
  align-items:stretch;
  gap:14px;
  margin:0 0 18px;
}
#addCompareC{
  flex:0 0 auto;
  min-width:170px;
}
.credit-check-entry{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:14px 16px;
  border:1px solid #bcd8ff;
  border-left:5px solid var(--blue);
  border-radius:12px;
  background:#f8fbff;
}
.credit-check-entry strong{
  display:block;
  color:var(--navy);
  margin-bottom:4px;
}
.credit-check-entry span{
  display:block;
  color:var(--muted);
  font-size:13px;
}
.credit-check-entry .primary-btn{
  white-space:nowrap;
}
.compare-third-heading{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.compare-remove-third{
  border:0;
  background:transparent;
  color:#b42318;
  font-weight:800;
  cursor:pointer;
  font-size:12px;
}
.compare-selectors:has(#compareCCol:not(.hidden)){
  grid-template-columns:repeat(3,minmax(260px,1fr));
}
.compare-selectors:has(#compareCCol:not(.hidden)) .compare-select-col:nth-child(3){
  border-top:4px solid var(--orange);
}
.compare-programs-grid.three-programs{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.compare-program-panel.program-c{
  border-top:5px solid var(--orange);
}
.compare-program-panel.program-c .compare-accordion[open] summary{
  border-left:4px solid var(--orange);
}

/* Distinct-credit modal */
.credit-checker h2{color:var(--navy);margin-bottom:8px;}
.credit-check-intro{font-size:15px;line-height:1.5;color:#334155;}
.credit-rule-note{
  margin:14px 0;
  padding:12px 14px;
  border:1px solid #b9e7c5;
  border-left:5px solid var(--green);
  border-radius:10px;
  background:#f3fbf5;
  color:#225d31;
  line-height:1.45;
}
.credit-rule-note.caution{
  border-color:#f2cf94;
  border-left-color:var(--orange);
  background:#fff8e7;
  color:#7a4a00;
}
.credit-program-groups{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin:14px 0;
}
.credit-program-group{
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
  background:#fff;
}
.credit-program-group summary{
  cursor:pointer;
  padding:13px 15px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  font-weight:900;
  color:var(--navy);
  background:#f8fbff;
}
.credit-program-body{
  padding:14px;
  border-top:1px solid var(--border);
}
.credit-program-body h4{
  margin:8px 0 4px;
  color:#0b2350;
}
.credit-choice-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin:8px 0 16px;
}
.credit-course-choice{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:8px;
  align-items:start;
  padding:9px 10px;
  border:1px solid var(--border);
  border-radius:9px;
  background:#fff;
}
.credit-course-choice.required-choice{
  background:#f7fbff;
  border-color:#bcd8ff;
}
.credit-course-choice.optional-choice:hover{
  border-color:var(--blue);
}
.credit-course-text{
  font-size:12.5px;
  line-height:1.3;
}
.credit-course-text strong{
  color:var(--navy);
}
.credit-value{
  font-size:12px;
  font-weight:900;
  color:var(--muted);
}
.distinct-credit-result{
  margin:16px 0;
  padding:16px;
  border-radius:12px;
  border:1px solid var(--border);
  background:#f8fafc;
}
.distinct-credit-result.credit-result-good{
  background:#f3fbf5;
  border-color:#62b878;
}
.distinct-credit-result.credit-result-warning{
  background:#fff7f7;
  border-color:#ef4444;
}
.distinct-total{
  display:flex;
  align-items:baseline;
  gap:10px;
  margin-bottom:12px;
}
.distinct-total strong{
  font-size:34px;
  color:var(--navy);
}
.distinct-total span{
  font-weight:800;
  color:var(--muted);
}
.credit-result-row{
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding:7px 0;
  border-top:1px solid rgba(100,116,139,.18);
  font-size:13px;
}
.credit-result-row strong{
  text-align:right;
}
.credit-check-disclaimer{
  margin-top:16px;
  padding:12px 14px;
  border-radius:10px;
  background:#f8fafc;
  border:1px solid var(--border);
  color:var(--muted);
  font-size:12.5px;
  line-height:1.5;
}
@media(max-width:1100px){
  .compare-selectors:has(#compareCCol:not(.hidden)),
  .compare-programs-grid.three-programs{
    grid-template-columns:1fr;
  }
}
@media(max-width:760px){
  .compare-actions,
  .credit-check-entry{
    flex-direction:column;
    align-items:stretch;
  }
  #addCompareC{width:100%;}
  .credit-choice-list{grid-template-columns:1fr;}
  .credit-result-row{flex-direction:column;gap:4px;}
  .credit-result-row strong{text-align:left;}
}

/* ===== v15.1: full-page Check My Credits ===== */
#credits.page.active-page{display:block}#credits .credits-panel{width:100%;max-width:1600px;margin:0 auto;min-height:calc(100vh - 124px);padding:28px;border-top:6px solid var(--green)}.credits-page-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.credits-page-heading h2{font-size:30px;color:var(--navy);margin:0 0 8px}.credits-lead{margin:0;max-width:900px;color:var(--muted);font-size:16px;line-height:1.55}.credits-worksheet-link{flex:0 0 auto;margin:0;background:#fff}.credits-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}.credits-info-card{min-height:145px;padding:18px;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:0 2px 8px rgba(16,24,40,.04)}.credits-info-card strong{display:block;color:var(--navy);font-size:17px;margin-bottom:8px}.credits-info-card p{margin:0;color:#475569;line-height:1.5;font-size:14px}.credits-info-card.rule-card{border-top:5px solid #ef4444;background:#fffafa}.credits-info-card.combo-card{border-top:5px solid #e8ad2f;background:#fffdf7}.credits-info-card.how-card{border-top:5px solid var(--blue);background:#f8fbff}.credits-how-details{margin-bottom:18px;border:1px solid var(--border);border-radius:12px;background:#f8fafc;overflow:hidden}.credits-how-details summary{cursor:pointer;padding:13px 16px;font-weight:900;color:var(--navy)}.credits-how-details>div{border-top:1px solid var(--border);padding:12px 16px;color:#475569;font-size:14px;line-height:1.55}.credits-how-details p{margin:6px 0}.credits-selection{margin-bottom:14px;border-top:4px solid var(--purple)}.credits-selection-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.credits-selection-heading h3{margin:0 0 4px}.credits-selection-heading p{margin:0}.credits-program-selectors{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:14px}.credits-program-selector label{display:block;font-weight:900;color:var(--navy);margin-bottom:6px}.credits-program-selector select{width:100%;min-height:50px;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;font-size:14px}.credits-top-result{position:sticky;top:98px;z-index:8;display:flex;align-items:center;gap:18px;padding:16px 20px;margin:0 0 18px;border:2px solid #bcd8ff;border-left:8px solid var(--blue);border-radius:14px;background:#f8fbff;box-shadow:0 5px 16px rgba(16,24,40,.10)}.credits-result-number{min-width:95px;font-size:44px;line-height:1;font-weight:900;color:var(--navy);text-align:center}.credits-result-copy{min-width:0;flex:1}.credits-result-copy>strong{display:block;color:var(--navy);font-size:17px;margin-bottom:4px}.credits-result-copy>span{display:block;color:#475569;line-height:1.4}.credits-mini-results{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:9px;font-size:12px;color:#52627a}.credits-top-result.credits-result-good{background:#f2fbf4;border-color:#62b878;border-left-color:var(--green)}.credits-top-result.credits-result-warning{background:#fff7f7;border-color:#ef4444;border-left-color:#ef4444}.credits-combination-note{margin:0 0 14px;padding:13px 15px;border:1px solid #b9e7c5;border-left:5px solid var(--green);border-radius:11px;background:#f3fbf5;color:#225d31;line-height:1.5}.credits-combination-note.caution{background:#fff8e7;border-color:#f2cf94;border-left-color:var(--orange);color:#7a4a00}.credits-program-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.credits-program-columns.three-programs{grid-template-columns:repeat(3,minmax(0,1fr))}.credits-program-card{border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:0 2px 8px rgba(16,24,40,.04);padding:16px}.credit-program-one{border-top:5px solid var(--green)}.credit-program-two{border-top:5px solid var(--blue)}.credit-program-three{border-top:5px solid var(--orange)}.credits-program-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:12px;margin-bottom:10px;border-bottom:1px solid var(--border)}.credits-program-card-head h3{margin:0 0 7px;color:var(--navy);font-size:20px}.credits-program-card-head .ptype{float:none}.credits-program-card-head>strong{flex:0 0 auto;color:var(--navy);font-size:14px}.credits-course-section{margin:10px 0;border:1px solid var(--border);border-radius:11px;overflow:hidden;background:#fbfcfe}.credits-course-section summary{display:flex;justify-content:space-between;gap:12px;cursor:pointer;padding:12px 14px;font-weight:900;color:var(--navy);background:#f8fbff}.credits-course-section summary span:last-child{min-width:28px;text-align:center;padding:2px 8px;border-radius:999px;background:#eaf3ff;color:var(--blue);font-size:12px}.credits-course-section-body{padding:12px;border-top:1px solid var(--border)}.credits-course-section-body>p{margin:0 0 9px}.credit-page-course-list{display:flex;flex-direction:column;gap:8px}.credit-course-choice-full{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:start;padding:10px 11px;border:1px solid var(--border);border-radius:9px;background:#fff;cursor:pointer}.credit-course-choice-full.required-choice{cursor:default}.credit-status-required{border-left:5px solid #ef4444;background:#fff8f8}.credit-status-shared{border-left:5px solid #e8ad2f;background:#fffdf5}.credit-status-unique{border-left:5px solid #62b878;background:#f8fdf9}.credit-course-content{min-width:0}.credit-course-title{display:block;line-height:1.3;font-size:13px}.credit-course-title strong{color:var(--navy)}.credit-course-status{display:inline-block;margin-top:5px;font-size:10.5px;font-weight:800;color:#52627a}.credit-status-required .credit-course-status{color:#b42318}.credit-status-shared .credit-course-status{color:#8a5a00}.credit-status-unique .credit-course-status{color:#176b32}.credits-footer-note{margin-top:20px;padding:13px 15px;background:#f8fafc;border:1px solid var(--border);border-radius:10px;color:var(--muted);font-size:12.5px;line-height:1.55}@media(max-width:1200px){.credits-program-columns.three-programs{grid-template-columns:1fr}}@media(max-width:1000px){.credits-info-grid,.credits-program-selectors,.credits-program-columns{grid-template-columns:1fr}.credits-top-result{position:static}}@media(max-width:760px){#credits .credits-panel{padding:16px}.credits-page-heading,.credits-selection-heading,.credits-top-result{flex-direction:column;align-items:stretch}.credits-result-number{text-align:left}.credits-worksheet-link{width:100%}}


/* ===== v15.2: clearly separate course counts from credit totals ===== */
.credits-course-section summary .credits-section-metrics{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.credits-course-section summary .credits-section-metrics > span{
  min-width:0;
  text-align:center;
  padding:3px 9px;
  border-radius:999px;
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}
.credits-course-section summary .credits-section-metrics > span:first-child{
  background:#eaf3ff;
  color:var(--blue);
}
.credits-course-section summary .credits-section-metrics > span:last-child{
  background:#eef9f0;
  color:#176b32;
}
.credits-course-section summary > .credits-section-metrics{
  background:transparent;
  padding:0;
}
@media(max-width:760px){
  .credits-course-section summary{align-items:flex-start;}
  .credits-course-section summary .credits-section-metrics{justify-content:flex-start;}
}


/* ===== v15.3 structured requirement groups ===== */
.structured-group .pathway-selection-title{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
}
.requirement-credit-target{
  flex:0 0 auto;
  padding:3px 8px;
  border-radius:999px;
  background:#fff;
  border:1px solid #bcd8ff;
  color:#0746a8;
  font-size:11px;
  white-space:nowrap;
}
.open-selection-group{border-color:#14b8a6;background:#f2fffe;}
.open-selection-rule{
  margin:-2px 0 10px;
  color:#0f766e;
  font-size:12px;
  font-weight:700;
}
.open-selection-options summary{
  cursor:pointer;
  color:#0b5bd3;
  font-weight:800;
  margin-bottom:9px;
}
.conditional-section{
  border-top:5px solid #f59e0b;
  grid-column:1/-1;
}
.conditional-group{
  background:#fff9e8;
  border-color:#f2cf94;
}
.conditional-rule-text{
  margin:-2px 0 10px;
  padding:8px 10px;
  border-radius:8px;
  background:#fff;
  color:#7a4a00;
  font-size:12px;
  font-weight:800;
}
.recommended-section{
  border-top:5px solid var(--purple);
  grid-column:1/-1;
}
.recommended-course-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:9px;
}
.recommended-course-card{
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:11px 12px;
  border:1px solid #d8c7ff;
  border-radius:10px;
  background:#faf7ff;
}
.recommended-course-card strong{color:#563a91;}
.recommended-course-card span{font-size:13px;}
.recommended-course-card small{color:#7d55c7;font-weight:800;}
.special-program-requirements{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:16px;
}
.special-program-requirements .recommended-section{grid-column:1/-1;}

.credit-requirement-list{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.credit-requirement-group{
  border:1px solid #bcd8ff;
  border-radius:11px;
  background:#f8fbff;
  padding:12px;
}
.credit-requirement-group.open{
  border-color:#76d5cd;
  background:#f2fffe;
}
.credit-requirement-group.conditional{
  border-color:#f2cf94;
  background:#fff9e8;
}
.credit-requirement-group.conditional.not-triggered{
  opacity:.72;
}
.credit-requirement-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  margin-bottom:10px;
}
.credit-requirement-head strong{
  display:block;
  color:var(--navy);
  margin-bottom:3px;
}
.credit-requirement-head span{
  display:block;
  color:var(--muted);
  font-size:11.5px;
  line-height:1.35;
}
.credit-group-progress{
  flex:0 0 auto;
  padding:5px 9px;
  border-radius:999px;
  background:#fff;
  border:1px solid #bcd8ff;
  color:#0b5bd3;
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}
.credit-group-progress.met{
  border-color:#62b878;
  background:#edf8ef;
  color:#176b32;
}
.credit-open-options summary{
  cursor:pointer;
  color:#0b5bd3;
  font-weight:800;
  margin-bottom:10px;
}
.conditional-disabled{
  cursor:not-allowed;
  opacity:.65;
}
.recommended-credit-section summary{
  background:#faf7ff;
}
@media(max-width:900px){
  .special-program-requirements{grid-template-columns:1fr;}
  .credit-requirement-head{flex-direction:column;}
}


/* ===== v15.4: open selections in Compare Programs + clearer eligible course lists ===== */
.open-selection-title{
  display:block!important;
}
.open-selection-title > span{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.open-option-label,
.compare-open-option{
  display:inline-block;
  padding:3px 8px;
  margin-right:7px;
  border-radius:999px;
  background:#eaf3ff;
  color:#0b5bd3;
  font-size:11px;
  font-weight:900;
}
.open-selection-rule{
  font-size:13px;
  color:#0f766e;
  margin:2px 0 10px;
}
.eligible-level-list{
  display:flex;
  flex-direction:column;
  gap:9px;
  margin-top:8px;
}
.eligible-level-group{
  border:1px solid #cfe2f3;
  border-radius:10px;
  background:#fff;
  overflow:hidden;
}
.eligible-level-group > summary{
  cursor:pointer;
  padding:10px 12px;
  color:#0b5bd3;
  font-weight:900;
  background:#f8fbff;
}
.eligible-level-group .pathway-selection-courses{
  padding:10px;
  border-top:1px solid #e5edf6;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:8px;
}
.compare-open-accordion summary{
  background:#f2fffe;
}
.compare-open-requirement{
  border:1px solid #76d5cd;
  border-radius:11px;
  background:#f7fffe;
  padding:12px;
  margin:10px 0;
}
.compare-open-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}
.compare-open-head strong{
  display:block;
  color:#0b2350;
  font-size:15px;
  margin:4px 0;
}
.compare-open-head span:not(.compare-open-count):not(.compare-open-option){
  display:block;
  color:#0f766e;
  font-size:12.5px;
}
.compare-open-count{
  flex:0 0 auto;
  padding:4px 8px;
  border-radius:999px;
  background:#fff;
  border:1px solid #76d5cd;
  color:#0f766e;
  font-size:11px;
  font-weight:900;
}
.compare-open-details{
  margin-top:9px;
}
.compare-open-details > summary{
  cursor:pointer;
  color:#0b5bd3;
  font-weight:900;
  font-size:13px;
}
.compare-open-details .compare-course{
  margin:0;
}
.credit-open-levels .eligible-level-group .pathway-selection-courses{
  display:flex;
  flex-direction:column;
}
.credits-mini-results{
  font-size:14px;
  font-weight:700;
}
.credits-mini-results span{
  padding:4px 7px;
  border-radius:7px;
  background:rgba(255,255,255,.65);
}
@media(max-width:760px){
  .compare-open-head{flex-direction:column;}
}


/* ===== v15.5: explicit program-combination restrictions ===== */
#programWarning.combination-blocked-warning{
  background:#fff3f3;
  border-color:#ef4444;
  color:#8f1d1d;
  border-left:6px solid #dc2626;
}
.program-combination-blocked{
  display:flex;
  flex-direction:column;
  gap:7px;
  padding:2px 0;
}
.program-combination-blocked > strong{
  color:#b42318;
  font-size:18px;
}
.program-combination-blocked > span{
  color:#7f1d1d;
  font-size:15px;
  font-weight:800;
  line-height:1.45;
}
.program-combination-blocked > small{
  color:#7a3030;
  font-size:12.5px;
  line-height:1.45;
}
#creditsProgramWorkspace > .program-combination-blocked{
  margin:0 0 16px;
  padding:16px 18px;
  border:2px solid #ef4444;
  border-left:7px solid #dc2626;
  border-radius:12px;
  background:#fff3f3;
}
.credits-mini-results{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:8px 12px;
  margin-top:12px;
}
.credits-program-progress{
  padding:8px 10px;
  border-radius:9px;
  background:rgba(255,255,255,.75);
  border:1px solid rgba(148,163,184,.28);
}
.credits-program-progress-name{
  display:block!important;
  color:#0b2350!important;
  font-size:15px!important;
  font-weight:900!important;
  line-height:1.3!important;
  margin-bottom:3px;
}
.credits-program-progress > strong{
  display:block;
  color:#334155;
  font-size:14px;
}


/* ===== v15.6: printable My Program Plan report ===== */
.credits-report-actions{
  display:flex;
  justify-content:flex-end;
  margin:18px 0 8px;
}
.credits-report-actions .primary-btn{
  min-width:220px;
  font-size:15px;
  padding:12px 18px;
}

#report.page.active-page{display:block;}
#report .report-panel{
  width:100%;
  max-width:1400px;
  margin:0 auto;
  padding:28px;
  min-height:calc(100vh - 124px);
  border-top:6px solid var(--purple);
}
.report-toolbar{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-bottom:18px;
}
.program-plan-report{
  background:#fff;
  border:1px solid var(--border);
  border-radius:14px;
  padding:28px;
  box-shadow:0 2px 8px rgba(16,24,40,.04);
}
.report-header{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-start;
  padding-bottom:18px;
  margin-bottom:18px;
  border-bottom:3px solid var(--navy);
}
.report-kicker{
  color:var(--blue);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.report-header h1{
  margin:3px 0 5px;
  color:var(--navy);
  font-size:32px;
}
.report-header p{
  margin:0;
  color:var(--muted);
  font-weight:700;
}
.report-date{
  color:var(--muted);
  font-size:12px;
  white-space:nowrap;
}
.report-alert{
  padding:14px 16px;
  border-radius:10px;
  margin:0 0 18px;
  display:flex;
  flex-direction:column;
  gap:5px;
}
.report-alert.blocked{
  border:2px solid #ef4444;
  background:#fff4f4;
  color:#8f1d1d;
}
.report-summary-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-bottom:22px;
}
.report-summary-card{
  border:1px solid var(--border);
  border-top:5px solid var(--blue);
  border-radius:12px;
  padding:16px;
  text-align:center;
  background:#f8fbff;
}
.report-summary-card.good{border-top-color:var(--green);background:#f3fbf5;}
.report-summary-card.warning{border-top-color:#ef4444;background:#fff7f7;}
.report-summary-card.blocked{border-top-color:#dc2626;background:#fff3f3;}
.report-summary-card strong{
  display:block;
  font-size:30px;
  color:var(--navy);
  margin-bottom:5px;
}
.report-summary-card span{
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}
.report-section{
  margin-top:24px;
}
.report-section h2{
  color:var(--navy);
  font-size:21px;
  margin-bottom:12px;
}
.report-program-overview{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:12px;
}
.report-program-overview-card{
  border:1px solid var(--border);
  border-left:5px solid var(--blue);
  border-radius:10px;
  padding:13px 14px;
  background:#fbfcfe;
}
.report-program-overview-card strong{
  display:block;
  color:var(--navy);
  font-size:15px;
  margin-bottom:4px;
}
.report-program-overview-card span{
  display:block;
  color:var(--muted);
  font-size:12px;
  margin-bottom:7px;
}
.report-program-overview-card div{
  font-weight:900;
  color:#334155;
}
.report-subhead{
  margin:16px 0 8px;
  font-weight:900;
  color:#0b2350;
}
.report-option-group{
  margin:14px 0 18px;
}
.report-option-group > strong{
  display:block;
  color:#0f766e;
  margin-bottom:7px;
}
.report-table-wrap{
  overflow-x:auto;
}
.report-course-table{
  width:100%;
  border-collapse:collapse;
  min-width:680px;
}
.report-course-table th,
.report-course-table td{
  padding:9px 10px;
  border-bottom:1px solid #e5eaf0;
  text-align:left;
  vertical-align:top;
  font-size:12.5px;
}
.report-course-table th{
  background:#f8fbff;
  color:var(--navy);
}
.report-shared-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:9px;
}
.report-shared-list > div{
  border:1px solid #f2cf94;
  border-left:5px solid #e8ad2f;
  border-radius:9px;
  padding:10px;
  background:#fffdf6;
}
.report-shared-list strong{
  display:block;
  color:var(--navy);
  margin-bottom:3px;
}
.report-shared-list span{
  font-size:12px;
  color:#475569;
}
.report-disclaimer{
  margin-top:26px;
  padding:13px 15px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#f8fafc;
  color:var(--muted);
  font-size:12px;
  line-height:1.55;
}

@media(max-width:760px){
  .report-toolbar,
  .report-header{
    flex-direction:column;
  }
  .report-summary-grid{grid-template-columns:1fr;}
  .program-plan-report{padding:18px;}
}

@media print{
  body{background:#fff!important;}
  .topbar,
  .site-footer,
  .panel-toggle,
  .no-print{
    display:none!important;
  }
  main{padding:0!important;}
  #report.page{
    display:block!important;
  }
  #report .report-panel{
    padding:0!important;
    max-width:none!important;
    min-height:0!important;
    border:0!important;
    box-shadow:none!important;
  }
  .program-plan-report{
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    padding:0!important;
  }
  .report-course-table{
    min-width:0!important;
    page-break-inside:auto;
  }
  .report-section,
  .report-program-section,
  .report-option-group{
    break-inside:avoid;
    page-break-inside:avoid;
  }
  a{color:inherit!important;text-decoration:none!important;}
}


/* ===== v15.7: Program Pathway selection requirement cleanup ===== */
.selection-title-clean{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  font-size:16px;
  line-height:1.3;
}
.selection-title-clean > span:first-child{
  min-width:0;
  overflow-wrap:anywhere;
}
.selection-requirement-detail{
  margin:-2px 0 10px;
  padding:8px 10px;
  border-radius:8px;
  background:#ffffff;
  border:1px solid #d8e7ff;
  color:#334155;
  font-size:12.5px;
  font-weight:700;
  line-height:1.4;
}
/* Keep the credit badge available only for groups where it adds new information. */
.selection-title-clean .requirement-credit-target{
  flex:0 0 auto;
}
@media(max-width:1300px){
  .selection-title-clean{
    flex-direction:column;
  }
}


/* ===== v15.8: open-selection eligible-course reliability ===== */
.credit-open-options[open] > summary,
.open-selection-options[open] > summary,
.compare-open-details[open] > summary{
  margin-bottom:8px;
}


/* ===== v15.9: Environmental Science C/D-level open-choice correction ===== */
.credit-requirement-group.open .credit-requirement-head > div > span{
  font-weight:700;
}


/* ===== v15.10: unavailable courses excluded from generated open-choice lists ===== */
