/* ==========================================================================
   v3 — redesign 2026-10 (Figma "AI-Telemetry", frames 608:10962, 616:13560,
   616:13243, 616:19185, 619:19657 — profile, leaderboard, dashboard, event,
   events; drawn at 1920, adapted down here).
   Loaded after theme.css on every page (body.v3): retunes the shared tokens
   (background, text, fonts) so pages not redrawn yet already sit on the new
   ground, and adds the v3-* components the redrawn pages are built from.
   ========================================================================== */

:root {
    --v3-bg: #0e0e10;
    --v3-card: #17171a;
    --v3-tile: #202024;
    --v3-chip: #222226;
    --v3-chip-hover: #2a2a2e;
    --v3-avatar: #2a2a2e;
    --v3-track: #26262a;
    --v3-text: #f4f4f5;
    --v3-text-2: #c8c8ce;
    --v3-text-3: #a8a8b0;
    --v3-muted: #8e8e96;
    --v3-faint: #6f6f77;
    --v3-accent: #ff5a1f;
    --v3-accent-nav: #fd5e37;
    --v3-accent-soft: rgba(255, 90, 31, 0.14);
    --v3-green: #5ad19a;
    --v3-green-soft: rgba(90, 209, 154, 0.12);
    --v3-red: #ff6b6b;
    --v3-red-soft: rgba(255, 107, 107, 0.1);
    --v3-purple: #b48cff;
    --v3-gold: #f5c542;
    --v3-silver: #c8ccd2;
    --v3-bronze: #d08a5a;
    --v3-row-gold: rgba(245, 197, 66, 0.07);
    --v3-row-silver: #232327;
    --v3-row-bronze: #241f1e;
    --v3-row-me: rgba(255, 90, 31, 0.08);

    --v3-sans: "Onest", "Inter", Arial, sans-serif;
    --v3-display: "Radiotechnika", "Arial Black", Arial, sans-serif;
    --v3-num: "Unbounded", "Onest", Arial, sans-serif;
    --v3-mono: "JetBrains Mono", ui-monospace, Consolas, monospace;

    --v3-r-card: 20px;
    --v3-r-hero: 24px;
    --v3-r-tile: 14px;
    --v3-r-tag: 8px;
    --v3-r-pill: 999px;
    --v3-gutter: 28px;
}

@font-face {
    font-family: "Radiotechnika";
    src: url("../fonts/Radiotechnika.otf") format("opentype");
    font-display: swap;
}

/* ---- the shared ground every page now sits on ---- */
body.v3 {
    --color-background: var(--v3-bg);
    --color-text-primary: var(--v3-text);
    --color-text-secondary: var(--v3-muted);
    --color-warning: var(--v3-accent);
    background: var(--v3-bg);
    color: var(--v3-text);
    font-family: var(--v3-sans);
    font-size: 14px;
}
body.v3 .app-main { background: transparent; }

/* ---- header: logo · pill nav · user chip (Figma 616:13529) ---- */
body.v3 .app-topbar {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 16px;
    padding: 20px var(--v3-gutter) 0;
    border: none;
    background: var(--v3-bg);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
.v3-logo {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    justify-self: start;
    text-decoration: none;
}
.v3-logo img { width: 16px; height: 16px; }
.v3-logo span {
    font-family: var(--v3-display);
    font-size: 14px;
    line-height: 12px;
    letter-spacing: 5.32px;
    text-transform: uppercase;
    color: #e6e8eb;
}
body.v3 .app-topbar-tabs {
    flex: none;
    justify-self: center;
    gap: 4px;
    padding: 6px;
    border-radius: 16px;
    background: var(--v3-card);
}
body.v3 .app-topbar-tab {
    border: none;
    padding: 9px 18px 10px;
    border-radius: var(--v3-r-pill);
    font-family: var(--v3-sans);
    font-size: 15px;
    font-weight: 500;
    line-height: 23px;
    text-transform: none;
    color: var(--v3-text-3);
}
body.v3 .app-topbar-tab:hover { color: var(--v3-text); background: var(--v3-chip); }
body.v3 .app-topbar-tab.active { color: var(--v3-accent-nav); }
body.v3 .app-topbar-avatar-wrap { justify-self: end; }
body.v3 .app-topbar-avatar-btn.v3-userchip {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 6px 18px 6px 6px;
    border-radius: var(--v3-r-pill);
    background: var(--v3-card);
    text-align: left;
}
.v3-userchip:hover { background: var(--v3-chip); }
.v3-userchip-name { display: block; font-size: 14px; font-weight: 600; line-height: 17px; color: var(--v3-text); white-space: nowrap; }
.v3-userchip-city { display: block; font-size: 12px; line-height: 14px; color: var(--v3-muted); white-space: nowrap; }
.v3-avatar {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--v3-avatar);
    color: var(--v3-text);
    font-size: 14px;
    font-weight: 600;
    object-fit: cover;
    overflow: hidden;
}
.v3-avatar--52 { width: 52px; height: 52px; font-size: 16px; }
.v3-avatar--ring { box-shadow: 0 0 0 2px var(--v3-accent); }
body.v3 .app-topbar-toggle { justify-self: end; }

@media (max-width: 1279px) {
    body.v3 .app-topbar { grid-template-columns: 1fr auto auto; padding-top: 14px; }
    .v3-userchip-text { display: none; }
    body.v3 .app-topbar-avatar-btn.v3-userchip { padding: 4px; }
}

/* ---- page frame ---- */
body.v3 .app-main-inner--full,
body.v3 .app-main-inner {
    padding: 24px var(--v3-gutter) 40px;
}
.v3-page { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.v3-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    padding: 16px 8px 0;
}
.v3-h1 {
    margin: 0;
    font-family: var(--v3-display);
    font-size: 56px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: -1.12px;
    color: var(--v3-text);
}
.v3-lead { margin: 9px 0 0; font-size: 16px; line-height: 1.55; color: var(--v3-muted); }
.v3-display { font-family: var(--v3-display); font-weight: 400; color: var(--v3-text); }

/* ---- surfaces ---- */
.v3-card {
    min-width: 0;
    padding: 22px 24px;
    border-radius: var(--v3-r-card);
    background: var(--v3-card);
}
.v3-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}
.v3-card-title { margin: 0; font-size: 17px; font-weight: 600; line-height: 1.55; color: var(--v3-text); }
.v3-card-note { font-size: 13px; color: var(--v3-muted); }
.v3-link { font-size: 14px; font-weight: 500; color: var(--v3-accent); text-decoration: none; }
.v3-link:hover { color: var(--v3-accent); text-decoration: underline; }
.v3-tile {
    min-width: 0;
    padding: 14px 16px;
    border-radius: var(--v3-r-tile);
    background: var(--v3-tile);
}
.v3-label { display: block; font-size: 12px; line-height: 1.55; color: var(--v3-muted); }
.v3-value { display: block; font-size: 20px; font-weight: 600; line-height: 1.4; color: var(--v3-text); }
.v3-value--display { font-family: var(--v3-display); font-weight: 400; font-size: 22px; }

