/* Focused award views: one race, or one editorial watchlist, at a time. */
.award-race-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.award-race-card { position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:20px; min-width:0; padding:36px; border:1px solid #e1e5eb; background:#f7f8fa; }
.award-card-number { font-size:13px; line-height:1; color:#687283; }
.award-race-card h3 { width:100%; font-size:clamp(28px,3vw,43px); font-weight:400; line-height:1.1; letter-spacing:-.045em; }
.award-race-card p { max-width:480px; font-size:17px; line-height:1.5; color:#667080; }
.award-race-card--featured { min-height:330px; background:#edf3ff; border-color:#d6e3ff; }
.award-race-card--featured:nth-child(2) { background:#f0f8f6; border-color:#dbeae6; }
.award-card-open { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; width:100%; padding:0; border:0; text-align:left; font:inherit; letter-spacing:inherit; line-height:inherit; background:transparent; color:#111; cursor:pointer; }
.award-card-open > span:last-child { flex:none; color:#1763ff; }
.award-card-open:focus-visible { outline-offset:7px; }
.award-card-status { display:inline-flex; align-items:center; gap:8px; padding:8px 11px; background:white; color:#164dad; font-size:12px; line-height:1.3; }
.award-card-status::before { content:''; width:5px; height:5px; background:#1763ff; }
.award-race-card > .text-link { margin-top:auto; font-size:14px; }
.awards-race-open { overflow:hidden; }
.awards-race-dialog { --race-blue:#1763ff; --race-teal:#008f84; --race-coral:#ed4b41; box-sizing:border-box; width:min(1000px,calc(100vw - 64px)); max-width:none; max-height:calc(100dvh - 64px); margin:auto; padding:0; border:0; background:#fff; color:#111; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; box-shadow:0 20px 100px #0003; }
.awards-race-dialog::backdrop { background:#061226b8; }
.awards-race-dialog:not([open]) { display:none; }
.race-modal-bar { position:sticky; top:0; z-index:5; display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:56px; padding:6px 20px 6px 40px; background:#fff; border-bottom:1px solid #e8ecf2; }
.race-modal-bar > span { font-size:12px; line-height:1.4; color:#5f6b7c; }
.race-close { display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; background:#eef3fc; color:#174b9e; font:400 29px/1 Outfit,Arial,sans-serif; cursor:pointer; }
.race-modal-content { padding:24px 48px 32px; }
.race-modal-heading { margin-bottom:20px; }
.race-modal-heading > .race-pixels { display:none; }
.race-pixels { display:block; width:8px; height:8px; margin:8px 8px 26px; background:var(--race-blue); box-shadow:8px -8px #04bba9,8px 8px #ed4b41; }
.race-modal-heading h2 { font-size:42px; font-weight:400; line-height:1.04; letter-spacing:-.05em; text-wrap:balance; }
.race-modal-heading p { margin-top:10px; font-size:16px; line-height:1.45; color:#637083; }
.race-region-tabs { display:flex; width:calc(100% - 78px); max-width:360px; padding:4px; gap:4px; background:#f0f3f8; margin-bottom:14px; }
.race-region-tabs button { flex:1; min-height:40px; padding:10px 12px; background:transparent; color:#697486; border:0; font-size:15px; line-height:1.35; }
.race-region-tabs button[aria-selected=true] { background:var(--race-blue); color:#fff; }
.race-region-tabs button:focus-visible { outline-offset:2px; }
.awards-race-dialog [role=tabpanel]:focus-visible { outline-offset:5px; }
.awards-race-dialog [data-race-panel] { position:relative; }
.race-refresh-line { position:absolute; top:-58px; right:0; display:flex; align-items:center; justify-content:flex-end; margin:0; }
.race-refresh-line p { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.race-refresh-line button { min-height:40px; flex:none; display:flex; align-items:center; gap:8px; padding:8px 0 8px 8px; border:0; background:none; color:#1854b6; font-size:12px; }
.race-state-line { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; padding:10px 0; border-top:1px solid #e0e6f0; border-bottom:1px solid #e0e6f0; }
.race-status { display:inline-flex; align-items:center; gap:8px; color:#6b7587; font-size:11px; line-height:1.4; letter-spacing:.065em; text-transform:uppercase; font-weight:500; }
.race-status i { display:block; flex:none; width:5px; height:5px; background:currentColor; }
.race-status[data-race-state=live] { color:#087161; }
.race-status[data-race-state=stale] { color:#956117; }
.race-disclosure { color:#758092; font-size:11px; line-height:1.4; }
.race-notice { padding:12px 16px; margin-top:16px; color:#876126; background:#fff8e8; font-size:13px; line-height:1.5; }
.race-list-heading { display:flex; justify-content:space-between; gap:20px; margin:16px 0 4px; color:#748095; font-size:11px; line-height:1.4; }
.race-list { list-style:none; margin:0; padding:0; }
.race-row { display:grid; grid-template-columns:36px minmax(0,1fr) auto; gap:7px 18px; align-items:center; padding:14px 0; border-bottom:1px solid #e7ecf3; }
.race-position { font-size:13px; color:#7c8799; font-variant-numeric:tabular-nums; }
.race-company { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 12px; min-width:0; }
.race-company-name { font-size:24px; line-height:1.2; letter-spacing:-.035em; overflow-wrap:anywhere; }
.race-leading-label { font-size:10px; line-height:1.4; color:#285cbc; }
.race-outcome-note { width:100%; color:#798599; font-size:10px; }
.race-percentage { font-size:28px; line-height:1.1; font-weight:400; letter-spacing:-.04em; font-variant-numeric:tabular-nums; }
.race-row--leader { margin:10px -20px 0; padding:18px 20px; border:0; background:#edf3ff; --step:10px; clip-path:var(--pixel-shape); }
.race-row--leader .race-company-name { font-size:28px; }
.race-row--leader .race-percentage { color:#1655d1; font-size:40px; }
.race-row .race-percentage--missing { font-size:13px; letter-spacing:0; color:#7c8799; }
.race-bar { grid-column:2/-1; height:6px; background:#e9eef6; overflow:hidden; }
.race-row--leader .race-bar { height:7px; margin-top:5px; background:#dbe6fa; }
.race-bar span { display:block; width:100%; height:100%; transform-origin:left; }
.race-series-0 { background:var(--race-blue); stroke:var(--race-blue); }
.race-series-1 { background:var(--race-teal); stroke:var(--race-teal); }
.race-series-2 { background:var(--race-coral); stroke:var(--race-coral); }
.race-history { margin:34px 0 0; }
.race-chart-heading { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:10px; }
.race-chart-heading h3 { font-size:18px; font-weight:500; letter-spacing:-.025em; }
.race-chart-heading > span { color:#8993a2; font-size:11px; }
.race-legend { display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:20px; font-size:12px; }
.race-legend > span { display:flex; align-items:center; gap:7px; }
.race-legend i { width:6px; height:6px; }
.race-history svg { display:block; width:100%; height:auto; margin-top:18px; }
.race-chart-grid { stroke:#e7ecf4; stroke-width:1; fill:none; }
.race-chart-axis { fill:#8390a3; font:11px Outfit,Arial,sans-serif; }
.race-chart-line { fill:none; stroke-width:2.8; stroke-linejoin:round; stroke-linecap:round; }
.race-history figcaption { color:#8a95a5; font-size:10px; margin-top:10px; }
.race-history-empty { margin-top:26px; color:#7d899a; font-size:12px; line-height:1.5; }
.race-methodology,.race-evidence { border-bottom:0!important; padding:0!important; margin-top:28px; }
.race-methodology summary,.race-evidence summary { min-height:44px; padding:14px 0; font-size:12px; color:#45658f; cursor:pointer; }
.race-methodology > div,.race-evidence > div { padding:8px 0 4px; color:#738095; font-size:12px; line-height:1.6; }
.race-methodology p,.race-evidence p { font-size:12px; line-height:1.6; margin:0 0 12px!important; }
.race-methodology a,.race-evidence a { display:inline-block; margin:0 18px 8px 0; color:#2156ac; text-decoration:underline; text-underline-offset:4px; }
.race-empty { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; min-height:260px; padding:32px; margin-top:24px; background:#f4f7fc; }
.race-empty h3 { font-size:28px; letter-spacing:-.035em; font-weight:400; }
.race-empty p { max-width:430px; margin-top:14px; color:#718098; line-height:1.5; font-size:15px; }
.race-australia-empty { padding:32px; margin-top:28px; background:#f2f6fc; }
.race-australia-empty h3 { font-size:30px; line-height:1.1; letter-spacing:-.04em; margin-top:26px; font-weight:400; }
.race-australia-empty p { max-width:530px; margin-top:16px; color:#68778e; line-height:1.6; font-size:15px; }
.race-local-profile { display:flex; align-items:flex-start; justify-content:space-between; gap:28px; margin-top:24px; padding:28px 0; border-top:1px solid #e2e8f0; }
.race-local-label { display:block; font-size:11px; color:#207061; margin-bottom:14px; }
.race-local-profile h3 { font-size:27px; font-weight:400; letter-spacing:-.03em; }
.race-local-profile p { max-width:480px; margin-top:14px; font-size:14px; line-height:1.6; color:#718097; }
.race-local-profile > a { flex:none; font-size:12px; color:#235bb7; text-decoration:underline; text-underline-offset:4px; }
.race-modal-footer { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-top:32px; padding-top:28px; border-top:1px solid #dee5ef; }
.race-modal-footer > span { max-width:310px; font-size:12px; line-height:1.5; color:#7b8799; }
.race-modal-footer .btn { flex:none; --button-bg:var(--race-blue); font-size:14px; min-height:52px; }
.awards-race-dialog--impact { width:min(1160px,calc(100vw - 64px)); }
.race-watchlist-label { display:flex; justify-content:space-between; align-items:center; gap:24px; margin:18px 0 20px; padding:12px 0; border-top:1px solid #dde5ef; border-bottom:1px solid #dde5ef; }
.race-watchlist-label > span { flex:none; color:#1557bf; font-size:13px; font-weight:500; }
.race-watchlist-label p { max-width:460px; color:#7b8797; font-size:12px; line-height:1.5; }
.race-impact-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:stretch; }
.race-impact-card { min-width:0; display:flex; flex-direction:column; padding:26px 24px; background:#f0f5ff; border-top:4px solid var(--race-blue); }
.race-impact-card--1 { background:#f0f8f6; border-color:#04bba9; }
.race-impact-card--2 { background:#fdf4f1; border-color:#ed4b41; }
.race-impact-card-top { display:flex; align-items:flex-start; flex-direction:column; gap:8px; }
.race-impact-card-top h3 { font-size:27px; font-weight:400; letter-spacing:-.04em; }
.race-impact-card-top > span { color:#8290a2; font-size:10px; }
.race-impact-metric { font-size:36px; font-weight:400; line-height:1.1; letter-spacing:-.05em; margin:24px 0 0; }
.race-impact-outcome { font-size:16px; line-height:1.35; max-width:215px; margin-top:9px; min-height:44px; }
.race-impact-copy { color:#738097; font-size:13px; line-height:1.6; margin-top:24px; }
.race-impact-card .race-evidence { margin-top:auto; padding-top:20px!important; }
.race-impact-card .race-evidence summary { color:#56718f; font-size:11px; }
.race-impact-card .race-evidence p { font-size:11px; }
@media(hover:hover) and (pointer:fine){
  .award-card-open:hover { color:#185ada; }
  .race-close:hover { background:#e0eafe; }
  .race-refresh-line button:hover { color:#103778; }
}
@media(max-width:1000px){
  .race-modal-content { padding:24px 36px 30px; }
  .race-impact-grid { grid-template-columns:1fr; }
  .race-impact-card { display:grid; grid-template-columns:1fr 1fr; gap:0 32px; }
  .race-impact-card-top { grid-row:1/3; }
  .race-impact-metric { margin-top:0; }
  .race-impact-copy,.race-impact-card .race-evidence { grid-column:1/-1; }
  .race-impact-outcome { min-height:0; }
}
@media(max-width:700px){
  .award-race-cards { grid-template-columns:1fr; gap:16px; }
  .award-race-card { padding:28px; gap:18px; }
  .award-race-card--featured { min-height:300px; }
  .award-race-card h3 { font-size:36px; }
  .award-race-card p { font-size:16px; }
  .awards-race-dialog,.awards-race-dialog--impact { width:calc(100vw - 24px); max-height:calc(100dvh - 24px); }
  .race-modal-bar { padding:6px 14px 6px 22px; min-height:56px; }
  .race-modal-content { padding:22px 24px 28px; }
  .race-modal-heading h2 { font-size:34px; }
  .race-modal-heading p { font-size:15px; }
  .race-region-tabs { max-width:none; }
  .race-region-tabs button { font-size:13px; }
  .race-refresh-line { gap:14px; }
  .race-refresh-line p { font-size:10px; max-width:195px; }
  .race-state-line { gap:8px; }
  .race-status { font-size:10px; }
  .race-disclosure { font-size:10px; }
  .race-row { grid-template-columns:24px minmax(0,1fr) auto; gap:7px 11px; padding:14px 0; }
  .race-position { font-size:11px; }
  .race-company-name { font-size:21px; }
  .race-percentage { font-size:23px; }
  .race-row--leader { margin-inline:-12px; padding:18px 12px; }
  .race-row--leader .race-company-name { font-size:24px; }
  .race-row--leader .race-percentage { font-size:34px; }
  .race-leading-label { font-size:9px; }
  .race-empty,.race-australia-empty { padding:25px 22px; }
  .race-empty h3,.race-australia-empty h3 { font-size:27px; }
  .race-local-profile { flex-direction:column; gap:20px; }
  .race-modal-footer { align-items:stretch; flex-direction:column; gap:20px; }
  .race-modal-footer .btn { width:100%; }
  .race-watchlist-label { flex-direction:column; align-items:flex-start; gap:12px; }
  .race-impact-card { display:flex; padding:28px 24px; }
  .race-impact-metric { font-size:40px; margin-top:28px; }
}
@media(max-width:370px){
  .race-modal-content { padding-inline:18px; }
  .race-modal-heading h2 { font-size:32px; }
  .race-row--leader .race-company-name { font-size:21px; }
  .race-row--leader .race-percentage { font-size:30px; }
}
@media(prefers-reduced-motion:reduce){
  .award-card-open,.awards-race-dialog * { scroll-behavior:auto!important; animation:none!important; transition:none!important; }
}

/* Audience vote: a fourth column for the vote button, and the leader/mine states. */
.race-row { grid-template-columns:36px minmax(0,1fr) auto auto; }
.race-vote { min-height:40px; padding:8px 18px; border:1px solid var(--race-blue); background:#fff; color:var(--race-blue); font:inherit; font-size:13px; line-height:1.2; cursor:pointer; --step:6px; clip-path:var(--pixel-shape); }
.race-row--mine .race-vote { background:var(--race-blue); color:#fff; }
.race-vote[disabled] { opacity:.55; cursor:progress; }
.race-vote:focus-visible { outline-offset:3px; }
.race-mine-label { font-size:10px; line-height:1.4; color:#087161; }
.race-vote-lead { margin:20px 0 0; font-size:18px; line-height:1.35; letter-spacing:-.02em; }
.race-vote-note { margin-top:22px; color:#758092; font-size:12px; line-height:1.6; }
.race-vote-error { padding:12px 16px; margin-top:16px; color:#9a2a22; background:#fff1ef; font-size:13px; line-height:1.5; }
.race-vote-status { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
@media(hover:hover) and (pointer:fine){ .race-vote:hover { background:#e6eeff; } .race-row--mine .race-vote:hover { background:#1451c9; } }
@media(max-width:700px){ .race-row { grid-template-columns:24px minmax(0,1fr) auto; } .race-vote { grid-column:2/-1; justify-self:start; } }
