/* Festival KGV Fast Lap - tema kgv/fastlap
   Identidade do logo oficial: navy #162F4B + vermelho #D2252F, display italico condensado.
   Mobile-first: lido no celular, no sol, na beira da pista. */

:root {
    --fl-navy: #162F4B;
    --fl-navy-2: #0F2238;
    --fl-navy-3: #213F62;
    --fl-red: #D2252F;
    --fl-red-2: #B01C25;
    --fl-ink: #0E1B2B;
    --fl-ink-2: #4A5A6E;
    --fl-ink-3: #6F7D8F;
    --fl-bg: #EEF1F5;
    --fl-card: #FFFFFF;
    --fl-line: #DCE2EA;
    --fl-ok: #0F7B4E;
    --fl-ok-bg: #E3F4EC;
    --fl-gold: #C9A227;
    --fl-cone: #FF7A1A;
    --fl-display: 'Barlow Condensed', 'Arial Narrow', sans-serif;
    --fl-body: 'Barlow', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --fl-r: 10px;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    background: var(--fl-bg);
    color: var(--fl-ink);
    font: 400 16px/1.45 var(--fl-body);
    font-variant-numeric: tabular-nums;
}
a { color: inherit; }
img { max-width: 100%; height: auto; }
button { font: inherit; color: inherit; }
[hidden] { display: none !important; }

.fl-wrap { width: 100%; max-width: 1080px; margin: 0 auto; padding: 0 16px; }

