@import '_content/RegattaLive.UI/RegattaLive.UI.79wdswpxfn.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;
    }
}

/* Claude: N1 - Go Live home page: sponsor banner with the PWA bottom bar under it, sticky together at the bottom of
   the screen (above the copyright line at the end of the page). The banner's own sticky and safe-area padding are
   turned off inside the block; the bar takes the safe area. */
.live-bottom[b-elpj9eca5a] {
    position: sticky;
    bottom: 0;
    z-index: 30;
}

.live-bottom[b-elpj9eca5a]  .sponsor-banner--fixed {
    position: static;
    padding-bottom: 2px;
}

/* Claude: N5 - bar pages have no header: the same narrow phone margins as ".site-header--live ~ main" ... */
@media (max-width: 767.98px) {
    main.main--bar[b-elpj9eca5a]  .container {
        padding-left: var(--space-4);
        padding-right: var(--space-4);
    }

    main.main--bar[b-elpj9eca5a]  .container--full {
        padding-left: 0;
        padding-right: 0;
    }
}

/* Claude: N5 - ... and no back arrows at any width: the Menu has Schedule and Change regatta. */
main.main--bar[b-elpj9eca5a]  .back-btn {
    display: none;
}
/* /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);
}
