/* Ranking results and review states. No calculations are sent to the browser. */
.fr-intro{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(220px,1fr);gap:44px;padding:32px;border:1px solid var(--line);border-left:4px solid var(--accent);background:var(--white);margin:0 0 32px}
.fr-intro h2{font:clamp(25px,3vw,38px)/1.16 var(--serif);letter-spacing:-.025em;margin:14px 0}
.fr-intro p{font-size:15px;line-height:1.85;color:var(--muted);margin-bottom:20px;max-width:68ch}
.fr-intro dl{margin:0;padding:0 0 0 25px;border-left:1px solid var(--line);display:grid;gap:16px;align-content:center}
.fr-intro dl>div{display:flex;justify-content:space-between;gap:20px;align-items:baseline}.fr-intro dt{font-size:12px;line-height:1.6;color:var(--muted)}.fr-intro dd{margin:0;font:31px/1.2 var(--serif);font-variant-numeric:tabular-nums}
.fr-filters{display:grid!important;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto!important;gap:20px;align-items:end}
.fr-filters label{display:block;margin-bottom:8px;font-size:12px}.fr-filters input,.fr-filters select{width:100%;min-height:48px;padding:10px 12px;font:inherit;background:var(--white);border:1px solid var(--line);color:var(--ink)}
.fr-list{border-top:1px solid var(--ink)}.fr-row{display:grid;grid-template-columns:65px minmax(0,1fr) 150px 42px;gap:23px;align-items:center;padding:25px 0;border-bottom:1px solid var(--line)}
.fr-row h2{font:clamp(24px,2.6vw,36px)/1.2 var(--serif);letter-spacing:-.025em;overflow-wrap:anywhere;margin:0 0 7px}.fr-row h2 a:hover{color:var(--accent)}
.fr-position{font:27px/1.2 var(--serif);font-variant-numeric:tabular-nums;color:var(--muted)}.fr-status{display:inline-block;font-size:11px;line-height:1.7;color:var(--muted)}.fr-status-ranked{color:var(--ink);font-weight:700}.fr-status-provisional{color:#863f31}
.fr-score{text-align:right;font-size:12px;color:var(--muted)}.fr-score strong{font-size:28px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink);display:block}.fr-open{display:grid;place-items:center;min-height:44px;min-width:40px;color:var(--accent)}.fr-open:hover{background:var(--panel)}
.fr-notice{border-left:3px solid var(--accent);padding:18px 22px;background:var(--panel);font-size:14px;line-height:1.85;margin:25px 0}
.fr-guidelines{max-width:78ch!important;padding-bottom:30px}.fr-guidelines h2{font:32px/1.2 var(--serif);letter-spacing:-.025em;margin:35px 0 16px}.fr-guidelines p{font-size:16px;line-height:1.9;margin:0 0 19px}
.fr-profile-panel{display:grid;grid-template-columns:minmax(170px,.7fr) minmax(0,1.3fr);gap:12px 25px;padding:22px 25px;border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--panel);margin:0 0 25px}
.fr-profile-panel strong{display:block;font:24px/1.25 var(--serif);margin-top:9px}.fr-profile-panel p{font-size:13px;line-height:1.85;color:var(--muted);margin:0}.fr-profile-panel>.text-link{grid-column:1/-1;justify-self:start;min-height:35px;font-size:12px!important}
.fr-home-link{margin-top:18px;display:inline-flex;gap:8px;align-items:center;font-size:13px;min-height:40px;border-bottom:1px solid var(--line)}
.fr-achievements{margin:30px 0 38px;border-top:1px solid var(--line);padding-top:25px}.fr-achievements-heading h2{font:30px/1.2 var(--serif);letter-spacing:-.02em;margin:10px 0 12px}.fr-achievements-heading>p:last-child{font-size:13px;line-height:1.8;color:var(--muted);max-width:70ch;margin:0 0 22px}.fr-achievement-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}.fr-achievement{min-width:0;padding:20px 0;border-top:1px solid var(--line)}.fr-achievement-meta{display:flex;justify-content:space-between;gap:14px;align-items:baseline;font-size:10px;line-height:1.6;color:var(--muted)}.fr-achievement-meta>span:last-child{flex-shrink:0}.fr-achievement h3{font:21px/1.3 var(--serif);margin:10px 0 7px;overflow-wrap:anywhere}.fr-achievement-institution{font-size:12px;line-height:1.75;margin:0 0 9px}.fr-achievement-sources{display:flex;gap:4px 14px;flex-wrap:wrap;list-style:none;padding:0;margin:8px 0}.fr-achievement-sources li{margin:0;padding:0;max-width:100%}.fr-achievement-sources a{display:inline-block;font-size:11px;line-height:1.8;min-height:30px;padding:3px 0;color:var(--accent);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.fr-achievement-date{font-size:10px;color:var(--muted);line-height:1.8;margin:0}.fr-achievement-sources a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
@media(max-width:600px){.fr-achievement-list{grid-template-columns:1fr}.fr-achievements-heading h2{font-size:27px}.fr-achievement-sources a{min-height:40px;padding:8px 0}.fr-achievement-meta{font-size:10px}.fr-achievement{padding:18px 0}}
@media(max-width:900px){.fr-intro{grid-template-columns:1fr;gap:25px;padding:27px}.fr-intro dl{border-left:0;border-top:1px solid var(--line);padding:20px 0 0;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.fr-intro dl>div{display:block}.fr-intro dd{margin-top:8px}.fr-row{grid-template-columns:48px minmax(0,1fr) 110px 35px;gap:15px}}
@media(max-width:600px){.fm-header .primary-nav{gap:0!important}.fm-header .primary-nav a{font-size:12px!important;min-width:0!important;padding-left:3px!important;padding-right:3px!important}.fr-intro{padding:22px;margin-bottom:23px}.fr-intro h2{font-size:28px}.fr-intro p{font-size:14px}.fr-intro dl{gap:11px}.fr-intro dt{font-size:10px;line-height:1.65}.fr-intro dd{font-size:28px}.fr-filters{grid-template-columns:1fr!important;gap:15px}.fr-filters input,.fr-filters select{font-size:16px}.fr-filters .button{width:100%;min-height:48px}.fr-row{grid-template-columns:30px minmax(0,1fr) 28px;gap:13px;padding:21px 0}.fr-row h2{font-size:26px}.fr-position{font-size:21px;align-self:start;padding-top:3px}.fr-score{grid-column:2;text-align:left;font-size:11px;margin-top:-8px}.fr-score strong{font-size:24px;display:inline;margin-right:6px}.fr-open{grid-column:3;grid-row:1/3;min-width:28px}.fr-profile-panel{grid-template-columns:1fr;padding:19px;gap:15px}.fr-profile-panel strong{font-size:25px}.fr-guidelines h2{font-size:28px;margin-top:30px}.fr-guidelines p{font-size:15px}.fr-notice{padding:17px}.fr-profile-panel>.text-link{grid-column:1}.fr-guidelines{max-width:100%!important}}
@media(prefers-reduced-motion:reduce){.fr-row *{transition:none!important}}
@media print{.fr-filters,.fr-home-link{display:none}.fr-profile-panel,.fr-row{break-inside:avoid}.fr-intro{background:white;border:1px solid #aaa}}
