.impact-zone { --impact-ink: #18313d; --impact-blue: #1e6091; --impact-line: #dce3e6; --impact-muted: #566570; --impact-paper: #f4f7f8; --impact-warm: #946013; color: var(--impact-ink); }
.impact-zone [hidden] { display: none !important; }
.impact-zone button, .impact-zone input, .impact-zone select { font: inherit; }
.impact-zone button, .impact-zone select { cursor: pointer; }
.impact-zone button, .impact-zone select, .impact-zone input { min-height: 44px; }
.impact-zone button:focus-visible, .impact-zone a:focus-visible, .impact-zone input:focus-visible, .impact-zone select:focus-visible { outline: 3px solid #b87d0d; outline-offset: 3px; }
.impact-zone button:disabled { cursor: default; opacity: .5; }
.impact-intro { display: flex; justify-content: space-between; align-items: end; gap: 24px; padding: 28px 0 30px; }
.impact-kicker { color: #aa1732; font-size: 12px; font-weight: 700; letter-spacing: .08em; }
.impact-intro h1 { margin: 8px 0 10px; font-size: clamp(26px, 3.2vw, 38px); font-weight: 800; letter-spacing: -.04em; line-height: 1.3; }
.impact-intro p { margin: 0; color: var(--impact-muted); font-size: 15px; }
.impact-year { flex-shrink: 0; }
.impact-year label { display: block; margin-bottom: 6px; color: var(--impact-muted); font-size: 12px; }
.impact-year > div { display: flex; gap: 6px; }
.impact-year select, .impact-year button { border: 1px solid var(--impact-line); border-radius: 5px; background: white; padding: 8px 12px; color: var(--impact-ink); }
.impact-workbench { display: grid; grid-template-columns: 1fr 1.16fr; border: 1px solid var(--impact-line); border-top: 3px solid var(--impact-ink); background: white; }
.impact-picker, .impact-outcome { padding: 26px; min-width: 0; }
.impact-outcome { border-left: 1px solid var(--impact-line); background: var(--impact-paper); }
.impact-section-label { display: flex; gap: 10px; align-items: center; }
.impact-section-label > span { font-size: 12px; font-weight: 700; color: #8a4b18; }
.impact-section-label h2 { margin: 0; font-size: 18px; }
.impact-hint { font-size: 12px; color: var(--impact-muted); line-height: 1.7; margin: 10px 0 16px; }
.impact-picker fieldset { margin: 18px 0; border: 0; padding: 0; }
.impact-mobile-live { display: none; }
.impact-picker legend { padding: 0; font-size: 14px; font-weight: 600; margin-bottom: 8px; }
.impact-picker legend small { color: var(--impact-muted); font-size: 12px; font-weight: 400; margin-left: 7px; }
.impact-choices { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.impact-primary-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.impact-choices button { border: 1px solid #cbd5db; background: white; color: var(--impact-ink); border-radius: 6px; min-height: 76px; padding: 12px 4px; transition: background .15s, border-color .15s; }
.impact-choices button > span { font-size: 18px; font-weight: 700; display: block; }
.impact-choices small { display: block; font-size: 11px; margin-top: 4px; }
.impact-choices button:hover { border-color: var(--impact-blue); background: #edf5fa; }
.impact-choices button[aria-pressed="true"] { color: white; background: var(--impact-blue); border-color: var(--impact-blue); }
.impact-choices button[aria-pressed="true"] > span::after { content: ' ✓'; font-size: 12px; }
.impact-picker-bottom { margin-top: 20px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; font-size: 12px; }
.impact-picker-bottom a { padding-block: 10px; }
.impact-text-button { background: transparent; border: 0; color: var(--impact-muted); padding: 8px 0; text-decoration: underline; }
.impact-replace { border-left: 3px solid #a56a1b; padding: 12px 14px; background: #fff7e9; margin: 12px 0; }
.impact-replace p { margin: 0 0 10px; font-size: 14px; font-weight: 600; }
.impact-replace button { display: block; width: 100%; margin: 6px 0; background: white; border: 1px solid #d9c9aa; border-radius: 4px; text-align: left; padding: 9px 12px; color: var(--impact-ink); }
.impact-replace button small { display: block; font-size: 12px; color: var(--impact-muted); }
.impact-current { font-size: clamp(20px, 2.3vw, 26px); font-weight: 700; margin: 24px 0 4px; line-height: 1.5; }
.impact-range { display: block; width: 100%; height: 14px; margin: 20px 0; }
.impact-bar-certain { fill: #1e6091; }
.impact-bar-conditional { fill: #cfaa56; }
.impact-bar-blocked { fill: #cfd8dd; }
.impact-range rect { transition: x .2s, width .2s; }
.impact-states { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.impact-stat { padding: 4px 0 8px; border: 0; background: transparent; text-align: left; color: var(--impact-ink); }
.impact-stat span { font-size: 12px; display: block; }
.impact-stat strong { display: block; font-size: clamp(24px, 2.6vw, 33px); font-weight: 750; font-variant-numeric: tabular-nums; margin: 6px 0; line-height: 1.3; }
.impact-stat small { font-size: 10px; color: var(--impact-muted); }
.impact-stat-certain strong { color: var(--impact-blue); }
.impact-stat-conditional strong { color: #946013; }
.impact-stat-blocked strong { color: #566570; }
.impact-stat:hover span { text-decoration: underline; }
.impact-status { margin: 18px 0 10px; font-size: 13px; line-height: 1.7; }
.impact-scope-note { font-size: 12px; color: var(--impact-muted); line-height: 1.8; margin: 0; }
.impact-comparison { padding: 20px 24px; background: #fff; border: 1px solid var(--impact-line); border-top: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; }
.impact-baseline { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12px; }
.impact-baseline select { max-width: 100%; border: 1px solid var(--impact-line); background: #fff; border-radius: 4px; color: var(--impact-ink); padding: 8px; }
.impact-baseline button { border: 0; background: transparent; color: var(--impact-blue); padding: 6px; }
.impact-differences { display: flex; flex-wrap: wrap; gap: 20px; }
.impact-differences button { color: var(--impact-ink); display: flex; align-items: baseline; gap: 5px; background: transparent; border: 0; padding: 8px 0; font-size: 12px; }
.impact-differences strong { font-size: 21px; font-variant-numeric: tabular-nums; }
.impact-differences [data-state="gained"] { color: #24644c; }
.impact-differences [data-state="lost"] { color: #a32d40; }
.impact-comparison > p { margin: 0; }
.impact-explorer { margin-top: 36px; }
.impact-explorer-heading { display: flex; justify-content: space-between; align-items: end; gap: 16px; margin-bottom: 20px; }
.impact-explorer-heading h2 { margin: 6px 0 0; font-size: 23px; }
.impact-total-note { font-size: 12px; color: var(--impact-muted); }
.impact-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--impact-line); }
.impact-mode { display: flex; flex-shrink: 0; }
.impact-mode button { border: 1px solid #cbd5db; background: #fff; padding: 10px 18px; color: var(--impact-ink); }
.impact-mode button + button { border-left: 0; }
.impact-mode button:first-child { border-radius: 5px 0 0 5px; }
.impact-mode button:last-child { border-radius: 0 5px 5px 0; }
.impact-mode [aria-pressed="true"] { background: var(--impact-ink); border-color: var(--impact-ink); color: #fff; }
#impact-search { display: flex; gap: 8px; flex: 0 1 440px; min-width: 0; }
#impact-search input { width: 100%; min-width: 0; border: 1px solid #cbd5db; background: white; border-radius: 4px; padding: 8px 12px; color: var(--impact-ink); font-size: 14px; }
#impact-search button { flex-shrink: 0; padding: 8px 16px; border: 0; border-radius: 4px; background: var(--impact-blue); color: white; }
.impact-filter-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 12px 0; font-size: 12px; }
.impact-filter-row select { color: var(--impact-ink); background: white; border: 1px solid var(--impact-line); padding: 6px 8px; border-radius: 4px; }
.impact-filter-row > span { margin-left: auto; color: var(--impact-muted); }
.impact-list-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 0; }
.impact-list-heading h3 { font-size: 18px; margin: 6px 0; overflow-wrap: anywhere; }
.impact-list-heading p, .impact-list-note { font-size: 12px; margin: 4px 0; color: var(--impact-muted); }
.impact-list-heading a { font-size: 13px; }
.impact-history-link { flex-shrink: 0; padding: 10px 0; }
.impact-group-list { background: white; margin-top: 12px; border-top: 1px solid var(--impact-line); }
.impact-group { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 16px; align-items: center; padding: 16px 12px; border-bottom: 1px solid var(--impact-line); color: var(--impact-ink); }
.impact-group:hover { background: #f0f6fa; text-decoration: none; }
.impact-group-name strong { font-size: 15px; overflow-wrap: anywhere; }
.impact-group-name small, .impact-group-count small { display: block; margin-top: 5px; color: var(--impact-muted); font-size: 12px; }
.impact-group-count { font-size: 13px; font-variant-numeric: tabular-nums; }
.impact-group-count b { font-size: 17px; color: var(--impact-blue); }
.impact-group-diff { text-align: right; font-size: 12px; display: grid; gap: 6px; }
.impact-group-diff > span:last-child { color: var(--impact-blue); }
.impact-detail { background: white; padding: 18px 20px; border-bottom: 1px solid var(--impact-line); border-left: 3px solid #cfd8dd; }
.impact-detail-certain { border-left-color: #1e6091; }
.impact-detail-conditional { border-left-color: #cfaa56; }
.impact-detail header { display: flex; justify-content: space-between; align-items: start; gap: 12px; }
.impact-detail header a { font-size: 16px; font-weight: 600; }
.impact-detail p { margin: 8px 0; font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; }
.impact-detail header p { color: var(--impact-muted); font-size: 12px; }
.impact-detail > small { color: var(--impact-muted); font-size: 11px; }
.impact-labels { display: flex; flex-wrap: wrap; justify-content: end; gap: 6px; font-size: 11px; flex-shrink: 0; max-width: 150px; }
.impact-state-label, .impact-change-label { background: var(--impact-paper); padding: 3px 6px; border-radius: 3px; }
.impact-requirement b { font-weight: 500; color: var(--impact-muted); margin-right: 5px; }
.impact-pagination { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 20px 0; font-size: 13px; }
.impact-pagination div { display: flex; gap: 12px; }
.impact-pagination a { padding: 10px 12px; border: 1px solid var(--impact-line); background: white; border-radius: 4px; }
.impact-empty { padding: 38px 20px; background: var(--impact-paper); text-align: center; }
.impact-empty h2, .impact-empty h3 { font-size: 18px; }
.impact-empty p { font-size: 14px; color: var(--impact-muted); }
.impact-source { border-top: 1px solid var(--impact-line); padding: 18px 0; margin-top: 24px; font-size: 13px; color: var(--impact-muted); }
.impact-source summary { cursor: pointer; min-height: 32px; color: var(--impact-ink); }
.impact-source p { line-height: 1.9; }
.impact-source a { display: inline-block; padding: 8px 0; margin-right: 20px; }
.impact-loading { padding: 50px 20px; text-align: center; color: var(--impact-muted); background: var(--impact-paper); }
.impact-error { padding: 24px; border-left: 3px solid #aa1732; background: #fff5f4; }
.impact-error button, .impact-error a { display: inline-block; padding: 8px 14px; border: 1px solid #d7afb0; background: white; border-radius: 4px; color: var(--impact-ink); }
@media (max-width: 950px) {
  .impact-workbench { grid-template-columns: 1fr; }
  .impact-outcome { border-left: 0; border-top: 1px solid var(--impact-line); }
  .impact-choices button { min-height: 68px; }
  .impact-current { margin-top: 18px; }
  .impact-comparison { display: block; }
  .impact-differences { margin-top: 12px; }
}
@media (max-width: 600px) {
  .impact-mobile-live { display: flex; flex-wrap: wrap; gap: 6px 12px; padding-block: 10px; border-block: 1px solid var(--impact-line); font-size: 11px; }
  .impact-mobile-live b { display: inline-block; font-size: 13px; font-variant-numeric: tabular-nums; color: var(--impact-blue); }
  .impact-intro { display: block; padding: 20px 0; }
  .impact-intro p { font-size: 14px; }
  .impact-year { margin-top: 16px; display: flex; gap: 12px; align-items: center; }
  .impact-year label { margin: 0; }
  .impact-picker, .impact-outcome { padding: 18px 14px; }
  .impact-choices { gap: 6px; }
  .impact-choices button > span { font-size: 17px; }
  .impact-choices small { font-size: 10px; }
  .impact-states { gap: 8px; }
  .impact-stat span { font-size: 11px; }
  .impact-stat strong { font-size: 25px; }
  .impact-stat small { font-size: 10px; }
  .impact-comparison { padding: 16px 14px; }
  .impact-baseline label { flex-basis: 100%; }
  .impact-explorer-heading { display: block; }
  .impact-total-note { display: block; margin-top: 8px; }
  .impact-toolbar { flex-direction: column; align-items: stretch; gap: 12px; }
  #impact-search { flex-basis: auto; }
  #impact-search input, .impact-zone select { font-size: 16px; }
  .impact-mode button { flex: 1; }
  .impact-filter-row > span { flex-basis: 100%; margin: 0; }
  .impact-list-heading { display: block; }
  .impact-history-link { display: inline-block; }
  .impact-group { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: 14px 4px; gap: 10px; }
  .impact-group-diff { grid-column: 1 / -1; display: flex; justify-content: space-between; text-align: left; }
  .impact-group-count { text-align: right; }
  .impact-detail { padding: 16px 12px; }
  .impact-detail header { flex-wrap: wrap; }
  .impact-labels { justify-content: start; max-width: none; }
  .impact-pagination { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) { .impact-range rect, .impact-choices button { transition: none; } }

/* Career exploration reads like a compact field guide, with evidence one level down. */
.impact-career-jump { display: inline-block; font-size: 13px; padding-block: 5px; }
.impact-career-preview { padding: 12px 0; border-bottom: 1px solid var(--impact-line); font-size: 13px; line-height: 1.8; }
.impact-career-preview p { margin: 0 0 5px; }
.impact-career-preview a { font-size: 12px; }
.career-section { margin-top: 34px; border-top: 3px solid var(--impact-ink); padding-top: 24px; scroll-margin-top: 86px; }
.career-section [hidden] { display: none !important; }
.career-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.career-heading h2 { margin: 7px 0 0; font-size: clamp(22px, 2.3vw, 28px); letter-spacing: -.5px; }
.career-heading > p { font-size: 13px; color: var(--impact-muted); margin: 0 0 4px; }
.career-boundary { font-size: 13px; color: var(--impact-muted); line-height: 1.8; max-width: 880px; margin: 14px 0 18px; }
.career-boundary strong { color: var(--impact-ink); font-weight: 600; }
.career-insight { background: #eaf2f6; border-left: 3px solid var(--impact-blue); padding: 15px 18px; line-height: 1.8; font-size: 14px; }
.career-controls { display: flex; gap: 12px 24px; flex-wrap: wrap; align-items: center; padding-top: 20px; }
.career-controls label { font-size: 12px; display: flex; align-items: center; gap: 8px; }
.career-controls select { background: white; border: 1px solid #bdcbd3; border-radius: 4px; color: var(--impact-ink); padding: 9px 12px; }
.career-controls button { margin-left: auto; border: 1px solid #bdcbd3; border-radius: 4px; background: white; padding: 9px 14px; font-size: 13px; color: var(--impact-ink); }
.career-controls button[aria-pressed="true"] { color: white; background: var(--impact-blue); border-color: var(--impact-blue); }
.career-view-note { color: var(--impact-muted); font-size: 11px; margin: 12px 0 16px; }
.career-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; }
.career-card { background: #fff; border: 1px solid var(--impact-line); border-top: 3px solid #8daebb; padding: 20px; min-width: 0; }
.career-card[data-status="blocked"] { border-top-color: #a2464c; }
.career-card[data-status="limited"], .career-card[data-status="conditional"] { border-top-color: #b08a3c; }
.career-card header { display: flex; align-items: start; justify-content: space-between; gap: 8px; }
.career-sector-name { color: var(--impact-muted); font-size: 11px; letter-spacing: 1px; }
.career-card h3 { font-size: 18px; margin: 7px 0 0; line-height: 1.5; }
.career-save { flex-shrink: 0; border: 0; background: transparent; padding: 3px 0 7px 5px; color: var(--impact-muted); font-size: 12px; }
.career-save[aria-pressed="true"] { color: #835b13; }
.career-jobs { font-size: 13px; font-weight: 500; margin: 12px 0 6px; }
.career-work { font-size: 12px; line-height: 1.8; color: var(--impact-muted); margin: 0 0 16px; min-height: 44px; }
.career-outcome { background: #f3f6f7; padding: 12px; }
.career-outcome strong { display: block; font-size: 13px; color: #24586d; }
.career-card[data-status="blocked"] .career-outcome { background: #fbf0ef; }
.career-card[data-status="blocked"] .career-outcome strong { color: #9c3943; }
.career-card[data-status="limited"] .career-outcome strong, .career-card[data-status="conditional"] .career-outcome strong { color: #795910; }
.career-outcome p { font-size: 11px; line-height: 1.8; margin: 6px 0 0; font-variant-numeric: tabular-nums; color: #475b66; }
.career-change { font-size: 11px; color: var(--impact-muted); line-height: 1.8; min-height: 40px; margin: 10px 0; }
.career-actions { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; font-size: 12px; padding-bottom: 10px; }
.career-actions a { padding-block: 6px; font-weight: 600; }
.career-actions button { color: #9c3943; border: 0; background: transparent; padding: 6px 0; font-size: 12px; }
.career-detail { border-top: 1px solid var(--impact-line); font-size: 12px; color: var(--impact-muted); line-height: 1.8; }
.career-detail summary { cursor: pointer; padding-top: 12px; color: var(--impact-ink); font-size: 12px; }
.career-detail p { margin: 12px 0 6px; }
.career-detail ul { padding-left: 18px; margin: 6px 0; }
.career-detail li { margin: 6px 0; overflow-wrap: anywhere; }
.career-major-names { color: var(--impact-ink); }
.career-simulations button { display: block; width: 100%; padding: 9px 10px; text-align: left; margin: 8px 0; background: #f2f7fa; border: 1px solid #b5cdda; border-radius: 4px; color: var(--impact-blue); font-size: 12px; }
.career-simulations small { display: block; font-size: 10px; margin-top: 4px; color: var(--impact-muted); }
.career-references { margin-top: 16px; border-top: 1px dashed var(--impact-line); padding-top: 12px; }
.career-references b { font-weight: 500; font-size: 11px; }
.career-references a { display: block; font-size: 11px; padding-block: 5px; }
.career-more { display: block; width: 100%; border: 1px solid var(--impact-line); background: var(--impact-paper); color: var(--impact-blue); padding: 13px; margin-top: 16px; font-size: 13px; }
.career-empty { background: var(--impact-paper); color: var(--impact-muted); padding: 24px; font-size: 13px; line-height: 1.8; }
.career-method { font-size: 12px; color: var(--impact-muted); margin-top: 18px; line-height: 1.8; }
.career-method summary { cursor: pointer; padding: 8px 0; }
.career-active-scope { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; background: #eaf2f6; padding: 12px 16px; font-size: 13px; margin-top: 8px; }
.career-active-scope a { font-size: 12px; }
@media (max-width: 1050px) { .career-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .career-grid { grid-template-columns: 1fr; gap: 12px; }
  .career-card { padding: 18px 16px; }
  .career-heading { display: block; }
  .career-heading > p { margin-top: 10px; }
  .career-controls { gap: 10px; }
  .career-controls label { width: 100%; justify-content: space-between; }
  .career-controls select { flex: 0 1 68%; min-width: 0; font-size: 16px; }
  .career-controls button { margin-left: 0; width: 100%; }
  .career-work, .career-change { min-height: 0; }
}
