/* Mockup Resultados Sertões — base compartilhada (multisite: cada vertical define --accent).
   F2-11 (RF-PUB-010/Ap.4): --accent e a UNICA fonte de laranja; realces e sombras derivam dela
   (--accent-glow via color-mix) para a cor vir 100% da config da vertical, nao de valor fixo. */
:root{
  --accent:#E96409; --accent-glow:color-mix(in srgb, var(--accent) 32%, transparent); --accent-ink:#ffffff;
  --black:#050505; --ink:#1c1a19; --muted:#585858;
  --bg:#ffffff; --bg2:#f5f5f5; --dark:#16110e; --dark2:#211814; --line:#e4e4e4;
  --gold:#E9B23C; --silver:#AEB4BD; --bronze:#C77B3A;
  --hero-a:#1c1410; --hero-b:#2a1c14; --hero-c:#3a2415;
  --display:'Big Shoulders Display',sans-serif; --body:'Barlow',sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--body);color:var(--ink);background:var(--bg2);line-height:1.5;-webkit-font-smoothing:antialiased}
.display{font-family:var(--display);text-transform:uppercase;line-height:.95}
a{color:inherit;text-decoration:none}

/* HEADER */
header.bar{background:var(--accent);color:var(--accent-ink);position:sticky;top:0;z-index:50}
.bar-in{max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:18px;padding:9px 22px;min-height:62px}
.logo{display:flex;align-items:center;gap:10px}
.logo-img{height:56px;width:auto;display:block}
.logo-txt{font-family:var(--display);font-weight:900;font-size:26px;text-transform:uppercase;letter-spacing:.5px;line-height:.9}
.logo-txt small{display:block;font-family:var(--body);font-weight:700;font-size:10px;letter-spacing:2.5px;opacity:.85}
nav.menu{display:flex;gap:22px;margin-left:14px;font-weight:600;font-size:14px;text-transform:uppercase;letter-spacing:.4px}
nav.menu a{opacity:.88}nav.menu a:hover{opacity:1}nav.menu a.on{opacity:1;font-weight:700;text-decoration:underline;text-underline-offset:5px}
.spacer{flex:1}
.live{display:flex;align-items:center;gap:7px;background:rgba(0,0,0,.25);padding:5px 12px;border-radius:3px;font-weight:700;font-size:12px;letter-spacing:.6px;text-transform:uppercase;white-space:nowrap}
.live .dot{width:9px;height:9px;border-radius:50%;background:#39ff6a;box-shadow:0 0 0 0 rgba(57,255,106,.7);animation:pulse 1.5s infinite}
.live.closed{background:rgba(0,0,0,.35)}
.live.closed .dot{background:#c3c3c3;animation:none;box-shadow:none}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(57,255,106,.6)}70%{box-shadow:0 0 0 7px rgba(57,255,106,0)}100%{box-shadow:0 0 0 0 rgba(57,255,106,0)}}

/* HERO */
.hero{background:linear-gradient(135deg,var(--hero-a) 0%,var(--hero-b) 55%,var(--hero-c) 100%);color:#fff;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-60px;top:-40px;width:340px;height:340px;background:radial-gradient(circle,var(--accent-glow,rgba(233,100,9,.32)),transparent 65%);pointer-events:none}
.hero-in{max-width:1180px;margin:0 auto;padding:30px 20px 0;position:relative;z-index:1}
.crumb{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:rgba(255,255,255,.65);font-weight:600}
.crumb a:hover{color:#fff}
.crumb .sep{opacity:.4;margin:0 4px}
.preview{display:inline-block;margin-left:8px;background:var(--accent);color:var(--accent-ink);font-size:10px;padding:2px 8px;border-radius:3px;letter-spacing:.5px;vertical-align:middle}
h1.title{font-family:var(--display);font-weight:900;font-size:clamp(38px,6vw,72px);margin:6px 0 2px;color:#fff;text-transform:uppercase;line-height:.95}
.evsub{font-size:15px;color:rgba(255,255,255,.75);font-weight:500;margin-bottom:18px}
.tabs{display:flex;gap:0;margin-top:8px;flex-wrap:wrap}
.tab{font-family:var(--display);font-weight:700;font-size:19px;text-transform:uppercase;letter-spacing:.5px;padding:12px 26px;cursor:pointer;color:rgba(255,255,255,.55);background:transparent;border:none;border-bottom:4px solid transparent;transition:.15s}
.tab:hover{color:#fff}
/* F2-06: .tab e .chipstg viraram <a> clicaveis (RF-PUB-003/005) — reset do UA stylesheet
   (sublinhado + cor de link) pra manter a aparencia identica ao mockup. */
a.tab,a.chipstg{text-decoration:none;color:inherit}
.tab.on{color:#fff;border-bottom-color:var(--accent)}
.tab .n{font-family:var(--body);font-weight:600;font-size:12px;opacity:.7;margin-left:6px}
.statebadge{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;padding:5px 12px;border-radius:3px;margin-bottom:12px}
.statebadge.livehero{background:rgba(57,255,106,.14);color:#7dffa4;border:1px solid rgba(57,255,106,.35)}
.statebadge.livehero .dot{width:8px;height:8px;border-radius:50%;background:#39ff6a;animation:pulse 1.5s infinite}
.statebadge.frozen{background:rgba(255,255,255,.08);color:#d8d3cf;border:1px solid rgba(255,255,255,.2)}

/* STAGE STRIP */
.stagestrip{background:var(--dark2);color:#fff;border-top:1px solid rgba(255,255,255,.07)}
.stage-in{max-width:1180px;margin:0 auto;padding:11px 20px;display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:13px}
.stage-in .upd{margin-left:auto;color:#b9a99f;font-size:12px;display:flex;align-items:center;gap:6px}
.chipstg{padding:5px 12px;border-radius:3px;background:rgba(255,255,255,.07);font-weight:600;letter-spacing:.3px;color:#d9cdc5}
.chipstg.act{background:var(--accent);color:var(--accent-ink)}
.chipstg.ni{opacity:.45}

/* CONTENT */
.wrap{max-width:1180px;margin:0 auto;padding:24px 20px}
/* Card "Tabela full-width" (Wladimir 2026-07-09, smoke visual: colunas espremidas dentro do
   .wrap de 1180px) — a tabela de resultados fica no proprio container, SEM max-width, so
   padding lateral (mesmos 20px do .wrap) — pódio/filtros continuam contidos em .wrap
   (render-page.ts). */
.wrap-table{padding:0 20px 24px}
.sec-h{font-family:var(--display);font-weight:800;font-size:26px;text-transform:uppercase;letter-spacing:.5px;margin:6px 0 16px;display:flex;align-items:center;gap:12px}
.sec-h::before{content:"";width:6px;height:26px;background:var(--accent);display:inline-block}

/* PODIUM */
.podium{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;align-items:stretch;margin-bottom:8px}
.pcard{background:#fff;border:1px solid var(--line);border-top:5px solid var(--silver);border-radius:6px;padding:16px 12px;text-align:center;position:relative;display:flex;flex-direction:column;text-decoration:none;color:inherit;cursor:pointer}
.pcard.p1{border-top-color:var(--gold);box-shadow:0 10px 24px rgba(0,0,0,.08)}
.pcard.p3{border-top-color:var(--bronze)}
.pcard.p4,.pcard.p5{border-top-color:#cfc8c1}
.medal{font-family:var(--display);font-weight:900;font-size:36px;line-height:1;color:var(--silver)}
.pcard.p1 .medal{color:var(--gold);font-size:46px}
.pcard.p3 .medal{color:var(--bronze)}
.pcard.p4 .medal,.pcard.p5 .medal{color:#b7b0a8}
.pnum{display:inline-block;background:var(--black);color:#fff;font-family:var(--display);font-weight:700;font-size:15px;padding:2px 10px;border-radius:3px;margin:8px 0 6px}
.pname{font-family:var(--display);font-weight:700;font-size:17px;text-transform:uppercase;line-height:1.05;margin-bottom:2px}
.pname .co{display:block}
.pnav{font-size:12px;color:var(--muted);margin-bottom:8px}
.pteam{font-size:11px;color:#8a8a8a;text-transform:uppercase;letter-spacing:.3px}
.ptime{font-family:var(--display);font-weight:800;font-size:22px;color:var(--accent);margin-top:auto;padding-top:8px}
.pgap{font-size:12px;color:var(--muted)}

/* FILTERS */
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:22px 0 12px}
.filters select,.filters input{font-family:var(--body);font-size:14px;padding:9px 12px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink)}
.filters input{flex:1;min-width:180px}
.filters select:focus,.filters input:focus{outline:none;border-color:var(--accent)}
.count{font-size:13px;color:var(--muted);font-weight:600;margin-left:auto}

/* TABLE */
.tablewrap{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}
/* Card "Tabela full-width" — o scroll horizontal fica SO no miolo da tabela (nunca no body:
   `.tablewrap` mantem overflow:hidden pros cantos arredondados, `.tablescroll` e quem rola). */
.tablescroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* Card "Seletor de visualizacao" (presets de coluna, assets/tabela.js) — barra de chips acima
   da tabela, discreta (tons neutros do proprio .tablewrap, --accent so no chip ativo). */
.viewpicker{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 12px;background:var(--bg2);border-bottom:1px solid var(--line)}
.viewchip{font-family:var(--body);font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.3px;padding:6px 14px;border-radius:20px;border:1px solid var(--line);background:#fff;color:var(--muted);cursor:pointer;transition:.12s}
.viewchip:hover{border-color:var(--accent);color:var(--ink)}
.viewchip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
table.res{width:100%;border-collapse:collapse;font-size:14px}
table.res thead th{background:var(--black);color:#fff;font-family:var(--display);font-weight:600;text-transform:uppercase;letter-spacing:.5px;font-size:13px;text-align:left;padding:11px 12px;white-space:nowrap}
table.res thead th.r,table.res td.r{text-align:right}
table.res tbody td{padding:11px 12px;border-top:1px solid var(--line);vertical-align:middle}
table.res tbody tr{cursor:pointer;transition:background .12s}
table.res tbody tr:hover{background:var(--row-hover,#fff6f2)}
tr[data-c]{cursor:pointer}
/* Card "Tabela interativa" (assets/tabela.js) — th ordenavel + seta de direcao discreta. */
table.res thead th[data-sort]{cursor:pointer;user-select:none}
table.res thead th[data-sort]:hover{opacity:.85}
table.res thead th[data-sort]::after{content:"\2195";display:inline-block;margin-left:5px;font-size:10px;opacity:.35}
table.res thead th[data-sort][data-sort-dir="asc"]::after{content:"\25B2";opacity:.95}
table.res thead th[data-sort][data-sort-dir="desc"]::after{content:"\25BC";opacity:.95}
.pos{font-family:var(--display);font-weight:800;font-size:18px;width:34px;color:var(--ink)}
.pos.top{color:var(--accent)}
.cnum{font-family:var(--display);font-weight:700;background:var(--bg2);border:1px solid var(--line);border-radius:3px;padding:2px 8px;display:inline-block;min-width:34px;text-align:center}
/* F2-08: o número da linha vira link p/ abrir o modal de detalhe (#c-{numeral}) — neutraliza
   o sublinhado/azul padrão de <a>, mantendo a aparência do .cnum inalterada. */
.chide a{text-decoration:none;color:inherit;cursor:pointer}
/* Paridade com o mockup (fix P0): a célula da tripulação (nome, SEMPRE visível no mobile)
   também abre o modal — .crow neutraliza o <a> pra continuar parecendo texto normal. */
.crow{color:inherit;text-decoration:none;cursor:pointer;display:block}
.crew{font-weight:600}
.crew .co{font-weight:600}
.crewnav{color:var(--muted);font-size:12.5px}
.team{color:var(--muted);font-size:13px}
.model{color:#9a9a9a;font-size:11.5px;text-transform:uppercase}
.total{font-family:var(--display);font-weight:800;font-size:17px}
.gap{color:var(--muted);font-size:13px}
.gap.lead{color:var(--accent);font-weight:700;font-family:var(--display);letter-spacing:.5px}
.catpill{font-size:11px;font-weight:700;color:#fff;background:#7a6a62;border-radius:3px;padding:2px 7px;letter-spacing:.3px}
.dnf{font-size:11px;font-weight:700;color:#fff;background:#b23b3b;border-radius:3px;padding:2px 7px;text-transform:uppercase}
.pen{color:#b23b3b;font-weight:600}
.muted{color:#bbb}
.ptspill{font-family:var(--display);font-weight:700;font-size:15px}

/* PDFS */
.pdfs{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}
.pdfbtn{display:flex;align-items:center;gap:9px;background:var(--black);color:#fff;font-family:var(--display);font-weight:600;text-transform:uppercase;letter-spacing:.5px;font-size:14px;padding:13px 20px;border-radius:4px;border:none;cursor:pointer}
.pdfbtn:hover{background:var(--accent);color:var(--accent-ink)}
.pdfbtn .x{font-size:16px}

/* MODAL */
.ovl{position:fixed;inset:0;background:rgba(10,6,4,.62);display:none;align-items:center;justify-content:center;z-index:80;padding:18px}
.ovl.show{display:flex}
/* F2-08 (RF-PUB-007): abertura/fechamento via CSS :target puro (zero-JS, gate f2-08-modal).
   Cada competidor tem um <div id="c-{numeral}" class="ovl"> pre-renderizado; a navegacao por
   hash (<a href="#c-{numeral}">) o torna :target e visivel, sem recarregar a pagina nem tocar
   query params (?trecho/?cat/?mod/?q permanecem intactos). */
.ovl:target{display:flex}
.modal{background:#fff;border-radius:8px;max-width:520px;width:100%;max-height:88vh;overflow:auto;position:relative;z-index:1}
/* Area de fundo clicavel que fecha o modal (href="#" limpa o hash, preservando os demais
   query params da URL) — fica ATRAS do .modal (z-index inferior), cobrindo todo o overlay. */
.mbackdrop{position:absolute;inset:0}
.mh{background:var(--dark);color:#fff;padding:18px 20px;display:flex;align-items:center;gap:14px;position:relative;z-index:1}
.mh .mnum{font-family:var(--display);font-weight:700;background:var(--accent);color:var(--accent-ink);padding:4px 12px;border-radius:3px;font-size:18px}
.mh .mname{font-family:var(--display);font-weight:700;font-size:22px;text-transform:uppercase;line-height:1}
.mh .mnav{font-size:13px;color:#d9c3b6}
.mclose{margin-left:auto;background:none;border:none;color:#fff;font-size:24px;cursor:pointer;line-height:1;text-decoration:none}
.mbody{padding:18px 20px;position:relative;z-index:1}
.minfo{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.minfo div{font-size:13px}
.minfo b{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-weight:700;margin-bottom:1px}
.splits{width:100%;border-collapse:collapse;font-size:13px}
.splits th{text-align:left;font-family:var(--display);text-transform:uppercase;font-size:12px;color:var(--muted);padding:6px 8px;border-bottom:2px solid var(--line)}
.splits td{padding:8px;border-bottom:1px solid var(--line)}
.splits td.t{font-family:var(--display);font-weight:700}

/* HOME DA VERTICAL */
.vhero{padding:56px 20px 46px;text-align:left}
.vhero .kicker{font-size:13px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.6)}
.vhero h1{font-family:var(--display);font-weight:900;font-size:clamp(44px,7vw,86px);margin:8px 0 6px;color:#fff;text-transform:uppercase;line-height:.92}
.vhero p{max-width:560px;color:rgba(255,255,255,.75);font-size:16px;margin:0 0 22px}
.cta{display:inline-flex;align-items:center;gap:10px;background:var(--accent);color:var(--accent-ink);font-family:var(--display);font-weight:700;font-size:18px;text-transform:uppercase;letter-spacing:.6px;padding:14px 26px;border-radius:4px;transition:.15s}
.cta:hover{filter:brightness(1.08)}
.cta.ghost{background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff;margin-left:10px}
.yearblock{margin-bottom:28px}
.yearh{font-family:var(--display);font-weight:800;font-size:34px;color:#cfc4bc;margin:0 0 12px;display:flex;align-items:center;gap:14px}
.yearh::after{content:"";flex:1;height:1px;background:var(--line)}
.evgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.evcard{background:#fff;border:1px solid var(--line);border-radius:8px;padding:20px;display:flex;flex-direction:column;gap:8px;transition:.15s;position:relative;overflow:hidden}
.evcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--accent)}
.evcard:hover{box-shadow:0 12px 28px rgba(0,0,0,.1);transform:translateY(-2px)}
.evcard .st{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;align-self:flex-start;padding:3px 9px;border-radius:3px}
.evcard .st.live{background:#e8fff0;color:#0a8f3c;padding:3px 9px}
.evcard .st.live .dot{width:7px;height:7px;background:#0fbf4e}
.evcard .st.done{background:var(--bg2);color:var(--muted)}
.evcard h3{font-family:var(--display);font-weight:800;font-size:24px;text-transform:uppercase;margin:0;line-height:1}
.evcard .meta{font-size:13px;color:var(--muted)}
.evcard .go{margin-top:auto;font-family:var(--display);font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.5px;color:var(--accent)}

/* FOOTER */
footer.ft{background:var(--dark);color:#cdbfb6;margin-top:30px}
.ft-in{max-width:1180px;margin:0 auto;padding:22px 20px;display:flex;gap:16px;flex-wrap:wrap;align-items:center;font-size:13px}
.ft-in .by{margin-left:auto;display:flex;gap:18px;align-items:center}
.ft b{color:#fff}
.ft .sites{width:100%;display:flex;gap:16px;flex-wrap:wrap;padding-top:12px;border-top:1px solid rgba(255,255,255,.08);font-size:12px}
.ft .sites a{opacity:.75}.ft .sites a:hover{opacity:1}

/* MOBILE */
@media(max-width:760px){
  .bar-in{flex-wrap:wrap;row-gap:8px}
  nav.menu{display:flex;flex-wrap:wrap;gap:12px 16px;order:3;width:100%;margin-left:0;font-size:13px;letter-spacing:.3px}
  .podium{grid-template-columns:1fr;gap:8px}
  .pcard{padding:12px 14px}
  .pcard .medal{font-size:30px}
  .pcard.p1 .medal{font-size:34px}
  .pcard .pname{font-size:19px}
  .pcard .ptime{font-size:24px;padding-top:4px}
  /* Card "Tabela full-width" (Wladimir 2026-07-09, smoke visual mobile: o cartao antigo so
     mostrava nome+tempo, escondendo largada/parciais/tempos). Mobile deixa de virar cartao —
     continua TABELA de verdade, so que rolando na horizontal dentro de `.tablescroll`
     (zero overflow do body: quem rola e o miolo, nunca a pagina). O seletor de visualizacao
     (presets) ajuda a reduzir colunas antes mesmo do scroll. */
  .wrap-table{padding:0 16px 20px}
  .viewpicker{padding:8px 10px}
  .viewchip{font-size:11.5px;padding:5px 11px}
  table.res{font-size:13px}
  table.res thead th,table.res tbody td{padding:9px 10px}
  .count{margin-left:0}
  .ft-in .by{margin-left:0}
  .vhero{padding:40px 20px 34px}
  .cta.ghost{margin-left:0;margin-top:10px}
}
