@import '_content/RegattaLive.UI/RegattaLive.UI.0gkrigqphc.bundle.scp.css';

/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* Claude: header and footer styles. */
.site-header[b-elpj9eca5a] {
    background: var(--cta-from);
    color: #fff;
    box-shadow: var(--shadow-header);
}

.site-header-inner[b-elpj9eca5a] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-8) var(--space-20);
    padding-top: var(--space-10);
    padding-bottom: var(--space-10);
}

.brand[b-elpj9eca5a] {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    font-size: 1.1rem;
    white-space: nowrap;
}

.site-nav[b-elpj9eca5a] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
}

.site-nav[b-elpj9eca5a]  a {
    color: rgba(255, 255, 255, 0.8);
    text-decoration: none;
    padding: var(--space-6) var(--space-10);
    border-radius: var(--radius-button);
    white-space: nowrap;
}

.site-nav[b-elpj9eca5a]  a:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.1);
}

.site-nav[b-elpj9eca5a]  a.active {
    color: #fff;
    background: rgba(255, 255, 255, 0.18);
}

/* Claude: "Go Live" stands out in green for "go" (Des, 14 Oct 2026); Design success green, white text (5.1:1). */
.site-nav[b-elpj9eca5a]  a.nav-go-live {
    color: #fff;
    font-weight: 700;
    background: var(--success, #2e7d32);
}

.site-nav[b-elpj9eca5a]  a.nav-go-live:hover,
.site-nav[b-elpj9eca5a]  a.nav-go-live:focus-visible {
    background: #388e3c;
}

/* Claude: sign-in link / account name, pushed to the right. */
.site-account[b-elpj9eca5a] {
    margin-left: auto;
}

.site-account[b-elpj9eca5a]  a {
    color: #fff;
    text-decoration: none;
    padding: var(--space-6) var(--space-10);
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: var(--radius-button);
    white-space: nowrap;
}

.site-account[b-elpj9eca5a]  a:hover,
.site-account[b-elpj9eca5a]  a.active {
    background: rgba(255, 255, 255, 0.18);
}

main[b-elpj9eca5a] {
    min-height: 70vh;
    padding-bottom: var(--space-20);
}

.site-footer[b-elpj9eca5a] {
    background: var(--surface);
    border-top: 1px solid var(--line);
    color: var(--ink-muted);
    font-size: 0.875rem;
    padding: var(--space-16) 0;
    text-align: center;
}

/* Claude: hamburger menu (Des, 29 Oct 2026). Live part only (/regattas...): on a phone the header is one slim row,
   logo left and the menu button in the top right corner; the menu opens as a panel under it. PCs keep the inline menu. */
.nav-burger[b-elpj9eca5a] {
    display: none;
}

@media (max-width: 767.98px) {
    .site-header--live .site-header-inner[b-elpj9eca5a] {
        flex-wrap: nowrap;
        padding-top: var(--space-4);
        padding-bottom: var(--space-4);
    }

    .site-header--live .brand img[b-elpj9eca5a] {
        width: 28px;
        height: 28px;
    }

    .site-header--live .site-nav[b-elpj9eca5a],
    .site-header--live .site-account[b-elpj9eca5a] {
        display: none;
    }

    .site-header--live .nav-burger[b-elpj9eca5a] {
        display: block;
        position: relative;
        margin-left: auto;
    }

    .nav-burger summary[b-elpj9eca5a] {
        list-style: none;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 36px;
        border-radius: var(--radius-button);
        cursor: pointer;
    }

    .nav-burger summary[b-elpj9eca5a]::-webkit-details-marker {
        display: none;
    }

    .nav-burger[open] summary[b-elpj9eca5a],
    .nav-burger summary:hover[b-elpj9eca5a] {
        background: rgba(255, 255, 255, 0.18);
    }

    /* Claude: three white bars. */
    .nav-burger-icon[b-elpj9eca5a],
    .nav-burger-icon[b-elpj9eca5a]::before,
    .nav-burger-icon[b-elpj9eca5a]::after {
        display: block;
        width: 22px;
        height: 2px;
        background: #fff;
        border-radius: 1px;
    }

    .nav-burger-icon[b-elpj9eca5a] {
        position: relative;
    }

    .nav-burger-icon[b-elpj9eca5a]::before,
    .nav-burger-icon[b-elpj9eca5a]::after {
        content: "";
        position: absolute;
        left: 0;
    }

    .nav-burger-icon[b-elpj9eca5a]::before { top: -7px; }
    .nav-burger-icon[b-elpj9eca5a]::after { top: 7px; }

    /* Claude: above the map and its controls. */
    .nav-burger-panel[b-elpj9eca5a] {
        position: absolute;
        right: 0;
        top: calc(100% + 6px);
        z-index: 1000;
        display: flex;
        flex-direction: column;
        min-width: 180px;
        padding: var(--space-6) 0;
        background: var(--cta-from);
        border-radius: var(--radius-button);
        box-shadow: var(--shadow-modal);
    }

    .nav-burger-panel[b-elpj9eca5a]  a {
        color: #fff;
        text-decoration: none;
        padding: var(--space-10) var(--space-16);
        white-space: nowrap;
    }

    .nav-burger-panel[b-elpj9eca5a]  a.active {
        background: rgba(255, 255, 255, 0.18);
    }

    .nav-burger-panel[b-elpj9eca5a]  a:last-child {
        border-top: 1px solid rgba(255, 255, 255, 0.25);
        margin-top: var(--space-4);
    }
}

/* Claude: regatta name in the top bar on phones only (Des, 29 Oct 2026); "Regatta Live" gives way to it there. */
.brand-regatta[b-elpj9eca5a] {
    display: none;
}

@media (max-width: 767.98px) {
    .site-header--live .brand-name--wide[b-elpj9eca5a] {
        display: none;
    }

    .site-header--live .brand-regatta[b-elpj9eca5a] {
        display: block;
        flex: 1;
        min-width: 0;
        color: #fff;
        text-decoration: none;
        font-weight: 700;
        font-size: 1rem;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
}

/* Claude: back arrow in the logo's place on phones inside a regatta (Des, 29 Oct 2026); the page's own back arrow,
   and the race page's back row that only held it, are hidden there. */
.top-back[b-elpj9eca5a] {
    display: none;
}

@media (max-width: 767.98px) {
    .site-header--live .brand--has-back[b-elpj9eca5a] {
        display: none;
    }

    .site-header--live .top-back[b-elpj9eca5a] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex: 0 0 36px;
        width: 36px;
        height: 36px;
        margin-left: -6px;
        color: #fff;
        border-radius: 50%;
        -webkit-tap-highlight-color: transparent;
    }

    .site-header--live .top-back:active[b-elpj9eca5a] {
        background: rgba(255, 255, 255, 0.18);
    }

    main[b-elpj9eca5a]  .back-btn,
    main[b-elpj9eca5a]  .ld-back {
        display: none;
    }
}

/* Claude: phones inside the live part: narrow side margins (Des, 29 Oct 2026); the map views go edge to edge. */
@media (max-width: 767.98px) {
    .site-header--live .site-header-inner[b-elpj9eca5a] {
        padding-left: var(--space-8);
        padding-right: var(--space-8);
    }

    .site-header--live ~ main[b-elpj9eca5a]  .container {
        padding-left: var(--space-4);
        padding-right: var(--space-4);
    }

    .site-header--live ~ main[b-elpj9eca5a]  .container--full {
        padding-left: 0;
        padding-right: 0;
    }
}
/* /Components/Pages/Account.razor.rz.scp.css */
/* Claude: account card. */
.account[b-lrw07lmqfa] {
    max-width: 520px;
    margin: 40px auto;
}

.account h1[b-lrw07lmqfa] {
    margin-top: 0;
}

.account dl[b-lrw07lmqfa] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: var(--space-8) var(--space-16);
    margin: 0 0 var(--space-20);
}

