/* Shared content layout for the university guide and calculator directory. */
.guide-shell .guide-filters[hidden],.guide-shell .list-info[hidden] { display:none; }
.rank-explanation { margin: 30px 0 20px; }
.rank-explanation h2 { font-size: 18px; font-weight: 500; margin: 0 0 16px; }
.rank-explanation-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:16px; }
.rank-explanation-grid > div { background:#fff; border:1px solid #e2e2e2; border-radius:8px; padding:18px; }
.rank-explanation-grid p { font-size:14px; line-height:1.7; color:#626c76; margin:12px 0 0; }
.rank-explanation .rank-badge { display:inline-block; padding:5px 12px; border-radius:20px; font-size:13px; font-weight:500; }
.rank-explanation .rank-badge-good { color:#178755; background:#e6f4ed; }
.rank-explanation .rank-badge-close { color:#a56a00; background:#fff3d8; }
.rank-explanation .rank-badge-hard { color:#ba4545; background:#fceaea; }
@media(max-width:600px){.rank-explanation-grid {grid-template-columns:1fr;gap:12px;} }
html:has(.guide-shell) { overflow-y:scroll; }
body:has(.guide-shell) { background:#f1f1f1; padding-top:90px; }
body:has(.calculators-shell) { padding-top:0; }
main.guide-shell.calculators-shell { padding-top:0; }
main.guide-shell { max-width:980px; padding:32px 24px 56px; margin:auto; background:transparent; color:#222; border-radius:0; }
.guide-shell .breadcrumb { margin:0 0 20px; font-size:14px; color:#6c757d; }
.guide-shell a { color:#337ab7; text-decoration:none; }
.guide-shell a:hover { color:#23527c; text-decoration:underline; }
.guide-shell h1 { font-size:36px; font-weight:400; letter-spacing:normal; line-height:1.25; margin:0 0 8px; }
.guide-shell .meta { font-size:15px; color:#555; margin:0 0 24px; line-height:1.7; }
.guide-shell .meta span { margin:0; padding:0; border:0; }
.guide-shell .intro { font-size:14px; color:#6c757d; line-height:1.6; margin:0 0 20px; }
.guide-shell input,.guide-shell select,.guide-shell button { font-family:inherit; }
.guide-shell input,.guide-shell select { border-color:#ccc; border-radius:6px; font-size:14px; }
.guide-shell .guide-rank { background:#fff; border:1px solid #e2e2e2; border-radius:8px; padding:16px 20px; margin:0 0 20px; }
.guide-rank .rank-controls { margin:0; gap:10px; }
.guide-rank .rank-calculator-link { margin:12px 0 0; color:#6c757d; font-size:14px; line-height:1.6; font-weight:400; }
.guide-rank .rank-calculator-link a { color:#337ab7; text-decoration:none; }
.odtu-handoff { display:block; margin-top:10px; color:#337ab7; font-size:13px; font-weight:400; text-decoration:none; }
.odtu-target-picker h2,.odtu-goal h2,.odtu-goal-result h3 { font-size:20px; font-weight:500; margin:0 0 12px; }
.odtu-target-picker p,.odtu-goal p,.odtu-goal-result p { font-size:14px; line-height:1.7; color:#6c757d; }
.odtu-target-picker select { display:block; width:100%; max-width:100%; margin:8px 0 12px; }
.odtu-target-picker a { color:#337ab7; font-size:14px; text-decoration:none; }
.odtu-goal-result { background:#fff; border:1px solid #e2e2e2; border-radius:8px; padding:20px; margin:20px 0; text-align:left; }
.guide-rank .rank-controls label { font-size:15px; }
.guide-rank #candidate-rank { width:130px; flex:0 1 130px; font-size:18px; font-weight:400; }
.guide-rank #candidate-rank::placeholder { font-size:14px; font-weight:400; color:#777; opacity:1; }
.guide-rank #program-rank { width:150px;font-size:16px;font-weight:400; }
@media(max-width:520px){.guide-shell .browse-tabs{gap:16px;font-size:14px;}.browse-tabs a{white-space:nowrap;}}
.guide-rank #candidate-score { width:80px; padding-inline:8px; }
.guide-rank #rank-hint { color:#6c757d; font-size:13px; flex:1; min-width:180px; }
.guide-shell .guide-filters { display:flex; flex-wrap:wrap; gap:10px; align-items:start; margin:0 0 16px; }
.guide-filters .search { min-width:200px; }
.guide-filters > select { width:210px; height:52px; font-size:16px; padding:12px 40px 12px 16px; appearance:none; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23555' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 16px center; }
.guide-filters .search input { height:52px; font-size:16px; padding:12px 16px; }
.more-filters { position:relative; }
.more-filters > summary { background:#fff; border:1px solid #ccc; border-radius:6px; min-height:52px; padding:14px; font-size:15px; cursor:pointer; }
.more-filters .filters-secondary { position:absolute; z-index:5; right:0; top:52px; padding:16px; width:400px; max-width:calc(100vw - 48px); background:#fff; border:1px solid #e2e2e2; border-radius:8px; box-shadow:0 8px 24px #00000012; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.filters-secondary label { font-size:12px; color:#555; }
.filters-secondary select { width:100%; display:block; margin-top:5px; }
.guide-shell .list-info { font-size:13px; color:#6c757d; margin:16px 0 12px; gap:16px; }
.guide-shell .list-info p { font-weight:400; color:#6c757d; }
.guide-shell .show-other-programs { margin:0 0 12px; color:#555; font-size:13px; }
.program-list { border:1px solid #e2e2e2; border-radius:8px; background:#fff; overflow:hidden; }
.program-card { padding:18px 20px 10px; border-bottom:1px solid #eee; }
.program-card:last-child { border-bottom:0; }
.program-overview { display:grid; grid-template-columns:minmax(0,1fr) 160px auto; align-items:start; gap:20px; }
.program-title { font-size:16px; font-weight:600; line-height:1.5; margin:0 0 4px; color:#222; }
.program-card .program-name { font-size:13px; margin:0 0 4px; color:#555; }
.program-card .program-meta { display:block; margin:0; font-size:13px; line-height:1.7; color:#6c757d; }
.program-card .language-tag,.program-card .funding-tag { background:transparent; color:#555; font-weight:500; }
.program-card .campus-label { margin:4px 0; font-size:13px; }
.previous-ranks { font-size:12px; color:#6c757d; line-height:1.7; margin:6px 0 0; }
.program-latest { display:flex; flex-direction:column; gap:2px; text-align:right; font-variant-numeric:tabular-nums; }
.metric-label,.metric-secondary { color:#6c757d; font-size:12px; line-height:1.6; }
.program-latest .rank { font-size:22px; font-weight:700; color:#222; }
.program-card .rank-comparison { display:flex; align-items:center; justify-content:end; flex-wrap:wrap; max-width:150px; margin:0; }
.program-card .comparison-badge { border-radius:20px; font-size:12px; padding:6px 10px; white-space:nowrap; }
.program-card .comparison-info { width:32px; height:44px; margin:0; flex-shrink:0; }
.program-card .comparison-detail { flex-basis:100%; margin:8px 0; font-size:12px; line-height:1.6; }
.program-history { margin-top:4px; }
.program-history > summary { font-size:12px; color:#337ab7; padding:8px 0; cursor:pointer; width:fit-content; min-height:36px; }
.program-history table { min-width:0; width:100%; font-size:13px; }
.program-history thead th { padding:10px; text-align:right; background:#f7f7f7; color:#6c757d; }
.program-history thead th:first-child,.program-history .year { text-align:left; }
.program-history .year { font-weight:400; color:#6c757d; }
.program-history .year-row td,.program-history .year-row th { padding:10px; background:none; }
.program-history .history-rank { font-weight:600; color:#222; }
.program-code { font-size:12px; color:#6c757d; margin:12px 0 8px; }
.program-list .program-card { display:grid; grid-template-columns:minmax(220px,1fr) minmax(350px,1.3fr); gap:20px; padding:16px 20px; }
.program-list .program-overview { display:flex; flex-direction:column; gap:8px; }
.program-list .program-history { margin:0; }
.program-list .program-history th,.program-list .program-history td { padding:7px 10px; }
.program-list .program-history .history-rank { font-weight:700; font-size:15px; }
.program-list .program-card .rank-comparison { justify-content:start; max-width:none; }
@media (max-width:780px) { .program-list .program-card { grid-template-columns:minmax(0,1fr); gap:10px; padding:14px; } }
.guide-shell .footnote { margin:20px 0 8px; font-size:12px; }
.guide-shell .comparison-help { font-size:13px; margin:0; color:#6c757d; }
.guide-shell .browse-tabs { margin:0 0 24px; font-size:16px; overflow-x:auto; flex-wrap:nowrap; }
.guide-shell .browse-tabs a { flex:0 0 auto; white-space:nowrap; }
.guide-shell.directory-shell h1 { font-size:32px; margin-bottom:20px; }
.guide-shell #department-search,.guide-shell #university-search { font-size:16px; padding:14px 16px; height:52px; }
.directory-toolbar { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin:16px 0; }
.directory-toolbar .score-filters { flex:1; }
.directory-toolbar .score-filters legend { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.directory-toolbar #department-count { margin:0; color:#6c757d; white-space:nowrap; }
.directory-shell .level-filter { margin:12px 0; font-size:13px; }
.directory-shell #departments { display:block; border:1px solid #e2e2e2; border-radius:8px; background:#fff; margin:0 0 24px; overflow:hidden; }
.directory-shell #departments li { border-bottom:1px solid #eee; }
.directory-shell #departments li:last-child { border-bottom:0; }
.directory-head,.directory-shell #departments a { display:grid; grid-template-columns:minmax(0,1fr) 90px 100px 135px 16px; gap:16px; padding:14px 20px; align-items:center; }
.directory-shell #departments a { font-size:15px; min-height:64px; color:#337ab7; }
.directory-shell #departments a:hover { background:#f7fafd; text-decoration:none; }
.directory-head { font-size:12px; color:#6c757d; background:#fafafa; border:1px solid #e2e2e2; border-bottom:0; border-radius:8px 8px 0 0; }
.directory-head + #departments { border-top-left-radius:0; border-top-right-radius:0; }
.directory-shell .directory-type { font-size:12px; color:#555; }
.directory-shell .directory-count,.directory-shell .directory-rank { text-align:right; color:#555; font-size:13px; font-variant-numeric:tabular-nums; }
.directory-shell .directory-rank { font-weight:600; }
.directory-arrow { color:#999; text-align:right; }
.university-directory .directory-head,.university-directory #departments a { grid-template-columns:minmax(0,1fr) 120px 65px 100px 16px; }
.directory-city { font-size:13px; color:#6c757d; }
.directory-name { font-weight:500; }
.guide-shell.calculators-shell h1 { font-weight:400; margin-bottom:28px; }
.calculator-group { margin-bottom:28px; }
.calculator-group h2 { font-size:15px; font-weight:500; color:#555; margin:0 0 12px; }
.calculator-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.guide-shell .calculator-link { display:block; border:1px solid #e2e2e2; border-radius:8px; padding:16px 18px; background:#fff; }
.guide-shell .calculator-link:hover { border-color:#337ab7; text-decoration:none; }
.calculator-link h3 { font-size:16px; font-weight:400; line-height:1.5; margin:0 0 4px; }
.calculator-link p { font-size:13px; color:#6c757d; line-height:1.6; margin:0; }
@media (max-width:780px) {
  .university-directory .directory-head,.university-directory #departments a { grid-template-columns:minmax(0,1fr) 80px 65px 16px; }
  .university-directory .directory-head .directory-count { display:none; }
  .university-directory #departments .directory-count { grid-column:1; grid-row:2; text-align:left; }
  .university-directory #departments .directory-arrow { grid-column:4; grid-row:1; }
  .program-overview { grid-template-columns:minmax(0,1fr) 145px; gap:12px; }
  .program-card .rank-comparison { grid-column:1 / -1; justify-content:start; max-width:none; }
  .program-history thead { position:static; width:auto; height:auto; clip-path:none; }
  .program-history .year-row { display:table-row; }
  .program-history tbody { display:table-row-group; }
  .directory-head,.directory-shell #departments a { grid-template-columns:minmax(0,1fr) 65px 85px 16px; gap:10px; padding:14px 16px; }
  .directory-head .directory-rank,.directory-shell .directory-rank { display:none; }
  .calculator-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:520px) {
  .university-directory .directory-head { display:none; }
  .university-directory #departments a { grid-template-columns:minmax(0,1fr) 16px; }
  .university-directory #departments .directory-name { grid-column:1; }
  .university-directory #departments .directory-city { grid-column:1; grid-row:2; }
  .university-directory #departments .directory-type { grid-column:1; grid-row:3; }
  .directory-shell.university-directory #departments .directory-count { grid-column:1; grid-row:4; }
  .university-directory #departments .directory-arrow { grid-column:2; grid-row:1; }
  main.guide-shell { padding:24px 16px 40px; }
  .guide-shell h1 { font-size:28px; }
  .guide-shell .meta { font-size:13px; }
  .guide-shell .guide-rank { padding:14px; }
  .guide-rank #rank-hint { flex-basis:100%; }
  .guide-rank #candidate-rank { flex:1; min-width:100px; }
  .guide-filters .search { flex-basis:100%; }
  .guide-filters > select { flex:1; width:auto; font-size:16px; }
  .more-filters .filters-secondary { max-width:calc(100vw - 32px); width:340px; }
  .program-card { padding:16px 14px 8px; }
  .program-overview { grid-template-columns:minmax(0,1fr); }
  .program-latest { text-align:left; margin-top:2px; }
  .program-latest .rank { font-size:24px; }
  .program-card .rank-comparison { grid-column:auto; }
  .program-history table { font-size:12px; }
  .program-history thead th,.program-history .year-row td,.program-history .year-row th { padding:9px 4px; font-size:12px; white-space:normal; }
  .directory-head,.directory-shell #departments a { grid-template-columns:minmax(0,1fr) 65px 16px; }
  .directory-head .directory-count { display:none; }
  .directory-shell #departments .directory-count { grid-column:1; text-align:left; grid-row:2; font-size:12px; }
  .directory-shell #departments .directory-arrow { grid-column:3; grid-row:1; }
  .directory-shell .score-filters { display:flex; }
  .directory-shell .score-filters label > span { padding:10px 12px; }
  .calculator-grid { grid-template-columns:1fr; }
}
.odtu-calculator { max-width:800px; }
.odtu-calculator h2 { font-size:20px; font-weight:500; margin:0 0 16px; }
.odtu-calculator #odtu-target { width:100%; max-width:100%; }
.odtu-net-row { display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid #eee; padding:12px 0; font-size:14px; }
.odtu-net-row input { width:100px; min-width:0; font-weight:400; }
.odtu-calculator #odtu-diploma { width:130px; margin:12px; }
.odtu-calculator .odtu-placed { display:block; font-size:13px; margin:16px 0; }
.odtu-placed input { width:auto; margin-right:6px; }
.odtu-calculator #odtu-result { padding:28px 24px; text-align:center; }
.odtu-calculator h2.odtu-result-target { font-size:14px; font-weight:400; color:#6c757d; line-height:1.7; margin:0; }
.odtu-result-hero { padding:24px 0; }
.odtu-result-rank { display:block; color:#172e4a; font-size:clamp(36px,7vw,48px); font-weight:600; line-height:1.2; font-variant-numeric:tabular-nums; letter-spacing:-1px; }
.odtu-result-hero p { margin:10px 0 0; font-size:14px; color:#6c757d; }
.odtu-result-baseline { border-top:1px solid #eee; padding-top:20px; margin:0 0 18px; font-size:14px; line-height:1.7; color:#6c757d; }
.odtu-result-baseline strong { color:#334155; font-weight:500; white-space:nowrap; }
.odtu-calculator .odtu-result-disclaimer { margin:8px 0 0; font-size:12px; }
.net-guide { max-width: 1000px; }
.net-calculator-link { font-size:14px; color:#6c757d; margin:8px 0 0; line-height:1.7; }
.net-explanation-grid .net-info-tag { display:inline-block; border-radius:20px; padding:5px 12px; background:#edf3f9; color:#337ab7; font-size:13px; font-weight:500; }
.net-grouped-links { border-top:1px solid #dfe3e7; padding-top:28px; margin-top:32px; }
.net-grouped-links h2 { font-size:18px; font-weight:500; }
.net-grouped-links > div { gap:24px; }
.net-grouped-links h3 { font-size:15px; font-weight:500; margin:0 0 10px; }
.net-grouped-links ul { list-style:none; padding:0; margin:0; }
.net-grouped-links li { margin:0 0 8px; line-height:1.6; }
.net-grouped-links .net-scroll-list { max-height:320px; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; padding:4px 12px 4px 0; }
.net-scroll-list:focus-visible { outline:2px solid #337ab7; outline-offset:4px; }
.net-campus-note { color:#727c86; font-size:12px; }
.net-page-summary { font-size: 15px; line-height: 1.8; margin: 24px 0; color: #535e69; }
.net-history-wrap { overflow-x: auto; }
.net-history th:not(:first-child) { text-align: right; font-weight: 400; color: #7a838c; }
.net-history td { font-size: 17px; font-variant-numeric: tabular-nums; }
.net-history-separator { border-top: 2px solid #dfe3e7; }
.net-program-links { margin: 32px 0; }
.net-program-links > div { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; }
.net-program-links a,.net-program-link { font-size: 14px; }
.net-program-link { margin: 8px 0 0; }
.net-information > p + p { margin-top: 12px; }
@media(max-width:700px) { .net-program-links > div { grid-template-columns: 1fr; } .net-history td { font-size: 15px; } .net-history th { font-size: 13px; } }
.net-information { margin-top: 38px; border-top: 1px solid #dfe3e7; padding-top: 30px; }
.net-information h2 { margin: 0 0 12px; }
.net-information p { font-size: 14px; line-height: 1.8; color: #626c76; margin: 0; }
.net-information-intro { max-width: 740px; }
.net-information-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 40px; margin-top: 28px; }
.net-information h3 { font-size: 16px; font-weight: 500; margin: 0 0 8px; }
.net-information-next { margin: 28px 0 20px; padding: 18px 20px; background: #e8eff5; border-radius: 8px; }
.net-information-next a { display: inline-block; margin-top: 6px; font-size: 14px; }
.net-information .net-information-source { font-size: 12px; color: #7d858d; }
@media(max-width:700px) { .net-information-grid { grid-template-columns: 1fr; gap: 22px; } }
.net-guide-controls { display: grid; grid-template-columns: 100px minmax(0,1fr) minmax(0,1fr); gap: 18px; padding: 24px; }
.net-guide-controls [hidden] { display: none !important; }
.net-picker { position: relative; }
.net-picker-options { position: absolute; top: 100%; left: 0; right: 0; z-index: 20; max-height: 300px; overflow-y: auto; background: #fff; border: 1px solid #d5d9de; border-radius: 8px; box-shadow: 0 8px 24px #172e4a18; margin-top: 4px; padding: 5px; }
.net-picker-options button { display: block; width: 100%; padding: 12px; text-align: left; background: none; color: #283542; border: 0; border-radius: 4px; margin: 0; font: inherit; font-size: 14px; }
.net-picker-options button:hover,.net-picker-options button:focus { background: #edf4fa; outline: none; }
.net-picker-options p { padding: 12px; margin: 0; font-size: 13px; color: #727b86; }
@media(max-width:700px) { .net-guide-controls { grid-template-columns: 1fr; gap: 18px; padding: 18px; } }
.net-guide-controls > div { display: grid; gap: 8px; }
.net-guide-controls label { display: grid; gap: 8px; font-size: 15px; }
.net-guide-controls select,.net-guide-controls input { width: 100%; min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid #d5d9de; border-radius: 7px; background: #fff; font: inherit; font-weight: 400; }
.net-guide-controls #net-year { max-width: 150px; }
.net-guide h2 { font-size: 21px; font-weight: 500; line-height: 1.5; }
.net-table { width: 100%; border-collapse: collapse; }
.net-table th,.net-table td { padding: 12px 4px; border-bottom: 1px solid #e8ebee; }
.net-table th { text-align: left; font-weight: 400; }
.net-table td { text-align: right; font-size: 20px; font-weight: 600; color: #172e4a; }
.net-details { margin: 22px 0 0; font-size: 14px; line-height: 1.8; }
@media(max-width:700px) {
  .net-history { table-layout: fixed; }
  .net-history th:first-child { width: 34%; overflow-wrap: anywhere; }
  .net-history td { font-size: 14px; }
  .net-history th { font-size: 12px; }
}
