@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@500;700;800&display=swap');:root{--navy:#071e31;--blue:#155481;--bright:#237cac;--gold:#e3b85a;--paper:#f2f6fa;--line:#dce5ee;--muted:#647486;--ink:#172e40}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 'DM Sans',system-ui,Arial,sans-serif}a{color:var(--blue)}.wrap{width:min(1180px,calc(100% - 36px));margin:auto}.top{background:var(--navy);position:relative;z-index:3}.top-inner{min-height:78px;display:flex;align-items:center;gap:25px}.brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none;font:800 16px/1.05 Manrope,Arial,sans-serif;min-width:215px}.mark{border:2px solid #b8d4e3;border-radius:50%;width:48px;height:48px;display:grid;place-items:center;font-size:17px;letter-spacing:-.06em}.top nav{margin-left:auto;display:flex;gap:16px;align-items:center;flex-wrap:wrap}.top nav a{color:#e5edf5;text-decoration:none;font-size:12px;font-weight:800}.top nav a.selected{color:#ffcf67}#menu{display:none}.hero{background:radial-gradient(circle at 90% 15%,#347da6 0,transparent 35%),linear-gradient(120deg,#102d47,#185a83 78%);color:white;padding:44px 0 0}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#f3d28b;font-weight:800}.edition{display:inline-block;margin:22px 0 8px;border:1px solid #7ca5c3;border-radius:30px;padding:4px 12px;font-size:11px;letter-spacing:.09em;font-weight:800}.hero h1{font:800 clamp(31px,4.3vw,54px)/1.12 Manrope,Arial,sans-serif;max-width:960px;margin:10px 0 14px;letter-spacing:-.035em}.hero p{color:#e1edf5;font-size:16px;max-width:840px;margin:0 0 28px}.tabs{display:flex;gap:0;overflow-x:auto;border-top:1px solid #ffffff35}.tabs a{white-space:nowrap;text-decoration:none;color:#e8f2fa;font-weight:700;font-size:13px;padding:16px 19px}.tabs a.current,.tabs a:hover{background:#ffffff1c;color:#fff}.main{padding:32px 0 68px}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.panel,.metric{background:white;border:1px solid var(--line);border-radius:16px;box-shadow:0 5px 18px #153f6010}.panel{padding:28px;margin-bottom:20px}.metric{padding:24px}.metric strong{display:block;font:800 clamp(26px,3vw,39px) Manrope,Arial;color:var(--blue)}.metric span{font-size:12px;color:var(--muted);font-weight:700}h2{font:800 24px/1.3 Manrope,Arial;color:#174d74;margin:0 0 15px}h3{font:800 17px Manrope,Arial;color:#174d74;margin:0 0 9px}p{margin:0 0 15px}.small,.note{font-size:13px;color:var(--muted)}.kicker{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800;color:#987018;margin-bottom:8px}.button{display:inline-block;padding:11px 18px;background:var(--blue);color:white;text-decoration:none;border-radius:9px;font-weight:800;font-size:13px;margin:4px 8px 4px 0}.button.alt{background:#e8f0f8;color:#174d74}.callout{border-left:4px solid var(--gold);background:#fff8e9;padding:17px 20px;border-radius:8px;margin:18px 0}.controls{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:18px 0}.controls label{font-size:12px;color:#52677a;font-weight:800}.controls input,.controls select{display:block;padding:11px;border:1px solid #c7d5e1;border-radius:8px;background:#fff;min-width:145px;max-width:100%;font:inherit;color:var(--ink)}.controls input{min-width:245px}button{cursor:pointer;border:0}.action{padding:11px 15px;background:#e8f0f8;border-radius:8px;color:#174d74;font-weight:800}.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:10px}table{border-collapse:collapse;width:100%;font-size:12px}th,td{text-align:left;padding:12px 11px;border-bottom:1px solid #e6edf4;white-space:nowrap}th{background:#eaf1f7;color:#26485f;font-size:11px;text-transform:uppercase;letter-spacing:.02em;position:sticky;top:0}tr:nth-child(even){background:#fbfcfe}tr:hover{background:#f1f7fd}.pagination{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap;margin-top:17px}.pagination button{background:#e8f0f8;color:#174d74;padding:10px 15px;border-radius:8px;font-weight:800}.pagination button:disabled{opacity:.4;cursor:default}.bar{display:flex;align-items:center;gap:12px;margin:9px 0;font-size:13px}.bar .label{width:180px;flex-shrink:0}.bar .track{background:#e9f0f5;flex:1;height:14px;border-radius:20px;overflow:hidden}.bar .fill{height:100%;background:linear-gradient(90deg,#185582,#4da1c9);border-radius:20px}.bar .value{width:75px;text-align:right;font-weight:800}.formula{background:#edf3f8;border-radius:9px;padding:15px;overflow-x:auto;font:600 13px/1.8 Consolas,monospace}footer{border-top:1px solid var(--line);background:white;padding:26px 0;font-size:12px;color:var(--muted)}footer p{margin:5px 0 0}.loading{padding:24px;color:var(--muted)}@media(max-width:960px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.top-inner{flex-wrap:wrap;padding:12px 0}#menu{display:block;margin-left:auto;padding:10px 14px;border-radius:8px;background:#1a4d6b;color:white;font-weight:800}.top nav{display:none;flex-basis:100%;padding:10px 0}.top nav.open{display:grid;grid-template-columns:1fr 1fr;gap:14px}.tabs a{padding:13px}}@media(max-width:560px){.grid,.grid.two{grid-template-columns:1fr}.panel{padding:18px}.metric{padding:18px}.hero{padding-top:28px}.controls input,.controls select{width:100%;min-width:0}.controls label{width:100%}.bar .label{width:110px;font-size:11px}.bar .value{width:56px}.brand{min-width:0}}
/* WCU 2027 update 01: official brand, editions, accessible sortable ranking */
.brand{min-width:230px}.official-logo{display:block;max-width:220px;width:100%;max-height:62px;object-fit:contain;object-position:left center}.brand-fallback{font-size:16px;line-height:1.2}
.edition-links{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:2px 0 16px;font-size:12px;font-weight:800}.edition-links a,.edition-active{border:1px solid #8fb7d0;border-radius:7px;padding:5px 11px;color:#fff;text-decoration:none}.edition-links a:hover{background:#ffffff24}.edition-active{background:#ffffff25;border-color:#d7e9f6}
th[data-sort]{cursor:pointer;user-select:none}th[data-sort]:hover{background:#dceaf5}th[data-sort]:focus-visible{outline:3px solid #237cac;outline-offset:-3px}.sort-indicator{white-space:nowrap;color:#155481;font-size:11px}
.university-cell{min-width:240px;white-space:normal;line-height:1.45}.university-cell strong{display:block;font-size:12px}.university-cell small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
@media(max-width:960px){.brand{min-width:0}.official-logo{max-width:200px}}

/* Update 02: complete official brand wordmark and clear sorting controls */
.brand{display:flex;align-items:center;gap:12px;min-width:255px}
.official-logo{width:58px;max-width:58px;height:58px;object-fit:contain;flex:none}
.brand-wordmark{display:block;color:#fff;font:800 16px/1.12 Manrope,Arial,sans-serif;white-space:nowrap}
th[data-sort]{cursor:pointer!important;white-space:nowrap}
th[data-sort] .sort-indicator{display:inline-block;margin-left:4px;font-size:13px;color:#16648f;font-weight:900}
th[data-sort]:hover{background:#d5e7f4}
@media(max-width:560px){.brand{min-width:0}.official-logo{width:46px;height:46px}.brand-wordmark{font-size:13px}}

/* Update 03: WCU Index sortable headings */
th[data-index-sort]{cursor:pointer;user-select:none}th[data-index-sort]:hover{background:#dceaf5}th[data-index-sort]:focus-visible{outline:2px solid #155481;outline-offset:-2px}.sort-indicator{font-size:11px;color:#1a6a9d}