.account dt[b-lrw07lmqfa] {
    color: var(--ink-muted);
}

.account dd[b-lrw07lmqfa] {
    margin: 0;
    word-break: break-word;
}

.account .note[b-lrw07lmqfa] {
    font-size: 0.85rem;
    color: #b26a00;
}

/* Claude: step 3 - contact form. Inputs at 16px so iOS Safari does not zoom (PWA AthleteFinder note). */
.contact-form[b-lrw07lmqfa] {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
    padding-top: var(--space-16);
    border-top: 1px solid var(--line);
    margin-bottom: var(--space-20);
}

.field-label[b-lrw07lmqfa] {
    font-weight: 600;
    color: var(--ink-strong);
}

.mobile-row[b-lrw07lmqfa] {
    display: flex;
    align-items: center;
    gap: var(--space-8);
}

.field[b-lrw07lmqfa] {
    flex: 1;
    min-width: 0;
    min-height: 44px;
    padding: 0.55rem 0.75rem;
    font-size: 16px;
    border: 1.5px solid #cfd8dc;
    border-radius: 8px;
    background: #fff;
    color: #263238;
}

.field--error[b-lrw07lmqfa] {
    border-color: var(--danger, #c62828);
}

.field-help[b-lrw07lmqfa] {
    font-size: 0.8rem;
    color: var(--ink-muted);
}

.field-error[b-lrw07lmqfa] {
    font-size: 0.85rem;
    color: var(--danger-ink, #b71c1c);
}

.status[b-lrw07lmqfa] {
    font-size: 0.8rem;
    font-weight: 600;
    color: #b26a00;
    white-space: nowrap;
}

.status--ok[b-lrw07lmqfa] {
    color: var(--success, #2e7d32);
}

/* Claude: 44px tap target for the tick box row. */
.check[b-lrw07lmqfa] {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    min-height: 44px;
    margin-top: var(--space-8);
    cursor: pointer;
}

.check input[b-lrw07lmqfa] {
    width: 20px;
    height: 20px;
    accent-color: var(--success, #2e7d32);
}

.actions[b-lrw07lmqfa] {
    display: flex;
    align-items: center;
    gap: var(--space-16);
    margin-top: var(--space-8);
}

.saved[b-lrw07lmqfa] {
    font-weight: 600;
    color: var(--success, #2e7d32);
}

/* Claude: sign out is secondary next to Save. */
.button--plain[b-lrw07lmqfa] {
    background: #fff;
    color: var(--primary);
    border: 1.5px solid var(--primary);
}

/* Claude: 1a step 7 - quiet link to the deletion page. */
.delete-link[b-lrw07lmqfa] {
    font-size: 0.85rem;
}

.delete-link a[b-lrw07lmqfa] {
    color: var(--danger-ink, #b71c1c);
}
/* /Components/Pages/AccountDelete.razor.rz.scp.css */
/* Claude: account deletion page. */
.account-delete[b-em0600lctt] {
    max-width: 560px;
    margin: 40px auto;
}

.account-delete h1[b-em0600lctt] {
    margin-top: 0;
}

.small[b-em0600lctt] {
    font-size: 0.85rem;
    color: var(--ink-muted);
}

.error[b-em0600lctt] {
    padding: 0.5rem 0.75rem;
    border-left: 4px solid var(--danger, #c62828);
    background: var(--danger-soft, #ffebee);
    color: var(--danger-ink, #b71c1c);
    border-radius: 6px;
}

.check[b-em0600lctt] {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    min-height: 44px;
    cursor: pointer;
}

.check input[b-em0600lctt] {
    width: 20px;
    height: 20px;
}

.actions[b-em0600lctt] {
    display: flex;
    align-items: center;
    gap: var(--space-16);
    margin-top: var(--space-8);
}

/* Claude: destructive action in the PWA red (white text 5.6:1). */
.button--danger[b-em0600lctt] {
    background: var(--danger, #c62828);
}
/* /Components/Pages/HeadRacing.razor.rz.scp.css */
/* Claude: head racing page layout. */
.banner[b-wugkwi1049] {
    width: 100%;
    border-radius: var(--radius-card);
    margin-bottom: var(--space-20);
}

.split[b-wugkwi1049] {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-20);
    align-items: center;
}

.split img[b-wugkwi1049] {
    width: 100%;
    border-radius: var(--radius-row);
}

.split h3[b-wugkwi1049] {
    margin-top: 0;
}

@media (min-width: 760px) {
    .split[b-wugkwi1049] {
        grid-template-columns: 2fr 3fr;
    }

    .split .wide[b-wugkwi1049] {
        grid-column: 1 / -1;
    }
}

.section-title[b-wugkwi1049] {
    text-align: center;
    margin: 32px 0 var(--space-20);
}

.cards[b-wugkwi1049] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 0 var(--space-20);
}

.cards h3[b-wugkwi1049] {
    margin-top: 0;
}
/* /Components/Pages/Home.razor.rz.scp.css */
/* Claude: home page hero over the regatta photo. */
.hero[b-dhffowhx8k] {
    background: url('/images/home/regatta-distance.jpg') center / cover no-repeat;
    min-height: 80vh;
    padding: var(--space-20) 0 40px;
    text-align: center;
}

.hero-card[b-dhffowhx8k] {
    background: rgba(255, 255, 255, 0.94);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-modal);
    max-width: 800px;
    margin: var(--space-20) auto;
    padding: var(--space-20);
}

.hero-card h1[b-dhffowhx8k] {
    font-size: 1.5rem;
    margin: 0;
}

.app-shot[b-dhffowhx8k] {
    width: 200px;
    height: auto;
    margin: var(--space-20) auto;
}
/* /Components/Pages/PrivacyPolicy.razor.rz.scp.css */
/* Claude: readable policy column. */
.policy[b-w57besbrqn] {
    max-width: 800px;
    margin: var(--space-20) auto;
}

.policy h1[b-w57besbrqn] {
    margin-top: 0;
}

.policy h2[b-w57besbrqn] {
    font-size: 1.1rem;
    margin: 24px 0 var(--space-8);
}
/* /Components/Pages/RegattaCrewAnalytics.razor.rz.scp.css */
/* Claude: crew analytics page; header in the race status colour like the race page. */
.ca-back[b-mc4hws9pfa] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0;
}

.ca-race[b-mc4hws9pfa] {
    font-size: 0.85rem;
    color: #666;
    min-width: 0;
}

.ca-header[b-mc4hws9pfa] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem;
    padding: 10px 16px;
    margin-bottom: 0.75rem;
    border-radius: 8px;
    border-bottom: 3px solid #42a5f5;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.35);
}

.ca-place[b-mc4hws9pfa] {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    background: rgba(255, 255, 255, 0.85);
    color: #1a237e;
}

.ca-crew[b-mc4hws9pfa] {
    font-size: 1.15rem;
    font-weight: 700;
}

.ca-stroke[b-mc4hws9pfa] {
    font-size: 0.85rem;
    opacity: 0.9;
}

.ca-empty[b-mc4hws9pfa] {
    text-align: center;
    padding: 2rem 1rem;
    color: #888;
}

/* Claude: status fills, as RaceSchedule / LaneDrawTable (PWA RaceModel colours). */
.status-scheduled[b-mc4hws9pfa] { background-color: var(--status-scheduled, #fff); color: #000; }
.status-racing[b-mc4hws9pfa] { background-color: var(--status-racing, #2e8b57); color: #000; }
.status-cancelled[b-mc4hws9pfa] { background-color: var(--status-cancelled, #f00); color: #fff; }
.status-marshaling[b-mc4hws9pfa] { background-color: var(--status-marshaling, #ffa500); color: #000; }
.status-ready[b-mc4hws9pfa] { background-color: var(--status-ready, #9acd32); color: #000; }
.status-protest[b-mc4hws9pfa] { background-color: var(--status-protest, #800080); color: #000; }
.status-pending[b-mc4hws9pfa] { background-color: var(--status-unofficial, #ffa07a); color: #000; }
.status-unofficial[b-mc4hws9pfa] { background-color: var(--status-unofficial, #ffa07a); color: #f00; }
.status-official[b-mc4hws9pfa] { background-color: var(--status-official, #4169e1); color: #fff; }
/* /Components/Pages/RegattaLivePromo.razor.rz.scp.css */
/* Claude: promo page; single column sized for the 9:16 video. */
.narrow[b-5jtz0z6g4v] {
    max-width: 640px;
}

.page-title[b-5jtz0z6g4v] {
    font-size: 1.6rem;
}

.intro[b-5jtz0z6g4v] {
    text-align: center;
    font-size: 1.1rem;
    color: var(--ink-muted);
}

.video[b-5jtz0z6g4v],
.poster[b-5jtz0z6g4v] {
    display: block;
    width: 100%;
    max-width: 420px;
    margin: var(--space-20) auto;
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-table);
    background: #000;
}

.card h2[b-5jtz0z6g4v] {
    margin-top: 0;
}

.cta[b-5jtz0z6g4v] {
    text-align: center;
    margin: var(--space-20) 0;
}

.share[b-5jtz0z6g4v] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-8);
    align-items: center;
}

.share a[b-5jtz0z6g4v],
.share button[b-5jtz0z6g4v] {
    min-height: var(--touch);
    padding: 10px 16px;
    border-radius: var(--radius-button);
    border: 1px solid var(--line-control);
    background: var(--surface);
    color: var(--primary);
    font: inherit;
    text-decoration: none;
    cursor: pointer;
}

.share a:hover[b-5jtz0z6g4v],
.share button:hover[b-5jtz0z6g4v] {
    background: var(--primary-tint);
}

.copied[b-5jtz0z6g4v] {
    color: var(--success);
    font-weight: 600;
}
/* /Components/Pages/RegattaLivePromoEmbed.razor.rz.scp.css */
/* Claude: video fills the frame on black. */
.embed[b-st1awpc9kv] {
    position: fixed;
    inset: 0;
    background: #000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.embed video[b-st1awpc9kv] {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
/* /Components/Pages/RegattaMap.razor.rz.scp.css */
/* Claude: regatta map page; header as the other live pages, filters as the PWA AthleteFinder selects. */
.mp-header[b-vcga7tb7da] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0;
    margin-bottom: 0.5rem;
    border-bottom: 2px solid #dee2e6;
}

.mp-heading[b-vcga7tb7da] {
    flex: 1;
    min-width: 0;
}

.mp-title[b-vcga7tb7da] {
    margin: 0;
    font-size: 1.4rem;
    font-weight: 700;
    color: #1565C0;
}

.mp-regatta[b-vcga7tb7da] {
    font-size: 0.85rem;
    color: #666;
}

.mp-filters[b-vcga7tb7da] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

/* Claude: 16px so iOS Safari does not zoom (PWA note). */
.mp-filters select[b-vcga7tb7da] {
    flex: 1 1 220px;
    min-width: 0;
    min-height: 44px;
    padding: 0.5rem 0.75rem;
    font-size: 16px;
    border: 1.5px solid #cfd8dc;
    border-radius: 8px;
    background: #fff;
    color: #263238;
}

.mp-show[b-vcga7tb7da] {
    min-height: 44px;
    padding: 0.3rem 1.2rem;
    border-radius: 1rem;
    border: 1.5px solid #1565C0;
    background: #1565C0;
    color: #fff;
    font-weight: 600;
    cursor: pointer;
}

.mp-note[b-vcga7tb7da] {
    font-size: 0.8rem;
    color: #78909c;
    margin: 0.5rem 0 1rem;
}
/* /Components/Pages/RegattaRace.razor.rz.scp.css */
/* Claude: race tabs (Results/Draw | Map, Des 14 Oct 2026), PWA Results tab look: blue underline on the active tab. */
.race-tabs[b-gumlntx5b9] {
    display: flex;
    gap: 0;
    background: #fff;
    border-bottom: 1px solid #e0e0e0;
}

.race-tab[b-gumlntx5b9] {
    flex: 1;
    text-align: center;
    padding: 10px 0;
    min-height: 44px;
    box-sizing: border-box;
    font-weight: 600;
    font-size: 0.9rem;
    color: #546e7a;
    text-decoration: none;
    border-bottom: 3px solid transparent;
}

.race-tab--active[b-gumlntx5b9] {
    color: #1565c0;
    border-bottom-color: #1565c0;
}

/* Claude: slimmer Results / Map tabs on phones (Des, 29 Oct 2026). */
@media (max-width: 767.98px) {
    .race-tab[b-gumlntx5b9] { padding: 6px 0; min-height: 36px; }
}
/* /Components/Pages/SprintRacing.razor.rz.scp.css */
/* Claude: screenshot beside text on wide screens, stacked on phones. */
.feature[b-42us7kwpvq] {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-20);
    align-items: center;
}

.feature h2[b-42us7kwpvq] {
    margin-top: 0;
}

.shot[b-42us7kwpvq] {
    width: 100%;
    max-width: 280px;
    margin: 0 auto;
}

.landscape[b-42us7kwpvq] {
    width: 100%;
    max-width: 640px;
    margin: 0 auto;
}

@media (min-width: 760px) {
    .feature[b-42us7kwpvq] {
        grid-template-columns: 280px 1fr;
    }

    .feature.reverse[b-42us7kwpvq] {
        grid-template-columns: 1fr 280px;
    }

    .feature.reverse .shot[b-42us7kwpvq] {
        order: 2;
    }

    .landscape[b-42us7kwpvq] {
        grid-column: 1 / -1;
    }
}

.stats[b-42us7kwpvq] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--space-16);
}

.stats figure[b-42us7kwpvq] {
    margin: 0;
    text-align: center;
}

.stats img[b-42us7kwpvq] {
    margin: 0 auto var(--space-8);
    border-radius: var(--radius-row);
}
