:root {
    color-scheme: dark;
    --bg: #09090b;
    --surface: #121216;
    --surface-2: #19191f;
    --border: rgba(255,255,255,.1);
    --text: #f5f5f7;
    --muted: #9b9ba7;
    --accent: #e10600;
    --accent-soft: rgba(225,6,0,.14);
    --radius: 20px;
    --shadow: 0 18px 50px rgba(0,0,0,.22);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    min-height: 100vh;
    background:
        radial-gradient(circle at 80% -10%, rgba(225,6,0,.16), transparent 35%),
        var(--bg);
    color: var(--text);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button { color: inherit; }

.site-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 1rem max(1rem, calc((100vw - 1180px)/2));
    background: rgba(9,9,11,.84);
    border-bottom: 1px solid var(--border);
    backdrop-filter: blur(18px);
}

.brand { display: flex; align-items: center; gap: .8rem; }
.brand-mark {
    display: grid;
    place-items: center;
    width: 48px;
    height: 34px;
    background: var(--accent);
    border-radius: 8px 14px 8px 8px;
    font-weight: 900;
    font-style: italic;
}
.brand span:last-child { display: grid; }
.brand small { color: var(--muted); }

.main-nav { display: flex; gap: .35rem; }
.main-nav a {
    padding: .7rem .9rem;
    border-radius: 10px;
    color: var(--muted);
}
.main-nav a:hover,
.main-nav a.active { color: white; background: rgba(255,255,255,.07); }

.nav-toggle { display: none; background: none; border: 1px solid var(--border); border-radius: 10px; padding: .6rem .8rem; }

.page-shell {
    width: min(1180px, calc(100% - 2rem));
    margin: 0 auto;
    padding: 3rem 0 5rem;
}

.hero {
    display: grid;
    grid-template-columns: 1.6fr .8fr;
    align-items: end;
    gap: 2rem;
    padding: clamp(2rem, 5vw, 5rem);
    min-height: 440px;
    border: 1px solid var(--border);
    border-radius: 30px;
    background:
        linear-gradient(135deg, rgba(255,255,255,.04), rgba(255,255,255,.01)),
        repeating-linear-gradient(135deg, transparent 0 30px, rgba(255,255,255,.018) 30px 31px);
    overflow: hidden;
    position: relative;
}

.hero::after {
    content: "26";
    position: absolute;
    right: -2rem;
    top: -5rem;
    font-size: clamp(14rem, 30vw, 28rem);
    line-height: 1;
    font-weight: 900;
    color: rgba(255,255,255,.025);
    pointer-events: none;
}

.eyebrow {
    display: inline-block;
    color: #ff5b56;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.hero h1, .page-heading h1 {
    margin: .55rem 0 1rem;
    font-size: clamp(2.6rem, 6vw, 5.8rem);
    line-height: .95;
    letter-spacing: -.055em;
}
.page-heading h1 { font-size: clamp(2.4rem, 5vw, 4.8rem); }
.hero p, .page-heading p { color: var(--muted); font-size: 1.1rem; max-width: 700px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.5rem; position: relative; z-index: 1; }

.button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 46px;
    padding: .8rem 1.1rem;
    border: 1px solid transparent;
    border-radius: 12px;
    cursor: pointer;
    font-weight: 750;
}
.button.primary { background: var(--accent); color: white; }
.button.secondary { background: white; color: #111; }
.button.ghost { border-color: var(--border); background: rgba(255,255,255,.03); }
.button.full { width: 100%; }
.large-button { min-height: 58px; }

.hero-panel {
    position: relative;
    z-index: 1;
    padding: 1.4rem;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: rgba(0,0,0,.38);
}
.hero-panel-label, .hero-panel small { color: var(--muted); }
.hero-panel strong { display: block; margin: .4rem 0 1rem; font-size: 2rem; }
.progress-track { height: 10px; background: rgba(255,255,255,.08); border-radius: 999px; overflow: hidden; }
.progress-track span { display: block; height: 100%; background: var(--accent); border-radius: inherit; }

.metric-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin: 1rem 0 2rem;
}
.metric-card, .panel, .table-panel, .constructor-card, .race-card, .auth-card {
    border: 1px solid var(--border);
    background: var(--surface);
    border-radius: var(--radius);
}
.metric-card { padding: 1.25rem; }
.metric-card span, .metric-card small { color: var(--muted); }
.metric-card strong { display: block; margin: .5rem 0 .3rem; font-size: 1.35rem; }

