@import '_content/RegattaLive.UI/RegattaLive.UI.7ks820zsdn.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;
}
/* /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;
}
/* /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);
}