/* ---------------- Topo ---------------- */
.fl-top { background: var(--fl-navy-2); color: #fff; position: sticky; top: 0; z-index: 20; }
.fl-top-in { display: flex; align-items: center; justify-content: space-between; height: 56px; }
.fl-top-logo img { display: block; height: 30px; width: auto; }
.fl-top-meta { font: 600 13px/1 var(--fl-body); letter-spacing: .04em; text-transform: uppercase; opacity: .85; }
.fl-live { display: inline-flex; align-items: center; gap: 8px; color: #fff; }
.fl-live i { width: 9px; height: 9px; border-radius: 50%; background: var(--fl-red); box-shadow: 0 0 0 0 rgba(210,37,47,.7); animation: fl-pulse 1.6s infinite; }
@keyframes fl-pulse { 70% { box-shadow: 0 0 0 9px rgba(210,37,47,0); } 100% { box-shadow: 0 0 0 0 rgba(210,37,47,0); } }

/* ---------------- Hero ---------------- */
.fl-hero {
    position: relative; overflow: hidden; color: #fff;
    background:
        linear-gradient(115deg, transparent 0 62%, rgba(210,37,47,.95) 62% 64%, transparent 64% 67%, rgba(210,37,47,.55) 67% 68%, transparent 68%),
        repeating-linear-gradient(115deg, rgba(255,255,255,.035) 0 2px, transparent 2px 22px),
        linear-gradient(180deg, var(--fl-navy) 0%, var(--fl-navy-2) 100%);
    padding: 36px 0 54px;
}
.fl-eyebrow { margin: 0 0 14px; font: 600 12px/1.3 var(--fl-body); letter-spacing: .12em; text-transform: uppercase; color: #C8D3E0; }
.fl-h1 {
    margin: 0; font: italic 900 clamp(52px, 13vw, 112px)/.86 var(--fl-display);
    text-transform: uppercase; letter-spacing: -.01em;
}
.fl-h1 em { font-style: italic; color: #fff; background: linear-gradient(transparent 62%, var(--fl-red) 62% 90%, transparent 90%); padding-right: .08em; }
.fl-lead { max-width: 560px; margin: 18px 0 26px; font-size: 17px; color: #DCE4EE; }
.fl-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; max-width: 560px; }
.fl-stats div { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); border-radius: var(--fl-r); padding: 10px 12px; min-width: 0; }
.fl-stats dt { font: 600 11px/1.2 var(--fl-body); letter-spacing: .06em; text-transform: uppercase; color: #AFC0D3; }
.fl-stats dd { margin: 4px 0 0; font: italic 800 32px/1 var(--fl-display); }
.fl-stats dd small { font-size: 18px; color: #AFC0D3; }
.fl-kerb {
    position: absolute; left: -20px; right: -20px; bottom: 0; height: 12px;
    background: repeating-linear-gradient(90deg, var(--fl-red) 0 34px, #fff 34px 68px);
    transform: skewX(-20deg); opacity: .95;
}

/* ---------------- Abas ---------------- */
.fl-tabs { background: var(--fl-card); border-bottom: 1px solid var(--fl-line); position: sticky; top: 56px; z-index: 15; }
.fl-tabs-in { display: flex; gap: 6px; overflow-x: auto; padding-top: 10px; padding-bottom: 10px; scrollbar-width: none; }
.fl-tabs-in::-webkit-scrollbar { display: none; }
.fl-tab {
    flex: 0 0 auto; border: 1px solid var(--fl-line); background: #fff; border-radius: 999px;
    padding: 9px 14px; font: 700 15px/1 var(--fl-display); letter-spacing: .02em; text-transform: uppercase;
    cursor: pointer; white-space: nowrap; color: var(--fl-ink-2);
}
.fl-tab[aria-selected="true"] { background: var(--fl-navy); border-color: var(--fl-navy); color: #fff; box-shadow: inset 0 -3px 0 var(--fl-red); }
.fl-tab:focus-visible, .fl-seg button:focus-visible, .fl-row-h:focus-visible { outline: 3px solid var(--fl-red); outline-offset: 2px; }

/* ---------------- Categoria ---------------- */
.fl-main { padding-top: 22px; padding-bottom: 40px; min-height: 40vh; }
.fl-cat-h { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.fl-cat-h h2 { margin: 0; font: italic 800 34px/1 var(--fl-display); text-transform: uppercase; color: var(--fl-navy); }
.fl-cat-h p { margin: 6px 0 0; color: var(--fl-ink-2); font-size: 14px; max-width: 620px; }
.fl-seg { display: inline-flex; background: #fff; border: 1px solid var(--fl-line); border-radius: 999px; padding: 3px; }
.fl-seg button { border: 0; background: transparent; border-radius: 999px; padding: 8px 14px; font: 700 14px/1 var(--fl-display); text-transform: uppercase; letter-spacing: .03em; cursor: pointer; color: var(--fl-ink-2); }
.fl-seg button[aria-pressed="true"] { background: var(--fl-red); color: #fff; }

.fl-prog { display: flex; align-items: center; gap: 6px; margin: 0 0 14px; flex-wrap: wrap; }
.fl-prog span { font: 700 12px/1 var(--fl-display); padding: 5px 8px; border-radius: 6px; background: #fff; border: 1px dashed var(--fl-line); color: var(--fl-ink-3); }
.fl-prog span.on { background: var(--fl-navy); border: 1px solid var(--fl-navy); color: #fff; }
.fl-prog a { font: 700 12px/1 var(--fl-display); padding: 5px 8px; border-radius: 6px; text-decoration: none; background: var(--fl-navy); border: 1px solid var(--fl-navy); color: #fff; }
.fl-prog a:hover { background: var(--fl-red); border-color: var(--fl-red); }
.fl-prog em { font-style: normal; font-size: 13px; color: var(--fl-ink-2); margin-left: 4px; }

.fl-vazio { background: var(--fl-card); border: 1px solid var(--fl-line); border-left: 5px solid var(--fl-red); border-radius: var(--fl-r); padding: 22px 20px; display: grid; gap: 6px; }
.fl-vazio strong { font: italic 800 24px/1.1 var(--fl-display); text-transform: uppercase; color: var(--fl-navy); }
.fl-vazio span { color: var(--fl-ink-2); }

/* Podio do momento */
.fl-podio { list-style: none; margin: 0 0 14px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.fl-podio li { background: var(--fl-navy); color: #fff; border-radius: var(--fl-r); padding: 10px 10px 9px; display: grid; gap: 2px; position: relative; overflow: hidden; min-width: 0; }
.fl-podio li::after { content: ""; position: absolute; right: -16px; top: 0; bottom: 0; width: 26px; background: var(--fl-red); transform: skewX(-18deg); opacity: .9; }
.fl-podio li.p1 { background: linear-gradient(135deg, var(--fl-navy-3), var(--fl-navy)); }
.fl-podio li.p1::after { background: var(--fl-gold); }
.fl-podio-pos { font: italic 900 22px/1 var(--fl-display); }
.fl-podio-nome { font: 700 13px/1.2 var(--fl-body); padding-right: 12px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.4em; }
.fl-podio-t { font: italic 800 19px/1 var(--fl-display); margin-top: 2px; }
.fl-podio-gap { font-size: 12px; color: #B9C7D8; }

/* Placar */
.fl-board { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.fl-row { background: var(--fl-card); border: 1px solid var(--fl-line); border-radius: var(--fl-r); overflow: hidden; }
.fl-row.is-final { border-left: 4px solid var(--fl-ok); }
.fl-row.is-campeao { border-left: 4px solid var(--fl-gold); background: linear-gradient(90deg, #FFF8E1, #fff 40%); }
.is-corrida .fl-row.has-dq .fl-nome { color: var(--fl-red-2); }
.fl-row-h {
    width: 100%; border: 0; background: transparent; text-align: left; cursor: pointer;
    display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; grid-template-areas: "pos nome soma" "chips chips chips";
    align-items: center; column-gap: 10px; row-gap: 8px; padding: 10px 12px;
}
div.fl-row-h { cursor: default; }
.fl-pos { grid-area: pos; font: italic 900 24px/1 var(--fl-display); color: var(--fl-navy); text-align: center; }
.fl-nome { grid-area: nome; font-weight: 700; font-size: 16px; line-height: 1.2; min-width: 0; overflow-wrap: anywhere; }
.fl-tag { display: inline-block; margin-left: 6px; vertical-align: 2px; font: 700 10px/1 var(--fl-body); letter-spacing: .06em; text-transform: uppercase; padding: 3px 6px; border-radius: 4px; background: var(--fl-ok-bg); color: var(--fl-ok); }
.fl-tag.is-parcial { background: #EDF0F4; color: var(--fl-ink-2); }
.fl-tag.is-ouro { background: var(--fl-gold); color: #2B2100; }
.fl-soma { grid-area: soma; text-align: right; display: grid; }
.fl-soma b { font: italic 800 22px/1 var(--fl-display); color: var(--fl-ink); }
.fl-soma small { font-size: 12px; color: var(--fl-ink-3); white-space: nowrap; }
.fl-row:not(.is-final) .fl-soma small { color: var(--fl-red-2); }
.fl-chips { grid-area: chips; display: flex; flex-wrap: wrap; gap: 6px; }

/* Chip de kart */
.fl-chip {
    display: inline-flex; align-items: center; gap: 6px; border-radius: 7px; padding: 4px 8px 4px 4px;
    background: #F3F5F8; border: 1px solid var(--fl-line); font-size: 13px; line-height: 1;
}
.fl-chip-n { font: 800 11px/1 var(--fl-display); background: var(--fl-ink-3); color: #fff; padding: 3px 5px; border-radius: 4px; letter-spacing: .03em; }
.fl-chip-t { font-weight: 700; }
.fl-chip-kart { font-size: 11px; color: var(--fl-ink-3); }
.fl-chip.is-conta { background: #fff; border-color: var(--fl-navy); }
.fl-chip.is-conta .fl-chip-n { background: var(--fl-navy); }
.fl-chip.is-descartada { opacity: .6; }
.fl-chip.is-descartada .fl-chip-t { text-decoration: line-through; text-decoration-thickness: 2px; text-decoration-color: var(--fl-red); }
.fl-chip.is-dq { background: #FDECEE; border-color: #F4B7BC; color: var(--fl-red-2); }
.fl-chip.is-dq .fl-chip-n { background: var(--fl-red); }
.fl-chip.is-ausente, .fl-chip.is-vazio { background: transparent; border-style: dashed; color: var(--fl-ink-3); }
.fl-cone { display: inline-flex; align-items: center; gap: 1px; font: 700 11px/1 var(--fl-body); color: #B34E00; }
.fl-cone svg { width: 14px; height: 14px; }

/* Linha de corte */
.fl-corte { list-style: none; position: relative; text-align: center; margin: 6px 0; }
.fl-corte::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 2px dashed var(--fl-red); }
.fl-corte span { position: relative; background: var(--fl-bg); padding: 0 10px; font: italic 800 13px/1 var(--fl-display); letter-spacing: .06em; text-transform: uppercase; color: var(--fl-red-2); }

/* Volta a volta */
.fl-row-d { border-top: 1px solid var(--fl-line); padding: 12px; background: #FAFBFC; display: grid; gap: 14px; }
.fl-vav-h { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; font-weight: 700; font-size: 14px; color: var(--fl-navy); margin-bottom: 6px; }
.fl-vav-h span { font-weight: 500; color: var(--fl-ink-2); font-size: 13px; }
.fl-vav-msg { margin: 0; color: var(--fl-ink-2); font-size: 14px; }
.fl-bars { display: flex; align-items: flex-end; gap: 3px; height: 64px; }
.fl-bar { flex: 1 1 0; max-width: 22px; height: var(--h); min-height: 4px; background: #B8C4D3; border-radius: 3px 3px 0 0;
    transform-origin: bottom; animation: fl-sobe .55s cubic-bezier(.2, .8, .2, 1) both; animation-delay: calc(var(--i, 0) * 35ms); }
@keyframes fl-sobe { from { transform: scaleY(0); opacity: .3; } to { transform: scaleY(1); opacity: 1; } }
.fl-bar.is-best { animation-name: fl-sobe, fl-brilho; animation-duration: .55s, 1.2s; animation-delay: calc(var(--i, 0) * 35ms), calc(var(--i, 0) * 35ms + .55s); }
@keyframes fl-brilho { 0%, 100% { box-shadow: 0 0 0 0 rgba(210,37,47,0); } 50% { box-shadow: 0 0 0 4px rgba(210,37,47,.25); } }
.fl-bar:hover { filter: brightness(.9); }
.fl-bars { padding-top: 20px; box-sizing: content-box; }
.fl-bar { position: relative; }
.fl-bar[data-t]::after { content: attr(data-t); position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); margin-bottom: 3px;
    font: 700 11px/1 var(--fl-body); color: var(--fl-red-2); white-space: nowrap; }
.fl-bar.is-best { background: var(--fl-red); }
.fl-bar.is-excl { background: repeating-linear-gradient(135deg, var(--fl-cone) 0 4px, #fff 4px 8px); }
.fl-row-mv { margin: 0; font-size: 13px; color: var(--fl-ink-2); }

/* ---------------- Regras ---------------- */
.fl-regras { background: var(--fl-navy); color: #fff; padding: 40px 0 34px; }
.fl-h2 { margin: 0 0 18px; font: italic 900 38px/1 var(--fl-display); text-transform: uppercase; }
.fl-regras-grid { display: grid; gap: 12px; }
.fl-regras article { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-top: 4px solid var(--fl-red); border-radius: var(--fl-r); padding: 16px; }
.fl-regras h3 { margin: 0 0 8px; font: italic 800 22px/1.05 var(--fl-display); text-transform: uppercase; }
.fl-regras h3 small { display: block; font: 600 13px/1.3 var(--fl-body); text-transform: none; color: #B9C7D8; margin-top: 3px; }
.fl-regras p { margin: 0 0 8px; color: #DCE4EE; font-size: 15px; }
.fl-legenda { margin: 28px 0 0; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.12); display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; font-size: 14px; color: #DCE4EE; }
.fl-legenda .fl-chip { color: var(--fl-ink); }

/* ---------------- Rodape ---------------- */
.fl-foot { background: var(--fl-navy-2); color: #AFC0D3; padding: 26px 0 34px; font-size: 13px; }
.fl-foot-in { display: grid; gap: 6px; justify-items: start; }
.fl-foot img { height: 26px; width: auto; display: block; }
.fl-foot-logos { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-bottom: 10px; }
.fl-foot-logos a { padding-left: 24px; border-left: 1px solid rgba(255,255,255,.18); }
.fl-foot p { margin: 0; }
.fl-foot a { color: #fff; }

/* ---------------- Telas maiores ---------------- */
@media (min-width: 720px) {
    .fl-hero { padding: 56px 0 72px; }
    .fl-bars { height: 130px; gap: 5px; }
    .fl-bar { max-width: 44px; border-radius: 5px 5px 0 0; }
    .fl-row-d { padding: 18px 22px; gap: 22px; }
    .fl-row-d .fl-vav-h { font-size: 15px; }
    .fl-row-h { grid-template-columns: 44px minmax(160px, 1.2fr) minmax(0, 2fr) 130px; grid-template-areas: "pos nome chips soma"; }
    .fl-podio li { padding: 16px 18px 14px; }
    .fl-podio-t { font-size: 28px; }
    .fl-podio-pos { font-size: 28px; }
    .fl-podio-nome { font-size: 16px; min-height: 0; }
    .fl-regras-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 380px) {
    .fl-stats dd { font-size: 26px; }
    .fl-podio-t { font-size: 17px; }
}

@media (prefers-reduced-motion: reduce) {
    .fl-live i, .fl-bar, .fl-cta.is-live i { animation: none; }
}

/* ---------------- Pacote sabado: CTAs, transmissao, ficha, recordes, docs, FAQ ---------------- */
.fl-live { text-decoration: none; }
.fl-btn-top { display: inline-block; background: var(--fl-red); color: #fff; text-decoration: none; padding: 9px 14px; border-radius: 999px; font: 700 14px/1 var(--fl-display); letter-spacing: .04em; text-transform: uppercase; }
.fl-ctas { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.fl-cta { display: inline-flex; align-items: center; gap: 9px; background: var(--fl-red); color: #fff; text-decoration: none; padding: 14px 20px; border-radius: 10px; font: italic 800 20px/1 var(--fl-display); text-transform: uppercase; letter-spacing: .02em; box-shadow: 0 6px 18px rgba(210,37,47,.35); }
.fl-cta.is-live { background: #fff; color: var(--fl-navy); box-shadow: none; }
.fl-cta.is-live i { width: 10px; height: 10px; border-radius: 50%; background: var(--fl-red); animation: fl-pulse 1.6s infinite; }
.fl-atalhos { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 20px; font-size: 14px; }
.fl-atalhos a { color: #C8D3E0; text-decoration: none; border-bottom: 1px solid rgba(200,211,224,.35); padding-bottom: 2px; }
.fl-atalhos a:hover { color: #fff; }

.fl-tv { background: var(--fl-navy-2); padding: 0 0 18px; }
.fl-tv-h { color: #fff; font: 600 13px/1 var(--fl-body); letter-spacing: .06em; text-transform: uppercase; padding: 14px 0 10px; }
.fl-tv-frame { position: relative; aspect-ratio: 16 / 9; border-radius: var(--fl-r); overflow: hidden; background: #000; }
.fl-tv-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.fl-selos { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; }
.fl-selo { font-style: normal; font-size: 12px; font-weight: 600; padding: 3px 7px; border-radius: 4px; background: #EDF0F4; color: var(--fl-ink-2); }
.fl-selo.is-top { background: var(--fl-red); color: #fff; }
.fl-selo.is-melhor { background: var(--fl-ok-bg); color: var(--fl-ok); }
.fl-vav-link { display: inline-block; margin-top: 8px; font-size: 13px; font-weight: 700; color: var(--fl-navy); }

.fl-sec { padding: 36px 0; background: var(--fl-bg); }
.fl-sec.is-branca { background: var(--fl-card); }
.fl-h2.is-dark { color: var(--fl-navy); margin-bottom: 6px; }
.fl-sec-sub { margin: 0 0 18px; color: var(--fl-ink-2); font-size: 14px; max-width: 640px; }

.fl-rec-grid { display: grid; gap: 12px; }
.fl-rec { background: var(--fl-navy); color: #fff; border-radius: var(--fl-r); padding: 18px; position: relative; overflow: hidden; }
.fl-rec::after { content: ""; position: absolute; right: -18px; top: 0; bottom: 0; width: 34px; background: var(--fl-red); transform: skewX(-18deg); }
.fl-rec h3 { margin: 0; font: 600 12px/1.3 var(--fl-body); letter-spacing: .08em; text-transform: uppercase; color: #AFC0D3; }
.fl-rec-t { margin: 8px 0 2px; font: italic 900 46px/1 var(--fl-display); }
.fl-rec-nome { margin: 0; font-weight: 700; font-size: 17px; }
.fl-rec-meta { margin: 2px 0 0; font-size: 13px; color: #C8D3E0; padding-right: 20px; }
.fl-rec-lista { margin: 14px 0 0; padding: 12px 0 0 18px; border-top: 1px solid rgba(255,255,255,.15); display: grid; gap: 6px; font-size: 14px; }
.fl-rec-lista li { padding-right: 34px; }
#placar, .fl-sec, .fl-regras { scroll-margin-top: 118px; }
.fl-rec-lista li span { display: inline; }
.fl-rec-lista small { color: #AFC0D3; }
.fl-rec-lista b { float: right; font-variant-numeric: tabular-nums; }

.fl-docs { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.fl-docs a { display: flex; align-items: center; gap: 12px; background: var(--fl-card); border: 1px solid var(--fl-line); border-radius: var(--fl-r); padding: 12px 14px; text-decoration: none; color: var(--fl-ink); }
.fl-docs a:hover { border-color: var(--fl-navy); }
.fl-docs-ico { flex: 0 0 auto; font: 800 12px/1 var(--fl-display); background: var(--fl-red); color: #fff; padding: 8px 7px; border-radius: 6px; }
.fl-docs b { display: block; }
.fl-docs small { color: var(--fl-ink-2); }

.fl-folhas { color: var(--fl-ink); }

.fl-faq { display: grid; gap: 8px; max-width: 820px; }
.fl-faq details { border: 1px solid var(--fl-line); border-radius: var(--fl-r); background: var(--fl-card); }
.fl-faq summary { cursor: pointer; list-style: none; padding: 14px 44px 14px 16px; font-weight: 700; position: relative; }
.fl-faq summary::-webkit-details-marker { display: none; }
.fl-faq summary::after { content: "+"; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); font: 800 22px/1 var(--fl-display); color: var(--fl-red); }
.fl-faq details[open] summary::after { content: "\2212"; }
.fl-faq-r { padding: 0 16px 16px; color: var(--fl-ink-2); }

@media (min-width: 720px) {
    .fl-rec-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------------- Paginas internas (URL amigavel) ---------------- */
.fl-hero.is-compacta { padding: 22px 0 36px; }
.fl-h1.is-compacta { font-size: clamp(40px, 10vw, 76px); line-height: .9; }
.fl-migalha { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 13px; color: #AFC0D3; margin-bottom: 10px; }
.fl-migalha a { color: #C8D3E0; text-decoration: none; border-bottom: 1px solid rgba(200,211,224,.35); }
.fl-cat-h h2 a { color: inherit; text-decoration: none; }
.fl-tab { text-decoration: none; }
.fl-ficha-link { display: inline-block; margin-top: 4px; font-size: 14px; font-weight: 700; color: var(--fl-red-2); }
.fl-rec-nome a, .fl-rec-lista a { color: inherit; }
.fl-h2.is-sm { font-size: 26px; margin: 22px 0 10px; }

.fl-ficha { background: var(--fl-card); border: 1px solid var(--fl-line); border-radius: var(--fl-r); padding: 16px; margin-bottom: 16px; }
.fl-ficha-resumo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.fl-ficha-resumo div { background: var(--fl-bg); border-radius: 8px; padding: 10px 12px; min-width: 0; }
.fl-ficha-resumo span { display: block; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--fl-ink-3); }
.fl-ficha-resumo b { display: block; font: italic 800 24px/1.1 var(--fl-display); color: var(--fl-navy); overflow-wrap: anywhere; }
.fl-ficha-resumo b a { color: inherit; text-decoration: none; }
.fl-ficha-status { margin: 0 0 12px; color: var(--fl-ink-2); }
.fl-row-d.is-aberto { border: 1px solid var(--fl-line); border-radius: var(--fl-r); }

.fl-mais { display: grid; gap: 10px; }
.fl-mais-card { display: grid; gap: 4px; padding: 16px 18px; border-radius: var(--fl-r); background: var(--fl-navy); color: #fff; text-decoration: none; border-left: 5px solid var(--fl-red); }
.fl-mais-card b { font: italic 800 24px/1.05 var(--fl-display); text-transform: uppercase; }
.fl-mais-card span { color: #C8D3E0; font-size: 14px; }

@media (min-width: 720px) {
    .fl-ficha-resumo { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .fl-mais { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------------- Programacao e tracado ---------------- */
.fl-prog-dia { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; max-width: 760px; }
.fl-prog-dia li { display: grid; grid-template-columns: 62px minmax(0, 1fr) auto; align-items: center; gap: 12px; background: var(--fl-bg); border-radius: 8px; padding: 10px 14px; border-left: 4px solid var(--fl-navy); }
.fl-prog-dia li.is-final { border-left-color: var(--fl-red); background: #FFF4F4; }
.fl-prog-dia time { font: italic 800 22px/1 var(--fl-display); color: var(--fl-navy); }
.fl-prog-at { min-width: 0; display: grid; }
.fl-prog-at b { font-weight: 700; }
.fl-prog-at small { color: var(--fl-ink-2); font-size: 13px; }
.fl-prog-dur { font-size: 13px; color: var(--fl-ink-3); white-space: nowrap; }
.fl-tracado { margin: 0; border-radius: var(--fl-r); overflow: hidden; border: 1px solid var(--fl-line); background: #0F2238; }
.fl-tracado img { display: block; width: 100%; height: auto; }

/* ---------------- Paginas compartilhadas na casca Fast Lap (ex: Analise 360) ---------------- */
.fl-btn-top.is-ghost { background: transparent; border: 1px solid rgba(255,255,255,.35); color: #fff; }
.fl-pagina-compartilhada { background: var(--fl-bg); }
.fl-pagina-compartilhada .fl-top a { text-decoration: none; }
.fl-pagina-compartilhada #breadcrumbs {
    position: relative; overflow: hidden; color: #fff; padding: 22px 0 34px; margin: 0;
    background: linear-gradient(115deg, transparent 0 70%, rgba(210,37,47,.9) 70% 72%, transparent 72%), linear-gradient(180deg, var(--fl-navy) 0%, var(--fl-navy-2) 100%);
}
.fl-pagina-compartilhada #breadcrumbs::after { content: ""; position: absolute; left: -20px; right: -20px; bottom: 0; height: 10px;
    background: repeating-linear-gradient(90deg, var(--fl-red) 0 34px, #fff 34px 68px); transform: skewX(-20deg); }
.fl-pagina-compartilhada #breadcrumbs .container { max-width: 1080px; padding: 0 16px; }
.fl-pagina-compartilhada #cabecalho { list-style: none; display: flex; gap: 8px; padding: 0; margin: 0 0 8px; font-size: 13px; color: #AFC0D3; }
.fl-pagina-compartilhada #cabecalho li + li::before { content: "\203A"; margin-right: 8px; }
.fl-pagina-compartilhada #cabecalho a { color: #C8D3E0; }
.fl-pagina-compartilhada .page-title { margin: 0; color: #fff; font: italic 900 clamp(34px, 8vw, 64px)/.95 var(--fl-display); text-transform: uppercase; }
.fl-pagina-compartilhada .fl-foot { margin-top: 40px; }

/* ---------------- Paginas de sessao (bateria/final) e do piloto na sessao ---------------- */
.fl-sess-nav { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 6px; margin-bottom: 14px; scrollbar-width: thin; }
.fl-sess-nav a { flex: 0 0 auto; text-decoration: none; padding: 7px 12px; border-radius: 999px; border: 1px solid var(--fl-line); background: #fff; color: var(--fl-ink-2); font: 700 13px/1 var(--fl-display); text-transform: uppercase; letter-spacing: .02em; white-space: nowrap; }
.fl-sess-nav a.is-on { background: var(--fl-navy); border-color: var(--fl-navy); color: #fff; box-shadow: inset 0 -3px 0 var(--fl-red); }
.fl-board.is-sessao .fl-row-h { grid-template-columns: 34px minmax(0, 1fr) auto; grid-template-areas: "pos nome soma"; }
.fl-board.is-sessao .fl-nome a { color: inherit; }
.fl-tag.is-tl { background: #FFF1E6; color: #B34E00; }
.fl-ficha-nota { display: block; font-size: 11px; color: var(--fl-ink-3); margin-top: 2px; }
.fl-ficha-acoes { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: center; margin-top: 12px; }
.fl-cta.is-coach { border: 0; cursor: pointer; font-size: 17px; padding: 12px 16px; background: var(--fl-navy); box-shadow: none; }

.fl-calor-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--fl-line); border-radius: 8px; }
.fl-calor { border-collapse: separate; border-spacing: 2px; font-size: 11px; min-width: 100%; }
.fl-calor th { font-weight: 600; color: var(--fl-ink-3); padding: 4px; text-align: center; white-space: nowrap; }
.fl-calor tbody th { text-align: left; color: var(--fl-ink); position: sticky; left: 0; background: #fff; z-index: 1; padding-right: 8px; font-size: 12px; }
.fl-calor td { min-width: 30px; height: 26px; border-radius: 4px; text-align: center; padding: 0 2px; animation: fl-aparece .4s ease both; }
.fl-calor td span { display: none; font-variant-numeric: tabular-nums; }
@keyframes fl-aparece { from { opacity: 0; transform: scale(.6); } to { opacity: 1; transform: scale(1); } }
.fl-calor td.is-c0, .fl-calor-leg .is-c0 { background: var(--fl-red); color: #fff; }
.fl-calor td.is-c1, .fl-calor-leg .is-c1 { background: #162F4B; color: #fff; }
.fl-calor td.is-c2, .fl-calor-leg .is-c2 { background: #46617F; color: #fff; }
.fl-calor td.is-c3, .fl-calor-leg .is-c3 { background: #8EA2B8; color: #fff; }
.fl-calor td.is-c4, .fl-calor-leg .is-c4 { background: #D7DEE7; color: var(--fl-ink-2); }
.fl-calor td.is-vazio { background: transparent; }
.fl-calor td.is-excl, .fl-calor-leg .is-excl { background: repeating-linear-gradient(135deg, var(--fl-cone) 0 4px, #fff 4px 8px); }
.fl-calor td.is-valeu { outline: 2px solid var(--fl-gold); outline-offset: 1px; }
.fl-calor-leg { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 12px; color: var(--fl-ink-2); margin: 10px 0 0; }
.fl-calor-leg span { display: inline-block; width: 14px; height: 14px; border-radius: 3px; vertical-align: middle; }

.fl-grade-final { border-collapse: collapse; width: 100%; font-size: 14px; }
.fl-grade-final th, .fl-grade-final td { padding: 8px 10px; border-bottom: 1px solid var(--fl-line); text-align: center; white-space: nowrap; font-variant-numeric: tabular-nums; }
.fl-grade-final tbody th { text-align: left; }
.fl-grade-final thead th { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--fl-ink-3); }
.fl-grade-final td.is-desc { text-decoration: line-through; text-decoration-color: var(--fl-red); opacity: .55; }
.fl-grade-final td.is-top { color: var(--fl-red-2); font-weight: 700; }
.fl-grade-final tr.is-eu { background: #FFF8E1; }
.fl-grade-final tr.is-campeao th { color: var(--fl-navy); }
.fl-grade-final a { color: inherit; }
.fl-soma-c b { font: italic 800 18px/1 var(--fl-display); }

.fl-ritmo { width: 100%; height: auto; display: block; }
.fl-ritmo-grade { stroke: var(--fl-line); stroke-width: 1; }
.fl-ritmo-eixo { font-size: 10px; fill: var(--fl-ink-3); }
.fl-ritmo-linha { fill: none; stroke-width: 2.5; stroke-dasharray: 1; stroke-dashoffset: 1; animation: fl-traco 1.1s ease forwards; }
@keyframes fl-traco { to { stroke-dashoffset: 0; } }
.fl-ritmo-ponto { stroke: #fff; stroke-width: 1.5; }
.fl-ritmo-linha.is-s0 { stroke: var(--fl-red); } .fl-ritmo-ponto.is-s0 { fill: var(--fl-red); }
.fl-ritmo-linha.is-s1 { stroke: var(--fl-navy); } .fl-ritmo-ponto.is-s1 { fill: var(--fl-navy); }
.fl-ritmo-linha.is-s2 { stroke: #8EA2B8; } .fl-ritmo-ponto.is-s2 { fill: #8EA2B8; }
.fl-ritmo-leg { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; margin: 8px 0 0; }
.fl-ritmo-leg span::before { content: ""; display: inline-block; width: 14px; height: 3px; border-radius: 2px; margin-right: 6px; vertical-align: middle; }
.fl-ritmo-leg .is-s0::before { background: var(--fl-red); } .fl-ritmo-leg .is-s1::before { background: var(--fl-navy); } .fl-ritmo-leg .is-s2::before { background: #8EA2B8; }
@media (min-width: 720px) {
    .fl-calor td { min-width: 52px; height: 30px; }
    .fl-calor td span { display: inline; font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) { .fl-calor td, .fl-ritmo-linha { animation: none; stroke-dashoffset: 0; } }