.dashboard-grid, .admin-layout {
    display: grid;
    grid-template-columns: 1.35fr .65fr;
    gap: 1rem;
}
.panel { padding: 1.3rem; }
.section-heading, .page-heading, .form-toolbar, .admin-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}
.section-heading h2, .form-toolbar h2 { margin: .3rem 0 0; }
.section-heading a { color: #ff6863; }

.ranking-list { margin-top: 1rem; }
.ranking-row {
    display: grid;
    grid-template-columns: 34px 5px 1fr auto;
    gap: .8rem;
    align-items: center;
    padding: .9rem 0;
    border-top: 1px solid var(--border);
}
.rank { color: var(--muted); font-weight: 800; }
.driver-accent, .entry-accent { height: 36px; border-radius: 999px; background: var(--team-color); }
.ranking-main { display: grid; }
.ranking-main small, .block, .result-entry small { color: var(--muted); }
.points { font-size: 1.05rem; }

.round-pill, .status-badge, .mini-tag {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: .3rem .65rem;
    border-radius: 999px;
    background: var(--accent-soft);
    color: #ff6c67;
    font-size: .78rem;
    font-weight: 800;
}
.status-badge.large { min-height: 38px; padding-inline: 1rem; }
.mini-tag { min-height: 24px; }

.next-race {
    display: flex;
    gap: 1rem;
    margin: 1.7rem 0;
    padding: 1.4rem 0;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}
.circuit-line { width: 8px; border-radius: 99px; background: var(--accent); }
.next-race p { color: var(--muted); }

.page-heading { margin-bottom: 2rem; }
.page-heading > div { max-width: 820px; }

.calendar-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}
.race-card {
    padding: 1.25rem;
    position: relative;
    overflow: hidden;
    transition: transform .2s ease, border-color .2s ease;
}
.race-card:hover { transform: translateY(-3px); border-color: rgba(255,255,255,.25); }
.race-card.completed::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: var(--accent);
}
.race-topline, .race-meta { display: flex; justify-content: space-between; gap: .5rem; color: var(--muted); font-size: .85rem; }
.race-card h2 { margin-bottom: .35rem; }
.race-card p { color: var(--muted); min-height: 44px; }
.race-meta { margin: 1.3rem 0; border-top: 1px solid var(--border); padding-top: 1rem; }
.card-link { font-weight: 800; color: #ff6863; }

.table-panel { overflow: hidden; }
.table-scroll { overflow-x: auto; }
.standings-table { width: 100%; border-collapse: collapse; min-width: 900px; }
.standings-table th {
    color: var(--muted);
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    text-align: left;
    padding: 1rem;
    border-bottom: 1px solid var(--border);
}
.standings-table td { padding: 1rem; border-bottom: 1px solid var(--border); }
.standings-table tbody tr:hover { background: rgba(255,255,255,.025); }
.driver-cell { display: flex; align-items: center; gap: .8rem; }
.driver-cell > span:last-child { display: grid; }
.driver-cell small { color: var(--muted); }
.driver-number {
    display: grid;
    place-items: center;
    min-width: 38px;
    height: 38px;
    border-radius: 10px;
    background: var(--surface-2);
    font-weight: 900;
}
.team-badge { display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap; }
.team-badge small { color: var(--muted); }
.team-dot { width: 8px; height: 28px; border-radius: 999px; background: var(--team-color); }

.constructor-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.constructor-card { padding: 1.35rem; display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; }
.constructor-rank { font-size: 2rem; color: var(--muted); font-weight: 900; }
.constructor-main { display: flex; align-items: center; gap: .8rem; }
.constructor-stripe { width: 8px; height: 52px; border-radius: 999px; background: var(--team-color); }
.constructor-main small { color: var(--muted); }
.constructor-main h2 { margin: .15rem 0; }
.constructor-points { text-align: right; }
.constructor-points strong { display: block; font-size: 2rem; }
.constructor-points span { color: var(--muted); }
.constructor-stats { grid-column: 2 / -1; display: flex; gap: 1rem; flex-wrap: wrap; color: var(--muted); border-top: 1px solid var(--border); padding-top: 1rem; }

.empty-state {
    padding: 4rem 2rem;
    border: 1px dashed var(--border);
    border-radius: var(--radius);
    text-align: center;
}
.empty-state p { color: var(--muted); }

.auth-shell { min-height: 60vh; display: grid; place-items: center; }
.auth-card { width: min(440px, 100%); padding: 2rem; }
.stack-form { display: grid; gap: 1rem; margin-top: 1.5rem; }

label { display: grid; gap: .45rem; color: var(--muted); font-size: .9rem; }
input, select {
    width: 100%;
    border: 1px solid var(--border);
    background: var(--surface-2);
    color: var(--text);
    border-radius: 11px;
    padding: .78rem .85rem;
}
input:focus, select:focus { outline: 2px solid rgba(225,6,0,.35); border-color: var(--accent); }

.alert { padding: 1rem 1.1rem; margin-bottom: 1rem; border-radius: 12px; border: 1px solid var(--border); }
.alert.success { background: rgba(46,160,67,.12); color: #7ee787; }
.alert.error { background: rgba(225,6,0,.12); color: #ff8a86; }

.admin-layout { grid-template-columns: 300px 1fr; align-items: start; }
.race-selector { position: sticky; top: 92px; }
.admin-help { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border); color: var(--muted); }
.result-entry-list { display: grid; gap: .7rem; margin: 1.2rem 0; }
.result-entry {
    display: grid;
    grid-template-columns: 5px 1fr 130px 150px;
    gap: .9rem;
    align-items: end;
    padding: .75rem;
    background: var(--surface-2);
    border-radius: 14px;
}
.entry-driver { align-self: center; display: grid; }
.extras-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1rem; }
.site-footer {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.5rem max(1rem, calc((100vw - 1180px)/2));
    color: var(--muted);
    border-top: 1px solid var(--border);
}

code { padding: .15rem .35rem; background: var(--surface-2); border-radius: 6px; }

@media (max-width: 900px) {
    .hero, .dashboard-grid, .admin-layout { grid-template-columns: 1fr; }
    .metric-grid { grid-template-columns: repeat(2, 1fr); }
    .calendar-grid { grid-template-columns: repeat(2, 1fr); }
    .constructor-grid { grid-template-columns: 1fr; }
    .race-selector { position: static; }
}

@media (max-width: 700px) {
    .site-header { flex-wrap: wrap; }
    .nav-toggle { display: inline-flex; }
    .main-nav { display: none; width: 100%; flex-direction: column; }
    .main-nav.open { display: flex; }
    .page-shell { padding-top: 1.5rem; }
    .hero { padding: 2rem 1.25rem; min-height: auto; }
    .metric-grid, .calendar-grid, .extras-grid { grid-template-columns: 1fr; }
    .result-entry { grid-template-columns: 5px 1fr; }
    .result-entry label { grid-column: 2; }
    .constructor-card { grid-template-columns: auto 1fr; }
    .constructor-points { grid-column: 2; text-align: left; }
    .constructor-stats { grid-column: 1 / -1; }
    .site-footer { flex-direction: column; }
}


.admin-tabs {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    margin: -1rem 0 1.25rem;
}
.admin-tabs a {
    padding: .75rem 1rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    color: var(--muted);
}
.admin-tabs a.active {
    background: var(--accent);
    color: white;
    border-color: var(--accent);
}

.admin-edit-grid {
    display: grid;
    grid-template-columns: 1.4fr .8fr;
    gap: 1rem;
    align-items: start;
}

.editable-list {
    display: grid;
    gap: .65rem;
    margin-top: 1rem;
}

.editable-row {
    display: grid;
    grid-template-columns: 8px 1fr auto;
    gap: .85rem;
    align-items: center;
    padding: .8rem;
    background: var(--surface-2);
    border-radius: 14px;
}

.editable-row.inactive {
    opacity: .5;
}

.editable-row .team-dot {
    height: 38px;
}

.editable-row > div {
    display: grid;
}

.editable-row small {
    color: var(--muted);
}

.button-row {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
}

input[type="color"] {
    min-height: 48px;
    padding: .35rem;
}

@media (max-width: 900px) {
    .admin-edit-grid {
        grid-template-columns: 1fr;
    }
}


/* F1-inspired visual system */
body {
    background:
        linear-gradient(115deg, rgba(225,6,0,.08), transparent 28%),
        repeating-linear-gradient(90deg, transparent 0 79px, rgba(255,255,255,.018) 80px),
        #070709;
}

.site-header {
    border-bottom: 3px solid var(--accent);
}

.brand-mark {
    transform: skewX(-10deg);
    border-radius: 3px 14px 3px 3px;
}

.hero {
    border-radius: 8px 34px 8px 8px;
    border-top: 4px solid var(--accent);
}

.hero h1, .page-heading h1 {
    text-transform: uppercase;
    font-style: italic;
    letter-spacing: -.06em;
}

.metric-card, .panel, .table-panel, .constructor-card, .race-card, .auth-card {
    border-radius: 8px 22px 8px 8px;
}

.f1-page-heading {
    border-left: 7px solid var(--accent);
    padding-left: 1.25rem;
}

.f1-calendar {
    display: grid;
    gap: 1rem;
}

.f1-race-card {
    display: grid;
    grid-template-columns: 100px 210px 1fr;
    gap: 1.25rem;
    align-items: stretch;
    padding: 1rem;
    border: 1px solid var(--border);
    border-top: 3px solid rgba(255,255,255,.22);
    border-radius: 6px 24px 6px 6px;
    background: linear-gradient(105deg, #111115, #17171d);
    overflow: hidden;
}

.f1-race-card.completed {
    border-top-color: var(--accent);
}

.f1-round-block {
    display: grid;
    align-content: center;
    justify-items: center;
    border-right: 1px solid var(--border);
    text-transform: uppercase;
    font-style: italic;
}

.f1-round-block span {
    color: var(--muted);
    font-size: .7rem;
    letter-spacing: .16em;
}

.f1-round-block strong {
    font-size: 3rem;
    line-height: 1;
}

.track-diagram-large,
.track-diagram-placeholder,
.track-mini-diagram {
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
    background:
        radial-gradient(circle, rgba(255,255,255,.06), transparent 65%),
        #0b0b0e;
    border: 1px solid var(--border);
}

.track-diagram-large {
    min-height: 150px;
    border-radius: 4px 18px 4px 4px;
}

.track-diagram-large img,
.track-diagram-placeholder img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: .75rem;
    filter: grayscale(1) brightness(2);
}

.track-wordmark {
    position: relative;
    z-index: 2;
    font-weight: 900;
    font-style: italic;
    font-size: 1.4rem;
    text-transform: uppercase;
}

.track-swoosh {
    position: absolute;
    width: 75%;
    height: 55%;
    border: 7px solid rgba(255,255,255,.18);
    border-left-color: transparent;
    border-radius: 50%;
    transform: rotate(-12deg);
}

.f1-race-status,
.f1-race-data {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.f1-race-status > span:first-child {
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: .75rem;
}

.f1-race-info h2 {
    margin: .3rem 0 0;
    font-size: clamp(1.7rem, 3vw, 2.7rem);
    text-transform: uppercase;
    font-style: italic;
}

.f1-race-info > p {
    color: var(--muted);
    margin-top: .25rem;
}

.f1-race-data {
    margin: 1rem 0;
    padding: .85rem 0;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.f1-race-data span {
    display: grid;
    color: var(--muted);
    font-size: .75rem;
    text-transform: uppercase;
}

.f1-race-data strong {
    color: var(--text);
    font-size: .95rem;
}

.calendar-admin-grid {
    grid-template-columns: 1.5fr .8fr;
}

.calendar-admin-list,
.circuit-catalogue {
    display: grid;
    gap: .7rem;
    margin-top: 1rem;
}

.calendar-admin-row {
    display: grid;
    grid-template-columns: 48px 82px 1fr auto;
    gap: .8rem;
    align-items: center;
    padding: .8rem;
    background: var(--surface-2);
    border-left: 4px solid var(--accent);
    border-radius: 4px 15px 4px 4px;
}

.calendar-round {
    font-size: 1.5rem;
    font-weight: 900;
    font-style: italic;
}

.track-mini-diagram {
    height: 58px;
    border-radius: 4px 12px 4px 4px;
    font-size: .7rem;
    font-weight: 900;
    text-align: center;
}

.calendar-admin-main {
    display: grid;
}

.calendar-admin-main small,
.form-note {
    color: var(--muted);
}

.calendar-admin-actions {
    display: flex;
    gap: .5rem;
}

.button.danger {
    border-color: rgba(225,6,0,.5);
    background: rgba(225,6,0,.12);
    color: #ff8b87;
}

.two-column-form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .8rem;
}

.circuit-catalogue-row {
    display: grid;
    grid-template-columns: 110px 1fr auto auto;
    align-items: center;
    gap: .8rem;
    padding: .75rem;
    background: var(--surface-2);
    border-radius: 4px 15px 4px 4px;
}

.circuit-catalogue-row.inactive {
    opacity: .45;
}

.track-diagram-placeholder {
    height: 70px;
    border-radius: 4px 13px 4px 4px;
    font-size: .75rem;
    font-weight: 900;
    text-align: center;
}

.circuit-catalogue-row > div:nth-child(2) {
    display: grid;
}

.circuit-catalogue-row small {
    color: var(--muted);
}

.layout-tag {
    padding: .3rem .55rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    color: var(--muted);
    font-size: .75rem;
}

@media (max-width: 900px) {
    .f1-race-card {
        grid-template-columns: 70px 1fr;
    }
    .track-diagram-large {
        grid-column: 2;
    }
    .f1-race-info {
        grid-column: 1 / -1;
    }
    .calendar-admin-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .calendar-admin-row {
        grid-template-columns: 42px 65px 1fr;
    }
    .calendar-admin-actions {
        grid-column: 2 / -1;
    }
    .circuit-catalogue-row {
        grid-template-columns: 85px 1fr;
    }
    .circuit-catalogue-row .layout-tag,
    .circuit-catalogue-row button {
        grid-column: 2;
        justify-self: start;
    }
    .two-column-form {
        grid-template-columns: 1fr;
    }
}

/* Homepage V6 */
.home-hero {
    position: relative;
    min-height: 470px;
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr);
    align-items: center;
    overflow: hidden;
    padding: clamp(2rem, 5vw, 4.75rem);
    border: 1px solid var(--border);
    border-top: 5px solid var(--accent);
    border-radius: 6px 42px 6px 6px;
    background:
        linear-gradient(105deg, rgba(8,8,10,.98) 0 54%, rgba(8,8,10,.5) 78%),
        repeating-linear-gradient(125deg, transparent 0 22px, rgba(255,255,255,.025) 23px 24px),
        #15151a;
}

.home-hero::before {
    content: "";
    position: absolute;
    right: -12%;
    top: -30%;
    width: 62%;
    height: 150%;
    border: 34px solid rgba(225,6,0,.13);
    border-left-color: transparent;
    border-radius: 50%;
    transform: rotate(-16deg);
}

.home-hero-copy { position: relative; z-index: 2; max-width: 750px; }
.home-kicker {
    display: inline-flex;
    padding: .45rem .7rem;
    margin-bottom: 1rem;
    background: var(--accent);
    color: white;
    text-transform: uppercase;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .14em;
    transform: skewX(-8deg);
}
.home-hero h1 {
    margin: 0;
    max-width: 850px;
    font-size: clamp(3rem, 7vw, 6.6rem);
    line-height: .9;
    letter-spacing: -.075em;
    text-transform: uppercase;
    font-style: italic;
}
.home-hero h1 em { color: var(--accent); font-style: inherit; }
.home-hero-copy > p { max-width: 650px; margin-top: 1.45rem; color: var(--muted); font-size: 1.08rem; }

.hero-season-number {
    position: relative;
    z-index: 1;
    align-self: stretch;
    display: grid;
    place-content: center;
    text-align: right;
    opacity: .18;
}
.hero-season-number span { font-weight: 900; letter-spacing: .6em; font-size: .7rem; }
.hero-season-number strong { display: block; font-size: clamp(7rem, 15vw, 13rem); line-height: .8; font-style: italic; }
.home-progress {
    position: absolute;
    z-index: 3;
    right: clamp(1.25rem, 3vw, 2.5rem);
    bottom: clamp(1.25rem, 3vw, 2.5rem);
    width: min(310px, calc(100% - 2.5rem));
    padding: 1rem 1.1rem;
    border-left: 4px solid var(--accent);
    background: rgba(0,0,0,.7);
    backdrop-filter: blur(8px);
}
.home-progress > div:first-child { display: flex; align-items: end; justify-content: space-between; margin-bottom: .7rem; }
.home-progress span, .home-progress small { color: var(--muted); }
.home-progress strong { font-size: 1.55rem; }

.featured-race {
    display: grid;
    grid-template-columns: 105px minmax(230px, .75fr) minmax(0, 1.25fr);
    margin: 1rem 0;
    border: 1px solid var(--border);
    border-radius: 5px 28px 5px 5px;
    overflow: hidden;
    background: linear-gradient(110deg, #111114, #18181e);
}
.featured-race-round {
    display: grid;
    place-content: center;
    text-align: center;
    padding: 1rem;
    border-right: 1px solid var(--border);
    background: #0d0d10;
}
.featured-race-round span { color: var(--muted); text-transform: uppercase; font-size: .65rem; letter-spacing: .14em; }
.featured-race-round strong { font-size: 3.6rem; line-height: 1; font-style: italic; }
.featured-track {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 240px;
    overflow: hidden;
    border-right: 1px solid var(--border);
    background: radial-gradient(circle, rgba(255,255,255,.07), transparent 62%), #0b0b0e;
}
.featured-track img { width: 90%; height: 90%; object-fit: contain; filter: grayscale(1) brightness(2.2); }
.featured-track > span { z-index: 2; font-size: 1.6rem; font-weight: 950; font-style: italic; text-transform: uppercase; }
.featured-track i {
    position: absolute;
    width: 65%;
    height: 58%;
    border: 8px solid rgba(255,255,255,.14);
    border-left-color: transparent;
    border-radius: 50%;
    transform: rotate(-15deg);
}
.featured-race-main { padding: clamp(1.5rem, 3vw, 2.4rem); }
.featured-country { color: #ff6b66; text-transform: uppercase; font-size: .72rem; font-weight: 900; letter-spacing: .15em; }
.featured-race-main h2 { margin: .25rem 0 0; font-size: clamp(2rem, 4vw, 3.8rem); line-height: .95; text-transform: uppercase; font-style: italic; }
.featured-race-main > p { color: var(--muted); }
.featured-race-meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin: 1.25rem 0; padding: 1rem 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.featured-race-meta div { display: grid; }
.featured-race-meta span { color: var(--muted); text-transform: uppercase; font-size: .65rem; letter-spacing: .1em; }
.featured-race-meta strong { margin-top: .2rem; }
.race-arrow-link { display: inline-flex; gap: .75rem; align-items: center; color: white; font-weight: 900; text-transform: uppercase; font-size: .78rem; letter-spacing: .08em; }
.race-arrow-link span { color: var(--accent); font-size: 1.4rem; }

.home-stats-strip {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-bottom: 1rem;
    border: 1px solid var(--border);
    border-radius: 5px 20px 5px 5px;
    overflow: hidden;
    background: var(--surface);
}
.home-stats-strip article { min-width: 0; padding: 1.2rem; border-right: 1px solid var(--border); }
.home-stats-strip article:last-child { border-right: 0; }
.home-stats-strip span, .home-stats-strip small { display: block; color: var(--muted); }
.home-stats-strip span { text-transform: uppercase; font-size: .66rem; letter-spacing: .11em; }
.home-stats-strip strong { display: block; margin: .35rem 0 .15rem; font-size: 1.45rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.home-content-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(290px, .55fr); gap: 1rem; }
.home-ranking-panel, .home-side-panel { border: 1px solid var(--border); border-radius: 5px 24px 5px 5px; background: var(--surface); padding: 1.35rem; }
.home-section-title { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.home-section-title h2 { margin: .2rem 0 0; font-size: 1.8rem; text-transform: uppercase; font-style: italic; }
.home-section-title > a { color: #ff6c67; font-size: .82rem; font-weight: 800; }
.podium-preview { display: grid; gap: .55rem; margin-top: 1.2rem; }
.podium-driver {
    display: grid;
    grid-template-columns: 48px 6px 1fr auto;
    align-items: center;
    gap: .85rem;
    min-height: 76px;
    padding: .85rem;
    border: 1px solid var(--border);
    border-radius: 4px 16px 4px 4px;
    background: var(--surface-2);
}
.podium-driver.position-1 { min-height: 96px; border-color: rgba(225,6,0,.45); background: linear-gradient(90deg, rgba(225,6,0,.1), var(--surface-2)); }
.podium-position { font-size: 1.5rem; font-weight: 950; font-style: italic; color: var(--muted); }
.podium-driver.position-1 .podium-position { color: #ff5b56; font-size: 2rem; }
.podium-team-line { height: 42px; border-radius: 99px; background: var(--team-color); }
.podium-driver > div { display: grid; }
.podium-driver small { color: var(--muted); }
.podium-driver > b { font-size: 1.45rem; text-align: right; }
.podium-driver > b small { display: block; font-size: .58rem; letter-spacing: .1em; }
.compact-ranking { margin-top: .7rem; }
.home-side-panel { display: flex; flex-direction: column; gap: 1rem; }
.season-status-card { padding: 1rem; border-left: 4px solid var(--accent); background: var(--surface-2); }
.season-status-card > span, .season-status-card small { color: var(--muted); }
.season-status-card > strong { display: block; margin: .3rem 0 .7rem; font-size: 2.5rem; font-style: italic; }
.season-status-card small { display: block; margin-top: .6rem; }
.season-quick-links { display: grid; }
.season-quick-links a { display: flex; justify-content: space-between; gap: .75rem; padding: 1rem 0; border-bottom: 1px solid var(--border); }
.season-quick-links span { color: var(--muted); }
.season-quick-links strong { font-size: .9rem; }
.last-race-summary { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--border); display: grid; }
.last-race-summary span, .last-race-summary small { color: var(--muted); }
.last-race-summary strong { margin: .25rem 0; }

@media (max-width: 900px) {
    .home-hero { grid-template-columns: 1fr; min-height: 560px; align-items: start; }
    .hero-season-number { display: none; }
    .featured-race { grid-template-columns: 90px 1fr; }
    .featured-track { min-height: 190px; }
    .featured-race-main { grid-column: 1 / -1; }
    .home-stats-strip { grid-template-columns: repeat(2, 1fr); }
    .home-stats-strip article:nth-child(2) { border-right: 0; }
    .home-stats-strip article:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
    .home-content-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
    .home-hero { padding: 2rem 1.2rem 9.5rem; min-height: auto; }
    .home-hero h1 { font-size: clamp(2.8rem, 15vw, 4.4rem); }
    .home-progress { left: 1.2rem; right: 1.2rem; width: auto; }
    .featured-race { grid-template-columns: 72px 1fr; }
    .featured-race-round strong { font-size: 2.6rem; }
    .featured-race-meta { grid-template-columns: 1fr; gap: .8rem; }
    .home-stats-strip { grid-template-columns: 1fr; }
    .home-stats-strip article { border-right: 0; border-bottom: 1px solid var(--border); }
    .home-stats-strip article:last-child { border-bottom: 0; }
    .podium-driver { grid-template-columns: 40px 5px 1fr; }
    .podium-driver > b { grid-column: 3; text-align: left; }
    .home-section-title { flex-direction: column; }
}

/* === V7 HOME: F1 dashboard === */
.page-shell{width:min(1380px,calc(100% - 2rem));padding-top:1.4rem}
.site-header{padding:.85rem max(1rem,calc((100vw - 1380px)/2));background:#050506;border-bottom:1px solid rgba(255,255,255,.08)}
.brand-mark{background:transparent;color:#ed1111;font-size:1.35rem;width:auto;height:auto;padding:0 .25rem}
.brand small{color:#ed1111;text-transform:uppercase;font-size:.68rem;font-weight:800;letter-spacing:.08em}
.main-nav a{border-radius:0;text-transform:uppercase;font-size:.78rem;font-weight:700;padding:1rem .9rem}
.main-nav a.active{background:transparent;border-bottom:2px solid var(--accent)}
.f1-home-hero{position:relative;min-height:395px;padding:2.2rem;display:grid;grid-template-columns:1.25fr .42fr;align-items:center;gap:2rem;overflow:hidden;background:linear-gradient(90deg,rgba(0,0,0,.96) 0%,rgba(0,0,0,.72) 46%,rgba(0,0,0,.15) 76%),url('hero-racing.webp') center right/cover no-repeat;border-bottom:1px solid var(--border)}
.f1-home-hero:after{content:"";position:absolute;inset:auto 0 0;height:80px;background:linear-gradient(transparent,var(--bg))}
.f1-hero-copy,.f1-progress-card{position:relative;z-index:1}.f1-season-label{color:#ff2626;text-transform:uppercase;font-style:italic;font-weight:800}.f1-season-label strong{color:#fff;margin-left:.3rem}
.f1-hero-copy h1{font-size:clamp(3.2rem,6vw,6.6rem);line-height:.88;margin:.75rem 0 1.2rem;text-transform:uppercase;font-style:italic;letter-spacing:-.055em;max-width:760px}.f1-hero-copy h1 em{color:#ed1111;font-style:inherit}.f1-hero-copy p{max-width:650px;font-size:1.04rem;line-height:1.55}.f1-progress-card{justify-self:end;width:min(100%,310px);padding:1.8rem;border:1px solid rgba(255,255,255,.22);background:rgba(4,4,5,.82);clip-path:polygon(0 0,90% 0,100% 12%,100% 100%,0 100%)}
.f1-progress-card>span,.section-red-title,.board-heading h2,.f1-small-panel h2{color:#ed1111;text-transform:uppercase;font-style:italic;font-weight:900}.f1-progress-card>div:first-of-type{display:flex;align-items:baseline;gap:.5rem;margin:1.2rem 0}.f1-progress-card div strong{font-size:3.6rem}.f1-progress-card div b{font-size:1.5rem;color:var(--muted)}.f1-progress-card small{color:var(--muted);text-transform:uppercase}.f1-progress-card p{margin-bottom:0;color:var(--muted);text-transform:uppercase}.f1-progress-card p strong{color:#ed1111}
.panel-frame{border:1px solid rgba(255,255,255,.16);background:linear-gradient(145deg,#0d0d10,#08080a);border-radius:8px 18px 8px 8px}.f1-next-race{margin-top:1rem;padding:1.1rem}.section-red-title{margin-bottom:1rem}.next-race-layout{display:grid;grid-template-columns:250px 1fr 350px;gap:1rem;align-items:stretch}.race-track-card{position:relative;min-height:190px;background:#030304;border-radius:5px 18px 5px 5px;display:grid;place-items:center;overflow:hidden}.country-flag{position:absolute;top:12px;left:12px;font-size:1.5rem}.race-track-card img{width:90%;height:90%;object-fit:contain;filter:grayscale(1) brightness(2)}.css-track-shape{width:66%;height:56%;border:6px solid #fff;border-radius:48% 40% 45% 35%;transform:rotate(-18deg);box-shadow:0 0 12px rgba(255,255,255,.3)}.css-track-shape i{display:block;width:42%;height:65%;border-right:5px solid #fff;border-bottom:5px solid #fff;transform:translate(95%,10%) rotate(25deg)}.next-race-copy{padding:.4rem 0}.round-badge{display:inline-flex;background:#b50707;padding:.4rem .75rem;border-radius:5px 9px 5px 5px;text-transform:uppercase;font-style:italic;font-weight:900;font-size:.75rem}.next-race-copy h2{font-size:clamp(1.8rem,3vw,3rem);text-transform:uppercase;font-style:italic;margin:.55rem 0 .2rem}.next-race-copy>p{color:var(--muted);text-transform:uppercase}.race-facts{display:flex;flex-wrap:wrap;gap:1.2rem;margin:1.2rem 0}.race-facts span{display:grid;min-width:90px;border-left:1px solid var(--border);padding-left:.8rem}.race-facts small{color:var(--muted);text-transform:uppercase;font-size:.68rem}.race-photo{border-radius:5px 15px 5px 5px;background:linear-gradient(90deg,rgba(0,0,0,.15),rgba(0,0,0,.1)),url('australia-track.webp') center/cover no-repeat}.f1-stat-strip{display:grid;grid-template-columns:repeat(6,1fr);margin:1rem 0;border:1px solid var(--border);border-radius:8px;overflow:hidden}.f1-stat-strip article{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;align-items:center;justify-content:center;gap:0 .8rem;padding:1rem;border-right:1px solid var(--border)}.f1-stat-strip article:last-child{border-right:0}.f1-stat-strip article>span{grid-row:1/3;font-size:1.5rem}.f1-stat-strip strong{font-size:1.55rem}.f1-stat-strip small{text-transform:uppercase;color:var(--muted);font-size:.67rem}.f1-dashboard-grid{display:grid;grid-template-columns:1.18fr .82fr .46fr;gap:1rem}.f1-board{padding:1rem}.board-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.board-heading h2,.f1-small-panel h2{margin:0;font-size:1rem}.board-heading a{font-size:.67rem;text-transform:uppercase;color:#ddd}.podium-grid{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;gap:1rem;min-height:240px;padding:1rem 0}.podium-card{position:relative;text-align:center;padding:1rem .6rem;background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.02));border:1px solid var(--border);border-radius:8px}.podium-card.p1{min-height:210px;border-color:#a77d00}.podium-card.p2,.podium-card.p3{min-height:175px}.podium-number{position:absolute;top:-34px;left:0;right:0;font-size:2.5rem;font-style:italic;font-weight:900}.helmet-placeholder{width:74px;height:74px;margin:0 auto .8rem;border-radius:50%;border:3px solid var(--team-color);background:radial-gradient(circle at 50% 35%,#777 0 22%,#444 23% 45%,#222 46%)}.podium-card strong,.podium-card b,.podium-card small{display:block}.podium-card b{text-transform:uppercase;margin-top:.55rem}.podium-card>small{color:var(--muted);text-transform:uppercase;font-size:.7rem}.f1-table-head,.f1-table-row{display:grid;grid-template-columns:42px 1.4fr 1fr 60px;align-items:center;gap:.5rem}.f1-table-head{padding:.55rem;background:#18181c;color:var(--muted);font-size:.68rem;text-transform:uppercase}.f1-table-row{padding:.7rem .4rem;border-bottom:1px solid var(--border);font-size:.82rem}.f1-table-row strong{display:flex;align-items:center;gap:.55rem}.f1-table-row i,.constructor-home-list i{display:inline-block;width:4px;height:22px;background:var(--team-color);border-radius:4px}.f1-table-row b{text-align:right}.constructor-home-list{display:grid;gap:.45rem}.constructor-home-list>div{display:grid;grid-template-columns:28px 5px 1fr auto;align-items:center;gap:.65rem;padding:.72rem;background:rgba(255,255,255,.025);border-bottom:1px solid rgba(255,255,255,.05)}.constructor-home-list b{font-size:.78rem}.outline-red{margin-top:1rem;border-color:#b50707;color:#ff2d2d;background:transparent;text-transform:uppercase;font-size:.72rem}.f1-side-stack{display:grid;gap:1rem;align-content:start}.f1-small-panel{padding:1rem;text-align:center}.last-race-icon{font-size:2.8rem;margin:1.4rem 0}.f1-small-panel>strong,.f1-small-panel>small{display:block}.f1-small-panel>small{color:var(--muted)}.quick-access{text-align:left}.quick-access a{display:grid;grid-template-columns:24px 1fr auto;gap:.55rem;padding:.8rem 0;border-bottom:1px solid var(--border);font-size:.82rem}.quick-access a:last-child{border-bottom:0}.site-footer{width:min(1380px,calc(100% - 2rem));padding:2rem 0}
@media(max-width:1100px){.next-race-layout{grid-template-columns:220px 1fr}.race-photo{display:none}.f1-dashboard-grid{grid-template-columns:1fr 1fr}.f1-side-stack{grid-column:1/-1;grid-template-columns:1fr 1fr}.f1-stat-strip{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.f1-home-hero{grid-template-columns:1fr;min-height:auto;padding:1.5rem}.f1-progress-card{justify-self:stretch;width:100%}.f1-hero-copy h1{font-size:3.2rem}.next-race-layout{grid-template-columns:1fr}.race-track-card{min-height:150px}.f1-dashboard-grid{grid-template-columns:1fr}.f1-side-stack{grid-column:auto;grid-template-columns:1fr}.f1-stat-strip{grid-template-columns:repeat(2,1fr)}.f1-stat-strip article:nth-child(even){border-right:0}.podium-grid{gap:.45rem}.f1-table-head,.f1-table-row{grid-template-columns:36px 1.4fr 1fr 44px;font-size:.72rem}.main-nav a{text-transform:none}.page-shell{width:min(100% - 1rem,1380px)}}

/* === V8: layout corrections === */
.f1-home-hero {
    min-height: 430px;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: clamp(1.25rem, 3vw, 3rem);
    padding: clamp(1.8rem, 4vw, 3.4rem);
    background:
        linear-gradient(90deg, rgba(0,0,0,.98) 0%, rgba(0,0,0,.91) 42%, rgba(0,0,0,.35) 73%, rgba(0,0,0,.55) 100%),
        url('australia-track.webp') center right / cover no-repeat;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 8px 24px 8px 8px;
}
.f1-home-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(115deg, transparent 0 68%, rgba(225,6,0,.12) 68.2% 69%, transparent 69.2%);
}
.f1-home-hero::after {
    height: 55px;
}
.f1-hero-copy {
    min-width: 0;
}
.f1-hero-copy h1 {
    max-width: 700px;
    font-size: clamp(3rem, 5.4vw, 5.5rem);
    line-height: .92;
    overflow-wrap: normal;
}
.f1-hero-copy p {
    max-width: 620px;
}
.f1-progress-card {
    width: 100%;
    min-width: 0;
    align-self: center;
    overflow: hidden;
}
.f1-progress-card > span {
    display: block;
    max-width: 190px;
}
.f1-progress-card > div:first-of-type {
    white-space: nowrap;
}
.next-race-layout {
    grid-template-columns: minmax(190px, 250px) minmax(0, 1fr) minmax(260px, 340px);
}
.next-race-copy {
    min-width: 0;
}
.next-race-copy h2 {
    overflow-wrap: anywhere;
}
.race-track-card img {
    width: 82%;
    height: 82%;
    padding: .5rem;
}
.f1-dashboard-grid {
    grid-template-columns: minmax(0, 1.15fr) minmax(310px, .85fr) minmax(220px, .48fr);
}
.f1-board,
.f1-side-stack,
.f1-small-panel {
    min-width: 0;
}
.podium-card b,
.constructor-home-list strong,
.f1-table-row strong,
.f1-table-row span {
    min-width: 0;
    overflow-wrap: anywhere;
}

@media (max-width: 1240px) {
    .page-shell,
    .site-footer {
        width: min(100% - 1.25rem, 1380px);
    }
    .next-race-layout {
        grid-template-columns: 210px minmax(0, 1fr);
    }
    .race-photo {
        display: none;
    }
    .f1-dashboard-grid {
        grid-template-columns: minmax(0, 1fr) minmax(300px, .82fr);
    }
    .f1-side-stack {
        grid-column: 1 / -1;
        grid-template-columns: 1fr 1fr;
    }
    .f1-stat-strip {
        grid-template-columns: repeat(3, 1fr);
    }
    .f1-stat-strip article:nth-child(3n) {
        border-right: 0;
    }
    .f1-stat-strip article:nth-child(-n+3) {
        border-bottom: 1px solid var(--border);
    }
}

@media (max-width: 900px) {
    .f1-home-hero {
        grid-template-columns: 1fr;
        min-height: auto;
        background:
            linear-gradient(90deg, rgba(0,0,0,.96), rgba(0,0,0,.72)),
            url('australia-track.webp') center / cover no-repeat;
    }
    .f1-progress-card {
        max-width: none;
        justify-self: stretch;
    }
    .f1-dashboard-grid {
        grid-template-columns: 1fr;
    }
    .f1-side-stack {
        grid-column: auto;
        grid-template-columns: 1fr 1fr;
    }
    .podium-grid {
        min-height: 220px;
    }
}

@media (max-width: 680px) {
    .f1-home-hero {
        padding: 1.35rem;
        border-radius: 6px 16px 6px 6px;
    }
    .f1-hero-copy h1 {
        font-size: clamp(2.65rem, 14vw, 4rem);
    }
    .hero-actions {
        align-items: stretch;
    }
    .hero-actions .button {
        width: 100%;
        justify-content: center;
    }
    .next-race-layout {
        grid-template-columns: 1fr;
    }
    .race-track-card {
        min-height: 185px;
    }
    .race-facts {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .75rem;
    }
    .race-facts span {
        min-width: 0;
    }
    .f1-stat-strip {
        grid-template-columns: repeat(2, 1fr);
    }
    .f1-stat-strip article,
    .f1-stat-strip article:nth-child(3n) {
        border-right: 1px solid var(--border);
        border-bottom: 1px solid var(--border);
    }
    .f1-stat-strip article:nth-child(even) {
        border-right: 0;
    }
    .f1-stat-strip article:nth-last-child(-n+2) {
        border-bottom: 0;
    }
    .f1-side-stack {
        grid-template-columns: 1fr;
    }
    .podium-grid {
        grid-template-columns: 1fr;
        align-items: stretch;
        min-height: 0;
        padding-top: 2.3rem;
    }
    .podium-card.p1,
    .podium-card.p2,
    .podium-card.p3 {
        min-height: 0;
    }
    .podium-number {
        position: static;
        margin-bottom: .5rem;
    }
    .f1-table-head,
    .f1-table-row {
        grid-template-columns: 34px minmax(0, 1fr) 52px;
    }
    .f1-table-head span:nth-child(3),
    .f1-table-row > span:nth-child(3) {
        display: none;
    }
}


/* Avatares de pilotos */
.podium-avatar {
    position: relative;
    width: min(100%, 150px);
    aspect-ratio: 4 / 5;
    margin: .35rem auto .65rem;
    overflow: hidden;
    border: 2px solid var(--team-color, #e10600);
    border-radius: 10px 10px 4px 4px;
    background:
        radial-gradient(circle at 50% 28%, rgba(255,255,255,.16), transparent 32%),
        linear-gradient(145deg, rgba(255,255,255,.07), transparent 55%),
        #15151a;
}

.podium-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

.podium-silhouette {
    position: absolute;
    inset: 0;
}

.podium-silhouette::before {
    content: "";
    position: absolute;
    width: 38%;
    aspect-ratio: 1;
    left: 31%;
    top: 17%;
    border-radius: 50%;
    background: #777b82;
}

.podium-silhouette::after {
    content: "";
    position: absolute;
    width: 74%;
    height: 48%;
    left: 13%;
    bottom: 4%;
    border-radius: 50% 50% 12% 12%;
    background: #62666d;
}

.admin-driver-avatar {
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 2px solid var(--team-color, #e10600);
    border-radius: 50%;
    background: #17171c;
    font-weight: 900;
}

.admin-driver-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

.driver-editable-row {
    grid-template-columns: 54px 1fr auto;
}

.driver-avatar-admin {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 1rem;
    align-items: center;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 8px 18px 8px 8px;
    background: var(--surface-2);
}

.driver-avatar-preview {
    width: 130px;
    aspect-ratio: 4 / 5;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 2px solid rgba(225, 6, 0, .65);
    border-radius: 8px 16px 8px 8px;
    background: #111115;
    color: var(--muted);
    font-size: .8rem;
}

.driver-avatar-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

.driver-avatar-fields {
    display: grid;
    gap: .6rem;
}

.driver-avatar-fields small {
    color: var(--muted);
}

@media (max-width: 620px) {
    .driver-avatar-admin {
        grid-template-columns: 1fr;
    }

    .driver-avatar-preview {
        width: min(180px, 100%);
        justify-self: center;
    }
}


/* V10: multimedia configurable */
.f1-home-hero {
    background-image:
        linear-gradient(90deg, rgba(5,5,7,.97) 0%, rgba(5,5,7,.78) 42%, rgba(5,5,7,.24) 72%, rgba(5,5,7,.45) 100%),
        var(--hero-image, url('hero-racing.webp'));
    background-size: cover;
    background-position: center;
}

.race-photo {
    background-image:
        linear-gradient(90deg, rgba(7,7,9,.25), rgba(7,7,9,.06)),
        var(--race-photo, url('australia-track.webp'));
    background-size: cover;
    background-position: center;
}

.brand-uploaded-logo {
    width: 64px;
    height: 38px;
    display: grid;
    place-items: center;
}

.brand-uploaded-logo img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.race-flag-card {
    min-height: 190px;
}

.race-flag-card > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: none;
    padding: 0;
}

.flag-fallback {
    display: grid;
    place-items: center;
    gap: .45rem;
    text-align: center;
    text-transform: uppercase;
}

.flag-fallback span {
    font-size: 3rem;
    font-weight: 950;
    font-style: italic;
    color: var(--accent);
}

.flag-fallback small {
    color: var(--muted);
    letter-spacing: .12em;
}

.media-admin-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr);
    gap: 1rem;
    align-items: start;
}

.media-upload-grid {
    display: grid;
    gap: 1rem;
}

.media-upload-card {
    display: grid;
    grid-template-columns: minmax(180px, 260px) 1fr;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 8px 20px 8px 8px;
    background: var(--surface-2);
}

.media-upload-card h3 {
    margin-top: 0;
}

.media-upload-card p {
    color: var(--muted);
}

.media-preview {
    display: grid;
    place-items: center;
    overflow: hidden;
    min-height: 150px;
    border: 1px solid var(--border);
    border-radius: 6px 18px 6px 6px;
    background: #0b0b0e;
    color: var(--muted);
}

.media-preview.wide {
    aspect-ratio: 16 / 8;
}

.media-preview.logo {
    aspect-ratio: 16 / 8;
}

.media-preview img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.media-preview.wide img {
    object-fit: cover;
}

.media-help-panel {
    position: sticky;
    top: 90px;
}

.media-help-panel ol {
    display: grid;
    gap: .7rem;
    padding-left: 1.3rem;
}

.circuit-media-editor {
    display: grid;
    gap: .8rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 8px 18px 8px 8px;
    background: var(--surface-2);
}

.circuit-current-media {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .7rem;
}

.circuit-current-media > div {
    display: grid;
    gap: .35rem;
}

.circuit-current-media img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: contain;
    border: 1px solid var(--border);
    border-radius: 6px 14px 6px 6px;
    background: #0b0b0e;
}

.circuit-current-media small {
    color: var(--muted);
}

.remove-media-options {
    display: grid;
    gap: .55rem;
    padding: .8rem;
    border-left: 3px solid var(--accent);
    background: rgba(225, 6, 0, .07);
}

@media (max-width: 960px) {
    .media-admin-layout {
        grid-template-columns: 1fr;
    }

    .media-help-panel {
        position: static;
    }
}

@media (max-width: 680px) {
    .media-upload-card {
        grid-template-columns: 1fr;
    }

    .circuit-current-media {
        grid-template-columns: 1fr;
    }
}


/* V11: recursos visuales de los circuitos */
.calendar-country {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
}

.calendar-country-flag {
    width: 32px;
    height: 21px;
    object-fit: cover;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 2px;
}

.race-detail-media {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    min-height: 230px;
    align-items: end;
    background-image:
        linear-gradient(90deg, rgba(5,5,7,.98) 0%, rgba(5,5,7,.86) 45%, rgba(5,5,7,.25) 100%),
        var(--race-detail-photo, none);
    background-size: cover;
    background-position: center;
}

.race-detail-title {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.race-detail-flag {
    width: 95px;
    max-height: 64px;
    object-fit: cover;
    border: 1px solid rgba(255,255,255,.3);
    border-radius: 4px 12px 4px 4px;
}

.circuit-media-help {
    padding: .8rem;
    border-left: 3px solid var(--accent);
    background: rgba(225,6,0,.07);
}

.circuit-media-help strong {
    display: block;
    margin-bottom: .25rem;
}

.circuit-media-help p {
    margin: 0;
    color: var(--muted);
    font-size: .85rem;
}

@media (max-width: 620px) {
    .race-detail-title {
        align-items: flex-start;
        flex-direction: column;
    }

    .race-detail-flag {
        width: 76px;
        max-height: 52px;
    }
}


/* ================================================================
   V13 — carga de imágenes sin modificar el layout de V11
   ================================================================ */

.f1-home-hero {
    isolation: isolate;
}

.f1-hero-media {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
}

.f1-home-hero::before {
    z-index: 1;
    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,.98) 0%,
            rgba(0,0,0,.91) 42%,
            rgba(0,0,0,.35) 73%,
            rgba(0,0,0,.55) 100%
        ),
        linear-gradient(
            115deg,
            transparent 0 68%,
            rgba(225,6,0,.12) 68.2% 69%,
            transparent 69.2%
        );
}

.f1-home-hero::after {
    z-index: 1;
}

.f1-hero-copy,
.f1-progress-card {
    z-index: 2;
}

.race-photo {
    overflow: hidden;
    background: #070709;
}

.race-photo > img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 190px;
    object-fit: cover;
    object-position: center;
}

.race-photo-empty {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    min-height: 190px;
    color: var(--muted);
    background: #070709;
    text-transform: uppercase;
    font-size: .75rem;
}

.media-upload-card {
    align-items: start;
}

.media-upload-content {
    min-width: 0;
    display: grid;
    align-content: start;
    gap: .65rem;
}

.media-upload-content h3,
.media-upload-content p {
    margin: 0;
}


/* ================================================================
   V13.1 — formulario de resultados estable en Safari
   ================================================================ */

.results-form {
    min-width: 0;
    overflow: visible;
}

.result-entry-list {
    min-width: 0;
}

.result-entry {
    grid-template-columns: 5px minmax(220px, 1fr) minmax(330px, 430px);
    align-items: center;
    min-width: 0;
}

.entry-driver {
    min-width: 0;
}

.result-entry-fields {
    display: grid;
    grid-template-columns: minmax(120px, .9fr) minmax(155px, 1.1fr);
    gap: .9rem;
    align-items: end;
    min-width: 0;
}

.result-entry-fields label,
.result-entry-fields input,
.result-entry-fields select {
    min-width: 0;
    width: 100%;
}

.result-entry-fields input,
.result-entry-fields select {
    min-height: 48px;
}

@media (max-width: 980px) {
    .result-entry {
        grid-template-columns: 5px minmax(0, 1fr);
        align-items: center;
    }

    .result-entry-fields {
        grid-column: 2;
        width: 100%;
    }
}

@media (max-width: 560px) {
    .result-entry-fields {
        grid-template-columns: 1fr;
    }
}


/* ================================================================
   V14 — corrección y reinicio del campeonato
   ================================================================ */

.result-correction-box,
.championship-danger-zone {
    display: grid;
    gap: .75rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
}

.result-correction-box h3,
.championship-danger-zone h3,
.result-correction-box p,
.championship-danger-zone p {
    margin: 0;
}

.result-correction-box p,
.championship-danger-zone p {
    color: var(--muted);
    font-size: .84rem;
    line-height: 1.5;
}

.result-empty-note {
    padding: .75rem;
    border: 1px solid var(--border);
    border-radius: 9px;
    color: var(--muted);
    background: var(--surface-2);
    font-size: .82rem;
}

.championship-danger-zone {
    margin-top: 1.25rem;
    padding: 1rem;
    border: 1px solid rgba(225, 6, 0, .35);
    border-left: 4px solid var(--accent);
    border-radius: 8px 18px 8px 8px;
    background: rgba(225, 6, 0, .07);
}

.championship-danger-zone form {
    display: grid;
    gap: .75rem;
}

.button.danger {
    border-color: rgba(225, 6, 0, .65);
    background: rgba(225, 6, 0, .13);
    color: #ff9a96;
}

.button.danger:hover {
    background: rgba(225, 6, 0, .24);
    color: #fff;
}

/* Pilotos y circuitos: imágenes del campeonato */
.driver-gallery,.circuit-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin-bottom:2.5rem}
.driver-profile,.circuit-profile{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:6px 24px 6px 6px;background:#15151b}
.driver-profile{border-top:4px solid var(--team-color)}
.driver-profile-top{display:flex;justify-content:space-between;padding:1rem;font-weight:800}
.driver-profile-top span:last-child{font-size:.75rem;color:var(--muted);text-transform:uppercase}
.driver-profile-photo{height:330px;display:grid;place-items:center;background:radial-gradient(ellipse at bottom,var(--team-color),transparent 75%),#0b0b0e}
.driver-profile-photo img{width:100%;height:100%;object-fit:contain;object-position:center bottom}
.driver-initials{font-size:3rem;font-weight:900}
.driver-profile-info,.circuit-profile-info{padding:1.2rem}
.driver-profile-info small{color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.driver-profile-info h2,.circuit-profile-info h2{font-size:1.3rem;margin:.5rem 0 1rem}
.driver-profile-stats,.circuit-profile-data{display:flex;justify-content:space-between;gap:.75rem;border-top:1px solid var(--border);padding-top:1rem;font-size:.85rem}
.standings-avatar{width:46px;height:58px;object-fit:contain;flex-shrink:0;background:#202027;border-radius:6px}
.circuit-profile-photo{height:210px;background:#0b0b0e;display:grid;place-items:center}
.circuit-profile-photo>img{width:100%;height:100%;object-fit:cover}
.circuit-profile-photo>img.circuit-layout{object-fit:contain;padding:1rem}
.circuit-country{display:flex;align-items:center;gap:.65rem;color:var(--muted);font-size:.85rem}
.circuit-country img{width:36px;height:24px;object-fit:contain}
.circuit-profile-info p{color:var(--muted);font-size:.85rem;min-height:2.4em}
.track-diagram-large img.calendar-photo{padding:0;filter:none;object-fit:cover;min-height:180px}
.media-section-title{margin-bottom:1rem}
@media(max-width:1000px){.driver-gallery,.circuit-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.driver-gallery,.circuit-gallery{grid-template-columns:1fr}.driver-profile-photo{height:350px}.calendar-media{min-height:200px}}

/* Foto compacta en la tabla original de pilotos */
.standings-avatar{width:36px;height:44px;object-fit:contain;object-position:center;flex-shrink:0;border-radius:4px}

.circuit-table-photo{width:96px;height:60px;max-width:96px;object-fit:cover;flex-shrink:0;border-radius:5px}
.circuit-table-country{display:flex;align-items:center;gap:.6rem;white-space:nowrap}
.circuit-table-country img{width:30px;height:20px;max-width:30px;object-fit:contain;flex-shrink:0}

/* Encuadre superior: cara y torso sin cortar la cabeza */
.standings-portrait{display:block;width:52px;height:64px;flex:0 0 52px;overflow:hidden;border-radius:6px;background:#202027}
.standings-portrait img.standings-avatar{display:block;width:52px;max-width:none;height:auto;object-fit:initial;object-position:initial;border-radius:0;margin:0}
