/* =============================================================================
   RWO Class Manager — Frontend Styles v2.0.26
   Modern dark racing design — hero overlay + inline-style dark panels.
   Red accent: #C8102E  |  Dark panels: #111111
   ============================================================================= */

:root {
    --rwo-red:      #C8102E;
    --rwo-red-dim:  rgba(200, 16, 46, 0.25);
    --rwo-dark:     #111111;
    --rwo-dark-2:   #181818;
    --rwo-border:   #242424;
    --rwo-text:     #f0f0f0;
    --rwo-muted:    #888888;
    --rwo-hero-h:   440px;
    --rwo-nav-h:    52px;
}

/* RWO MASTER: this was previously an unscoped `*, *::before, *::after` reset.
   Because this stylesheet loads on every page of the site, that single line
   applied a border-box model to every element in the theme, header included.
   It is now confined to the plugin's own two root containers. */
.rwo-class-wrapper, .rwo-class-wrapper *, .rwo-class-wrapper *::before, .rwo-class-wrapper *::after,
.rwo-anchor-nav,    .rwo-anchor-nav *,    .rwo-anchor-nav *::before,    .rwo-anchor-nav *::after {
    box-sizing: border-box;
}

.rwo-class-wrapper {
    font-family: 'Helvetica Neue', Arial, sans-serif !important;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
    width: 100%;
}

/* =============================================================================
   Sticky Anchor Navigation — self-contained dark bar
   ============================================================================= */

.rwo-anchor-nav {
    position: sticky !important;
    top: 0 !important;
    z-index: 9999 !important;
    height: auto !important;
    background: #0f0f0f !important;
    border-bottom: 3px solid var(--rwo-red) !important;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.7) !important;
    overflow: visible;
}

.rwo-anchor-nav.rwo-nav-scrolled {
    box-shadow: 0 4px 40px rgba(0, 0, 0, 0.95), 0 0 0 1px var(--rwo-red) !important;
}

.rwo-anchor-nav-inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 4px 8px;
    padding: 8px 20px;
    align-items: stretch;
}

/* Nav pills */
.rwo-nav-pill {
    display: flex !important;
    align-items: flex-start;
    gap: 6px;
    padding: 7px 12px !important;
    border: 1.5px solid #333 !important;
    border-radius: 2px !important;
    color: #ffffff !important;
    text-decoration: none !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.07em !important;
    text-transform: uppercase !important;
    white-space: normal;
    overflow: visible;
    transition: all 0.15s ease;
    background: transparent !important;
    cursor: pointer;
    width: 100%;
    box-sizing: border-box;
}
.rwo-nav-pill::before {
    content: '◆';
    color: #C8102E;
    font-size: 0.38rem;
    flex-shrink: 0;
    margin-top: 3px;
    line-height: 1;
}
.rwo-pill-number {
    flex-shrink: 0;
    white-space: nowrap;
    font-weight: 900;
}
.rwo-pill-name {
    white-space: normal;
    word-break: break-word;
    color: rgba(255,255,255,0.75);
}
.rwo-nav-pill:hover,
.rwo-nav-pill:focus {
    border-color: var(--rwo-red) !important;
    color: #fff !important;
    background: rgba(200, 16, 46, 0.18) !important;
    text-decoration: none !important;
}
.rwo-nav-pill.rwo-pill-active {
    background: var(--rwo-red) !important;
    border-color: var(--rwo-red) !important;
    color: #fff !important;
    box-shadow: 0 0 14px rgba(200, 16, 46, 0.5);
}
.rwo-pill-number { font-weight: 900; }
.rwo-pill-name   { opacity: 0.65; font-weight: 400; }

.rwo-pill-sm .rwo-nav-pill { padding: 3px 10px !important; font-size: 0.65rem !important; }
.rwo-pill-lg .rwo-nav-pill { padding: 7px 18px !important; font-size: 0.8rem  !important; }

/* =============================================================================
   Search Bar
   ============================================================================= */

.rwo-search-wrapper {
    display: flex !important;
    align-items: center;
    gap: 16px;
    padding: 16px 36px !important;
    background: #181818 !important;
    border-bottom: 1px solid #222 !important;
}

.rwo-search-inner {
    position: relative;
    flex: 1;
    max-width: 520px;
}

.rwo-search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    color: #555;
    pointer-events: none;
}