/* ---- chips, badges, buttons ---- */
.v3-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.v3-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px 6px;
    border-radius: var(--v3-r-pill);
    background: var(--v3-chip);
    font-size: 13px;
    line-height: 1.55;
    color: var(--v3-text-2);
    white-space: nowrap;
}
.v3-chip--card { background: var(--v3-card); }
.v3-dot { width: 6px; height: 6px; flex: none; border-radius: 3px; background: currentColor; }
.v3-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: var(--v3-r-pill);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.55;
    white-space: nowrap;
}
.v3-badge--green { background: var(--v3-green-soft); color: var(--v3-green); }
.v3-badge--accent { background: var(--v3-accent-soft); color: var(--v3-accent); }
.v3-badge--red { background: var(--v3-red-soft); color: var(--v3-red); }
.v3-badge--muted { background: var(--v3-chip); color: var(--v3-text-2); }
.v3-badge--mono { font-family: var(--v3-mono); font-weight: 700; }
.v3-badge--tag { border-radius: var(--v3-r-tag); padding: 3px 10px 4px; font-size: 13px; }
.v3-you {
    display: inline-flex;
    padding: 0 8px;
    border-radius: 6px;
    background: var(--v3-accent);
    font-family: var(--v3-sans);
    font-size: 11px;
    font-weight: 700;
    line-height: 19px;
    letter-spacing: 0;
    color: #fff;
    text-transform: uppercase;
    vertical-align: middle;
}
.v3-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 22px 13px;
    border: none;
    border-radius: var(--v3-r-pill);
    background: var(--v3-chip);
    font-family: var(--v3-sans);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--v3-text);
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}
.v3-btn:hover { background: var(--v3-chip-hover); color: var(--v3-text); text-decoration: none; }
.v3-btn--primary { background: var(--v3-accent); color: #fff; }
.v3-btn--primary:hover { background: #ff6f3c; color: #fff; }
.v3-btn--dark-text { color: var(--v3-bg); }
.v3-btn--dark-text:hover { color: var(--v3-bg); }
.v3-btn--sm { padding: 7px 14px 8px; font-size: 13px; font-weight: 500; background: var(--v3-avatar); }
.v3-icon-btn {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: none;
    border-radius: 50%;
    background: var(--v3-chip);
    font-size: 16px;
    color: var(--v3-text-2);
    text-decoration: none;
}
.v3-icon-btn:hover { background: var(--v3-chip-hover); color: var(--v3-text); }
.v3-icon-btn--card { background: var(--v3-card); width: 48px; height: 48px; font-size: 20px; color: var(--v3-text); }

/* ---- segmented pill switch (Активные / Завершённые) ---- */
.v3-switch { display: inline-flex; gap: 4px; padding: 6px; border-radius: var(--v3-r-pill); background: var(--v3-card); }
.v3-switch a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    border-radius: var(--v3-r-pill);
    font-size: 15px;
    font-weight: 500;
    line-height: 23px;
    color: var(--v3-muted);
    text-decoration: none;
}
.v3-switch a::before { content: ""; width: 6px; height: 6px; border-radius: 3px; background: var(--v3-accent); opacity: 0; }
.v3-switch a:hover { color: var(--v3-text); }
.v3-switch a.active { background: #26262a; color: var(--v3-text); }
.v3-switch a.active::before { opacity: 1; }

/* ---- select pills (Игра: … ▾) — the existing .car-filter dropdown, restyled ---- */
.v3 .v3-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.v3 .v3-filters .car-filter-trigger {
    display: flex;
    align-items: center;
    gap: 16px;
    height: 52px;
    padding: 12px 24px;
    border: none;
    border-radius: var(--v3-r-tile);
    background: var(--v3-card);
    box-shadow: none;
    font-family: var(--v3-sans);
    font-size: 14px;
    text-transform: none;
}
.v3 .v3-filters .car-filter-label { color: var(--v3-muted); font-weight: 400; font-family: var(--v3-sans); font-size: 14px; text-transform: none; letter-spacing: 0; }
.v3 .v3-filters .car-filter-value { display: flex; align-items: center; gap: 8px; color: var(--v3-text); font-weight: 500; font-family: var(--v3-sans); font-size: 14px; text-transform: none; letter-spacing: 0; }
.v3 .v3-filters .car-filter-value svg { margin-left: 14px; color: var(--v3-muted); }
.v3 .v3-filters .car-filter-list { border: none; border-radius: var(--v3-r-tile); background: var(--v3-tile); box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5); }
.v3 .v3-filters .car-filter-item { font-family: var(--v3-sans); font-size: 14px; text-transform: none; color: var(--v3-text-2); }
.v3 .v3-filters .car-filter-item.active,
.v3 .v3-filters .car-filter-item:hover { color: var(--v3-text); background: var(--v3-chip); }

/* ---- tables: header strip + rows as tiles ---- */
.v3-table { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.v3-thead,
.v3-row {
    display: grid;
    grid-template-columns: var(--v3-cols);
    align-items: center;
    gap: 16px;
    padding: 12px 32px;
}
.v3-thead {
    border-radius: 10px;
    background: var(--v3-card);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.55;
    letter-spacing: 0.72px;
    text-transform: uppercase;
    color: var(--v3-muted);
}
.v3-thead--tile { background: var(--v3-tile); padding-left: 16px; padding-right: 16px; }
.v3-row {
    min-height: 92px;
    padding-top: 16px;
    padding-bottom: 16px;
    border-radius: var(--v3-r-tile);
    background: var(--v3-card);
    color: var(--v3-text);
    text-decoration: none;
}
a.v3-row:hover { filter: brightness(1.12); color: var(--v3-text); text-decoration: none; }
.v3-row--1 { background: var(--v3-row-gold); }
.v3-row--2 { background: var(--v3-row-silver); }
.v3-row--3 { background: var(--v3-row-bronze); }
.v3-row--me { background: var(--v3-row-me); }
.v3-row--tile { background: var(--v3-tile); }
.v3-right { text-align: right; justify-self: end; }
.v3-pos { font-family: var(--v3-num); font-size: 20px; font-weight: 600; color: #656565; }
.v3-row--1 .v3-pos, .v3-pos--1 { color: var(--v3-gold); }
.v3-row--2 .v3-pos, .v3-pos--2 { color: var(--v3-silver); }
.v3-row--3 .v3-pos, .v3-pos--3 { color: var(--v3-bronze); }
.v3-pilot { display: flex; align-items: center; gap: 16px; min-width: 0; }
.v3-brand { width: 40px; height: 40px; flex: none; object-fit: contain; }
.v3-pilot-text { min-width: 0; }
.v3-pilot-name {
    display: block;
    font-family: var(--v3-display);
    font-size: 16px;
    line-height: 24px;
    letter-spacing: 1.28px;
    color: var(--v3-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.v3-pilot-name a { color: inherit; }
.v3-pilot-sub { display: block; font-size: 12px; line-height: 1.55; color: var(--v3-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v3-time { font-size: 19px; font-weight: 700; color: var(--v3-text); font-variant-numeric: tabular-nums; }
.v3-time-sub { display: block; font-size: 11px; line-height: 17px; color: var(--v3-muted); }
.v3-time-sub b { font-weight: 400; color: var(--v3-accent-nav); }
.v3-num { font-size: 16px; font-weight: 700; font-variant-numeric: tabular-nums; }
.v3-bar { position: relative; flex: 1 1 auto; height: 6px; border-radius: 3px; background: var(--v3-track); overflow: hidden; }
.v3-bar > i { position: absolute; inset: 0 auto 0 0; border-radius: 3px; background: var(--v3-accent); }

@media (max-width: 999px) {
    .v3-h1 { font-size: 40px; }
    .v3-thead { display: none; }
    .v3-row { min-height: 0; padding: 14px 16px; column-gap: 12px; }
}
@media (max-width: 599px) {
    :root { --v3-gutter: 16px; }
    .v3-h1 { font-size: 34px; }
    .v3-card { padding: 18px 16px; }
}

/* ==== Leaderboard (Figma 616:13560) ==== */
.lb3-grid { display: grid; grid-template-columns: 400px minmax(0, 1fr); gap: 16px; align-items: start; }
.lb3-track { display: flex; flex-direction: column; gap: 16px; }
.lb3-track-map {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 280px;
    border-radius: var(--v3-r-tile);
    background: var(--v3-card);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}
.lb3-track-map img { width: 206px; height: 214px; object-fit: contain; }
.lb3-track-name { margin: 4px 0 0; font-family: var(--v3-display); font-size: 24px; font-weight: 400; line-height: 1.1; letter-spacing: -0.64px; color: var(--v3-text); }
.lb3-best { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px 18px; }
.lb3-best-time { font-family: var(--v3-display); font-size: 32px; line-height: 1.2; color: var(--v3-accent); }
.lb3-best-driver { font-size: 14px; color: var(--v3-text-2); }
.lb3 .track-flag { width: 18px; height: 12px; border-radius: 2px; object-fit: cover; }

@media (max-width: 1279px) {
    .lb3-grid { grid-template-columns: minmax(0, 1fr); }
    .lb3-track { display: grid; grid-template-columns: 180px minmax(0, 1fr); align-items: center; }
    .lb3-track-map { grid-row: span 2; height: 180px; }
    .lb3-track-map img { width: 140px; height: 150px; }
}
@media (max-width: 599px) {
    .lb3-track { grid-template-columns: 96px minmax(0, 1fr); gap: 12px; }
    .lb3-track-map { height: 110px; }
    .lb3-track-map img { width: 80px; height: 90px; }
    .lb3-best { grid-column: 1 / -1; }
    .lb3-table { --v3-cols: 28px minmax(0, 1fr) auto !important; }
    .lb3-table .v3-brand { width: 28px; height: 28px; }
    .lb3-table .v3-pos { font-size: 16px; }
    .lb3-table .v3-time { font-size: 16px; }
    .v3 .v3-filters .car-filter-trigger { height: 44px; padding: 10px 16px; }
}

/* ==== Events (Figma 619:19657) ==== */
.ev3-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ev3-list { display: flex; flex-direction: column; gap: 10px; }
.ev3-day {
    margin: 0;
    padding: 13px 8px 2px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: 1.04px;
    text-transform: uppercase;
    color: var(--v3-muted);
}
.ev3-row {
    --ev3-bg: var(--v3-card);
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr) auto 44px;
    align-items: center;
    gap: 20px;
    min-height: 120px;
    padding: 18px 32px;
    border-radius: var(--v3-r-card);
    background: var(--ev3-bg);
    color: var(--v3-text);
    text-decoration: none;
}
.ev3-row:hover { --ev3-bg: #1c1c20; color: var(--v3-text); text-decoration: none; }
/* A championship's round: its picture fills the right side and fades into the card,
   the same treatment as the Чемпионаты hero (.ch3-hero-photo). */
.ev3-row--champ { position: relative; overflow: hidden; isolation: isolate; min-height: 180px; } /* 1.5× a plain row */
/* Hover tints the card like a plain row; the fade over the picture follows --ev3-bg, so it
   tints with it. The picture itself doesn't zoom. */
.ev3-row--champ > :not(.ev3-photo) { position: relative; z-index: 1; }
.ev3-photo { position: absolute; inset: 0 0 0 40%; z-index: 0; pointer-events: none; }
.ev3-photo img { width: 100%; height: 100%; object-fit: cover; opacity: 0.55; }
.ev3-photo::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, var(--ev3-bg) 0%, color-mix(in srgb, var(--ev3-bg) 70%, transparent) 35%, color-mix(in srgb, var(--ev3-bg) 35%, transparent) 100%);
}
.ev3-champ { max-width: 100%; font-size: 12px; font-weight: 500; line-height: 1.4; color: var(--v3-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ev3-champ-kind { color: var(--v3-accent); font-weight: 600; }
.ev3-row:hover .v3-icon-btn { background: var(--v3-accent); color: #fff; }
/* Pinned to the last column so a row without .ev3-meta (club qualification) keeps it on the right. */
.ev3-row > .v3-icon-btn { grid-column: -2; }
.ev3-time { display: flex; flex-direction: column; gap: 4px; }
.ev3-time-main { font-size: 34px; font-weight: 800; line-height: 1; letter-spacing: -0.68px; color: var(--v3-text); font-variant-numeric: tabular-nums; }
.ev3-time-sub { font-family: var(--v3-mono); font-size: 12px; line-height: 1.55; color: var(--v3-muted); white-space: nowrap; }
.ev3-main { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-width: 0; }
.ev3-name { max-width: 100%; font-family: var(--v3-display); font-size: 21px; line-height: 1.15; letter-spacing: -0.21px; color: var(--v3-text); }
.ev3-meta { display: grid; grid-template-columns: 104px 112px 92px 130px; gap: 20px; margin: 0; }
.ev3-meta div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ev3-meta dt { font-size: 12px; font-weight: 400; line-height: 1.55; color: var(--v3-muted); }
.ev3-meta dd { margin: 0; font-size: 15px; font-weight: 600; line-height: 1.55; color: var(--v3-text); white-space: nowrap; }
.ev3-meta dd .v3-badge { align-self: flex-start; }
.ev3-weather { display: flex; align-items: center; gap: 6px; }

@media (max-width: 1279px) {
    .ev3-row { grid-template-columns: 110px minmax(0, 1fr) 44px; row-gap: 14px; }
    .ev3-meta { grid-column: 2 / 3; grid-row: 2; grid-template-columns: repeat(4, auto); justify-content: start; gap: 28px; }
    .ev3-row > .v3-icon-btn { grid-column: 3; grid-row: 1 / span 2; }
}
@media (max-width: 699px) {
    .ev3-row { grid-template-columns: minmax(0, 1fr) 44px; padding: 18px 16px; min-height: 0; }
    .ev3-time { flex-direction: row; align-items: baseline; gap: 12px; }
    .ev3-time-main { font-size: 26px; }
    .ev3-main { grid-column: 1; grid-row: 2; }
    .ev3-meta { grid-column: 1 / -1; grid-row: 3; grid-template-columns: 1fr 1fr; gap: 12px 16px; }
    .ev3-row > .v3-icon-btn { grid-column: 2; grid-row: 1; }
    .ev3-name { font-size: 18px; }
    .ev3-photo { inset: 0; }
    .ev3-photo img { opacity: 0.35; }
}

/* ==== Dashboard (Figma 616:13243) ==== */
.dash3-greet {
    display: flex;
    align-items: center;
    gap: 28px;
    padding: 18px 24px;
    border-radius: var(--v3-r-card);
}
.dash3-hello { display: flex; align-items: center; gap: 14px; flex: none; color: var(--v3-text); text-decoration: none; }
.dash3-hello:hover { color: var(--v3-text); text-decoration: none; }
.dash3-hello-name { display: block; font-size: 20px; font-weight: 500; line-height: 1.55; }
.dash3-hello-note { display: block; font-size: 13px; line-height: 1.55; color: var(--v3-muted); }
.dash3-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; flex: 1 1 auto; min-width: 0; }
.dash3-kpi { display: flex; flex-direction: column; gap: 4px; padding: 12px 16px 14px; background: var(--v3-card); }
.dash3-kpi-line { display: flex; align-items: center; gap: 10px; min-width: 0; }
.dash3-kpi-line .v3-label { white-space: nowrap; }
.dash3-kpi-value { font-family: var(--v3-display); font-size: 22px; line-height: 1.3; color: var(--v3-text); }
.dash3-delta { font-size: 12px; font-weight: 600; color: var(--v3-green); white-space: nowrap; }
.dash3-delta--down { color: var(--v3-red); }

.dash3-next {
    position: relative;
    min-height: 340px;
    border-radius: var(--v3-r-hero);
    background: var(--v3-card);
    overflow: hidden;
}
.dash3-next-photo {
    position: absolute;
    inset: 0 0 0 38%;
    background: var(--dash3-photo, none) center / cover no-repeat, rgba(127, 127, 127, 0.08);
}
.dash3-next::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, var(--v3-card) 38%, rgba(23, 23, 26, 0.85) 52%, rgba(23, 23, 26, 0) 80%);
    pointer-events: none;
}
.dash3-next-body {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 28px;
    min-height: 340px;
    padding: 28px 32px;
}
.dash3-next-head { display: flex; align-items: center; gap: 12px; }
.dash3-next-head h2 { margin: 0; font-size: 15px; font-weight: 600; line-height: 1.55; color: var(--v3-text); }
.dash3-next-main { display: flex; flex-direction: column; gap: 14px; max-width: 72%; }
.dash3-next-date { font-size: 14px; font-weight: 500; color: var(--v3-accent); }
.dash3-next-name { font-family: var(--v3-display); font-size: 44px; line-height: 1.05; letter-spacing: -0.88px; color: var(--v3-text); text-decoration: none; }
.dash3-next-name:hover { color: var(--v3-text); text-decoration: none; }
.dash3-next-empty { margin: 0; font-size: 15px; color: var(--v3-muted); }
.dash3-next-actions { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: auto; }
.dash3-countdown { display: flex; flex-direction: column; }
.dash3-countdown b { font-size: 18px; font-weight: 700; color: var(--v3-text); font-variant-numeric: tabular-nums; }
.dash3-server { min-width: 0; max-width: 100%; }
.dash3-server-row { display: flex; align-items: center; gap: 10px; min-width: 0; }
.dash3-server-row b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dash3-server-dot { width: 8px; height: 8px; border-radius: 4px; color: var(--v3-green); box-shadow: 0 0 0 3px var(--v3-green-soft); }
@media (max-width: 599px) {
    .dash3-server { width: 100%; }
    .dash3-server-row { flex-wrap: wrap; align-items: flex-start; }
    .dash3-server-dot { margin-top: 8px; }
    .dash3-server-row b { flex: 1 1 calc(100% - 18px); white-space: normal; overflow-wrap: anywhere; }
}

.dash3-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.dash3-last { display: flex; flex-direction: column; gap: 20px; }
.dash3-last .v3-card-head { margin-bottom: 0; }
.dash3-last-main { display: flex; align-items: center; gap: 24px; min-width: 0; }
.dash3-last-pos {
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 132px;
    height: 132px;
    border-radius: 22px;
    background: var(--v3-tile);
    font-size: 48px;
    font-weight: 700;
    color: var(--v3-text);
}
.dash3-last-copy { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.dash3-last-name { font-family: var(--v3-display); font-size: 30px; line-height: 1.15; letter-spacing: -0.6px; color: var(--v3-text); text-decoration: none; }
.dash3-last-name:hover { color: var(--v3-text); text-decoration: none; }
.dash3-last-sub { font-size: 14px; color: var(--v3-text-3); }
.dash3-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.dash3-upcoming { padding-bottom: 14px; }
.dash3-race-list { display: flex; flex-direction: column; }
.dash3-race { display: flex; align-items: center; gap: 18px; padding: 12px; border-radius: var(--v3-r-tile); color: var(--v3-text); text-decoration: none; }
.dash3-race:hover { background: var(--v3-tile); color: var(--v3-text); text-decoration: none; }
.dash3-race-day {
    display: flex;
    flex: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    border-radius: var(--v3-r-tile);
    background: var(--v3-chip);
    font-size: 22px;
    font-weight: 600;
    line-height: 1.1;
}
.dash3-race-day small { font-size: 11px; font-weight: 400; color: var(--v3-muted); }
.dash3-race-copy { display: flex; flex: 1 1 auto; flex-direction: column; gap: 4px; min-width: 0; }
.dash3-race-name { font-family: var(--v3-display); font-size: 18px; line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dash3-race-arrow { font-size: 18px; color: var(--v3-muted); }

.dash3-pilots { padding-bottom: 22px; }
.dash3-table .v3-row { min-height: 64px; padding: 12px 16px; border-radius: 12px; background: transparent; }
.dash3-table .v3-row--me { background: var(--v3-row-me); }
.dash3-table .v3-pos { font-family: var(--v3-sans); color: var(--v3-muted); }
.dash3-table .v3-pos--1 { color: var(--v3-gold); }
.dash3-table .v3-pos--2 { color: var(--v3-silver); }
.dash3-table .v3-pos--3 { color: var(--v3-bronze); }
.dash3-table .v3-pilot { gap: 14px; }
.dash3-table .v3-avatar { font-size: 13px; }
.dash3-sa { display: flex; align-items: center; gap: 10px; }
.dash3-sa .v3-num { min-width: 28px; }

@media (max-width: 1479px) {
    .dash3-greet { flex-direction: column; align-items: stretch; gap: 16px; padding: 0; }
    .dash3-next-main { max-width: 70%; }
}
@media (max-width: 1099px) {
    .dash3-pair { grid-template-columns: minmax(0, 1fr); }
    .dash3-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dash3-next-photo { inset: 0; opacity: 0.35; }
    .dash3-next::after { background: linear-gradient(0deg, var(--v3-card) 10%, rgba(23, 23, 26, 0.6) 100%); }
    .dash3-next-main { max-width: none; }
    .dash3-next-name { font-size: 32px; }
    .dash3-table { --v3-cols: 40px minmax(0, 1fr) auto 80px !important; }
    .dash3-table .dash3-sa { display: none; }
}
@media (max-width: 599px) {
    .dash3-next-body { padding: 22px 18px; gap: 20px; }
    .dash3-next-name { font-size: 26px; }
    .dash3-last-pos { width: 88px; height: 88px; font-size: 32px; border-radius: 16px; }
    .dash3-last-name { font-size: 22px; }
    .dash3-tiles { grid-template-columns: 1fr 1fr 1fr; gap: 6px; }
    .dash3-tiles .v3-tile { padding: 12px; }
    .dash3-tiles .v3-value { font-size: 16px; }
    .dash3-table { --v3-cols: 28px minmax(0, 1fr) 56px !important; }
    .dash3-table .v3-row > :nth-child(3) { display: none; }
}

/* ==== Event page (Figma 616:19185) ==== */
.champ-page-panel.ed3 { display: flex; flex-direction: column; gap: 24px; margin: 0; padding: 0; background: none; }
.ed3-hero { display: flex; flex-direction: column; gap: 4px; padding: 16px 8px 0; }
.ed3-titlerow { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.ed3-title { margin: 0; font-family: var(--v3-display); font-size: 32px; font-weight: 400; line-height: 1.1; letter-spacing: -1.04px; color: var(--v3-text); }
.ed3-actions { display: flex; align-items: center; gap: 8px; margin-left: auto; flex-wrap: wrap; }
.ed3-actions form { margin: 0; }
.ed3-note { margin: 4px 0 0 66px; }
.ed3-chips { padding-left: 66px; margin-top: 8px; }
.ed3-more { position: relative; }
.ed3-more > summary { list-style: none; cursor: pointer; }
.ed3-more > summary::-webkit-details-marker { display: none; }
.ed3-menu {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    z-index: 30;
    display: flex;
    flex-direction: column;
    min-width: 220px;
    padding: 6px;
    border-radius: var(--v3-r-tile);
    background: var(--v3-tile);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5);
}
.ed3-menu a,
.ed3-menu button {
    display: block;
    width: 100%;
    padding: 10px 12px;
    border: none;
    border-radius: 10px;
    background: none;
    font-family: var(--v3-sans);
    font-size: 14px;
    text-align: left;
    color: var(--v3-text-2);
    text-decoration: none;
    cursor: pointer;
}
.ed3-menu a:hover,
.ed3-menu button:hover { background: var(--v3-chip); color: var(--v3-text); }

.race-info-grid.ed3-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 460px;
    gap: 16px;
    border: none;
}
.ed3-side { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ed3-side .v3-card-title { margin-bottom: 8px; }
.ed3-connect { display: flex; flex-direction: column; gap: 8px; }
.ed3-copyrow { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; }
.ed3-copyrow > span { min-width: 0; }
.ed3-copyval { display: block; font-size: 14px; font-weight: 500; color: var(--v3-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ed3-secret { letter-spacing: 2.1px; }
.ed3-session { display: flex; align-items: center; gap: 14px; padding: 11px 0 12px; }
.ed3-session-time { width: 72px; flex: none; font-size: 22px; font-weight: 700; color: var(--v3-accent); font-variant-numeric: tabular-nums; }
.ed3-session-name { display: block; font-size: 17px; font-weight: 600; line-height: 1.4; color: var(--v3-text); }
.ed3-weather { display: flex; flex-direction: column; gap: 14px; }
.ed3-weather .v3-card-title { margin-bottom: 0; }
.ed3-weather-value { margin: 0; font-size: 44px; font-weight: 600; line-height: 1.1; letter-spacing: -0.88px; color: var(--v3-text); }
.ed3-weather-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.ed3-weather-tiles .v3-tile { padding: 12px 14px; }
.ed3-schematic { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.ed3-schematic-map { display: flex; align-items: center; justify-content: center; align-self: stretch; height: 320px; border-radius: var(--v3-r-tile); background: var(--v3-tile); }
.ed3-schematic-map img { width: 206px; height: 214px; object-fit: contain; }
.ed3-schematic-name { margin: 0; font-family: var(--v3-display); font-size: 24px; font-weight: 400; color: var(--v3-text); }

/* the 3D model as a rounded card, its numbers as translucent tiles */
.ed3 .track3d.ed3-map { border-radius: var(--v3-r-hero); background: var(--v3-card); overflow: hidden; }
.ed3 .ed3-map .track3d-view { min-height: 761px; background: radial-gradient(ellipse 60% 55% at 50% 58%, #1b1b1f 0%, #121214 55%, rgba(23, 23, 26, 0) 100%), var(--v3-card); }
.ed3 .ed3-map .track3d-view::after { background: linear-gradient(0deg, rgba(14, 14, 16, 0.95) 0%, rgba(14, 14, 16, 0.6) 40%, rgba(14, 14, 16, 0) 100%); }
.ed3 .ed3-map .track3d-info { padding: 0 32px 28px; }
.ed3 .ed3-map .track3d-name { margin-bottom: 18px; font-family: var(--v3-display); font-weight: 400; font-size: 24px; letter-spacing: -0.64px; text-transform: none; }
.ed3 .ed3-map .track3d-stats { gap: 10px; max-width: none; }
.ed3 .ed3-map .track3d-stat { gap: 4px; padding: 12px 16px; border-radius: var(--v3-r-tile); background: rgba(38, 38, 42, 0.85); }
.ed3 .ed3-map .track3d-stat span { font-size: 12px; line-height: 1.55; text-transform: none; color: var(--v3-muted); }
.ed3 .ed3-map .track3d-stat b { font-family: var(--v3-display); font-weight: 400; font-size: 22px; }
.ed3 .ed3-map .track3d-tag { font-family: var(--v3-sans); font-weight: 700; border-radius: var(--v3-r-pill); background: rgba(23, 23, 26, 0.85); }
.ed3 .event-details-body { display: flex; flex-direction: column; gap: 24px; }
.ed3 .event-details-results { padding: 22px 24px; border-radius: var(--v3-r-card); background: var(--v3-card); }
.ed3 .event-results-title { margin: 0 0 14px; font-size: 17px; font-weight: 600; }
.ed3 .event-details-results .card { border: none; border-radius: var(--v3-r-tile); background: var(--v3-tile); }

@media (max-width: 1279px) {
    .race-info-grid.ed3-grid { grid-template-columns: minmax(0, 1fr); }
    .ed3 .ed3-map .track3d-view { min-height: 520px; }
    .ed3-side { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
}
@media (max-width: 999px) {
    .ed3 .ed3-map .track3d-view { min-height: 0; height: 340px; }
    .ed3-chips, .ed3-note { padding-left: 0; margin-left: 0; }
    .ed3-actions { margin-left: 0; width: 100%; }
    .ed3-weather-value { font-size: 32px; }
    .ed3 .event-details-results { padding: 18px 12px; }
}

/* ==== Shared result tables (table-v2) in the v3 look — rows as tiles ==== */
body.v3 .table-v2 { gap: 6px; }
body.v3 .table-v2-header { height: auto; border: none; border-radius: 10px; background: var(--v3-tile); }
body.v3 .table-v2-header > div { padding: 12px 8px; font-family: var(--v3-sans); font-weight: 500; letter-spacing: 0.72px; color: var(--v3-muted); }
body.v3 .table-v2-row { min-height: 92px; border: none; border-radius: var(--v3-r-tile); background: #1c1c20; }
body.v3 .table-v2-row.rank-1 { background: var(--v3-row-gold); }
body.v3 .table-v2-row.rank-2 { background: var(--v3-row-silver); }
body.v3 .table-v2-row.rank-3 { background: var(--v3-row-bronze); }
body.v3 .table-v2-cell-pos { font-family: var(--v3-num); font-weight: 600; font-size: 20px; color: #656565; }
body.v3 .table-v2-row.rank-1 .table-v2-cell-pos { color: var(--v3-gold); }
body.v3 .table-v2-row.rank-2 .table-v2-cell-pos { color: var(--v3-silver); }
body.v3 .table-v2-row.rank-3 .table-v2-cell-pos { color: var(--v3-bronze); }
body.v3 .table-v2-cell-pilot img { width: 40px; height: 40px; }
body.v3 .table-v2-pilot-name { font-family: var(--v3-display); font-weight: 400; font-size: 16px; letter-spacing: 1.28px; }
body.v3 .table-v2-pilot-car { font-family: var(--v3-sans); font-weight: 400; font-size: 12px; line-height: 1.55; letter-spacing: 0; text-transform: none; color: var(--v3-muted); }
body.v3 .table-v2-cell-value { font-family: var(--v3-sans); font-weight: 700; font-size: 16px; }
body.v3 .table-v2-total-chip { padding: 6px 12px; border-radius: 4px; background: var(--v3-text); color: var(--v3-bg); font-family: var(--v3-sans); font-size: 14px; font-weight: 700; }
body.v3 .table-v2-cell-time-value { font-family: var(--v3-sans); font-weight: 700; font-size: 19px; }
body.v3 .table-v2-cell-time-date { font-family: var(--v3-sans); letter-spacing: 0; }

/* ==== Profile (Figma 608:10962) ==== */
.champ-page-panel.pr3 { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 0; background: none; }
.pr3-head { display: flex; align-items: center; gap: 48px; padding: 16px 8px 8px; }
.pr3-id { flex: 1 1 auto; min-width: 0; }
.pr3-name { margin: 0; font-family: var(--v3-display); font-size: 56px; font-weight: 400; line-height: 1; letter-spacing: -1.12px; color: var(--v3-text); }
.pr3-licence { display: flex; align-items: center; gap: 16px; flex: 0 1 620px; min-width: 0; padding: 18px 22px; }
.pr3-licence-letter {
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 12px;
    background: var(--v3-accent);
    font-size: 30px;
    font-weight: 500;
    color: #fff;
}
.pr3-licence-body { display: flex; flex: 1 1 auto; flex-direction: column; gap: 12px; min-width: 0; }
.pr3-licence-line { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; color: var(--v3-text-3); }
.pr3-licence-line b { font-weight: 700; color: var(--v3-text); }
.pr3-segments { display: flex; gap: 3px; height: 18px; }
.pr3-segments i { flex: 1 1 0; border-radius: 3px; background: var(--v3-track); }
.pr3-segments i.is-on { background: var(--v3-accent); }
.pr3-segments i.is-next { background: #673627; }

.pr3-stats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.pr3-stat { display: flex; flex-direction: column; gap: 14px; padding: 20px 22px; }
.pr3-stat-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 14px; color: var(--v3-text-3); }
.pr3-delta { padding: 4px 8px; border-radius: var(--v3-r-tag); background: var(--v3-chip); font-size: 12px; font-weight: 600; color: var(--v3-green); white-space: nowrap; }
.pr3-delta--bad { color: var(--v3-red); }
.pr3-delta--flat { color: var(--v3-muted); }
.pr3-stat-value { font-family: var(--v3-display); font-size: 40px; line-height: 1; letter-spacing: -0.8px; color: var(--v3-text); }
.pr3-stat-value small { margin-left: 6px; font-family: var(--v3-sans); font-size: 16px; letter-spacing: 0; color: var(--v3-muted); }
.pr3-stat-value--empty { font-family: var(--v3-sans); font-size: 20px; color: var(--v3-muted); }
.pr3-stat-note { font-size: 12px; color: var(--v3-faint); }

.pr3-charts { display: grid; grid-template-columns: 560px minmax(0, 1fr); gap: 16px; }
.pr3-legend { display: flex; gap: 10px; font-size: 12px; color: var(--v3-muted); }
.pr3-legend span { display: inline-flex; align-items: center; gap: 5px; }
.pr3-legend i { width: 8px; height: 8px; border-radius: 4px; }
.pr3-l0 { background: var(--v3-chip); }
.pr3-l1 { background: #7f351c; }
.pr3-l2 { background: #c5491e; }
.pr3-l4 { background: var(--v3-accent); }
.pr3-heat {
    display: grid;
    grid-template-columns: 22px repeat(var(--weeks), minmax(0, 16px));
    grid-template-rows: repeat(7, 16px) auto;
    gap: 4px;
    justify-content: space-between;
    margin-top: 6px;
}
.pr3-heat > i { border-radius: 4px; }
.pr3-heat-day { grid-column: 1; font-size: 11px; line-height: 16px; color: var(--v3-muted); }
.pr3-heat-month { grid-row: 8; padding-top: 10px; font-size: 11px; color: var(--v3-muted); white-space: nowrap; }
.pr3-elo { display: flex; flex-direction: column; }
.pr3-elo-chart { position: relative; flex: 1 1 auto; min-height: 180px; margin-top: 12px; }
.pr3-elo-chart svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.pr3-grid { stroke: rgba(255, 255, 255, 0.06); stroke-width: 1; vector-effect: non-scaling-stroke; }
.pr3-elo-dot { position: absolute; width: 10px; height: 10px; margin: -5px 0 0 -5px; border: 2px solid #fff; border-radius: 50%; background: var(--v3-accent); }
.pr3-elo-empty { margin: auto 0; }

/* tabs: the existing strip as a pill tray, the active tab outlined in accent */
.pr3 .profile-v2-tabs {
    display: inline-flex;
    align-self: flex-start;
    flex-wrap: wrap;
    gap: 4px;
    margin: 16px 0 0;
    padding: 6px;
    border: none;
    border-radius: 16px;
    background: var(--v3-card);
}
.pr3 .profile-v2-tabs .events-v2-tab {
    padding: 10px 18px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: none;
    font-family: var(--v3-sans);
    font-size: 15px;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    color: var(--v3-text-3);
}
.pr3 .profile-v2-tabs .events-v2-tab:hover { color: var(--v3-text); }
.pr3 .profile-v2-tabs .events-v2-tab.active { border-color: var(--v3-accent); background: #1f1412; color: var(--v3-text); }
.pr3 .profile-v2-tabs .events-v2-tab::after { display: none; }
.pr3 .profile-admin-tabs { margin-top: 0; }
.pr3 .profile-admin-tabs-label { align-self: center; padding: 0 10px; font-size: 12px; text-transform: uppercase; color: var(--v3-muted); }
.pr3 .profile-v2-content { padding: 0; }
.pr3 .profile-v2-filters { margin: 0 0 16px; padding: 0; border: none; }
.pr3 .profile-v2-track-filter { display: none; }

.pr3-results { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 16px; align-items: start; }
.pr3-tracks { display: flex; flex-direction: column; gap: 4px; padding: 8px; }
.pr3-track { display: flex; align-items: center; gap: 12px; padding: 14px 12px; border-radius: var(--v3-r-tile); color: var(--v3-text); text-decoration: none; }
.pr3-track:hover { background: var(--v3-tile); color: var(--v3-text); text-decoration: none; }
.pr3-track.active { background: var(--v3-tile); }
.pr3-track-code {
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--v3-chip);
    font-size: 10px;
    font-weight: 600;
    color: var(--v3-muted);
}
.pr3-track.active .pr3-track-code { color: var(--v3-accent); }
.pr3-track-text { display: flex; flex: 1 1 auto; flex-direction: column; gap: 2px; min-width: 0; }
.pr3-track-name { font-family: var(--v3-display); font-size: 16px; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pr3-track-laps { white-space: nowrap; }
.pr3-laps { display: flex; flex-direction: column; gap: 16px; }
.pr3-laps-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.pr3-laps-title { margin: 0; font-family: var(--v3-display); font-size: 24px; font-weight: 400; color: var(--v3-text); }
.pr3-best { font-family: var(--v3-mono); font-weight: 700; color: var(--v3-accent); }
.pr3-lap-table .v3-thead { padding-left: 16px; padding-right: 16px; }
.pr3-lap { min-height: 60px; padding: 10px 16px; border-radius: 0; background: transparent; border-bottom: 1px solid rgba(255, 255, 255, 0.05); }
.pr3-mono { font-family: var(--v3-mono); font-weight: 700; }
.pr3-muted { color: var(--v3-muted); font-weight: 400; }
.pr3-car { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pr3-time { font-size: 17px; }
.pr3-gap { display: flex; align-items: center; gap: 14px; }
.pr3-gap .v3-bar { max-width: 120px; }
.pr3-gap .pr3-mono { font-size: 12px; white-space: nowrap; }
.pr3 .table-delete-btn { color: var(--v3-muted); }

@media (max-width: 1479px) {
    .pr3-head { flex-direction: column; align-items: stretch; gap: 20px; }
    .pr3-licence { flex-basis: auto; }
    .pr3-charts { grid-template-columns: minmax(0, 1fr); }
    .pr3-stat { padding: 18px; }
    .pr3-stat-value { font-size: 34px; }
}
@media (max-width: 1279px) {
    .pr3-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 999px) {
    .pr3-name { font-size: 40px; }
    .pr3-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pr3-results { grid-template-columns: minmax(0, 1fr); }
    .pr3-tracks { flex-direction: row; overflow-x: auto; }
    .pr3-track { flex: none; }
    .pr3-lap-table { --v3-cols: 28px minmax(0, 1fr) auto 24px !important; }
    .pr3-lap-table .pr3-lap > :nth-child(4),
    .pr3-lap-table .pr3-lap > :nth-child(5) { display: none; }
    .pr3-heat { overflow-x: auto; }
}
@media (max-width: 599px) {
    .pr3-name { font-size: 32px; }
    .pr3-licence { padding: 14px; }
    .pr3-licence-letter { width: 48px; height: 48px; font-size: 22px; }
    .pr3-licence-line { flex-direction: column; gap: 2px; }
    .pr3-stats { gap: 10px; }
    .pr3-stat { padding: 16px; gap: 10px; }
    .pr3-stat-value { font-size: 30px; }
    .pr3-heat { grid-template-columns: 22px repeat(var(--weeks), 12px); grid-template-rows: repeat(7, 12px) auto; gap: 3px; }
}

/* ==== narrow screens: long single words (SPA-FRANCORCHAMPS) in the display face ==== */
.v3-h1, .ed3-title, .dash3-next-name, .dash3-last-name, .lb3-track-name, .pr3-name,
.pr3-laps-title, .ev3-name, .ed3-schematic-name { overflow-wrap: anywhere; }
@media (max-width: 599px) {
    .v3 .v3-filters { width: 100%; }
    .v3 .v3-filters .car-filter { min-width: 0; max-width: 100%; }
    .v3 .v3-filters .car-filter-trigger { max-width: 100%; gap: 10px; }
    .v3 .v3-filters .car-filter-value { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
    .lb3-track-name { font-size: 18px; }
    .ed3-title { font-size: 24px; }
    .ed3-titlerow { gap: 12px; }
    .ed3 .event-details-results form { flex-wrap: wrap; }
    .ed3 .event-details-results input[type="file"] { max-width: 100%; }
}
@media (max-width: 599px) {
    .dash3-next-name { font-size: 22px; }
    .dash3-next-head { flex-wrap: wrap; gap: 8px; }
    .dash3-kpi-line { flex-wrap: wrap; row-gap: 2px; }
}

/* profile: Steam name · city · app status under the name */
.pr3-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.pr3-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 18px 12px;
    border-radius: var(--v3-r-pill);
    background: #1c1c1f;
    font-size: 16px;
    line-height: 1.4;
    color: var(--v3-text-2);
    white-space: nowrap;
}
.pr3-chip .v3-dot { width: 8px; height: 8px; border-radius: 4px; }
@media (max-width: 599px) {
    .pr3-chips { margin-top: 14px; gap: 8px; }
    .pr3-chip { padding: 8px 14px; font-size: 14px; }
}

/* ==========================================================================
   Second batch (Figma 626:*) — shared states, championship, qualification,
   download, profile tabs.
   ========================================================================== */

/* ---- more buttons ---- */
.v3-btn--pill { padding: 12px 20px; font-size: 14px; font-weight: 500; }
.sr3-btn-dark { background: var(--v3-track); color: var(--v3-text); }
.sr3-btn-dark:hover { background: #303035; color: var(--v3-text); }
.v3-btn--danger { padding: 13px 23px; border: 1px solid rgba(255, 107, 107, 0.4); background: none; color: var(--v3-red); font-weight: 500; }
.v3-btn--danger:hover { background: var(--v3-red-soft); color: var(--v3-red); }
.v3-btn--pill.v3-btn--danger { padding: 7px 14px; font-size: 13px; }
.v3-btn--red { background: var(--v3-red); }
.v3-btn--red:hover { background: #ff8282; }
.v3-btn--outline-accent { border: 1px solid rgba(255, 90, 31, 0.5); background: none; color: var(--v3-accent); }
.v3-btn--outline-accent:hover { background: var(--v3-accent-soft); color: var(--v3-accent); }
.v3-btn--pill.v3-btn--outline-accent { padding: 7px 14px; font-size: 13px; }
.v3-btn:disabled { opacity: 0.5; cursor: default; }

/* ---- pill tab tray, the active tab outlined in accent ---- */
.v3-tabs {
    display: inline-flex;
    align-self: flex-start;
    flex-wrap: wrap;
    gap: 4px;
    padding: 6px;
    border-radius: var(--v3-r-pill);
    background: var(--v3-card);
}
.v3-tabs a,
.v3-tabs button {
    display: inline-flex;
    align-items: center;
    padding: 10px 18px;
    border: 1px solid transparent;
    border-radius: var(--v3-r-pill);
    background: none;
    font-family: var(--v3-sans);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.3;
    color: var(--v3-muted);
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}
.v3-tabs a:hover,
.v3-tabs button:hover { color: var(--v3-text); text-decoration: none; }
.v3-tabs a.active,
.v3-tabs button.active { border-color: var(--v3-accent-nav); background: var(--v3-track); color: #e6e8eb; }

/* ---- empty / error state (626:34672) ---- */
.v3-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 304px;
    padding: 48px 32px;
    text-align: center;
}
.v3-empty--bare { min-height: 240px; }
.v3-empty-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 24px;
    background: var(--v3-tile);
    font-size: 20px;
    color: var(--v3-muted);
}
.v3-empty-icon.is-error { background: rgba(255, 107, 107, 0.12); color: var(--v3-red); }
.v3-empty-title { margin: 0; font-size: 18px; font-weight: 600; color: var(--v3-text); }
.v3-empty-text { max-width: 320px; margin: 0; font-size: 14px; line-height: 21px; color: var(--v3-muted); text-wrap: balance; }
.v3-empty .v3-btn { font-weight: 600; }
.v3-empty .v3-btn.sr3-btn-dark { font-weight: 500; }

/* ---- toasts (626:34733): bottom-right, 4 s ---- */
.v3-toasts {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    width: min(360px, calc(100vw - 32px));
    pointer-events: none;
}
.v3-toast {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    border-radius: 16px;
    background: var(--v3-track);
    box-shadow: 0 18px 20px rgba(0, 0, 0, 0.5);
    font-family: var(--v3-sans);
    font-size: 14px;
    font-weight: 500;
    color: var(--v3-text);
    pointer-events: auto;
    animation: v3ToastIn 0.2s ease-out;
}
.v3-toast > i { width: 8px; height: 8px; flex: none; border-radius: 4px; background: var(--v3-green); }
.v3-toast > span { flex: 1 1 auto; min-width: 0; }
.v3-toast--error > i { background: var(--v3-red); }
.v3-toast--info > i { background: var(--v3-muted); }
.v3-toast > button {
    flex: none;
    padding: 0;
    border: none;
    background: none;
    font-family: var(--v3-sans);
    font-size: 14px;
    font-weight: 600;
    color: var(--v3-accent);
    cursor: pointer;
}
.v3-toast--error > button { color: var(--v3-red); }
.v3-toast.is-leaving { opacity: 0; transform: translateY(6px); transition: opacity 0.2s, transform 0.2s; }
@keyframes v3ToastIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ---- dialogs (626:34733) ---- */
.v3-dialog-overlay {
    position: fixed;
    inset: 0;
    z-index: 999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    background: rgba(5, 5, 6, 0.6);
    animation: v3ToastIn 0.15s ease-out;
}
.v3-dialog {
    display: flex;
    flex-direction: column;
    gap: 18px;
    width: min(460px, 100%);
    padding: 28px;
    border-radius: var(--v3-r-hero);
    background: #1c1c20;
    box-shadow: 0 30px 40px rgba(0, 0, 0, 0.6);
    font-family: var(--v3-sans);
}
.v3-dialog-title { margin: 0 0 -11px; font-size: 22px; font-weight: 600; color: var(--v3-text); }
.v3-dialog-text { margin: 0; font-size: 14px; line-height: 21.7px; color: var(--v3-text-3); }
.v3-dialog-choices { display: flex; flex-direction: column; gap: 6px; }
.v3-dialog-choice {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--v3-chip);
    font-size: 15px;
    color: var(--v3-text);
    cursor: pointer;
}
.v3-dialog-choice:has(input:checked) { background: var(--v3-avatar); }
.v3-dialog-choice input {
    appearance: none;
    width: 16px;
    height: 16px;
    flex: none;
    margin: 0;
    border: 1px solid #55555c;
    border-radius: 8px;
}
.v3-dialog-choice input:checked { border: 5px solid var(--v3-accent); }
.v3-dialog-choice input:focus-visible { outline: 2px solid var(--v3-accent); outline-offset: 2px; }
.v3-dialog-choice small { margin-left: auto; font-size: 12px; color: var(--v3-muted); }
.v3-dialog-actions { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.v3-dialog-actions .v3-btn--primary,
.v3-dialog-actions .v3-btn--red { font-weight: 600; }
[data-undo-row].is-pending-delete { opacity: 0.4; pointer-events: none; transition: opacity 0.2s; }

/* ---- skeleton (626:34580) ---- */
.v3-skel { display: flex; flex-direction: column; gap: 4px; padding: 8px; }
.v3-skel-row { display: flex; align-items: center; gap: 24px; padding: 20px 16px; }
.v3-skel-row > span { display: flex; flex-direction: column; gap: 8px; flex: none; }
.v3-skel-row > span:first-child { width: 260px; }
.v3-skel-row > span:nth-child(2) { width: 130px; }
.v3-skel-row > .v3-skel-grow { flex: 1 1 auto; min-width: 0; }
.v3-skel-row > .v3-skel-end { width: 140px; align-items: flex-end; }
.v3-skel i,
.v3-skel-block { display: block; max-width: 100%; border-radius: 8px; background: var(--v3-tile); animation: v3Pulse 1.4s ease-in-out infinite; }
@keyframes v3Pulse { 50% { opacity: 0.55; } }
@media (max-width: 799px) {
    .v3-skel-row > span:nth-child(2), .v3-skel-row > .v3-skel-grow { display: none; }
    .v3-skel-row > span:first-child { flex: 1 1 auto; width: auto; }
    .v3-skel-row > .v3-skel-end { width: 90px; }
}
@media (prefers-reduced-motion: reduce) {
    .v3-skel i, .v3-skel-block, .v3-toast, .v3-dialog-overlay { animation: none; }
}

/* ==== Championship (Series) — Figma 626:32305 / 32724 / 33181 ==== */
.champ-page-panel.sr3 { display: flex; flex-direction: column; gap: 24px; margin: 0; padding: 0; background: none; }
.sr3 > .tab-content { padding: 0; }
.sr3-mono { font-family: var(--v3-mono); font-variant-numeric: tabular-nums; }
.sr3-hero {
    position: relative;
    display: flex;
    min-height: 380px;
    border-radius: var(--v3-r-hero);
    background: var(--v3-card);
    overflow: hidden;
}
.sr3-hero--plain { min-height: 260px; background: radial-gradient(ellipse 70% 90% at 85% 0%, rgba(255, 90, 31, 0.14), rgba(23, 23, 26, 0) 60%), var(--v3-card); }
.sr3-hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sr3-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, #17171a 8%, rgba(23, 23, 26, 0.7) 40%, rgba(23, 23, 26, 0) 75%);
    pointer-events: none;
}
.sr3-hero--plain::after { display: none; }
.sr3-hero-body {
    position: relative;
    z-index: 1;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    gap: 32px;
    min-width: 0;
    padding: 24px 32px 28px;
}
.sr3-back {
    padding: 9px 16px;
    border-radius: var(--v3-r-pill);
    background: rgba(14, 14, 16, 0.7);
    font-size: 14px;
    font-weight: 500;
    color: var(--v3-text);
    text-decoration: none;
    backdrop-filter: blur(6px);
}
.sr3-back:hover { background: rgba(14, 14, 16, 0.9); color: var(--v3-text); text-decoration: none; }
.sr3-hero-foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; width: 100%; }
.sr3-hero-copy { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.sr3-title { margin: 0; font-family: var(--v3-display); font-size: 52px; font-weight: 400; line-height: 1; letter-spacing: -1.04px; color: var(--v3-text); overflow-wrap: anywhere; }
.sr3-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 0; font-size: 14px; color: var(--v3-text-2); }
.sr3-meta i { font-style: normal; color: #55555c; }
.sr3-actions { display: flex; flex: none; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.sr3-actions form { margin: 0; }
.sr3-tabs { margin: 0 8px; }

.sr3-stack { display: flex; flex-direction: column; gap: 24px; }
.sr3-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sr3-push { margin-left: auto; }

/* standings */
.sr3-standings { display: flex; flex-direction: column; gap: 4px; padding: 8px; overflow-x: auto; }
.sr3-st-row {
    display: grid;
    grid-template-columns: var(--sr3-cols);
    align-items: center;
    gap: 14px;
    min-width: min-content;
    padding: 14px 16px;
    border-radius: var(--v3-r-tile);
}
.sr3-st-row.is-me { background: rgba(255, 90, 31, 0.1); }
.sr3-st-head { padding-top: 12px; padding-bottom: 12px; font-size: 12px; font-weight: 500; letter-spacing: 0.72px; text-transform: uppercase; color: var(--v3-muted); }
.sr3-st-pos { font-size: 22px; }
.sr3-st-brand { width: 44px; height: 44px; object-fit: contain; }
.sr3-st-pilot { display: flex; flex-direction: column; gap: 3px; min-width: 0; padding-left: 4px; color: var(--v3-text); text-decoration: none; }
.sr3-st-pilot:hover { color: var(--v3-text); text-decoration: none; }
.sr3-st-pilot:hover .sr3-st-name > span:first-child { text-decoration: underline; }
.sr3-st-name { display: flex; align-items: center; gap: 8px; min-width: 0; font-size: 17px; font-weight: 600; }
.sr3-st-name > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sr3-st-car { display: flex; gap: 8px; min-width: 0; font-size: 12px; color: var(--v3-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sr3-st-pending { color: var(--v3-accent); }
.sr3-st-qual { font-size: 15px; font-weight: 700; color: var(--v3-text); }
.sr3-st-qual.is-best { color: var(--v3-purple); }
.sr3-st-row .is-empty { color: #55555c; font-weight: 400; }
.sr3-st-club { font-size: 15px; color: var(--v3-green); }
.sr3-st-round { font-size: 15px; color: var(--v3-text); }
.sr3-st-head .sr3-st-round { font-family: var(--v3-sans); font-size: 12px; color: var(--v3-muted); }
.sr3-st-round.is-dropped { text-decoration: line-through; color: var(--v3-muted); }
.sr3-st-gap { font-size: 14px; color: var(--v3-text-3); }
.sr3-st-head .sr3-st-gap { font-size: 12px; color: var(--v3-muted); }
.sr3-st-total { justify-self: end; text-align: right; }
.sr3-st-total b {
    display: inline-block;
    min-width: 64px;
    padding: 8px 12px;
    border-radius: 12px;
    background: var(--v3-track);
    font-family: var(--v3-num);
    font-size: 22px;
    font-weight: 600;
    text-align: center;
    color: var(--v3-text);
}
.sr3-st-total b.is-leader { background: var(--v3-text); color: var(--v3-bg); }
.sr3-legend { display: flex; flex-wrap: wrap; gap: 8px 20px; padding: 12px 16px 6px; font-size: 12px; color: var(--v3-muted); }
.sr3-legend span { display: inline-flex; align-items: center; gap: 6px; }
.sr3-legend-purple { width: 8px; height: 8px; border-radius: 2px; background: var(--v3-purple); }

/* calendar timeline */
.sr3-timeline { position: relative; display: flex; flex-direction: column; gap: 20px; margin: 0; padding: 20px 20px 20px 24px; list-style: none; }
.sr3-item { position: relative; display: grid; grid-template-columns: 24px 150px minmax(0, 1fr) auto; align-items: center; gap: 20px; }
.sr3-item:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 5px;
    top: 18px;
    bottom: -34px;
    width: 2px;
    background: #2a2a2e;
}
.sr3-dot { position: relative; z-index: 1; align-self: start; width: 12px; height: 12px; margin-top: 12px; border-radius: 6px; background: #55555c; }
.sr3-dot.is-done { background: var(--v3-green); }
.sr3-dot.is-live { background: var(--v3-accent); box-shadow: 0 0 0 4px var(--v3-accent-soft); }
.sr3-map { display: flex; align-items: center; justify-content: center; height: 108px; border-radius: var(--v3-r-tile); background: var(--v3-tile); }
.sr3-map img { width: 96px; height: 96px; object-fit: contain; }
.sr3-item-main { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.sr3-item-eyebrow { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.sr3-eyebrow { font-family: var(--v3-mono); font-size: 12px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--v3-accent); }
.sr3-item-title { margin: 0; font-size: 26px; font-weight: 600; line-height: 1.15; letter-spacing: -0.3px; color: var(--v3-text); overflow-wrap: anywhere; }
.sr3-item .v3-chip { font-size: 12px; }
.sr3-chip-me { background: var(--v3-accent-soft); color: var(--v3-accent); font-weight: 600; }
/* weather of a round / qualification: the events list's icon and air °C, no label */
.sr3-chip-weather { color: var(--v3-text); font-weight: 600; }
.sr3-chip-weather img { flex: none; }
.sr3-chip-me--purple { background: rgba(180, 140, 255, 0.14); color: var(--v3-purple); font-family: var(--v3-mono); }
.sr3-chip-secret b { font-weight: 700; letter-spacing: 2px; color: var(--v3-text); }
.sr3-copy {
    margin: -2px -8px -2px 2px;
    padding: 2px 10px;
    border: none;
    border-radius: var(--v3-r-pill);
    background: var(--v3-track);
    font-family: var(--v3-sans);
    font-size: 11px;
    font-weight: 500;
    color: var(--v3-text);
    cursor: pointer;
}
.sr3-copy:hover { background: #34343a; }
.sr3-item-cta { font-weight: 500; }

/* participants (заявки) */
.sr3-filter .v3-chip { border: none; font-family: var(--v3-sans); cursor: pointer; }
.sr3-filter .v3-chip:hover { color: var(--v3-text); }
.sr3-filter .v3-chip.is-active { background: var(--v3-track); color: var(--v3-text); }
.sr3-apps { display: flex; flex-direction: column; gap: 4px; padding: 8px; }
.sr3-apps-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 190px 110px 110px 230px;
    align-items: center;
    gap: 16px;
    padding: 9px 12px;
    border-radius: var(--v3-r-tile);
    background: #1c1c20;
    font-size: 14px;
    color: var(--v3-text-2);
}
.sr3-apps-head { padding: 10px 12px; background: none; font-size: 11px; font-weight: 500; letter-spacing: 0.88px; text-transform: uppercase; color: var(--v3-muted); }
.sr3-apps-who { display: flex; align-items: center; gap: 12px; min-width: 0; color: var(--v3-text); text-decoration: none; }
.sr3-apps-who:hover { color: var(--v3-text); text-decoration: none; }
.sr3-apps-who:hover .sr3-apps-name { text-decoration: underline; }
.sr3-avatar { width: 32px; height: 32px; font-size: 11px; }
.sr3-apps-name { font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sr3-apps-date { font-size: 13px; color: var(--v3-text-3); }
.sr3-apps-label { display: none; }
.sr3-apps-actions { display: flex; gap: 8px; justify-content: flex-end; }
.sr3-apps-actions form { margin: 0; }
.sr3-apps .v3-badge { font-size: 11px; padding: 2px 8px; }

/* rules */
.sr3-rules { display: grid; grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); gap: 16px; align-items: start; }
.sr3-rule { display: flex; flex-direction: column; gap: 10px; }
.sr3-rule p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--v3-text-2); }
.sr3-rule strong { color: var(--v3-text); }
.sr3-rule .sr3-rule-note { font-size: 13px; color: var(--v3-muted); }
.sr3-rule-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.sr3-rule-tiles .v3-value { font-size: 17px; }

@media (max-width: 1279px) {
    .sr3-title { font-size: 40px; }
    .sr3-hero-foot { flex-direction: column; align-items: flex-start; }
    .sr3-actions { justify-content: flex-start; }
    .sr3-item { grid-template-columns: 24px 120px minmax(0, 1fr); }
    .sr3-item-cta { grid-column: 3; justify-self: start; }
    .sr3-apps-row { grid-template-columns: minmax(0, 1fr) auto auto; }
    .sr3-apps-head { display: none; }
    .sr3-apps-club, .sr3-apps-date { display: none; }
}
@media (max-width: 999px) {
    .sr3-standings { --sr3-cols: 32px 36px minmax(0, 1fr) auto !important; }
    .sr3-st-row { min-width: 0; gap: 10px; padding: 12px; }
    .sr3-st-row > .sr3-st-qual,
    .sr3-st-row > .sr3-st-club,
    .sr3-st-row > .sr3-st-round,
    .sr3-st-row > .sr3-st-gap,
    .sr3-st-head > span:nth-child(n+4):not(.sr3-st-total) { display: none; }
    .sr3-st-brand { width: 36px; height: 36px; }
    .sr3-st-pos { font-size: 18px; }
    .sr3-st-name { font-size: 15px; }
    .sr3-st-total b { min-width: 52px; padding: 6px 10px; font-size: 18px; }
    .sr3-rules { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 699px) {
    .sr3-hero { min-height: 320px; }
    .sr3-hero-body { padding: 16px 16px 20px; gap: 24px; }
    .sr3-title { font-size: 30px; }
    .sr3-actions, .sr3-actions form, .sr3-actions .v3-btn { width: 100%; }
    .sr3-tabs { display: flex; flex-wrap: nowrap; margin: 0; overflow-x: auto; scrollbar-width: none; }
    .sr3-tabs::-webkit-scrollbar { display: none; }
    .sr3-timeline { padding: 16px 14px; gap: 28px; }
    .sr3-item { grid-template-columns: 18px minmax(0, 1fr); gap: 12px 12px; }
    .sr3-item::before { left: 5px; }
    .sr3-map { display: none; }
    .sr3-item-main, .sr3-item-cta { grid-column: 2; }
    .sr3-item-title { font-size: 21px; }
    .sr3-apps-row { grid-template-columns: minmax(0, 1fr) auto; row-gap: 8px; }
    .sr3-apps-row > :nth-child(2) { grid-column: 2; grid-row: 1; }
    .sr3-apps-actions { grid-column: 1 / -1; justify-content: flex-start; }
    .sr3-push { margin-left: 0; }
    .v3-toasts { right: 16px; bottom: 16px; }
    .v3-dialog { padding: 22px; }
}

/* ==== Club qualification — Figma 626:33648 / 626:34246 ==== */
.qv3 { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.qv3-top { display: grid; grid-template-columns: minmax(0, 1fr) 440px; gap: 16px; align-items: stretch; }
.qv3-head { display: flex; flex-direction: column; gap: 24px; padding: 28px 32px; border-radius: var(--v3-r-hero); }
.qv3-crumb { align-self: flex-start; font-size: 14px; color: var(--v3-text-3); text-decoration: none; }
.qv3-crumb b { font-weight: 500; color: var(--v3-text); }
.qv3-crumb:hover { color: var(--v3-text); text-decoration: none; }
.qv3-head-copy { display: flex; flex-direction: column; gap: 12px; }
.qv3-title { margin: 0; font-family: var(--v3-display); font-size: 24px; font-weight: 400; line-height: 1.5; letter-spacing: -0.8px; color: var(--v3-text); overflow-wrap: anywhere; }
.qv3-head .v3-chip { font-size: 13px; }
.qv3-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.qv3-actions form { margin: 0; }
.qv3-delete { padding: 12px 21px; font-size: 14px; }
.qv3-server { display: flex; flex-direction: column; gap: 12px; padding: 24px; border-radius: var(--v3-r-hero); }
.qv3-server-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.qv3-server-head .v3-card-title { margin: 0; }
.qv3-server .v3-badge--muted { background: var(--v3-track); color: var(--v3-text-3); font-weight: 500; }
.qv3-alert {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-radius: var(--v3-r-tile);
    background: rgba(255, 90, 31, 0.12);
    font-size: 14px;
    font-weight: 600;
    color: var(--v3-accent);
    text-decoration: none;
}
.qv3-alert:hover { background: rgba(255, 90, 31, 0.18); color: var(--v3-accent); text-decoration: none; }
.qv3-alert i { width: 8px; height: 8px; flex: none; border-radius: 4px; background: var(--v3-accent); }
.qv3-live { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 8px; }
.qv3-live .v3-tile { padding: 12px 14px; }
.qv3-live-value { display: block; font-size: 17px; font-weight: 600; color: var(--v3-text); font-variant-numeric: tabular-nums; }
.qv3-timer { color: var(--v3-accent); }
.qv3-note { margin: 0; font-size: 14px; line-height: 1.55; color: var(--v3-text-2); }
.qv3-note b { color: var(--v3-text); }
.qv3-password { font-family: var(--v3-mono); font-size: 17px; font-weight: 700; letter-spacing: 1.7px; }
.qv3-server .ed3-copyrow { border-radius: var(--v3-r-tile); }

.qv3-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 0 8px; }
.qv3-filters { display: flex; gap: 8px; flex-wrap: wrap; }
.qv3-filters a {
    display: inline-flex;
    gap: 6px;
    padding: 9px 16px;
    border-radius: var(--v3-r-pill);
    background: var(--v3-card);
    font-size: 14px;
    font-weight: 500;
    color: var(--v3-text-2);
    text-decoration: none;
}
.qv3-filters a span { opacity: 0.55; }
.qv3-filters a:hover { color: var(--v3-text); text-decoration: none; }
.qv3-filters a.active { background: var(--v3-text); color: var(--v3-bg); }

.qv3-table { display: flex; flex-direction: column; gap: 4px; padding: 8px; }
.qv3-row {
    display: grid;
    grid-template-columns: minmax(130px, 3fr) minmax(96px, 2fr) 64px minmax(84px, 2fr) minmax(120px, 3fr) minmax(0, 5fr) minmax(0, 5fr) 116px 20px;
    align-items: center;
    gap: 12px;
    min-height: 64px;
    padding: 10px 16px;
    border-radius: var(--v3-r-tile);
    font-size: 14px;
    color: var(--v3-text-2);
}
.qv3-row--head { min-height: 0; padding-top: 12px; padding-bottom: 12px; font-size: 12px; font-weight: 500; letter-spacing: 0.72px; text-transform: uppercase; color: var(--v3-muted); }
.qv3-row.is-assigned { background: rgba(90, 209, 154, 0.04); }
.qv3-row.is-empty { color: #67676b; }
.qv3-row.is-empty .qv3-best, .qv3-row.is-empty .sr3-mono { color: #67676b; }
.qv3-session { font-size: 13px; }
.qv3-row .sr3-mono { color: var(--v3-text); }
.qv3-row .qv3-session { color: var(--v3-text-2); }
.qv3-best { font-weight: 700; }
.qv3-best.is-best { color: var(--v3-purple) !important; }
.qv3-who { min-width: 0; color: var(--v3-text); text-decoration: none; }
.qv3-who b { display: block; font-size: 15px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
a.qv3-who:hover b { text-decoration: underline; }
.qv3-inline { margin: 0; }
.qv3-select {
    width: 100%;
    height: 38px;
    padding: 0 36px 0 16px;
    border: none;
    border-radius: var(--v3-r-pill);
    background: var(--v3-track) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23c8c8ce' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") right 16px center no-repeat;
    font-family: var(--v3-sans);
    font-size: 14px;
    font-weight: 600;
    color: var(--v3-text-2);
    appearance: none;
    cursor: pointer;
}
.qv3-select:focus-visible { outline: 2px solid var(--v3-accent); outline-offset: 2px; }
.qv3-check { display: inline-flex; align-items: center; gap: 10px; color: var(--v3-text-2); cursor: pointer; }
.qv3-check input {
    appearance: none;
    width: 20px;
    height: 20px;
    margin: 0;
    border-radius: 6px;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25);
    cursor: pointer;
}
.qv3-check input:checked { background: var(--v3-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10'%3E%3Cpath d='M1 5l3.5 3.5L11 1' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") center no-repeat; box-shadow: none; }
.qv3-check input:focus-visible { outline: 2px solid var(--v3-accent); outline-offset: 2px; }
.qv3-act { display: flex; flex-direction: column; gap: 6px; }
/* Always the last column — "Нет времени" rows skip the cells before it. */
.qv3-del { grid-column: -2 / -1; margin: 0; display: flex; justify-content: center; }
.qv3-btn {
    width: 100%;
    height: 44px;
    padding: 0 14px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: none;
    font-size: 13px;
    font-weight: 600;
}
.qv3-btn:hover { background: var(--v3-chip); }
.qv3-btn--accent { border-color: var(--v3-accent); }
.qv3-btn--accent:hover { background: var(--v3-accent-soft); }
.qv3-hint { margin: -8px 8px 0; line-height: 1.55; }
.qv3-muted { color: var(--v3-muted); }
.qv3-table--standings .qv3-row { grid-template-columns: 48px minmax(0, 4fr) minmax(90px, 1.4fr) 80px 80px minmax(150px, 1.6fr) minmax(140px, 1.6fr); }
.qv3-table--standings .v3-pos { font-size: 20px; }

@media (max-width: 1279px) {
    .qv3-top { grid-template-columns: minmax(0, 1fr); }
    .qv3-row--head { display: none; }
    .qv3-row, .qv3-table--standings .qv3-row {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 10px 14px;
        padding: 14px 16px;
        background: #1c1c20;
    }
    .qv3-row.is-assigned { background: #1a201d; }
    .qv3-row > [data-label]::before {
        content: attr(data-label);
        display: block;
        margin-bottom: 2px;
        font-family: var(--v3-sans);
        font-size: 11px;
        font-weight: 400;
        letter-spacing: 0;
        text-transform: none;
        color: var(--v3-muted);
    }
    .qv3-who, .qv3-row > [data-label="Едет из клуба"] { grid-column: span 2; }
    .qv3-act { grid-column: 1 / -1; flex-direction: row; }
    .qv3-row:has(.qv3-del) { position: relative; padding-right: 40px; }
    .qv3-del { position: absolute; top: 10px; right: 12px; }
    .qv3-btn { width: auto; flex: 1 1 0; }
    .qv3-table--standings .qv3-row > .v3-pos { grid-column: 1; }
    .qv3-table--standings .qv3-row > .qv3-who { grid-column: 2 / -1; }
}
@media (max-width: 599px) {
    .qv3-head, .qv3-server { padding: 20px 16px; }
    .qv3-title { font-size: 20px; }
    .qv3-row, .qv3-table--standings .qv3-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .qv3-who, .qv3-row > [data-label="Едет из клуба"] { grid-column: 1 / -1; }
    .qv3-bar { padding: 0; }
    .qv3-bar .v3-tabs { width: 100%; }
    .qv3-bar .v3-tabs a { flex: 1 1 auto; justify-content: center; padding: 10px 12px; font-size: 14px; }
}

/* a tab tray never pushes the page wider than the screen — it scrolls instead */
.v3-tabs { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.v3-tabs::-webkit-scrollbar { display: none; }
@media (max-width: 699px) {
    .v3-tabs { flex-wrap: nowrap; align-self: stretch; }
    .sr3-legend .sr3-legend-qual { display: none; }
}
.qv3-check { line-height: 20px; }

/* ==== Download — Figma 626:34438 ==== */
.dl3 { display: grid; grid-template-columns: 560px minmax(0, 1fr); gap: 16px; align-items: stretch; }
.dl3-card { display: flex; flex-direction: column; gap: 28px; padding: 36px; border-radius: var(--v3-r-hero); }
.dl3-top { display: flex; flex-direction: column; gap: 14px; }
.dl3-tags { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.dl3-slashes { font-family: var(--v3-num); font-size: 16px; font-weight: 700; color: var(--v3-accent); }
.dl3-tags .v3-badge--muted { background: var(--v3-track); font-weight: 500; }
.dl3-title { margin: 0; font-family: var(--v3-display); font-size: 40px; font-weight: 400; line-height: 44px; letter-spacing: -0.88px; color: var(--v3-text); }
.dl3-sub { margin: 0; font-size: 17px; font-weight: 500; color: var(--v3-text-2); }
.dl3-lead { margin: 0; font-size: 16px; line-height: 24.8px; color: var(--v3-text); }
.dl3-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.dl3-steps li { display: flex; flex-direction: column; gap: 8px; padding: 14px; border-radius: 16px; background: var(--v3-tile); }
.dl3-steps b { font-family: var(--v3-num); font-size: 14px; font-weight: 600; color: var(--v3-accent); }
.dl3-steps span { font-size: 14px; font-weight: 600; line-height: 18.2px; color: var(--v3-text); }
.dl3-get { display: flex; flex-direction: column; gap: 12px; }
.dl3-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.dl3-primary,
.dl3-secondary {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    padding: 14px 24px;
    border-radius: 20px;
    text-decoration: none;
}
.dl3-primary { background: var(--v3-accent); color: var(--v3-bg); }
.dl3-primary:hover { background: #ff6f3c; color: var(--v3-bg); text-decoration: none; }
.dl3-primary b { font-size: 16px; font-weight: 600; }
.dl3-primary span { font-family: var(--v3-mono); font-size: 12px; opacity: 0.75; }
.dl3-secondary { padding: 14px 22px; background: var(--v3-track); font-size: 15px; font-weight: 500; color: var(--v3-text); }
.dl3-secondary span { font-family: var(--v3-mono); font-size: 12px; color: var(--v3-muted); }
.dl3-secondary:hover { background: #303035; color: var(--v3-text); text-decoration: none; }
.dl3-small { margin: 0; font-size: 13px; line-height: 19.5px; color: var(--v3-muted); }
.dl3-small a { color: var(--v3-text-2); }
.dl3-version { display: flex; flex-direction: column; gap: 8px; padding: 16px; border-radius: 16px; }
.dl3-version-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 14px; color: var(--v3-text); }
.dl3-version-head .sr3-mono { font-size: 12px; color: var(--v3-muted); }
.dl3-version p { margin: 0; font-size: 13px; line-height: 19.5px; color: var(--v3-text-3); }
.dl3-games { display: flex; flex-direction: column; gap: 10px; }
.dl3-label { font-size: 12px; font-weight: 600; letter-spacing: 0.96px; text-transform: uppercase; color: var(--v3-muted); }
.dl3-games .v3-chip { font-size: 13px; }
.dl3-smartscreen { font-size: 13px; color: var(--v3-muted); }
.dl3-smartscreen summary { cursor: pointer; color: var(--v3-text-3); }
.dl3-smartscreen summary:hover { color: var(--v3-text); }
.dl3-smartscreen p { margin: 8px 0 0; line-height: 19.5px; }
.dl3-shots { display: flex; flex-direction: column; gap: 16px; min-height: 680px; padding: 16px; border-radius: var(--v3-r-hero); }
.dl3-shot { display: flex; flex: 1 1 auto; align-items: center; justify-content: center; margin: 0; border-radius: var(--v3-r-tile); background: rgba(127, 127, 127, 0.08); overflow: hidden; }
.dl3-shot img { display: block; width: 100%; height: auto; }
.dl3-shot-tabs { align-self: center; }
.dl3-shot-tabs button { font-size: 14px; padding: 8px 16px; }
.dl3-admin { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }

@media (max-width: 1279px) {
    .dl3 { grid-template-columns: minmax(0, 1fr); }
    .dl3-shots { min-height: 0; }
}
@media (max-width: 599px) {
    .dl3-card { padding: 22px 16px; gap: 22px; }
    .dl3-title { font-size: 32px; line-height: 36px; }
    .dl3-steps { grid-template-columns: minmax(0, 1fr); }
    .dl3-steps li { flex-direction: row; align-items: baseline; gap: 12px; }
    .dl3-actions > a { flex: 1 1 100%; }
    .dl3-shots { padding: 10px; }
    .dl3-shot-tabs { align-self: stretch; }
}

/* ==== Profile tabs — Figma 626:26157 (rating history), 626:27467 (account) ==== */
.pr3-rh { display: flex; flex-direction: column; gap: 4px; padding: 8px; }
.pr3-rh-row { display: grid; grid-template-columns: 270px 110px minmax(0, 1fr) 140px 32px; align-items: start; gap: 16px; padding: 16px; list-style: none; cursor: pointer; }
.pr3-rh-row::-webkit-details-marker { display: none; }
.pr3-rh-head { padding: 12px 16px; cursor: default; font-size: 12px; font-weight: 500; letter-spacing: 0.72px; text-transform: uppercase; color: var(--v3-muted); }
.pr3-rh-item { border-radius: var(--v3-r-tile); }
.pr3-rh-item[open] { background: #1c1c20; }
.pr3-rh-race b { display: block; font-size: 15px; font-weight: 600; color: var(--v3-text); }
.pr3-rh-race small, .pr3-rh-why small, .pr3-rh-result small { display: block; margin-top: 4px; font-size: 12px; color: var(--v3-muted); }
.pr3-rh-deltas { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.pr3-rh-delta { padding: 2px 8px; border-radius: 6px; background: var(--v3-chip); font-family: var(--v3-mono); font-size: 12px; font-weight: 700; color: var(--v3-text-2); }
.pr3-rh-delta.is-up { background: var(--v3-green-soft); color: var(--v3-green); }
.pr3-rh-delta.is-down { background: var(--v3-red-soft); color: var(--v3-red); }
.pr3-rh-why { font-size: 14px; line-height: 1.5; color: var(--v3-text); }
.pr3-rh-result { text-align: right; }
.pr3-rh-result b { font-family: var(--v3-mono); font-size: 15px; color: var(--v3-text); }
.pr3-rh-toggle { width: 28px; height: 28px; border-radius: 14px; background: var(--v3-chip); }
.pr3-rh-toggle::after { content: "▾"; display: block; text-align: center; line-height: 28px; font-size: 12px; color: var(--v3-muted); }
.pr3-rh-item[open] .pr3-rh-toggle::after { content: "▴"; }
.pr3-rh-more { display: flex; flex-direction: column; gap: 12px; padding: 0 16px 16px; }
.pr3-rh-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 8px; }
.pr3-rh-tiles .v3-value { font-size: 16px; }
.pr3-rh-sa { font-size: 13px; line-height: 1.55; color: var(--v3-text-3); }
.pr3-rh-sa p, .pr3-rh-sa ul { margin: 0 0 6px; }
.pr3-rh-sa-title { font-weight: 600; color: var(--v3-accent); }
.pr3-rh-sa li small { display: block; color: var(--v3-muted); }
.pr3-rh-licence { padding: 10px 16px; border-radius: 10px; font-size: 13px; font-weight: 600; }
.pr3-rh-licence.is-up { background: rgba(90, 209, 154, 0.1); color: var(--v3-green); }
.pr3-rh-licence.is-down { background: rgba(255, 107, 107, 0.1); color: var(--v3-red); }

.pr3-account { display: flex; flex-direction: column; gap: 16px; }
.pr3-sec { display: flex; flex-direction: column; gap: 14px; }
.pr3-sec-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.pr3-sec-head--start { justify-content: flex-start; }
.pr3-sec-title { margin: 0; font-size: 19px; font-weight: 600; color: var(--v3-text); }
.pr3-sec-tools { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.pr3-sec-tools form { margin: 0; }
.pr3-check { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--v3-text-2); }
.pr3-check input { accent-color: var(--v3-accent); width: 18px; height: 18px; }
.pr3-btn-line { border: 1px solid rgba(255, 255, 255, 0.14); background: none; }
.pr3-form { display: grid; gap: 10px; align-items: end; margin: 0; }
.pr3-form--personal { grid-template-columns: repeat(3, minmax(0, 1fr)) auto; }
.pr3-form--row { grid-template-columns: minmax(0, 1fr) auto; }
.pr3-form--linked { grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr) auto; }
.pr3-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.pr3-field label { font-size: 12px; color: var(--v3-muted); }
.pr3-field input, .pr3-field select, .pr3-linked-rename input {
    height: 40px; padding: 0 14px; border: none; border-radius: 10px; background: var(--v3-tile);
    font-family: var(--v3-sans); font-size: 14px; color: var(--v3-text);
}
.pr3-field input:focus-visible, .pr3-field select:focus-visible { outline: 2px solid var(--v3-accent); outline-offset: 1px; }
.pr3-save { height: 40px; padding: 0 20px; }
.pr3-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.pr3-fact { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 14px; }
.pr3-fact-value { font-size: 14px; font-weight: 600; color: var(--v3-text); }
.pr3-fact-dot { display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 4px; background: var(--v3-green); }
.pr3-hint { margin: 0; font-size: 12px; line-height: 1.55; color: var(--v3-muted); }
.pr3-toggle-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; }
.pr3-toggle-row--inline { justify-content: flex-start; font-size: 14px; color: var(--v3-text-2); }
input.pr3-toggle { appearance: none; position: relative; flex: none; width: 36px; height: 20px; margin: 0; border-radius: 10px; background: var(--v3-track); cursor: pointer; transition: background 0.15s; }
input.pr3-toggle::after, input.pr3-toggle:checked::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 8px; background: #fff; transition: transform 0.15s; }
input.pr3-toggle:checked { background: var(--v3-accent); }
input.pr3-toggle:checked::after { transform: translateX(16px); }
.pr3-toggle:focus-visible { outline: 2px solid var(--v3-accent); outline-offset: 2px; }
.pr3-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.pr3-linked { display: flex; flex-direction: column; gap: 6px; }
.pr3-linked-row { display: flex; align-items: center; gap: 12px; padding: 8px 12px; }
.pr3-linked-rename { display: flex; flex: 1 1 auto; gap: 8px; margin: 0; }
.pr3-linked-rename input { flex: 1 1 auto; background: var(--v3-chip); }
.pr3-linked-row form { margin: 0; }
.pr3-x { border: none; background: none; font-size: 15px; color: var(--v3-red); cursor: pointer; }
/* A super admin on someone else's profile (Детали аккаунта, Команды): the
   fieldset only switches the controls off — it adds no box of its own — and
   whatever only edits is hidden. */
.pr3-readonly { display: contents; }
.pr3-readonly[disabled] button,
.pr3-readonly[disabled] .pr3-sec-tools,
.pr3-readonly[disabled] .pr3-intro,
.pr3-readonly[disabled] .pr3-form--linked,
.pr3-readonly[disabled] .profile-team-add,
.pr3-readonly[disabled] .pr3-team-manage { display: none; }
.pr3-readonly-note { margin: 0; }
.pr3-dashed { margin: 0; padding: 16px; border: 1px dashed rgba(255, 255, 255, 0.12); border-radius: var(--v3-r-tile); text-align: center; font-size: 13px; color: var(--v3-muted); }
.pr3-muted { color: var(--v3-muted); }
#photoConfirmModal[hidden] { display: none; }
@media (max-width: 1279px) {
    .pr3-facts, .pr3-pair { grid-template-columns: minmax(0, 1fr); }
    .pr3-rh-row { grid-template-columns: minmax(0, 1fr) auto 28px; }
    .pr3-rh-head { display: none; }
    .pr3-rh-deltas { flex-direction: row; grid-column: 1; }
    .pr3-rh-why { grid-column: 1 / -1; }
    .pr3-rh-result { grid-column: 2; grid-row: 1; }
}
@media (max-width: 799px) {
    .pr3-form--personal, .pr3-form--linked { grid-template-columns: minmax(0, 1fr); }
}

/* ==== Championships list — Figma 623:19932 ==== */
.ch3-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.ch3 .v3-head .v3-btn--primary { padding: 13px 24px 14px; font-size: 15px; }
.ch3-hero {
    position: relative;
    display: flex;
    min-height: 300px;
    border-radius: var(--v3-r-hero);
    background: var(--v3-card);
    color: var(--v3-text);
    text-decoration: none;
    overflow: hidden;
}
.ch3-hero:hover { color: var(--v3-text); text-decoration: none; }
.ch3-hero:hover .ch3-hero-photo img { transform: scale(1.02); }
.ch3-hero--plain { background: radial-gradient(ellipse 60% 120% at 90% 0%, rgba(255, 90, 31, 0.12), rgba(23, 23, 26, 0) 60%), var(--v3-card); }
.ch3-hero-photo { position: absolute; inset: 0 0 0 36%; background: rgba(127, 127, 127, 0.08); }
.ch3-hero-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.ch3-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #17171a 34%, rgba(23, 23, 26, 0.8) 50%, rgba(23, 23, 26, 0) 75%); pointer-events: none; }
.ch3-hero--plain::after { display: none; }
.ch3-hero-body { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: center; gap: 16px; padding: 32px 36px; max-width: 640px; }
.ch3-hero-title { font-family: var(--v3-display); font-size: 32px; line-height: 38px; letter-spacing: -0.76px; overflow-wrap: anywhere; }
.ch3-hero-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; font-size: 13px; color: var(--v3-text-3); }
.ch3-hero-meta .sr3-mono { font-size: 14px; }
.ch3-progress { display: flex; flex-direction: column; gap: 8px; width: min(440px, 100%); padding: 14px 16px; border-radius: var(--v3-r-tile); background: rgba(32, 32, 36, 0.9); }
.ch3-progress-line { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; font-weight: 500; color: var(--v3-text-2); }
.ch3-progress-me { font-weight: 400; color: var(--v3-muted); }
.ch3-progress-me b { color: var(--v3-text); }
.ch3-progress-bar { display: flex; gap: 4px; }
.ch3-progress-bar i { flex: 1 1 0; height: 6px; border-radius: 3px; background: var(--v3-avatar); }
.ch3-progress-bar i.is-done { background: var(--v3-accent); }
.ch3-progress-bar i.is-next { background: #8a4027; }
.ch3-section { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 16px 8px 0; }
.ch3-section h2 { margin: 0; font-size: 20px; font-weight: 600; color: var(--v3-text); }
.ch3-section span { font-size: 13px; color: var(--v3-muted); }
.ch3-list { display: flex; flex-direction: column; gap: 4px; padding: 8px; }
.ch3-row { display: flex; align-items: center; gap: 20px; padding: 8px; border-radius: var(--v3-r-tile); color: var(--v3-text); text-decoration: none; }
.ch3-row:hover { background: var(--v3-tile); color: var(--v3-text); text-decoration: none; }
.ch3-row:hover .ch3-arrow { color: var(--v3-accent); }
.ch3-thumb { flex: none; width: 144px; height: 80px; border-radius: 12px; background: var(--v3-tile); overflow: hidden; }
.ch3-thumb img { width: 100%; height: 100%; object-fit: cover; }
.ch3-row-main { display: flex; flex: 1 1 0; flex-direction: column; gap: 3px; min-width: 0; }
.ch3-row-title { font-family: var(--v3-display); font-size: 20px; line-height: 31px; overflow-wrap: anywhere; }
.ch3-row-sub { font-size: 13px; color: var(--v3-muted); }
.ch3-row-chips { flex: none; justify-content: flex-end; }
.ch3-row-chips .v3-chip, .ch3-row-chips .v3-badge { font-size: 12px; padding: 4px 10px; }
.ch3-arrow { flex: none; width: 40px; text-align: center; font-size: 18px; color: var(--v3-muted); }
@media (max-width: 999px) {
    .ch3-hero-photo { inset: 0; opacity: 0.45; }
    .ch3-hero::after { background: linear-gradient(0deg, #17171a 20%, rgba(23, 23, 26, 0.5) 100%); }
    .ch3-row { flex-wrap: wrap; }
    .ch3-row-chips { order: 4; flex: 1 1 100%; justify-content: flex-start; padding-left: 164px; }
}
@media (max-width: 599px) {
    .ch3-hero { min-height: 0; }
    .ch3-hero-body { padding: 22px 18px; }
    .ch3-hero-title { font-size: 24px; line-height: 28px; }
    .ch3-thumb { width: 88px; height: 56px; }
    .ch3-row { gap: 12px; }
    .ch3-row-title { font-size: 16px; line-height: 22px; }
    .ch3-row-chips { padding-left: 0; }
    .ch3-arrow { display: none; }
    .ch3-actions, .ch3-actions .v3-btn { width: 100%; }
}
input.pr3-toggle { border: none; }
input.pr3-toggle::after { border: none; top: 2px; left: 2px; width: 16px; height: 16px; transform: none; }
input.pr3-toggle:checked { border: none; }
input.pr3-toggle:checked::after { transform: translateX(16px); }
body.v3 input[type="checkbox"]:not(.pr3-toggle) { border-radius: 5px; border-color: #55555c; }

/* profile tab bar: racer tabs · АДМИН · admin tabs (Figma 626:30373) */
.pr3-tabbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 16px; }
.pr3 .pr3-tabbar .profile-v2-tabs { margin: 0; border-radius: var(--v3-r-pill); }
.pr3 .pr3-tabbar .events-v2-tab { border-radius: var(--v3-r-pill); }
.pr3-tabbar-label { padding-left: 12px; border-left: 1px solid rgba(255, 255, 255, 0.12); font-size: 12px; font-weight: 600; letter-spacing: 1.2px; text-transform: uppercase; color: var(--v3-muted); }
.pr3-legend--lines { align-items: center; gap: 14px; }
.pr3-legend--lines i { width: 14px; height: 2px; border-radius: 1px; }
.pr3-line-rating { background: var(--v3-accent); }
.pr3-line-sa { background: var(--v3-purple); }
.pr3-legend--lines b { font-weight: 600; }
.pr3-legend--lines b.is-up { color: var(--v3-green); }
.pr3-legend--lines b.is-down { color: var(--v3-red); }
@media (max-width: 999px) {
    .pr3-tabbar { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
    .pr3-tabbar .profile-v2-tabs { flex-wrap: nowrap; flex: none; }
    .pr3-tabbar-label { flex: none; }
}

/* ==== Profile tabs: liveries 626:28524, teams 626:29405, users 626:30373, ratings 626:31351 ==== */
.pr3-tabsec { display: flex; flex-direction: column; gap: 16px; }
.pr3-intro { flex-direction: row; align-items: center; justify-content: space-between; gap: 24px; }
.pr3-intro > div { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.pr3-hint--lg { font-size: 13px; color: var(--v3-text-3); max-width: 900px; }
.pr3-hint code, .v3-dialog code { padding: 1px 6px; border-radius: 4px; background: var(--v3-bg); font-family: var(--v3-mono); font-size: 11px; color: var(--v3-text); }
.pr3-input {
    height: 44px; min-width: 0; padding: 0 16px; border: none; border-radius: 12px; background: var(--v3-tile);
    font-family: var(--v3-sans); font-size: 14px; color: var(--v3-text);
}
.pr3-input:focus-visible { outline: 2px solid var(--v3-accent); outline-offset: 1px; }
.pr3-inline-form { display: flex; align-items: center; gap: 10px; margin: 0; flex-wrap: wrap; }
.pr3-inline-form .pr3-input { width: 240px; }
.pr3-label { font-size: 12px; color: var(--v3-muted); }
.pr3-strong { color: var(--v3-text); font-weight: 600; }
.pr3-btn-white { background: var(--v3-text); color: var(--v3-bg); font-weight: 600; }
.pr3-btn-white:hover { background: #fff; color: var(--v3-bg); }
.v3-dialog--wide { width: min(620px, 100%); max-height: calc(100vh - 32px); overflow-y: auto; }
.v3-dialog-overlay[hidden] { display: none; }
.pr3-dialog-form { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.pr3-dialog-form input[type="file"] { font-family: var(--v3-sans); font-size: 13px; color: var(--v3-text-2); }

/* liveries */
.pr3-liv-bar { display: flex; align-items: center; gap: 16px; padding: 0 8px; }
.pr3-liv-bar .qv3-filters a { padding: 7px 14px; }
.pr3-liv-bar .pr3-hint { max-width: 900px; }
.pr3-liv { display: flex; flex-direction: column; gap: 4px; padding: 8px; }
.pr3-liv-row {
    display: grid;
    grid-template-columns: 64px minmax(0, 1.6fr) minmax(0, 1.3fr) minmax(0, 0.9fr) 70px 100px 170px 130px;
    align-items: center;
    gap: 14px;
    padding: 10px 12px;
    border-radius: var(--v3-r-tile);
    font-size: 14px;
    color: var(--v3-text-2);
}
.pr3-liv-row:not(.pr3-liv-head):nth-child(even) { background: #1c1c20; }
.pr3-liv-head { padding-top: 12px; padding-bottom: 12px; font-size: 11px; font-weight: 500; letter-spacing: 0.88px; text-transform: uppercase; color: var(--v3-muted); }
.pr3-liv-car { display: flex; align-items: center; justify-content: center; width: 64px; height: 48px; border-radius: 10px; background: var(--v3-tile); }
.pr3-liv-car img { width: 32px; height: 32px; object-fit: contain; }
.pr3-liv-name { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pr3-liv-name b { font-size: 13px; color: var(--v3-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pr3-liv-name small { font-size: 11px; color: var(--v3-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pr3-liv-cell { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pr3-liv-num { display: inline-block; padding: 2px 8px; border-radius: 6px; background: var(--v3-track); font-family: var(--v3-num); font-size: 12px; font-weight: 600; color: var(--v3-text); }
.pr3-liv-state { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; white-space: normal; }
.pr3-liv-state .v3-badge { font-size: 11px; padding: 2px 8px; }
.pr3-liv-state small { font-size: 11px; color: var(--v3-muted); }
.pr3-liv-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.pr3-liv-actions form { margin: 0; }

/* teams */
.pr3-team { display: flex; flex-direction: column; gap: 12px; }
.pr3-team-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding-bottom: 4px; }
.pr3-team-name { margin: 0; font-family: var(--v3-display); font-size: 24px; font-weight: 400; letter-spacing: -0.4px; color: var(--v3-text); }
.pr3-team-count { display: inline-flex; align-items: center; gap: 10px; margin-left: auto; font-size: 12px; color: var(--v3-muted); }
.pr3-team-count b { font-family: var(--v3-mono); font-size: 13px; color: var(--v3-text); }
.pr3-team-meter { display: inline-flex; gap: 3px; }
.pr3-team-meter i { width: 14px; height: 4px; border-radius: 2px; background: var(--v3-avatar); }
.pr3-team-meter i.is-on { background: var(--v3-accent); }
.pr3-team-members { display: flex; flex-direction: column; gap: 6px; }
.pr3-team-member { display: flex; align-items: center; gap: 12px; padding: 8px 12px; border-radius: var(--v3-r-tile); background: #1c1c20; font-size: 13px; }
.pr3-team-member form { margin: 0; }
.pr3-team-who { display: flex; flex: 1 1 auto; align-items: center; gap: 12px; min-width: 0; color: var(--v3-text); text-decoration: none; }
.pr3-team-who b { font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pr3-team-who:hover { color: var(--v3-text); text-decoration: none; }
.pr3-team-who:hover b { text-decoration: underline; }
.pr3-team-slots { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 8px; }
.pr3-team-slots span { padding: 10px; border: 1px dashed rgba(255, 255, 255, 0.12); border-radius: 12px; text-align: center; font-size: 12px; color: var(--v3-muted); }
.pr3-team-add { position: relative; display: flex; align-items: center; gap: 10px; padding: 4px 16px; border-radius: var(--v3-r-tile); background: #1c1c20; }
.pr3-team-add-plus { color: var(--v3-accent); font-weight: 700; }
.pr3-team-add .profile-team-search { flex: 1 1 auto; height: 40px; border: none; background: none; font-family: var(--v3-sans); font-size: 14px; color: var(--v3-text); }
.pr3-team-add .profile-team-search:focus { outline: none; }
.pr3-team-add:focus-within { box-shadow: 0 0 0 2px var(--v3-accent); }
.pr3-team-add .profile-team-results { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 20; margin: 0; padding: 6px; list-style: none; border-radius: var(--v3-r-tile); background: var(--v3-tile); box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5); }
.pr3-team-add .profile-team-result { display: block; width: 100%; padding: 10px 12px; border: none; border-radius: 10px; background: none; font-family: var(--v3-sans); font-size: 14px; text-align: left; color: var(--v3-text-2); cursor: pointer; }
.pr3-team-add .profile-team-result:hover { background: var(--v3-chip); color: var(--v3-text); }
.pr3-team-car { display: flex; flex-direction: column; gap: 10px; padding: 16px; }
.pr3-team-car-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: end; gap: 10px; margin: 0; }
.pr3-team-car-form select { height: 40px; padding: 0 14px; border: none; border-radius: 10px; background: var(--v3-chip); font-family: var(--v3-sans); font-size: 14px; color: var(--v3-text); }
.pr3-team-car-form .pr3-btn-white { height: 40px; }
.pr3-team-manage summary { cursor: pointer; font-size: 13px; color: var(--v3-muted); }
.pr3-team-manage summary:hover { color: var(--v3-text); }
.pr3-team-manage-body { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 10px; }
.pr3-team-manage-body form { margin: 0; }
.pr3-team-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 13px; }
.pr3-team-foot form { margin: 0; }

/* users */
.pr3-users-bar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.pr3-search { display: flex; align-items: center; gap: 10px; width: 360px; max-width: 100%; height: 44px; padding: 0 16px; border-radius: var(--v3-r-pill); background: var(--v3-card); color: var(--v3-muted); }
.pr3-search input { flex: 1 1 auto; min-width: 0; border: none; background: none; font-family: var(--v3-sans); font-size: 14px; color: var(--v3-text); }
.pr3-search input:focus { outline: none; }
.pr3-search:focus-within { box-shadow: 0 0 0 2px var(--v3-accent); }
.pr3-users-bar .qv3-filters a { padding: 9px 14px; }
.pr3-users-count { margin-left: auto; font-size: 13px; }
.pr3-users { display: flex; flex-direction: column; gap: 4px; padding: 8px; }
.pr3-users-row { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.2fr) 110px 110px 170px 40px; align-items: center; gap: 14px; padding: 8px 12px; border-radius: var(--v3-r-tile); font-size: 13px; color: var(--v3-text-2); }
.pr3-users.has-sim .pr3-users-row { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.1fr) 100px 100px 170px 170px 40px; }
.pr3-users-row:not(.pr3-users-head):nth-child(even) { background: #1c1c20; }
.pr3-users-head { padding-top: 12px; padding-bottom: 12px; font-size: 11px; font-weight: 500; letter-spacing: 0.88px; text-transform: uppercase; color: var(--v3-muted); }
.pr3-users-cell { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pr3-users-cell form { margin: 0; }
.pr3-select { height: 34px; padding-left: 12px; font-size: 13px; font-weight: 500; }
.pr3-role-btn {
    width: 100%; height: 34px; padding: 0 30px 0 12px; border: none; border-radius: 10px; text-align: left;
    background: var(--v3-track) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23c8c8ce' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") right 12px center no-repeat;
    font-family: var(--v3-sans); font-size: 13px; font-weight: 500; color: var(--v3-text); cursor: pointer;
}
.pr3-role-btn:hover { background-color: #303035; }
.pr3-role-locked { display: block; height: 34px; padding: 0 12px; border-radius: 10px; background: rgba(255, 90, 31, 0.16); font-size: 13px; line-height: 34px; color: var(--v3-accent); }
.pr3-users-del { display: flex; justify-content: center; }
.pr3-users-del form { margin: 0; }
.pr3-users-none { padding: 8px; }

/* «Рейтинги» */
.pr3 .rating-admin { display: flex; flex-direction: column; gap: 16px; max-width: none; }
.pr3 .rating-admin-title { margin: 0; font-size: 24px; font-weight: 600; text-transform: none; letter-spacing: 0; color: var(--v3-text); font-family: var(--v3-sans); }
.pr3 .rating-admin-note { margin: 0; font-size: 13px; line-height: 1.55; color: var(--v3-text-3); max-width: 820px; }
.pr3 .rating-admin-source { display: inline-block; margin-top: 8px; padding: 3px 8px; border-radius: 6px; background: var(--v3-card); font-family: var(--v3-mono); font-size: 11px; color: var(--v3-text-2); }
.pr3 .rating-admin-source--custom { color: var(--v3-green); }
.pr3 #ratingSettingsForm { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.pr3 .rating-admin-card { margin: 0; padding: 22px 24px; border: none; border-radius: var(--v3-r-card); background: var(--v3-card); }
.pr3 .rating-admin-card h3 { display: inline; margin: 0; font-family: var(--v3-sans); font-size: 18px; font-weight: 600; text-transform: none; letter-spacing: 0; color: var(--v3-text); }
.pr3 .rating-admin-card > h3 { display: block; margin-bottom: 18px; }
.pr3 details.rating-admin-card > summary { display: flex; align-items: center; justify-content: space-between; list-style: none; cursor: pointer; }
.pr3 details.rating-admin-card > summary::-webkit-details-marker { display: none; }
.pr3 details.rating-admin-card > summary::after { content: "▾"; font-size: 12px; color: var(--v3-muted); }
.pr3 details.rating-admin-card[open] > summary { margin-bottom: 18px; }
.pr3 details.rating-admin-card[open] > summary::after { content: "▴"; }
.pr3 .rating-admin-card h4 { margin: 18px 0 12px; font-size: 14px; font-weight: 600; text-transform: none; color: var(--v3-text-2); }
.pr3 .rating-admin-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px 10px; }
.pr3 .rating-admin-grid label { display: flex; flex-direction: column; gap: 8px; font-size: 13px; font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--v3-text-2); }
.pr3 .rating-admin-grid small { font-size: 11px; font-weight: 400; line-height: 1.5; color: var(--v3-muted); }
.pr3 .rating-admin input[type="number"],
.pr3 .rating-admin input[type="datetime-local"] {
    height: 40px; padding: 0 14px; border: none; border-radius: 10px; background: var(--v3-tile);
    font-family: var(--v3-mono); font-size: 14px; color: var(--v3-text);
}
.pr3 .rating-admin input:focus-visible { outline: 2px solid var(--v3-accent); outline-offset: 1px; }
.pr3 .rating-admin-licence { gap: 10px; border: none; }
.pr3 .rating-admin-licence--head { font-size: 11px; letter-spacing: 0.88px; text-transform: uppercase; color: var(--v3-muted); }
.pr3 .rating-admin-licence-name { color: var(--v3-text); font-weight: 600; }
.pr3 .rating-admin-flash--error { padding: 12px 16px; border: none; border-radius: var(--v3-r-tile); background: var(--v3-red-soft); color: var(--v3-red); }
.pr3 .rating-admin-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.pr3 .rating-admin-actions form { margin: 0; }
.rating-admin-savebar {
    position: sticky; bottom: 16px; z-index: 5;
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
    padding: 14px 18px; border-radius: var(--v3-r-card); background: var(--v3-card); box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.35);
}
.rating-admin-savebar > span { margin-right: auto; font-size: 13px; }
.pr3 .rating-admin-preview { margin: 12px 0 0; padding: 14px; border-radius: var(--v3-r-tile); background: var(--v3-tile); font-family: var(--v3-mono); font-size: 12px; color: var(--v3-text-2); white-space: pre-wrap; }

@media (max-width: 1279px) {
    .pr3-liv-head, .pr3-users-head { display: none; }
    .pr3-liv-row { grid-template-columns: 64px minmax(0, 1fr) auto; row-gap: 8px; background: #1c1c20; }
    .pr3-liv-row > .pr3-liv-cell { grid-column: 2 / -1; white-space: normal; }
    .pr3-liv-row > [data-label]::before, .pr3-users-row > [data-label]::before { content: attr(data-label) ": "; color: var(--v3-muted); }
    .pr3-liv-row > .pr3-liv-state::before { display: none; }
    .pr3-liv-actions { grid-column: 3; grid-row: 1; }
    .pr3-users-row, .pr3-users.has-sim .pr3-users-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 36px; background: #1c1c20; }
    .pr3-users-row > .pr3-team-who { grid-column: 1 / 3; }
    .pr3-users-del { grid-column: 3; grid-row: 1; }
    .pr3-users-cell { white-space: normal; }
    .pr3 .rating-admin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pr3-liv-bar { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 699px) {
    .pr3-intro { flex-direction: column; align-items: stretch; }
    .pr3-inline-form .pr3-input { width: 100%; }
    .pr3-inline-form .v3-btn { width: 100%; }
    .pr3-team-car-form { grid-template-columns: minmax(0, 1fr); }
    .pr3-team-count { margin-left: 0; }
    .pr3-users-row, .pr3-users.has-sim .pr3-users-row { grid-template-columns: minmax(0, 1fr) 36px; }
    .pr3-users-row > .pr3-team-who { grid-column: 1; }
    .pr3-users-row > .pr3-users-cell { grid-column: 1 / -1; }
    .pr3-users-del { grid-column: 2; }
    .pr3-users-count { margin-left: 0; }
    .pr3 .rating-admin-grid { grid-template-columns: minmax(0, 1fr); }
    .pr3 .rating-admin-card { padding: 18px 16px; }
}

/* the old global form rules (theme.css) out-rank plain classes — pin the v3 fields under .pr3 */
.pr3 input.pr3-input,
.pr3 .pr3-field input:not([type="file"]),
.pr3 .pr3-field select,
.pr3 .pr3-linked-rename input {
    height: 44px; padding: 0 16px; border: none; border-radius: 12px; background: var(--v3-tile);
    font-family: var(--v3-sans); font-size: 14px; font-weight: 400; color: var(--v3-text); box-shadow: none;
}
.pr3 .pr3-field select, .pr3 .pr3-team-car-form select { appearance: none; padding-right: 36px;
    background: var(--v3-tile) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23c8c8ce' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") right 14px center no-repeat; }
.pr3 .pr3-team-car-form select { height: 44px; border: none; border-radius: 12px; background-color: var(--v3-chip); color: var(--v3-text); font-size: 14px; }
.pr3 .pr3-linked-rename input { height: 36px; background: var(--v3-chip); }
.pr3 .pr3-team-add { max-width: none; width: 100%; margin: 0; }
.pr3 .pr3-team-add .profile-team-search { height: 44px; padding: 0; border: none; background: none; box-shadow: none; font-family: var(--v3-sans); font-size: 14px; color: var(--v3-text); }
.pr3 .pr3-intro .pr3-inline-form { flex-wrap: nowrap; flex: none; }
.pr3 .pr3-intro .pr3-inline-form .pr3-input { width: 260px; }
.pr3 .pr3-save, .pr3 .pr3-team-car-form .pr3-btn-white { height: 44px; }
@media (max-width: 699px) {
    .pr3 .pr3-intro .pr3-inline-form { flex-wrap: wrap; }
    .pr3 .pr3-intro .pr3-inline-form .pr3-input { width: 100%; }
}
.pr3 .profile-v2-users, .pr3 .profile-v2-teams { padding: 0; margin: 0; max-width: none; }
@media (min-width: 1280px) {
    .pr3-users-row { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.2fr) 110px 110px 210px 40px; }
    .pr3-users.has-sim .pr3-users-row { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) 100px 100px 210px 180px 40px; }
}
.pr3 .rating-admin-licences { overflow-x: auto; }
@media (max-width: 699px) {
    .pr3-liv-row > .pr3-liv-name { grid-column: 2 / -1; }
    .pr3-liv-actions { grid-column: 1 / -1; grid-row: auto; justify-content: flex-start; }
    .pr3 .profile-admin-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
    .pr3 .profile-admin-tabs .events-v2-tab, .pr3 .profile-admin-tabs-label { flex: none; white-space: nowrap; }
}
@media (max-width: 699px) { .pr3-team-slots { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* users table: roomier right-hand columns, sortable titles */
@media (min-width: 1280px) {
    .pr3-users-row { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(110px, 0.6fr) minmax(120px, 0.6fr) minmax(220px, 0.9fr) 40px; column-gap: 28px; }
    .pr3-users.has-sim .pr3-users-row { grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.9fr) minmax(110px, 0.6fr) minmax(120px, 0.6fr) minmax(220px, 0.9fr) minmax(200px, 0.9fr) 40px; }
}
.pr3-sort {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    justify-self: start;
    padding: 0;
    border: none;
    background: none;
    font: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
    color: inherit;
    cursor: pointer;
}
.pr3-sort:hover { color: var(--v3-text); }
.pr3-sort::after { content: "↕"; font-size: 11px; opacity: 0; transition: opacity 0.15s; }
.pr3-sort:hover::after { opacity: 0.5; }
.pr3-sort[data-dir] { color: var(--v3-text); }
.pr3-sort[data-dir="asc"]::after { content: "↑"; opacity: 1; color: var(--v3-accent); }
.pr3-sort[data-dir="desc"]::after { content: "↓"; opacity: 1; color: var(--v3-accent); }
.pr3-sort:focus-visible { outline: 2px solid var(--v3-accent); outline-offset: 3px; border-radius: 4px; }
.pr3-search { width: 440px; }

/* ==========================================================================
   Service & admin pages (design export «20-37»): left admin menu, alerts,
   key–value rows, plain tables, form fields, the sticky save bar — and the
   older .evform event/championship forms re-skinned in the same look.
   ========================================================================== */

/* ---- frame: admin menu + content ---- */
.ad3 { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 44px; align-items: start; }
.ad3-main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ad3-nav {
    position: sticky;
    top: 96px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 18px 12px;
    border-radius: var(--v3-r-card);
    background: var(--v3-card);
}
.ad3-nav-title { padding: 0 10px 8px; font-size: 12px; font-weight: 600; letter-spacing: 1.2px; text-transform: uppercase; color: var(--v3-muted); }
.ad3-nav a { padding: 9px 12px; border-radius: 10px; font-size: 14px; line-height: 1.3; color: var(--v3-text-3); text-decoration: none; }
.ad3-nav a:hover { background: var(--v3-tile); color: var(--v3-text); text-decoration: none; }
.ad3-nav a.active { background: var(--v3-track); color: var(--v3-text); font-weight: 600; }
/* single-column service pages (profile data, linking, telemetry…) */
.sv3 { display: flex; flex-direction: column; gap: 16px; max-width: 1100px; margin: 0 auto; width: 100%; }
.sv3--narrow { max-width: 640px; }
.ad3 .v3-h1, .sv3 .v3-h1 { font-size: 46px; }
.v3-crumb { align-self: flex-start; font-size: 14px; color: var(--v3-text-3); text-decoration: none; }
.v3-crumb:hover { color: var(--v3-text); text-decoration: none; }
.v3-crumb b { font-weight: 500; color: var(--v3-text); }
.v3-pagehead { display: flex; flex-direction: column; gap: 10px; padding: 8px 0 8px; }
.v3-pagehead .v3-lead { margin: 0; max-width: 900px; color: var(--v3-text-3); }
.v3-pagehead-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }

/* ---- alerts: accent (info), red (problem), green (ok) ---- */
.v3-alert {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 18px;
    border-radius: var(--v3-r-tile);
    background: rgba(255, 90, 31, 0.12);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
    color: var(--v3-accent);
}
.v3-alert > i {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    margin-top: -1px;
    border-radius: 11px;
    background: var(--v3-accent);
    font-style: normal;
    font-size: 12px;
    font-weight: 700;
    color: #fff;
}
.v3-alert--red { background: rgba(255, 107, 107, 0.1); color: var(--v3-red); }
.v3-alert--red > i { background: var(--v3-red); }
.v3-alert--green { background: rgba(90, 209, 154, 0.1); color: var(--v3-green); }
.v3-alert--green > i { background: var(--v3-green); color: var(--v3-bg); }
.v3-alert a { color: inherit; text-decoration: underline; }
.v3-alert p { margin: 0; }

/* ---- key–value rows ---- */
.v3-kv { display: flex; flex-direction: column; gap: 4px; margin: 0; }
.v3-kv > div { display: grid; grid-template-columns: minmax(150px, 0.8fr) minmax(0, 2fr) auto; align-items: center; gap: 16px; padding: 10px 14px; border-radius: 12px; background: var(--v3-tile); }
.v3-kv dt { font-size: 13px; color: var(--v3-muted); }
.v3-kv dd { margin: 0; font-size: 14px; font-weight: 600; color: var(--v3-text); overflow-wrap: anywhere; }
.v3-kv dd.is-warn { color: var(--v3-gold); }
.v3-kv dd.is-bad { color: var(--v3-red); }
.v3-kv dd a { color: var(--v3-accent); }
.v3-kv .v3-btn--sm { justify-self: end; }
.v3-mono { font-family: var(--v3-mono); }

/* ---- plain data table (header strip + tile rows) ---- */
.v3-tbl { display: flex; flex-direction: column; gap: 4px; }
.v3-tbl-row { display: grid; grid-template-columns: var(--cols); align-items: center; gap: 14px; padding: 12px 16px; border-radius: 12px; font-size: 14px; color: var(--v3-text-2); }
.v3-tbl-row:not(.v3-tbl-head):nth-child(even) { background: #1c1c20; }
.v3-tbl-head { padding-top: 8px; padding-bottom: 8px; font-size: 11px; font-weight: 500; letter-spacing: 0.88px; text-transform: uppercase; color: var(--v3-muted); }
.v3-tbl-row.is-current { background: rgba(255, 90, 31, 0.08) !important; box-shadow: inset 3px 0 0 var(--v3-accent); }
.v3-tbl-row > * { min-width: 0; }
.v3-tbl-row b { color: var(--v3-text); font-weight: 600; }
.v3-tbl-row a { color: var(--v3-accent); text-decoration: none; }
.v3-tbl-row a:hover { text-decoration: underline; }
.v3-tbl-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px 4px; font-size: 13px; color: var(--v3-muted); }

/* ---- form fields ---- */
.v3-form { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.v3-sec { display: flex; flex-direction: column; gap: 16px; }
.v3-sec-title { margin: 0; font-size: 19px; font-weight: 600; color: var(--v3-text); }
.v3-grid { display: grid; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: 16px 12px; align-items: start; }
.v3-fld { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.v3-fld--span2 { grid-column: span 2; }
.v3-fld--full { grid-column: 1 / -1; }
.v3-fld > label, .v3-lbl { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; color: var(--v3-text-2); }
body.v3 .v3-in,
body.v3 .v3-fld input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]),
body.v3 .v3-fld select,
body.v3 .v3-fld textarea {
    width: 100%;
    height: 44px;
    padding: 0 16px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: var(--v3-tile);
    box-shadow: none;
    font-family: var(--v3-sans);
    font-size: 14px;
    font-weight: 500;
    color: var(--v3-text);
}
body.v3 .v3-fld textarea { height: auto; min-height: 110px; padding: 12px 16px; line-height: 1.5; resize: vertical; }
body.v3 .v3-fld select { appearance: none; padding-right: 38px; cursor: pointer;
    background: var(--v3-tile) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23c8c8ce' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") right 16px center no-repeat; }
body.v3 .v3-fld input::placeholder, body.v3 .v3-fld textarea::placeholder { color: #67676b; }
body.v3 .v3-fld input:focus-visible, body.v3 .v3-fld select:focus-visible, body.v3 .v3-fld textarea:focus-visible { outline: none; border-color: var(--v3-accent); }
body.v3 .v3-fld .is-mono, body.v3 .v3-fld input.is-mono { font-family: var(--v3-mono); }
body.v3 .v3-fld.is-changed input { border-color: rgba(255, 90, 31, 0.6); }
.v3-hint { margin: 0; font-size: 12px; line-height: 1.5; color: var(--v3-muted); }
.v3-hint a { color: var(--v3-text-2); }
.v3-err { font-size: 12px; color: var(--v3-red); }
.v3-err:empty { display: none; }
.v3-tag { display: inline-flex; padding: 1px 7px; border-radius: 6px; background: rgba(255, 90, 31, 0.16); font-size: 11px; font-weight: 600; color: var(--v3-accent); }
/* chips that fill form fields (weather quick-fill on Pages/Championships/NewQualification) */
button.qn3-quick { border: none; font-family: var(--v3-sans); cursor: pointer; }
button.qn3-quick:hover, button.qn3-quick:focus-visible { color: var(--v3-text); background: var(--v3-track); outline: none; }
.v3-check { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 500; color: var(--v3-text); cursor: pointer; }
.v3-inline { display: flex; gap: 8px; align-items: center; }
.v3-inline > .v3-in, .v3-inline > input { flex: 1 1 auto; min-width: 0; }
.v3-drop { display: flex; align-items: center; justify-content: center; gap: 14px; min-height: 64px; padding: 14px; border: 1px dashed rgba(255, 255, 255, 0.16); border-radius: var(--v3-r-tile); color: var(--v3-muted); font-size: 13px; text-align: center; }
.v3-drop input[type="file"] { max-width: 100%; font-family: var(--v3-sans); font-size: 13px; color: var(--v3-text-2); }
.v3-drop input[type="file"]::file-selector-button { margin-right: 12px; padding: 8px 14px; border: none; border-radius: var(--v3-r-pill); background: var(--v3-track); font-family: var(--v3-sans); font-weight: 600; color: var(--v3-text); cursor: pointer; }
.v3-dashed { margin: 0; padding: 22px; border: 1px dashed rgba(255, 255, 255, 0.12); border-radius: var(--v3-r-tile); text-align: center; font-size: 14px; color: var(--v3-text-3); }
.v3-actions { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.v3-actions--start { justify-content: flex-start; }
.v3-actions form { margin: 0; }
.v3-savebar {
    position: sticky;
    bottom: 16px;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    padding: 12px 12px 12px 22px;
    border-radius: var(--v3-r-pill);
    background: #2a1a15;
    box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.35);
}
.v3-savebar > span { margin-right: auto; font-size: 14px; font-weight: 500; color: var(--v3-accent); }
.v3-savebar.is-clean { background: var(--v3-card); }
.v3-savebar.is-clean > span { color: var(--v3-muted); }
.v3-btn--line { border: 1px solid rgba(255, 255, 255, 0.16); background: none; }
.v3-btn--line:hover { background: var(--v3-chip); }

/* ---- stat tiles row ---- */
.v3-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.v3-stats > div { display: flex; flex-direction: column; gap: 4px; padding: 14px 18px; border-radius: var(--v3-r-tile); background: var(--v3-card); }
.v3-stats b { font-family: var(--v3-num); font-size: 28px; font-weight: 600; line-height: 1.1; color: var(--v3-text); }
.v3-stats b.is-accent { color: var(--v3-accent); }
.v3-stats span { font-size: 13px; color: var(--v3-muted); }

/* ---- the older event / championship form (.evform) in the v3 look ---- */
body.v3 .ad3 .event-admin,
body.v3 .ad3 .event-admin--centered { max-width: none; margin: 0; padding: 0; }
body.v3 .ad3 .event-admin-main { max-width: none; margin: 0; }
body.v3 .ad3 .event-admin-head { padding: 8px 0; margin: 0; }
body.v3 .ad3 .event-admin-head .page-title { margin: 0; font-family: var(--v3-display); font-weight: 400; font-size: 46px; line-height: 1; letter-spacing: -1px; text-transform: none; color: var(--v3-text); }
body.v3 .evform { gap: 16px; }
body.v3 .evform-card { gap: 18px; padding: 24px; border-radius: var(--v3-r-card); background: var(--v3-card); box-shadow: none; }
body.v3 .evform .form-section-title { margin: 0; font-family: var(--v3-sans); font-size: 19px; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--v3-text); }
body.v3 .evform-row { gap: 16px 12px; }
body.v3 .evform-field { min-width: 200px; gap: 8px; }
body.v3 .evform-label { font-family: var(--v3-sans); font-size: 13px; font-weight: 500; color: var(--v3-text-2); white-space: normal; }
body.v3 .evform-box { min-height: 44px; padding: 0 16px; border: 1px solid transparent; border-radius: 12px; background: var(--v3-tile); box-shadow: none; }
body.v3 .evform-box:focus-within { border-color: var(--v3-accent); }
body.v3 .evform-box input, body.v3 .evform-box select, body.v3 .evform-box textarea { font-family: var(--v3-sans); font-size: 14px; font-weight: 500; color: var(--v3-text); }
body.v3 .evform-box input::placeholder, body.v3 .evform-box textarea::placeholder { color: #67676b; }
body.v3 .evform-box--select::after { right: 18px; width: 6px; height: 6px; border-color: var(--v3-text-2); }
body.v3 .evform-box--area { padding: 12px 16px; }
body.v3 .evform-box input[type="file"]::file-selector-button { margin-right: 12px; padding: 7px 14px; border: none; border-radius: var(--v3-r-pill); background: var(--v3-track); font-family: var(--v3-sans); font-weight: 600; color: var(--v3-text); cursor: pointer; }
body.v3 .evform-hint { font-family: var(--v3-sans); font-size: 12px; line-height: 1.5; color: var(--v3-muted); }
body.v3 .evform-hint a { color: var(--v3-text-2); }
body.v3 .evform-hint--lead { margin: -4px 0 4px; font-size: 15px; color: var(--v3-text-3); max-width: 900px; }
body.v3 .evform-hint--warn { color: var(--v3-accent); }
body.v3 .evform-check-label { font-family: var(--v3-sans); font-size: 14px; font-weight: 500; color: var(--v3-text); }
body.v3 .evform-subtitle { font-family: var(--v3-sans); font-size: 12px; font-weight: 600; letter-spacing: 1.2px; text-transform: uppercase; color: var(--v3-muted); }
body.v3 .evform-error { font-family: var(--v3-sans); color: var(--v3-red); }
body.v3 .evform-subblock { padding: 16px; border: none; border-radius: var(--v3-r-tile); background: #1c1c20; }
body.v3 .evform-cover { border-radius: 12px; }
body.v3 .evform-actions { position: sticky; bottom: 16px; z-index: 5; padding: 12px; border-radius: var(--v3-r-pill); background: var(--v3-card); box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.35); }
body.v3 .evform .figma-btn-primary,
body.v3 .ad3 .figma-btn-primary {
    height: auto; padding: 12px 22px; border: none; border-radius: var(--v3-r-pill); background: var(--v3-accent);
    font-family: var(--v3-sans); font-size: 14px; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--v3-bg);
}
body.v3 .evform .figma-btn-outline,
body.v3 .evform .figma-btn-secondary,
body.v3 .ad3 .figma-btn-outline,
body.v3 .ad3 .figma-btn-secondary,
body.v3 .ad3 .btn-outline {
    height: auto; padding: 11px 20px; border: 1px solid rgba(255, 255, 255, 0.16); border-radius: var(--v3-r-pill); background: none;
    font-family: var(--v3-sans); font-size: 14px; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--v3-text);
}
body.v3 .evform .figma-btn-danger,
body.v3 .ad3 .figma-btn-danger,
body.v3 .ad3 .btn-danger-outline {
    height: auto; padding: 11px 20px; border: 1px solid rgba(255, 107, 107, 0.4); border-radius: var(--v3-r-pill); background: none;
    font-family: var(--v3-sans); font-size: 14px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--v3-red);
}
body.v3 .ad3 .btn-primary {
    height: auto; padding: 12px 22px; border: none; border-radius: var(--v3-r-pill); background: var(--v3-accent);
    font-family: var(--v3-sans); font-size: 14px; font-weight: 600; text-transform: none; letter-spacing: 0; color: var(--v3-bg);
}

@media (max-width: 1099px) {
    .ad3 { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    .ad3-nav { position: static; flex-direction: row; flex-wrap: nowrap; overflow-x: auto; padding: 8px; scrollbar-width: none; }
    .ad3-nav-title { display: none; }
    .ad3-nav a { flex: none; white-space: nowrap; }
}
@media (max-width: 999px) {
    .v3-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v3-kv > div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
    .v3-kv .v3-btn--sm { justify-self: start; }
}
@media (max-width: 599px) {
    .ad3 .v3-h1, .sv3 .v3-h1, body.v3 .ad3 .event-admin-head .page-title { font-size: 30px; }
    .v3-grid { grid-template-columns: minmax(0, 1fr); }
    .v3-fld--span2 { grid-column: auto; }
    body.v3 .evform-card { padding: 18px 14px; }
    body.v3 .evform-field { min-width: 0; flex-basis: 100%; }
    .v3-savebar { border-radius: var(--v3-r-card); }
}

/* status page */
.st3-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.st3-wide { grid-column: 1 / -1; }
.st3-grid .v3-sec-title { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.st3-upcoming > div { grid-template-columns: 110px minmax(0, 1fr); }
.st3-upcoming dd a { font-weight: 600; }
.st3-disk { flex: none; }
/* diagnostics / validity */
.dg3-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.dg3-day { display: flex; flex-direction: column; gap: 10px; padding: 20px 16px 12px; }
.dg3-day-title { margin: 0 8px; font-size: 19px; font-weight: 600; color: var(--v3-text); }
.dg3-day-title small { margin-left: 8px; font-size: 13px; font-weight: 400; color: var(--v3-muted); }
.dg3-car { font-size: 12px; color: var(--v3-muted); }
.dg3-recon { display: flex; flex-wrap: wrap; gap: 4px; }
.dg3-recon .v3-badge, .dg3-day .v3-badge { font-size: 11px; padding: 2px 8px; }
.dg3-day .v3-tbl { overflow-x: auto; }
.dg3-day .v3-tbl-row { min-width: 860px; }
@media (max-width: 999px) {
    .st3-grid { grid-template-columns: minmax(0, 1fr); }
}

/* build / points */
.bd3-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.bd3-ver { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.bd3-notes { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; color: var(--v3-text); }
.bd3-notes-text { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.bd3-notes.is-open .bd3-notes-text { display: block; }
.bd3-more { padding: 0; border: none; background: none; font-family: var(--v3-sans); font-size: 13px; color: var(--v3-accent); cursor: pointer; }
.ps3-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.ps3-rows { display: flex; flex-direction: column; gap: 8px; }
.ps3-row { display: grid; grid-template-columns: 44px 90px minmax(0, 1fr) 28px; align-items: center; gap: 12px; }
.ps3-row .v3-pos { font-size: 16px; }
.ps3-row .v3-in { height: 38px; }
.ps3-add { align-self: flex-start; }
body.v3 .ps3-raw { width: 100%; padding: 12px; border: none; border-radius: 12px; background: var(--v3-tile); font-family: var(--v3-mono); color: var(--v3-text); }
/* career */
.cr3-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.cr3-class { margin: 0; font-family: var(--v3-num); font-size: 20px; font-weight: 600; color: var(--v3-text); }
.cr3-cars { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.cr3-car { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 10px; border-radius: var(--v3-r-tile); background: #1c1c20; }
.cr3-car.is-owned { box-shadow: inset 0 0 0 1px rgba(90, 209, 154, 0.4); }
.cr3-car-pic { display: flex; align-items: center; justify-content: center; height: 96px; border-radius: 10px; background: var(--v3-tile); }
.cr3-car-pic img { width: 56px; height: 56px; object-fit: contain; }
.cr3-car-name { flex: 1 1 auto; font-size: 14px; font-weight: 600; color: var(--v3-text); }
.cr3-car-btn { width: 100%; justify-content: flex-start; }
.cr3-car-state { align-self: flex-start; }
.cr3-locked { display: grid; grid-template-columns: auto auto minmax(0, 1fr); align-items: center; gap: 12px 16px; }
.cr3-req { display: flex; flex-direction: column; gap: 6px; }
.cr3-req-line { display: flex; justify-content: space-between; font-size: 12px; color: var(--v3-muted); }
.cr3-req-line b { color: var(--v3-text); }
.cs3-class { padding: 0; }
.cs3-class-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 22px 24px; list-style: none; cursor: pointer; }
.cs3-class-head::-webkit-details-marker { display: none; }
.cs3-class-head::after { content: "▾"; margin-left: 8px; font-size: 12px; color: var(--v3-muted); }
.cs3-class[open] .cs3-class-head::after { content: "▴"; }
.cs3-class[open] .cs3-sum { display: none; }
.cs3-del { margin-left: auto; }
.cs3-body { display: flex; flex-direction: column; gap: 14px; padding: 0 24px 24px; }
.cs3-tools { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.cs3-search { width: 320px; background: var(--v3-tile); }
.cs3-bulk { display: inline-flex; align-items: center; gap: 8px; margin-left: auto; font-size: 13px; color: var(--v3-muted); }
.cs3-bulk .v3-in { width: 90px; height: 34px; }
.cs3-cars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.cs3-car { display: grid; grid-template-columns: auto minmax(0, 1fr) 80px; align-items: center; gap: 10px; padding: 8px 10px 8px 14px; border-radius: 12px; background: #1c1c20; font-size: 14px; font-weight: 500; color: var(--v3-text); cursor: pointer; }
.cs3-car .v3-in { height: 34px; padding: 0 10px; }
/* service pages */
.ln3-card { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 40px 32px; text-align: center; }
.ln3-title { margin: 0; font-size: 22px; font-weight: 600; color: var(--v3-text); }
.ln3-text { margin: 0; max-width: 420px; font-size: 14px; line-height: 1.55; color: var(--v3-text-3); }
.ln3-ok { background: rgba(90, 209, 154, 0.12); color: var(--v3-green); }
.ln3-steps { display: flex; flex-direction: column; gap: 6px; width: 100%; max-width: 420px; margin: 4px 0; padding: 0; list-style: none; text-align: left; }
.ln3-steps li { display: flex; gap: 12px; padding: 10px 14px; border-radius: 12px; background: var(--v3-tile); font-size: 14px; color: var(--v3-text); }
.ln3-steps b { font-family: var(--v3-num); color: var(--v3-accent); }
.ln3-code { margin: 0; font-size: 14px; color: var(--v3-muted); }
.ln3-code b { margin-left: 6px; font-size: 18px; letter-spacing: 2px; color: var(--v3-text); }
.cp3-photo { display: flex; flex-direction: column; gap: 10px; }
.cp3-photo-title { font-size: 12px; font-weight: 600; letter-spacing: 1.2px; text-transform: uppercase; color: var(--v3-muted); }
.cp3-radio { display: flex; align-items: center; gap: 12px; font-size: 15px; font-weight: 500; color: var(--v3-text); cursor: pointer; }
.cp3-radio input { width: 18px; height: 18px; accent-color: var(--v3-accent); }
.cp3-current { width: 56px; height: 56px; border-radius: 12px; object-fit: cover; }
.cp3-terms { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; line-height: 1.5; color: var(--v3-text-2); cursor: pointer; }
.cp3-terms a { color: var(--v3-accent); }
.cp3-preview { display: flex; align-items: center; gap: 20px; padding: 14px 18px; border-radius: 12px; background: rgba(255, 90, 31, 0.08); box-shadow: inset 3px 0 0 var(--v3-accent); }
.cp3-preview-name b { font-size: 15px; color: var(--v3-text); }
.cp3-preview-name small { margin-left: 6px; font-size: 12px; color: var(--v3-muted); }
.tl3-drop { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; min-height: 200px; padding: 24px; border: 1px dashed rgba(255, 255, 255, 0.16); border-radius: var(--v3-r-tile); text-align: center; cursor: pointer; }
.tl3-drop.is-over { border-color: var(--v3-accent); background: rgba(255, 90, 31, 0.06); }
.tl3-drop input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.tl3-drop-text { font-size: 13px; color: var(--v3-muted); }
.tl3-plain { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.po3 { display: flex; flex-direction: column; gap: 16px; }
.po3-head-copy { display: flex; flex-direction: column; gap: 10px; min-width: 0; flex: 1 1 600px; }
.po3-session { display: flex; flex-direction: column; gap: 4px; min-width: 180px; }
.po3-session select { border: none; background: none; font-family: var(--v3-sans); font-size: 15px; font-weight: 600; color: var(--v3-text); }
.po3-editor { padding: 0; overflow: hidden; border-radius: var(--v3-r-card); }
.po3-frame { display: block; width: 100%; height: 90vh; min-height: 760px; border: 0; background: var(--v3-card); }
.po3-posts { display: flex; flex-direction: column; gap: 12px; }
.po3-tabs { align-self: flex-start; }
.po3-post { display: flex; flex-direction: column; gap: 10px; }
.po3-post-head { display: flex; justify-content: space-between; gap: 12px; }
.po3-count { font-size: 12px; color: var(--v3-muted); }
.po3-post.is-over .po3-count { color: var(--v3-red); }
body.v3 .po3-text { width: 100%; padding: 16px 18px; border: none; border-radius: var(--v3-r-tile); background: var(--v3-bg); font-family: var(--v3-mono); font-size: 13px; line-height: 1.7; color: var(--v3-text); resize: vertical; }
.gr3 { display: flex; flex-direction: column; gap: 16px; }
.gr3-head { display: flex; flex-direction: column; gap: 14px; }
.gr3-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.gr3-cars button { cursor: default; }
.gr3-reset { margin-left: auto; }
.gr3 .garage-stage { border-radius: var(--v3-r-card); overflow: hidden; }
/* legal pages */
.lg3 { display: flex; flex-direction: column; gap: 16px; max-width: 1200px; }
.lg3-grid { display: grid; grid-template-columns: 280px minmax(0, 900px); gap: 16px; align-items: start; }
.lg3-toc { position: sticky; top: 96px; display: flex; flex-direction: column; gap: 2px; padding: 18px 12px; border-radius: var(--v3-r-card); background: var(--v3-card); }
.lg3-toc-list { display: flex; flex-direction: column; gap: 2px; }
.lg3-toc-list a { padding: 8px 10px; border-radius: 10px; font-size: 13px; line-height: 1.35; color: var(--v3-text-3); text-decoration: none; }
.lg3-toc-list a:hover { background: var(--v3-tile); color: var(--v3-text); text-decoration: none; }
.lg3-toc-list a.active { background: var(--v3-track); color: var(--v3-text); }
.lg3-other { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; padding: 12px 10px 0; border-top: 1px solid rgba(255, 255, 255, 0.06); font-size: 12px; color: var(--v3-muted); }
.lg3-other a { font-size: 13px; color: var(--v3-accent); }
.lg3-body { padding: 36px 40px; }
.lg3-body h2 { margin: 32px 0 12px; font-family: var(--v3-sans); font-size: 19px; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--v3-text); scroll-margin-top: 100px; }
.lg3-body p, .lg3-body li { font-size: 15px; line-height: 1.7; color: var(--v3-text-3) !important; }
.lg3-body ul { padding-left: 18px; }
.lg3-body li::marker { color: var(--v3-accent); }
.lg3-body strong { color: var(--v3-text); }
.lg3-body a { color: var(--v3-accent); }
.lg3-summary { margin-bottom: 8px; padding: 20px 22px; border-radius: var(--v3-r-tile); background: rgba(255, 90, 31, 0.1); }
.lg3-summary b { font-size: 15px; color: var(--v3-text); }
.lg3-summary ul { margin: 10px 0 0; padding: 0; list-style: none; }
.lg3-summary li { position: relative; padding-left: 24px; font-size: 14px !important; line-height: 1.6; color: var(--v3-text) !important; }
.lg3-summary li::before { content: "✓"; position: absolute; left: 0; color: var(--v3-accent); font-weight: 700; }
/* championship rules */
.sr3-brief { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 14px 18px; border-radius: var(--v3-r-tile); background: rgba(255, 90, 31, 0.1); }
.sr3-brief b { margin-right: 8px; font-size: 15px; color: var(--v3-text); }
.sr3-brief .v3-chip { font-size: 13px; background: rgba(14, 14, 16, 0.5); color: var(--v3-text); }
.sr3-rules { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr) !important; }
.sr3-rules-col { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.sr3-rule-title { margin: 0; font-size: 20px; font-weight: 600; color: var(--v3-text); }
.sr3-rule-tiles { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)) !important; }
.sr3-rule-tiles--stack { grid-template-columns: minmax(0, 1fr) !important; }
.sr3-rule .v3-tile .v3-value { font-size: 15px; line-height: 1.4; }
/* collapsed profile header + field states (design «Свёрнутая шапка и предупреждения») */
.pr3-sticky {
    position: fixed;
    top: 12px;
    left: 50%;
    z-index: 60;
    display: flex;
    align-items: center;
    gap: 10px;
    width: min(1400px, calc(100vw - 32px));
    padding: 8px 10px 8px 8px;
    border-radius: 20px;
    background: rgba(23, 23, 26, 0.96);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(8px);
    transform: translate(-50%, -140%);
    transition: transform 0.25s ease;
}
.pr3-sticky.is-on { transform: translate(-50%, 0); }
.pr3-sticky .v3-avatar { width: 40px; height: 40px; }
.pr3-sticky-name { font-size: 15px; font-weight: 600; color: var(--v3-text); white-space: nowrap; }
.pr3-sticky .v3-chip { font-size: 12px; }
.pr3-sticky .v3-chip b { color: var(--v3-text); }
.pr3-sticky-tabs { display: flex; align-items: center; gap: 2px; margin-left: auto; padding: 4px; border-radius: var(--v3-r-pill); background: var(--v3-bg); }
.pr3-sticky-tabs button, .pr3-sticky-more summary { padding: 8px 14px; border: none; border-radius: var(--v3-r-pill); background: none; font-family: var(--v3-sans); font-size: 13px; font-weight: 500; color: var(--v3-muted); cursor: pointer; list-style: none; white-space: nowrap; }
.pr3-sticky-more summary::-webkit-details-marker { display: none; }
.pr3-sticky-tabs button:hover, .pr3-sticky-more summary:hover { color: var(--v3-text); }
.pr3-sticky-tabs button.active { background: var(--v3-track); color: var(--v3-text); }
.pr3-sticky-tabs button.active::before { content: "● "; color: var(--v3-accent); font-size: 9px; vertical-align: middle; }
.pr3-sticky-more { position: relative; }
.pr3-sticky-more .ed3-menu { min-width: 180px; }
@media (prefers-reduced-motion: reduce) { .pr3-sticky { transition: none; } }
@media (max-width: 1279px) {
    .pr3-sticky .v3-chip, .pr3-sticky-tabs { display: none; }
}
.v3-was { margin-left: auto; font-size: 11px; font-weight: 600; color: var(--v3-accent); }
.pr3 .rating-admin input.is-changed { border: 1px solid rgba(255, 90, 31, 0.6) !important; background: #2a1a15 !important; }
.pr3 .rating-admin-savebar.is-dirty { background: #2a1a15; }
.pr3 .rating-admin-savebar.is-dirty > span { color: var(--v3-accent); }
body.v3 .input-validation-error,
body.v3 .v3-fld .input-validation-error { border: 1px solid var(--v3-red) !important; background: rgba(255, 107, 107, 0.06) !important; }
body.v3 .field-validation-error { font-size: 12px; color: var(--v3-red); }
.dl3-notwin { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.dl3-notwin[hidden] { display: none; }
.dl3-notwin-alert { width: 100%; background: rgba(245, 197, 66, 0.1); color: var(--v3-text-2); font-weight: 400; }
.dl3-notwin-alert > i { background: none; color: var(--v3-gold); font-size: 16px; }
.dl3-notwin-alert b { color: var(--v3-gold); }
@media (max-width: 999px) {
    .ps3-grid, .lg3-grid, .sr3-rules { grid-template-columns: minmax(0, 1fr) !important; }
    .lg3-toc { position: static; }
    .cs3-cars { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bd3-grid { grid-template-columns: minmax(0, 1fr); }
    .cr3-locked { grid-template-columns: auto auto; }
    .cr3-req { grid-column: 1 / -1; }
}
@media (max-width: 599px) {
    .cs3-cars, .tl3-plain { grid-template-columns: minmax(0, 1fr); }
    .cs3-search { width: 100%; }
    .cs3-bulk { margin-left: 0; }
    .lg3-body { padding: 22px 16px; }
    .ln3-card { padding: 28px 16px; }
    .gr3-reset { margin-left: 0; }
    .po3-frame { min-height: 640px; }
}
.v3-kv dt a { color: var(--v3-accent); font-weight: 600; }
body.v3 .cs3-bulk .v3-in { width: 90px; }
.cs3-bulk { white-space: nowrap; }
body.v3 .ps3-row .v3-in { width: 100%; }
.dg3-day .v3-tbl-row { column-gap: 10px; }

/* ---- Admin → Донаты: the donations list ---- */
.dn3-list { display: flex; flex-direction: column; gap: 6px; }
.dn3-row { display: grid; grid-template-columns: 140px minmax(0, 1fr) auto; align-items: center; gap: 4px 16px; padding: 10px 14px; border-radius: 12px; background: var(--v3-tile); }
.dn3-when { font-size: 13px; color: var(--v3-muted); }
.dn3-who { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.dn3-amount { font-weight: 700; color: var(--v3-accent); text-align: right; }
.dn3-message { grid-column: 2 / -1; margin: 0; font-size: 13px; line-height: 1.5; color: var(--v3-text-2); overflow-wrap: anywhere; }
@media (max-width: 599px) {
    .dn3-row { grid-template-columns: minmax(0, 1fr) auto; }
    .dn3-when { grid-column: 1 / -1; }
    .dn3-message { grid-column: 1 / -1; }
}

/* ---- Dashboard: «Поддержать проект» column (Figma 642:785, Pages/Shared/_SupportCard) ---- */
.dash3-body { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: start; }
.dash3-main { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.dash3-support { position: sticky; top: 20px; display: flex; flex-direction: column; gap: 18px; padding: 20px; }
.dash3-support-goal { display: flex; flex-direction: column; gap: 10px; }
.dash3-support-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.dash3-support-head h2 { margin: 0; font-size: 16px; font-weight: 600; line-height: 1.55; color: var(--v3-text); }
.dash3-support-head h3 { margin: 0; font-size: 14px; font-weight: 600; line-height: 1.55; color: var(--v3-text); }
.dash3-support-sum { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; margin: 0; }
.dash3-support-sum b { font-family: var(--v3-display); font-size: 26px; font-weight: 400; line-height: 1.55; letter-spacing: -0.52px; color: var(--v3-text); }
.dash3-support-sum span { font-size: 13px; color: var(--v3-muted); }
.dash3-support-bar { flex: none; width: 100%; }
.dash3-support-btn { justify-content: center; width: 100%; padding: 11px 18px; font-size: 14px; font-weight: 600; }
.dash3-support-rule { margin: 0; border: 0; height: 1px; background: rgba(255, 255, 255, 0.06); opacity: 1; }
.dash3-support-msgs { display: flex; flex-direction: column; gap: 4px; }
.dash3-support-msgs > .dash3-support-head { padding-bottom: 4px; }
.dash3-support-all { padding: 0; border: 0; background: none; font-size: 13px; font-weight: 500; color: var(--v3-accent); cursor: pointer; }
.dash3-support-all:hover { text-decoration: underline; }
.dash3-support-all:focus-visible { outline: 2px solid var(--v3-accent); outline-offset: 2px; border-radius: 4px; }
.dash3-support-empty { margin: 0; font-size: 13px; line-height: 1.4; color: var(--v3-faint); }
.dash3-msg { display: flex; flex-direction: column; gap: 3px; margin: 0 -10px; padding: 10px; border-radius: 12px; }
.dash3-msg[hidden] { display: none; }
.dash3-msg-top { display: flex; align-items: center; gap: 8px; min-width: 0; }
.dash3-msg-avatar { width: 26px; height: 26px; font-size: 10px; }
.dash3-msg-name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; color: var(--v3-text); }
.dash3-msg-amount { flex: none; font-family: var(--v3-mono); font-size: 12px; font-weight: 700; color: var(--v3-accent); }
.dash3-msg-text { margin: 0; padding-left: 34px; font-size: 13px; line-height: 1.4; color: var(--v3-text-2); overflow-wrap: anywhere; }
.dash3-msg-text.is-empty { color: var(--v3-faint); }
.dash3-msg-when { padding-left: 34px; font-size: 11px; line-height: 1.55; color: var(--v3-faint); }
@media (max-width: 1279px) {
    .dash3-body { grid-template-columns: minmax(0, 1fr); }
    .dash3-support { position: static; }
}

/* ---- Dashboard: the next race's track as a 3D model on the right of the card (track3d.js),
   the live cars on it during the race; replaces the photo when the track has a model ---- */
.dash3-next-map { position: absolute; inset: 0 0 0 42%; }
/* keep the title off the model: it wraps instead of running over the cars */
.dash3-next.has-map .dash3-next-main { max-width: 52%; }
.dash3-next-map .track3d-stage, .dash3-next-map.is-live .track3d-stage { height: 100%; }
/* no standings column here: the event page's live grid (theme.css .track3d.is-live) stays off */
.track3d.dash3-next-map.is-live { display: block; }
.dash3-next-map .track3d-view { min-height: 0; height: 100%; background: radial-gradient(ellipse 60% 60% at 55% 55%, #1b1b1f 0%, var(--v3-card) 70%); }
.dash3-next-map .track3d-view::after { display: none; }
.dash3-next-map .track3d-tag { padding: 5px 8px; font-family: var(--v3-sans); font-size: 11px; border-radius: var(--v3-r-pill); background: rgba(23, 23, 26, 0.85); }
.dash3-next.has-map::after { background: linear-gradient(90deg, var(--v3-card) 42%, rgba(23, 23, 26, 0) 52%); }
/* the text layer covers the whole card: let drags through to the model, keep links clickable */
.dash3-next.has-map .dash3-next-body { pointer-events: none; }
.dash3-next.has-map .dash3-next-body :is(a, button, .v3-chip--card) { pointer-events: auto; }
.dash3-next-live { background: var(--v3-green-soft); color: var(--v3-green); }
.dash3-next-live .v3-dot { animation: track3d-pulse 1.4s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) {
    .dash3-next-live .v3-dot { animation: none; }
}
@media (max-width: 1099px) {
    .dash3-next.has-map { display: flex; flex-direction: column; }
    .dash3-next.has-map::after { display: none; }
    .dash3-next.has-map .dash3-next-body { min-height: 0; }
    .dash3-next-map { position: relative; inset: auto; order: 2; height: 280px; }
    .dash3-next.has-map .dash3-next-main { max-width: none; }
}

/* Leaderboard: the weather a lap's event on our servers was set up with. */
.lb3-weather { font-size: 13px; color: var(--v3-text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lb3-weather.is-none { color: var(--v3-muted); }
.v3-thead .lb3-weather { color: inherit; font-size: inherit; }
@media (max-width: 599px) {
    .lb3-weather { display: none; }
}

/* ==== Public servers: «Статус серверов» on «Заезды» + Admin → «Открытые серверы» ==== */
.ev3-layout { display: block; }
.ev3-layout.has-servers { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 20px; align-items: start; }
.ev3-side { position: sticky; top: 88px; min-width: 0; }
@media (max-width: 1279px) {
    .ev3-layout.has-servers { grid-template-columns: minmax(0, 1fr); }
    .ev3-side { position: static; }
}
/* Next to the servers column a row is ~380px narrower: the one-line layout leaves the
   name no room until the window is wide, so keep the two-line one (as under 1280px). */
@media (min-width: 1280px) and (max-width: 1599px) {
    .ev3-layout.has-servers .ev3-row { grid-template-columns: 110px minmax(0, 1fr) 44px; row-gap: 14px; }
    .ev3-layout.has-servers .ev3-meta { grid-column: 2 / 3; grid-row: 2; grid-template-columns: repeat(4, auto); justify-content: start; gap: 28px; }
    .ev3-layout.has-servers .ev3-row > .v3-icon-btn { grid-column: 3; grid-row: 1 / span 2; }
}

.sv3-panel { display: flex; flex-direction: column; gap: 14px; padding: 20px; border-radius: var(--v3-r-card); background: var(--v3-card); }
.sv3-head { display: flex; flex-direction: column; gap: 10px; }
.sv3-title {
    display: flex; align-items: center; gap: 10px; margin: 0; padding-bottom: 12px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    font-family: var(--v3-display); font-size: 16px; letter-spacing: 0.4px; text-transform: uppercase; color: var(--v3-text);
    background: linear-gradient(var(--v3-accent), var(--v3-accent)) left bottom / 44px 2px no-repeat;
}
.sv3-title svg { color: var(--v3-muted); }
.sv3-summary { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 13px; color: var(--v3-text-2); }
.sv3-summary b { font-family: var(--v3-mono); color: var(--v3-green); }
.sv3-summary-note { margin-left: auto; color: var(--v3-muted); }

.sv3-dot { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--v3-faint); }
.sv3-dot--on { background: var(--v3-green); box-shadow: 0 0 0 3px var(--v3-green-soft); }
.sv3-dot--stale { background: var(--v3-gold); }
.sv3-dot--bad { background: var(--v3-red); }
.sv3-dot--off { background: var(--v3-faint); }

.sv3-cards { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.sv3-card {
    display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 4px 10px; align-items: start;
    padding: 12px 14px; border-radius: 12px; background: var(--v3-tile);
}
.sv3-num { padding-top: 2px; font-family: var(--v3-mono); font-size: 11px; color: var(--v3-faint); }
.sv3-card-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sv3-card-name { font-size: 15px; font-weight: 700; line-height: 1.3; color: var(--v3-text); overflow-wrap: anywhere; }
.sv3-card-sub { font-size: 13px; color: var(--v3-text-3); }
.sv3-card-state { font-size: 12px; color: var(--v3-muted); }
.sv3-card-state b { font-weight: 600; color: var(--v3-text-2); }
.sv3-last {
    display: flex; flex-direction: column; gap: 1px; margin-top: 6px; padding-top: 6px;
    border-top: 1px solid var(--v3-chip-hover); font-size: 12px; color: var(--v3-muted);
}
.sv3-last b { font-weight: 600; color: var(--v3-text-2); overflow-wrap: anywhere; }
.sv3-last-head { font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--v3-faint); }
.sv3-last .sv3-last-lap { font-family: var(--v3-mono); color: var(--v3-text); }
.sv3-card-side { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; padding-top: 4px; }
.sv3-req { font-family: var(--v3-mono); font-size: 12px; font-weight: 600; color: var(--v3-gold); white-space: nowrap; }
.sv3-foot { margin: 0; font-size: 12px; line-height: 1.5; color: var(--v3-muted); }
.sv3-foot b { color: var(--v3-text-2); font-family: var(--v3-mono); font-weight: 600; }

.sv3-list { display: flex; flex-direction: column; gap: 8px; }
.sv3-row { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 14px 16px; border-radius: 12px; background: var(--v3-tile); }
.sv3-row.is-editing { outline: 1px solid var(--v3-accent); }
.sv3-row-main { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.sv3-row-main b { font-size: 16px; color: var(--v3-text); }
.sv3-row-sub { font-size: 13px; color: var(--v3-text-3); overflow-wrap: anywhere; }
.sv3-row-sub.v3-mono { font-size: 12px; color: var(--v3-muted); }
.sv3-row-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.sv3-row-actions form { margin: 0; }
.sv3-add { flex-wrap: wrap; align-items: flex-end; gap: 10px; margin-top: 14px; }
.sv3-add .v3-fld { min-width: 180px; }
@media (max-width: 899px) {
    .sv3-row { grid-template-columns: 10px minmax(0, 1fr); }
    .sv3-row-actions { grid-column: 2; justify-content: flex-start; }
}

.sv3-chart { margin: 14px 0 0; }
.sv3-chart svg { display: block; width: 100%; height: 110px; border-radius: 10px; background: var(--v3-tile); }
.sv3-chart-grid { stroke: rgba(255, 255, 255, 0.08); stroke-width: 1; vector-effect: non-scaling-stroke; }
.sv3-chart-line { fill: none; stroke: var(--v3-accent); stroke-width: 2; stroke-linejoin: round; }
.sv3-chart figcaption { display: flex; justify-content: space-between; gap: 10px; margin-top: 6px; font-size: 12px; color: var(--v3-muted); }
.sv3-procs { display: flex; flex-direction: column; gap: 4px; margin-top: 14px; }
.sv3-proc { display: grid; grid-template-columns: minmax(0, 1fr) 90px 90px 60px; gap: 10px; padding: 8px 12px; border-radius: 8px; background: var(--v3-tile); font-size: 13px; color: var(--v3-text-2); font-variant-numeric: tabular-nums; }
.sv3-proc--head { background: none; font-size: 12px; color: var(--v3-muted); }
.sv3-summary b.is-none { color: var(--v3-muted); }
.sv3-dot--pause { background: var(--v3-text-3); }
.sv3-card--pause { opacity: 0.75; }

/* ==== Round lineup («Состав этапа», _RoundLineup) ==== */
.lu3 { margin: 20px 8px 0; }
.lu3-count { font-family: var(--v3-mono); color: var(--v3-text); }
.lu3-rule { max-width: 72ch; margin: 0 0 16px; font-size: 13px; line-height: 1.55; color: var(--v3-text-3); }
.lu3-group { margin: 16px 0 8px; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--v3-muted); }
.lu3-empty { margin: 0; }
.lu3-list { display: flex; flex-direction: column; gap: 4px; margin: 0; padding: 0; list-style: none; }
.lu3-row { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 8px 12px; border-radius: 10px; background: var(--v3-tile); }
.lu3-row.is-me { box-shadow: inset 0 0 0 1px var(--v3-accent); }
.lu3-pos { font-family: var(--v3-mono); font-size: 13px; color: var(--v3-faint); font-variant-numeric: tabular-nums; }
.lu3-name { min-width: 0; font-size: 15px; font-weight: 600; color: var(--v3-text); text-decoration: none; overflow-wrap: anywhere; }
.lu3-name:hover { color: var(--v3-accent); }
.lu3-meta { font-size: 12px; color: var(--v3-muted); white-space: nowrap; }
.lu3-action { margin: 0; }
.lu3-list--reserve .lu3-name, .lu3-list--none .lu3-name { color: var(--v3-text-2); }
@media (max-width: 699px) {
    .lu3 { margin: 16px 0 0; }
    .lu3-row { grid-template-columns: 24px minmax(0, 1fr) auto; }
    .lu3-meta { display: none; }
}

/* ---- clubs: /Clubs, /Clubs/{id} (Pages/Clubs) — built from the site's v3 blocks ---- */
.cl3-logo { flex: none; width: 72px; height: 72px; border-radius: 18px; background: var(--v3-tile); object-fit: cover; }
.cl3-logo--initials { display: inline-flex; align-items: center; justify-content: center; font-family: var(--v3-display); font-size: 24px; color: var(--v3-accent); background: var(--v3-accent-soft); }
.cl3-logo--form { display: block; margin-bottom: 8px; }
.cl3-grid { display: flex; flex-direction: column; gap: 16px; }
.cl3-card { display: flex; align-items: center; gap: 28px; min-height: 200px; padding: 28px 32px; color: var(--v3-text); text-decoration: none; transition: background 0.15s ease; }
.cl3-card .cl3-logo { width: 128px; height: 128px; border-radius: 28px; }
.cl3-card .cl3-logo--initials { font-size: 42px; }
.cl3-card:hover { background: var(--v3-tile); color: var(--v3-text); text-decoration: none; }
.cl3-card:hover .ch3-arrow { color: var(--v3-accent); }
.cl3-card-body { display: flex; flex: 1 1 0; flex-direction: column; gap: 12px; min-width: 0; }
.cl3-card-name { font-family: var(--v3-display); font-size: 32px; line-height: 1.2; overflow-wrap: break-word; }
.cl3-card-sub { font-size: 14px; color: var(--v3-muted); }
.cl3-card-current { align-self: center; font-size: 13px; color: var(--v3-text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.cl3 .v3-chips { align-items: center; }

.cl3-back { align-self: flex-start; padding: 8px 8px 0; font-size: 13px; color: var(--v3-muted); text-decoration: none; }
.cl3-back:hover { color: var(--v3-text); }
.cl3-hero { display: flex; flex-direction: column; gap: 20px; padding: 32px 36px;
    background: radial-gradient(ellipse 55% 120% at 95% 0%, rgba(255, 90, 31, 0.12), rgba(23, 23, 26, 0) 60%), var(--v3-card); }
.cl3-hero-main { display: flex; align-items: center; gap: 28px; }
.cl3-hero .cl3-logo { width: 112px; height: 112px; border-radius: 26px; }
.cl3-hero .cl3-logo--initials { font-size: 38px; }
.cl3-hero-text { display: flex; flex: 1 1 0; flex-direction: column; gap: 10px; min-width: 0; }
.cl3-hero-name { margin: 0; font-family: var(--v3-display); font-size: 48px; font-weight: 400; line-height: 1; letter-spacing: -0.96px; overflow-wrap: break-word; text-wrap: balance; }
.cl3-hero-sub { margin: 0; font-size: 14px; color: var(--v3-text-3); }
.cl3-link { color: var(--v3-text); text-decoration: none; }
.cl3-link:hover { background: var(--v3-chip-hover); color: var(--v3-accent); text-decoration: none; }
.cl3-edit { flex: none; align-self: flex-start; }
.cl3-about { margin: 0; max-width: 72ch; font-size: 15px; line-height: 1.6; color: var(--v3-text-2); white-space: pre-line; }

.cl3-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.cl3-stat { display: flex; flex-direction: column; gap: 4px; }
.cl3-stat-num { font-family: var(--v3-num); font-size: 32px; font-weight: 600; line-height: 1.2; font-variant-numeric: tabular-nums; color: var(--v3-text); }

.cl3-pair { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 16px; align-items: start; }
.cl3-side { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.cl3-sec { display: flex; flex-direction: column; gap: 12px; }
.cl3-sec .v3-card-head { margin-bottom: 0; }
.cl3-upcoming { display: flex; flex-direction: column; gap: 6px; }
.cl3-up { display: flex; align-items: center; gap: 16px; padding: 12px 16px; color: var(--v3-text); text-decoration: none; }
.cl3-up:hover { background: var(--v3-chip-hover); color: var(--v3-text); text-decoration: none; }
.cl3-up-date { display: flex; flex: none; flex-direction: column; align-items: center; width: 92px; padding-right: 16px; white-space: nowrap; border-right: 1px solid rgba(255, 255, 255, 0.08); font-family: var(--v3-mono); }
.cl3-up-date b { font-size: 17px; font-weight: 700; color: var(--v3-text); }
.cl3-up-date span { font-size: 12px; color: var(--v3-muted); }
.cl3-up-main { display: flex; flex: 1 1 0; flex-direction: column; gap: 2px; min-width: 0; }
.cl3-up-name { font-size: 15px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cl3-up-sub { font-size: 12px; color: var(--v3-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.cl3-people { display: flex; flex-direction: column; gap: 4px; }
.cl3-person { display: flex; align-items: center; gap: 12px; padding: 8px; border-radius: var(--v3-r-tile); color: var(--v3-text); text-decoration: none; }
.cl3-person:hover { background: var(--v3-tile); color: var(--v3-text); text-decoration: none; }
.cl3-rank { flex: none; width: 20px; font-family: var(--v3-num); font-size: 15px; font-weight: 600; color: var(--v3-faint); text-align: center; }
.cl3-person-text { display: flex; flex: 1 1 0; flex-direction: column; min-width: 0; }
.cl3-person-text b { font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cl3-person-text span { font-size: 12px; color: var(--v3-muted); }
.cl3-points { flex: none; font-family: var(--v3-num); font-size: 16px; font-weight: 600; font-variant-numeric: tabular-nums; }

.cl3-champs { display: flex; flex-direction: column; gap: 12px; }
.cl3-group { margin: 8px 8px 0; font-size: 12px; font-weight: 600; letter-spacing: 1.2px; text-transform: uppercase; color: var(--v3-muted); }
.cl3-champ-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.cl3-champ-meta .v3-chip, .cl3-champ-meta .v3-badge { font-size: 12px; padding: 4px 10px; }
.cl3-podium { display: flex; flex: none; flex-direction: column; gap: 4px; width: 240px; padding: 10px 14px; border-radius: 12px; background: var(--v3-tile); }
.cl3-podium-title { font-size: 11px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--v3-muted); }
.cl3-podium-row { display: flex; align-items: center; gap: 8px; font-size: 13px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cl3-podium-row i { flex: none; width: 18px; height: 18px; border-radius: 50%; font-style: normal; font-size: 11px; font-weight: 700; line-height: 18px; text-align: center; color: #17171a; background: var(--v3-faint); }
.cl3-podium-row i.is-gold { background: var(--v3-gold); }
.cl3-podium-row i.is-silver { background: var(--v3-silver); }
.cl3-podium-row i.is-bronze { background: var(--v3-bronze); }
.cl3-podium-row b { margin-left: auto; padding-left: 8px; font-family: var(--v3-num); font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }

@media (max-width: 1099px) {
    .cl3-pair { grid-template-columns: minmax(0, 1fr); }
    .cl3-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 999px) {
    .cl3-podium { order: 5; width: auto; flex: 1 1 100%; margin-left: 164px; }
}
@media (max-width: 599px) {
    .cl3-card { gap: 16px; min-height: 150px; padding: 20px; }
    .cl3-card .cl3-logo { width: 72px; height: 72px; border-radius: 18px; }
    .cl3-card .cl3-logo--initials { font-size: 24px; }
    .cl3-card-name { font-size: 20px; }
    .cl3-hero { padding: 22px 18px; }
    .cl3-hero-main { flex-wrap: wrap; gap: 16px; }
    .cl3-hero .cl3-logo { width: 80px; height: 80px; border-radius: 20px; }
    .cl3-hero-text { flex: 1 1 100%; }
    .cl3-hero-name { font-size: 30px; }
    .cl3-edit { width: 100%; }
    .cl3-stat-num { font-size: 26px; }
    .cl3-podium { margin-left: 0; }
}
/* points-scoring club qualification: the note above the championship table */
.sr3-qual-note { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; padding: 16px 20px; font-size: 13px; line-height: 1.55; color: var(--v3-text-2); }
.sr3-qual-note-icon { flex: none; color: #67BBFF; } /* the blue stripe of the logo */
.sr3-qual-note-text { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.sr3-qual-note-text > b { font-size: 14px; font-weight: 600; color: var(--v3-text); }
.sr3-qual-note-text span b { color: var(--v3-text); font-weight: 600; }