.rwo-search-input {
    width: 100% !important;
    padding: 10px 38px 10px 42px !important;
    background: #222 !important;
    border: 1.5px solid #333 !important;
    border-radius: 2px !important;
    color: #f0f0f0 !important;
    font-size: 0.875rem !important;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.rwo-search-input::placeholder { color: #555 !important; }
.rwo-search-input:focus {
    border-color: var(--rwo-red) !important;
    box-shadow: 0 0 0 3px rgba(200, 16, 46, 0.2) !important;
}

.rwo-search-clear {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #555;
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    display: none;
    background: none;
    border: none;
    padding: 0;
}
.rwo-search-clear:hover { color: var(--rwo-red); }

.rwo-search-count {
    font-size: 0.75rem;
    color: #555;
    white-space: nowrap;
    letter-spacing: 0.04em;
}

/* =============================================================================
   Teams Container
   ============================================================================= */

.rwo-teams-container { }

.rwo-no-teams {
    text-align: center;
    padding: 80px 40px;
    color: #666;
    font-size: 1rem;
    background: #111 !important;
}

.rwo-team {
    position: relative;
    scroll-margin-top: calc(var(--rwo-nav-h) + 10px);
    border-top: 4px solid var(--rwo-red);
}
.rwo-team:first-child { border-top: none; }

.rwo-team.rwo-search-hidden { display: none !important; }
.rwo-team.rwo-hidden         { display: none !important; }

/* =============================================================================
   Hero — background-image div with gradient overlay
   Team name and number rendered INSIDE the gradient (always dark)
   ============================================================================= */

.rwo-team-hero {
    position: relative !important;
    height: var(--rwo-hero-h) !important;
    background-size: cover !important;
    background-position: center center !important;
    background-color: #1a1a1a !important;
    overflow: hidden;
    display: block !important;
}

/* No-image fallback */
.rwo-hero-no-image {
    position: absolute;
    inset: 0;
    display: flex !important;
    align-items: center;
    justify-content: center;
    background: linear-gradient(160deg, #1e1e1e 0%, #0f0f0f 100%) !important;
}
.rwo-hero-no-image .dashicons {
    font-size: 80px;
    width: 80px;
    height: 80px;
    color: #2c2c2c;
}

/* Gradient overlay — name + number live inside this */
.rwo-hero-overlay {
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, 0.96) 0%,
        rgba(0, 0, 0, 0.65) 35%,
        rgba(0, 0, 0, 0.12) 65%,
        transparent 100%
    ) !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    padding: 0 44px 30px !important;
}

.rwo-hero-left {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
    flex: 1;
}

.rwo-hero-right {
    flex-shrink: 0;
    display: flex;
    align-items: flex-end;
    padding-left: 20px;
}

/* Boat number label (small, above team name) */
.rwo-team-number {
    font-size: 0.7rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
    color: var(--rwo-red) !important;
    display: block;
    line-height: 1;
}

/* Team name — always white, always on dark gradient */
.rwo-team-name {
    font-size: clamp(1.7rem, 3.8vw, 2.8rem) !important;
    font-weight: 900 !important;
    color: #ffffff !important;
    margin: 0 !important;
    padding: 0 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    line-height: 1.05 !important;
    text-shadow: 0 2px 16px rgba(0, 0, 0, 0.6) !important;
    border: none !important;
    background: none !important;
}

/* Thin red underline accent below name */
.rwo-team-name::after {
    content: '';
    display: block;
    width: 44px;
    height: 3px;
    background: var(--rwo-red);
    margin-top: 10px;
    border-radius: 1px;
}

/* Giant ghost boat number — decorative right side of hero */
.rwo-hero-ghost-num {
    font-size: clamp(5rem, 12vw, 9rem) !important;
    font-weight: 900 !important;
    color: rgba(255, 255, 255, 0.07) !important;
    letter-spacing: -0.04em;
    line-height: 0.85;
    user-select: none;
    display: block;
}

/* =============================================================================
   Team Body — dark panels (backed up by inline styles in PHP)
   ============================================================================= */

.rwo-team-body {
    display: grid !important;
    grid-template-columns: 1fr 2fr !important;
    background: #111111 !important;
}

.rwo-crew-panel {
    padding: 36px 44px !important;
    border-right: 1px solid #242424 !important;
    background: #111111 !important;
}

.rwo-specs-panel {
    padding: 36px 44px !important;
    background: #111111 !important;
}

/* Section headers: CREW / BOAT SPECS */
.rwo-panel-header {
    font-size: 0.6rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.24em !important;
    text-transform: uppercase !important;
    color: var(--rwo-red) !important;
    margin: 0 0 24px !important;
    padding: 0 0 12px !important;
    border-bottom: 2px solid var(--rwo-red) !important;
    display: block !important;
    background: none !important;
}

/* Crew field rows */
.rwo-field {
    display: flex !important;
    flex-direction: column !important;
    gap: 5px !important;
    margin-bottom: 22px !important;
    padding-bottom: 18px !important;
    border-bottom: 1px solid #1e1e1e !important;
}
.rwo-field:last-child {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    border-bottom: none !important;
}

.rwo-field-label {
    font-size: 0.58rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    color: var(--rwo-red) !important;
    margin: 0 !important;
    background: none !important;
    display: block;
}

.rwo-field-value {
    font-size: 1.1rem !important;
    font-weight: 600 !important;
    color: #f0f0f0 !important;
    line-height: 1.3;
    margin: 0 !important;
    background: none !important;
    display: block;
}

/* Specs table */
.rwo-specs-table {
    width: 100% !important;
    border-collapse: collapse !important;
    background: transparent !important;
}
.rwo-specs-table tr {
    border-bottom: 1px solid #1e1e1e !important;
    background: transparent !important;
}
.rwo-specs-table tr:last-child { border-bottom: none !important; }
.rwo-specs-table tr:hover      { background: rgba(200, 16, 46, 0.05) !important; }

.rwo-specs-table th {
    font-size: 0.58rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: var(--rwo-red) !important;
    text-align: left !important;
    padding: 12px 20px 12px 0 !important;
    /* RWO MASTER: width is now a floor, not a cap. nowrap keeps two-word labels
       such as "RIGGED BY" and "ENGINE HP MODS" on a single line; the column
       grows to fit the longest label and the value column takes the rest. */
    width: 110px;
    white-space: nowrap !important;
    vertical-align: top;
    background: transparent !important;
    border: none !important;
}
.rwo-specs-table td {
    font-size: 0.96rem !important;
    font-weight: 500 !important;
    color: #e8e8e8 !important;
    padding: 12px 0 !important;
    vertical-align: top;
    background: transparent !important;
    border: none !important;
}

/* =============================================================================
   No-results state
   ============================================================================= */

.rwo-search-no-results {
    text-align: center;
    padding: 60px 40px;
    color: #555;
    font-size: 0.95rem;
    display: none;
    background: #111 !important;
}
.rwo-search-no-results.rwo-visible { display: block; }

/* =============================================================================
   Error message (admin-only)
   ============================================================================= */

.rwo-error {
    background: #fff3cd !important;
    border: 1px solid #ffc107;
    padding: 12px 16px;
    border-radius: 4px;
    color: #856404 !important;
    font-size: 14px;
    margin: 16px 0;
}

/* =============================================================================
   Responsive — Tablet  900px
   ============================================================================= */

@media (max-width: 680px) {
    :root { --rwo-hero-h: 300px; }

    .rwo-hero-overlay { padding: 0 24px 22px !important; }

    /* grid-template-columns is handled by the injected inline <style> block */

    .rwo-crew-panel {
        border-right: none !important;
        border-bottom: 1px solid #242424 !important;
        padding: 28px !important;
    }
    .rwo-specs-panel { padding: 28px !important; }

    .rwo-search-wrapper { padding: 14px 24px !important; }
}

/* =============================================================================
   Responsive — Mobile  600px
   ============================================================================= */

@media (max-width: 600px) {
    :root { --rwo-hero-h: 260px; --rwo-nav-h: 46px; }

    .rwo-anchor-nav-inner { padding: 6px 12px; gap: 4px 6px; }
    .rwo-nav-pill         { padding: 6px 10px !important; font-size: 0.65rem !important; }

    .rwo-hero-overlay  { padding: 0 18px 18px !important; }
    .rwo-hero-ghost-num { font-size: 3.5rem !important; }
    .rwo-team-name     { font-size: 1.4rem !important; }

    .rwo-crew-panel,
    .rwo-specs-panel   { padding: 22px 18px !important; }

    .rwo-search-wrapper {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
        padding: 14px 18px !important;
    }
    .rwo-search-inner { max-width: 100%; width: 100%; }
}

/* =============================================================================
   Accessibility
   ============================================================================= */

@media (prefers-reduced-motion: reduce) {
    .rwo-nav-pill,
    .rwo-search-input { transition: none; }
}

.rwo-nav-pill:focus-visible {
    outline: 2px solid var(--rwo-red);
    outline-offset: 2px;
}


/* =============================================================================
   RWO MASTER: narrow-phone escape hatch for the nowrap rule above.
   ============================================================================= */
@media (max-width: 480px) {
    .rwo-specs-table th {
        white-space: normal !important;
        letter-spacing: 0.10em !important;
    }
}
