:root {
    --board-bg: #050709;
    --board-panel: #0d1722;
    --board-panel-2: #132331;
    --board-border: #294156;
    --board-border-soft: #1b2c3b;
    --board-text: #f7f8f4;
    --board-muted: #9eacb7;
    --board-lime: #caf04a;
    --board-lime-soft: rgba(202, 240, 74, 0.11);
    --board-orange: #ca6b2b;
    --board-orange-light: #f09a55;
    --board-navy: #081521;
    --board-navy-2: #10263a;
}

html,
body,
[data-testid="stAppViewContainer"],
.stApp {
    color-scheme: dark;
    background: var(--board-bg);
}

[data-testid="stAppViewContainer"] {
    background:
        radial-gradient(circle at 10% 3%, rgba(202, 240, 74, 0.09), transparent 27rem),
        radial-gradient(circle at 88% 8%, rgba(18, 52, 79, 0.42), transparent 31rem),
        radial-gradient(circle at 80% 82%, rgba(202, 107, 43, 0.045), transparent 28rem),
        var(--board-bg);
}

/* Hide Streamlit’s overflow menu on every screen size. */
#MainMenu { display: none !important; }

/* Keep section anchors functional without showing heading permalink icons. */
[data-testid="stHeaderActionElements"] a[href^="#"] { display: none !important; }

[data-testid="stHeader"] {
    background: transparent;
}

[data-testid="stMainBlockContainer"] {
    max-width: 1480px;
    padding-top: 2.3rem;
    padding-bottom: 5rem;
}

/* Private landing page ---------------------------------------------------- */
[data-testid="stAppViewContainer"]:has(.landing-blue-orb) {
    position: relative;
    isolation: isolate;
    background:
        radial-gradient(circle at 80% 82%, rgba(202, 107, 43, 0.045), transparent 28rem),
        var(--board-bg);
}

[data-testid="stAppViewContainer"]:has(.landing-blue-orb)
    [data-testid="stMainBlockContainer"] {
    position: relative;
    z-index: 1;
}

.landing-blue-orb {
    position: fixed;
    z-index: 0;
    top: -16rem;
    right: -12rem;
    width: clamp(34rem, 48vw, 48rem);
    height: clamp(34rem, 48vw, 48rem);
    border-radius: 50%;
    pointer-events: none;
    background: radial-gradient(
        circle,
        rgba(24, 74, 112, 0.42) 0%,
        rgba(18, 52, 79, 0.25) 38%,
        rgba(8, 21, 33, 0.08) 63%,
        transparent 74%
    );
    filter: blur(10px);
    opacity: 0.78;
    animation: landing-orb-drift 38s ease-in-out infinite;
    will-change: transform;
}

.landing-green-orb {
    position: fixed;
    z-index: 0;
    top: -14rem;
    left: -13rem;
    width: clamp(32rem, 44vw, 44rem);
    height: clamp(32rem, 44vw, 44rem);
    border-radius: 50%;
    pointer-events: none;
    background: radial-gradient(
        circle,
        rgba(202, 240, 74, 0.18) 0%,
        rgba(125, 157, 43, 0.1) 36%,
        rgba(33, 49, 21, 0.045) 62%,
        transparent 74%
    );
    filter: blur(12px);
    opacity: 0.72;
    animation: landing-green-orb-drift 44s ease-in-out infinite;
    will-change: transform;
}

.landing-nav,
.landing-hero,
[class*="st-key-landing_login_card"],
.landing-proof,
.landing-disclaimer {
    position: relative;
    z-index: 1;
}

.landing-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin: -0.65rem 0 1.25rem;
}

.landing-beta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.78rem;
    border: 1px solid rgba(202, 240, 74, 0.28);
    border-radius: 999px;
    background: rgba(202, 240, 74, 0.07);
    color: var(--board-muted);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.landing-beta i,
.landing-kicker > span,
.landing-login-note > i {
    display: block;
    flex: 0 0 auto;
    width: 0.46rem;
    height: 0.46rem;
    border-radius: 50%;
    background: var(--board-lime);
    box-shadow: 0 0 13px rgba(202, 240, 74, 0.62);
}

.landing-hero {
    max-width: 48rem;
    padding: 1.2rem 0 1.35rem;
}

.landing-kicker {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin-bottom: 1.1rem;
    color: var(--board-lime);
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.16em;
}

.landing-hero h1 {
    margin: 0 !important;
    color: var(--board-text) !important;
    font-size: clamp(3.1rem, 6vw, 5.8rem) !important;
    font-weight: 820 !important;
    letter-spacing: -0.065em !important;
    line-height: 0.92 !important;
}

.landing-title-welcome,
.landing-title-brand {
    display: flex;
    align-items: center;
}

.landing-title-brand {
    align-items: flex-end;
    gap: 0.15em;
    margin-top: 0.08em;
}

.landing-hero-mark {
    position: relative;
    display: inline-grid;
    width: 1em;
    height: 1em;
    flex: 0 0 auto;
    place-items: center;
    transform: translateY(0.035em);
}

.landing-hero-logo,
.landing-rump-copy {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.landing-hero-logo {
    position: relative;
    z-index: 2;
}

.landing-rump-copy {
    position: absolute;
    z-index: 3;
    inset: 0;
    opacity: 0;
    animation: landing-rump-pulse 1.85s ease-in-out infinite;
}

.landing-rump-left {
    clip-path: ellipse(12.5% 15% at 34% 49%);
    transform-origin: 34% 49%;
}

.landing-rump-right {
    clip-path: ellipse(13% 15% at 47% 49%);
    transform-origin: 47% 49%;
    animation-delay: 0.12s;
}

.landing-hero h1 em {
    color: var(--board-orange-light);
    font-style: normal;
}

.landing-lede {
    max-width: 43rem;
    margin: 1.45rem 0 1.15rem !important;
    color: #bcc6ce !important;
    font-size: clamp(1rem, 1.45vw, 1.22rem);
    line-height: 1.62;
}

.landing-feature-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-bottom: 1.65rem;
}

.landing-feature-row span {
    padding: 0.43rem 0.72rem;
    border: 1px solid var(--board-border-soft);
    border-radius: 999px;
    background: rgba(13, 23, 34, 0.68);
    color: var(--board-muted);
    font-size: 0.69rem;
    font-weight: 720;
}

.landing-grain {
    position: fixed;
    z-index: 999;
    inset: -25%;
    pointer-events: none;
    background-image:
        radial-gradient(circle, rgba(255, 255, 255, 0.9) 0 0.45px, transparent 0.7px),
        radial-gradient(circle, rgba(202, 240, 74, 0.65) 0 0.4px, transparent 0.65px),
        radial-gradient(circle, rgba(240, 154, 85, 0.7) 0 0.35px, transparent 0.6px);
    background-position: 0 0, 2px 3px, 5px 1px;
    background-size: 6px 6px, 9px 9px, 13px 13px;
    mix-blend-mode: soft-light;
    opacity: 0.045;
    animation: landing-grain-shift 0.9s steps(2, end) infinite;
    will-change: transform;
}

[class*="st-key-landing_login_card"] {
    position: relative;
    overflow: hidden;
    padding: 1.7rem 1.7rem 1.45rem;
    border: 1px solid var(--board-border);
    border-radius: 22px;
    background:
        radial-gradient(circle at 100% 0, rgba(202, 107, 43, 0.11), transparent 13rem),
        linear-gradient(150deg, rgba(17, 34, 50, 0.98), rgba(7, 15, 22, 0.99));
    box-shadow: 0 26px 70px rgba(0, 0, 0, 0.35);
}

[class*="st-key-landing_login_card"]::before {
    position: absolute;
    top: 0;
    right: 1.7rem;
    left: 1.7rem;
    height: 3px;
    border-radius: 0 0 999px 999px;
    background: linear-gradient(90deg, var(--board-lime), var(--board-orange));
    content: "";
}

.landing-login-heading > span,
.landing-proof-copy > span {
    color: var(--board-orange-light);
    font-size: 0.64rem;
    font-weight: 850;
    letter-spacing: 0.13em;
}

.landing-login-heading h3 {
    margin: 0.35rem 0 0.5rem;
    font-size: 1.55rem !important;
    letter-spacing: -0.04em !important;
}

.landing-login-heading p {
    margin: 0 0 1.05rem;
    color: var(--board-muted);
    font-size: 0.82rem;
    line-height: 1.55;
}

[class*="st-key-landing_login_card"] label p {
    color: #c8d0d6 !important;
    font-size: 0.74rem;
    font-weight: 760;
}

[class*="st-key-landing_login_card"] [data-baseweb="input"] > div {
    min-height: 3rem;
    background: rgba(5, 11, 16, 0.82) !important;
}

[class*="st-key-landing_login_card"] [data-testid="stFormSubmitButton"] button[kind="primary"] {
    min-height: 3rem;
    margin-top: 0.35rem;
    border-color: var(--board-orange) !important;
    background: var(--board-orange) !important;
    color: var(--board-text) !important;
    box-shadow: 0 12px 30px rgba(202, 107, 43, 0.2);
}

[class*="st-key-landing_login_card"] [data-testid="stFormSubmitButton"] button[kind="primary"] p {
    color: var(--board-text) !important;
    font-weight: 850;
}

[class*="st-key-landing_login_card"] [data-testid="stFormSubmitButton"] button[kind="primary"]:hover {
    border-color: var(--board-orange-light) !important;
    background: var(--board-orange-light) !important;
    color: #050709 !important;
}

[class*="st-key-landing_login_card"] [data-testid="stFormSubmitButton"] button[kind="primary"]:hover p {
    color: #050709 !important;
}

.landing-login-note {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--board-border-soft);
}

.landing-login-note > i {
    width: 0.38rem;
    height: 0.38rem;
    margin-top: 0.25rem;
    box-shadow: none;
}

.landing-login-note span {
    color: #788996;
    font-size: 0.66rem;
    line-height: 1.5;
}

.landing-login-note strong {
    color: #aab7c0;
}

.landing-proof {
    display: grid;
    grid-template-columns: minmax(15rem, 0.78fr) minmax(0, 2.22fr);
    gap: 1.4rem;
    align-items: center;
    margin-top: 2.6rem;
    padding: 1.2rem;
    border-top: 1px solid var(--board-border-soft);
    border-bottom: 1px solid var(--board-border-soft);
}

.landing-proof-copy h2 {
    margin: 0.25rem 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    font-size: 1.35rem !important;
}

.landing-proof-copy p {
    margin: 0.35rem 0 0;
    color: #788996;
    font-size: 0.68rem;
}

.landing-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.65rem;
}

.landing-stat-card {
    min-height: 4.8rem;
    padding: 0.8rem 0.9rem;
    border: 1px solid var(--board-border-soft);
    border-radius: 13px;
    background: rgba(13, 23, 34, 0.68);
}

.landing-stat-card span {
    display: block;
    color: #788996;
    font-size: 0.56rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.landing-stat-card strong {
    display: block;
    margin-top: 0.32rem;
    color: var(--board-text);
    font-size: 1.4rem;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.04em;
}

.landing-disclaimer {
    margin-top: 0.8rem;
    color: #60717f;
    font-size: 0.6rem;
    text-align: center;
}

@keyframes landing-rump-pulse {
    0%,
    100% {
        opacity: 0;
        transform: scale(0.98) translateY(0);
    }
    50% {
        opacity: 1;
        transform: scale(1.1) translateY(-0.5%);
    }
}

@keyframes landing-grain-shift {
    0% { transform: translate3d(0, 0, 0); }
    20% { transform: translate3d(-2%, 1%, 0); }
    40% { transform: translate3d(1%, -2%, 0); }
    60% { transform: translate3d(2%, 2%, 0); }
    80% { transform: translate3d(-1%, -1%, 0); }
    100% { transform: translate3d(1%, 1%, 0); }
}

@keyframes landing-orb-drift {
    0%,
    100% { transform: translate3d(0, 0, 0) scale(1); }
    14% { transform: translate3d(-14vw, 12vh, 0) scale(0.91); }
    29% { transform: translate3d(-3vw, 29vh, 0) scale(1.08); }
    43% { transform: translate3d(-26vw, 20vh, 0) scale(0.96); }
    61% { transform: translate3d(-11vw, 7vh, 0) scale(1.12); }
    78% { transform: translate3d(-33vw, 32vh, 0) scale(0.88); }
    91% { transform: translate3d(-18vw, -3vh, 0) scale(1.04); }
}

@keyframes landing-green-orb-drift {
    0%,
    100% { transform: translate3d(0, 0, 0) scale(1); }
    12% { transform: translate3d(9vw, 18vh, 0) scale(0.92); }
    27% { transform: translate3d(26vw, 6vh, 0) scale(1.1); }
    46% { transform: translate3d(15vw, 34vh, 0) scale(0.88); }
    63% { transform: translate3d(38vw, 22vh, 0) scale(1.06); }
    81% { transform: translate3d(22vw, -2vh, 0) scale(0.96); }
    92% { transform: translate3d(6vw, 11vh, 0) scale(1.08); }
}

@media (prefers-reduced-motion: reduce) {
    .landing-rump-copy,
    .landing-grain,
    .landing-blue-orb,
    .landing-green-orb {
        animation: none;
    }
}

[data-testid="stSidebar"] {
    background: rgba(5, 7, 9, 0.98);
    border-right: 1px solid var(--board-border-soft);
}

[data-testid="stSidebarContent"] {
    position: relative;
    min-height: 100vh;
    padding: 1.3rem 1rem 5.6rem;
}

.sidebar-wordmark {
    margin: 0.15rem 0 1.4rem;
    color: var(--board-text);
    font-size: 1.28rem;
    font-weight: 500;
    letter-spacing: -0.02em;
    white-space: nowrap;
}

.sidebar-profile {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    margin: 0;
    padding: 0;
}

.st-key-sidebar_profile_row {
    margin: -0.45rem 0 0.75rem;
}

.st-key-sidebar_profile_shortcut {
    margin: 0;
    padding: 0.7rem;
    border: 1px solid var(--board-border-soft);
    border-radius: 12px !important;
    background: rgba(13, 27, 40, 0.72);
    transition: border-color 160ms ease, background 160ms ease;
}

.st-key-sidebar_profile_shortcut .stButton,
.st-key-sidebar_profile_shortcut [data-testid="stButton"] {
    display: flex;
    justify-content: flex-end;
}

.st-key-sidebar_profile_shortcut .stButton > button,
.st-key-sidebar_profile_shortcut [data-testid="stButton"] > button {
    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 0.2rem 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--board-orange-light) !important;
    font-size: 0.68rem !important;
    font-weight: 850 !important;
    letter-spacing: 0.025em !important;
    white-space: nowrap !important;
}

.sidebar-avatar {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    flex: 0 0 2rem;
    box-sizing: border-box;
    border: 2px solid transparent;
    border-radius: 50%;
    background: var(--board-orange);
    color: #080b0d;
    font-weight: 900;
    overflow: hidden;
    text-decoration: none !important;
    transition: border-color 160ms ease, transform 160ms ease;
}

.sidebar-avatar > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sidebar-avatar:hover {
    border-color: var(--board-lime);
    color: #080b0d;
    transform: scale(1.06);
}

.st-key-sidebar_profile_shortcut:has(button:hover) .sidebar-avatar,
.st-key-sidebar_profile_shortcut:has(button:focus-visible) .sidebar-avatar {
    border-color: var(--board-lime);
    transform: scale(1.06);
}

.st-key-sidebar_profile_shortcut:has(button:hover) .sidebar-profile,
.st-key-sidebar_profile_shortcut:has(button:focus-visible) .sidebar-profile {
    color: var(--board-text);
}

.st-key-sidebar_profile_shortcut:has(button:hover),
.st-key-sidebar_profile_shortcut:has(button:focus-visible) {
    border-color: var(--board-orange);
    background: rgba(16, 36, 51, 0.92);
}

.st-key-sidebar_profile_shortcut:has(.sidebar-profile.is-selected) {
    border-color: var(--board-lime) !important;
    background: rgba(197, 243, 54, 0.1) !important;
}

.st-key-sidebar_profile_search .stButton > button {
    width: 100% !important;
    min-height: 2.65rem !important;
    padding: 0.45rem !important;
    border-color: var(--board-border) !important;
    border-radius: 11px !important;
    background: var(--board-panel) !important;
    color: var(--board-muted) !important;
}

.st-key-sidebar_profile_search .stButton > button:hover,
.st-key-sidebar_profile_search .stButton > button:focus-visible {
    border-color: var(--board-orange) !important;
    color: var(--board-orange-light) !important;
}

.st-key-sidebar_profile_search .stButton > button p {
    width: 0;
    overflow: hidden;
    font-size: 0;
}

.sidebar-profile div {
    min-width: 0;
    display: grid;
    line-height: 1.1;
}

.sidebar-profile strong {
    color: var(--board-text);
    overflow: hidden;
    text-overflow: ellipsis;
}

.sidebar-profile small {
    margin-top: 0.25rem;
    color: var(--board-muted);
}

.st-key-sidebar_logout {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    left: 1rem;
    z-index: 4;
    padding-top: 0.8rem;
    border-top: 1px solid var(--board-border-soft);
    background: rgba(5, 7, 9, 0.98);
}

.st-key-sidebar_logout .stButton > button {
    min-height: 2.8rem;
    border-color: var(--board-border) !important;
    background: var(--board-panel) !important;
    color: var(--board-muted) !important;
    font-weight: 750 !important;
}

.st-key-sidebar_logout .stButton > button:hover {
    border-color: var(--board-orange) !important;
    color: var(--board-text) !important;
}

/* Member profile -------------------------------------------------------- */
.profile-hero {
    display: flex;
    align-items: center;
    gap: 1.45rem;
    min-height: 12rem;
    margin-bottom: 1rem;
    padding: 1.45rem 1.6rem;
    border: 1px solid var(--board-border);
    border-radius: 20px;
    background:
        radial-gradient(circle at 92% 8%, rgba(202, 107, 43, 0.13), transparent 18rem),
        linear-gradient(135deg, rgba(11, 29, 43, 0.98), rgba(7, 17, 26, 0.98));
}

.profile-avatar {
    display: grid;
    width: 8.5rem;
    height: 8.5rem;
    flex: 0 0 8.5rem;
    place-items: center;
    overflow: hidden;
    border: 2px solid var(--board-orange);
    border-radius: 50%;
    background: var(--board-orange);
    color: #070a0c;
    font-size: 3.1rem;
    font-weight: 900;
}

.profile-avatar > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.profile-identity {
    min-width: 0;
}

.profile-identity > span, .profile-heading-label {
    color: var(--board-orange-light);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.13em;
}

.profile-identity h2 {
    margin: 0.18rem 0 0 !important;
    color: var(--board-text) !important;
    font-size: clamp(2rem, 4vw, 3.1rem) !important;
    letter-spacing: -0.045em !important;
    line-height: 1 !important;
}

.profile-identity > strong {
    display: block;
    margin-top: 0.38rem;
    color: var(--board-lime);
    font-size: 0.92rem;
}

.profile-identity p {
    max-width: 48rem;
    margin: 0.82rem 0 0.42rem;
    color: var(--board-text);
    font-size: 0.98rem;
    line-height: 1.5;
}

.profile-identity small {
    color: var(--board-muted);
    font-size: 0.72rem;
}

.profile-social-counts {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin: 0.55rem 0 0.5rem;
}

.profile-social-counts > span {
    color: var(--board-muted);
    font-size: 0.76rem;
}

.profile-social-counts strong {
    margin-right: 0.24rem;
    color: var(--board-text);
    font-size: 0.84rem;
}

[class*="st-key-profile_hero_"]
    > div[data-testid="stVerticalBlockBorderWrapper"] {
    min-height: 12rem;
    margin-bottom: 1rem;
    padding: 1.45rem 1.6rem;
    border-color: var(--board-border) !important;
    border-radius: 20px !important;
    background:
        radial-gradient(circle at 92% 8%, rgba(202, 107, 43, 0.13), transparent 18rem),
        linear-gradient(135deg, rgba(11, 29, 43, 0.98), rgba(7, 17, 26, 0.98));
}

[class*="st-key-profile_hero_"] [data-testid="stHorizontalBlock"] {
    align-items: center !important;
}

[class*="st-key-profile_connections_"] .stButton > button,
[class*="st-key-profile_connections_"] [data-testid="stButton"] > button {
    min-height: 1.55rem !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--board-muted) !important;
}

[class*="st-key-profile_connections_"] .stButton > button p,
[class*="st-key-profile_connections_"] [data-testid="stButton"] > button p {
    font-size: 0.76rem !important;
    font-weight: 750 !important;
    white-space: nowrap !important;
}

[class*="st-key-profile_connections_"] .stButton > button:hover,
[class*="st-key-profile_connections_"] [data-testid="stButton"] > button:hover {
    color: var(--board-orange-light) !important;
}

.profile-member-since {
    display: block;
    margin-top: 0.12rem;
    color: var(--board-muted);
    font-size: 0.72rem;
}

[class*="st-key-member_card_"]
    > div[data-testid="stVerticalBlockBorderWrapper"] {
    padding: 0.8rem 1rem;
    border-color: var(--board-border-soft) !important;
    border-radius: 15px !important;
    background: rgba(9, 22, 33, 0.82);
}

[class*="st-key-member_avatar_action_"] {
    position: relative;
    width: 3.4rem;
    height: 3.4rem;
}

[class*="st-key-member_avatar_action_"] [data-testid="stMarkdownContainer"] {
    height: 3.4rem;
}

[class*="st-key-member_avatar_action_"] [data-testid="stMarkdownContainer"] p {
    margin: 0;
}

[class*="st-key-member_avatar_action_"] .stButton {
    position: absolute;
    z-index: 5;
    inset: 0;
    width: 3.4rem;
    height: 3.4rem;
}

[class*="st-key-member_avatar_action_"] .stButton > button {
    width: 3.4rem !important;
    min-height: 3.4rem !important;
    height: 3.4rem !important;
    padding: 0 !important;
    border-radius: 50% !important;
    opacity: 0;
}

.member-avatar {
    display: grid;
    width: 3.4rem;
    height: 3.4rem;
    place-items: center;
    overflow: hidden;
    border: 1px solid var(--board-orange);
    border-radius: 50%;
    background: var(--board-orange);
    color: #070a0c;
    font-size: 1.25rem;
    font-weight: 900;
    text-decoration: none !important;
    transition: border-color 160ms ease, transform 160ms ease;
}

.member-avatar:hover {
    border-color: var(--board-lime);
    color: #070a0c;
    transform: scale(1.05);
}

[class*="st-key-member_avatar_action_"]:has(button:hover) .member-avatar,
[class*="st-key-member_avatar_action_"]:has(button:focus-visible) .member-avatar {
    border-color: var(--board-lime);
    transform: scale(1.05);
}

.member-avatar > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.member-card-copy {
    display: grid;
    gap: 0.08rem;
}

.member-card-copy > strong {
    color: var(--board-text);
    font-size: 0.94rem;
}

.member-card-copy > span {
    color: var(--board-lime);
    font-size: 0.72rem;
    font-weight: 750;
}

.member-card-copy > p {
    margin: 0.24rem 0 0.12rem;
    color: var(--board-muted);
    font-size: 0.76rem;
}

.member-card-copy > small {
    color: var(--board-muted);
    font-size: 0.64rem;
}

[data-testid="stSidebar"] [data-testid="stImage"] {
    margin-bottom: 1.15rem;
}

[data-testid="stSidebar"] [data-testid="stImage"] img,
[data-testid="stMain"] [data-testid="stImage"] img {
    filter: drop-shadow(0 0 18px rgba(202, 240, 74, 0.18));
}

[data-testid="stSidebar"] [role="radiogroup"] {
    gap: 0.4rem;
}

[data-testid="stSidebar"] [role="radiogroup"] label {
    min-height: 2.8rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid transparent;
    border-radius: 12px;
    transition: 150ms ease;
}

[data-testid="stSidebar"] [role="radiogroup"] label:hover {
    background: var(--board-panel);
    border-color: var(--board-border-soft);
}

[data-testid="stSidebar"] [role="radiogroup"] label:has(input:checked) {
    background: var(--board-lime-soft);
    border-color: rgba(202, 240, 74, 0.42);
    color: var(--board-lime);
}

[data-testid="stSidebar"] [data-testid="stRadioOption"][data-selected="true"]
    > div > div > div:first-child {
    background: var(--board-orange) !important;
}

[data-testid="stSidebar"] [data-testid="stSlider"] [role="group"]
    > div > div:first-child {
    background: var(--board-border) !important;
}

[data-testid="stSidebar"] [data-testid="stSlider"] [role="group"]
    > div > div[style*="position: absolute"] {
    background-color: var(--board-orange) !important;
}

[data-testid="stSidebar"] [role="radiogroup"] [data-testid="stMarkdownContainer"] p {
    font-weight: 650;
}

.dashboard-kicker {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    color: var(--board-lime);
    font-size: 0.84rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    line-height: 1.35;
}

.dashboard-kicker > span {
    display: block;
    width: 0.48rem;
    height: 0.48rem;
    border-radius: 50%;
    background: var(--board-lime);
    box-shadow: 0 0 14px rgba(202, 240, 74, 0.7);
}

.dashboard-context {
    margin: 0;
    color: var(--board-muted);
    font-size: 0.84rem;
    line-height: 1.35;
    text-align: right;
    white-space: nowrap;
}

.dashboard-header-spacer {
    height: 1.1rem;
}

h1,
h2,
h3 {
    color: var(--board-text) !important;
    letter-spacing: -0.035em !important;
}

h1 {
    font-size: clamp(2rem, 4vw, 3.15rem) !important;
    font-weight: 760 !important;
    line-height: 1.04 !important;
}

h2 {
    margin-top: 2.25rem !important;
    padding-left: 0.7rem !important;
    border-left: 3px solid var(--board-orange);
    font-size: 1.55rem !important;
}

h3 {
    font-size: 1.25rem !important;
}

p,
label,
[data-testid="stCaptionContainer"] {
    color: var(--board-muted);
}

strong {
    color: var(--board-text);
}

[data-testid="stMetric"] {
    position: relative;
    min-height: 8.2rem;
    overflow: hidden;
    padding: 1.1rem 1.2rem 1.25rem;
    border: 1px solid var(--board-border);
    border-radius: 20px;
    background:
        radial-gradient(circle at 100% 0, rgba(202, 240, 74, 0.11), transparent 9rem),
        linear-gradient(145deg, var(--board-navy-2), var(--board-navy));
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.18);
}

[data-testid="stMetricLabel"] p {
    color: var(--board-muted) !important;
    font-size: 0.76rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.055em;
    line-height: 1.25;
    overflow: visible !important;
    text-overflow: unset !important;
    text-transform: uppercase;
    white-space: normal !important;
}

[data-testid="stMetricLabel"] > div,
[data-testid="stMetricLabel"] [data-testid="stMarkdownContainer"] {
    overflow: visible !important;
    width: auto !important;
}

[data-testid="stMetricValue"] {
    color: var(--board-text);
    font-size: 2rem;
    font-weight: 760;
    letter-spacing: -0.045em;
}

div[data-testid="stVerticalBlockBorderWrapper"] {
    overflow: hidden;
    padding: 1.15rem 1.25rem;
    border: 1px solid var(--board-border) !important;
    border-radius: 22px !important;
    background:
        radial-gradient(circle at 96% 0, rgba(202, 107, 43, 0.065), transparent 18rem),
        linear-gradient(160deg, rgba(15, 31, 45, 0.98), rgba(6, 13, 19, 0.99));
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.22);
}

div[data-testid="stVerticalBlockBorderWrapper"] div[data-testid="stVerticalBlockBorderWrapper"] {
    padding: 0.72rem 0.85rem;
    border-color: var(--board-border-soft) !important;
    border-radius: 14px !important;
    background: rgba(4, 9, 13, 0.68);
    box-shadow: none;
}

.game-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.7rem;
    margin: -0.2rem 0 0.8rem;
}

.slate-date-heading {
    margin: 2.15rem 0 0.75rem;
    padding-left: 0.65rem;
    border-left: 3px solid var(--board-orange);
    color: var(--board-text);
    font-size: 0.98rem;
    font-weight: 760;
    letter-spacing: -0.015em;
}

.game-matchup-title {
    margin-bottom: 0.48rem;
    font-size: clamp(1.25rem, 1.8vw, 1.55rem);
    font-weight: 820;
    letter-spacing: -0.035em;
    line-height: 1.2;
}

.team-name {
    color: var(--board-text);
}

.starter-team {
    color: color-mix(in srgb, var(--team-color) 74%, white);
}

.team-accent,
.model-starter-team {
    color: color-mix(in srgb, var(--team-color) 74%, white) !important;
}

.matchup-at {
    color: var(--board-text);
    font-weight: 820;
}

.doubleheader-game-label {
    margin-left: 0.28rem;
    color: var(--board-orange-light);
    font-size: 0.68em;
    font-weight: 850;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.starter-line {
    color: var(--board-muted);
    font-size: 0.86rem;
    line-height: 1.4;
}

.starter-team {
    font-weight: 760;
}

.starter-line strong {
    color: var(--board-text);
    font-weight: 820;
}

.game-location {
    color: var(--board-muted);
    font-size: 0.8rem;
}

.status-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 1.8rem;
    padding: 0.25rem 0.66rem;
    border: 1px solid var(--board-border);
    border-radius: 999px;
    background: var(--board-panel-2);
    color: #c7cec0;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.025em;
}

.status-chip.live {
    border-color: rgba(202, 107, 43, 0.55);
    background: rgba(202, 107, 43, 0.14);
    color: var(--board-orange-light);
}

.live-dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: var(--board-orange);
    box-shadow: 0 0 0 4px rgba(202, 107, 43, 0.14);
    animation: live-pulse 1.8s ease-in-out infinite;
}

@keyframes live-pulse {
    50% { opacity: 0.45; }
}

.market-title {
    display: flex;
    min-height: 3.15rem;
    align-items: center;
    justify-content: flex-start;
}

.market-title strong {
    color: var(--board-text);
    font-size: 0.875rem;
    font-weight: 750;
    line-height: 1.25;
}

.market-title strong.team-market-title {
    color: color-mix(in srgb, var(--team-color) 74%, white);
}

.market-row-divider {
    height: 1px;
    margin: 0.3rem 0 0.45rem;
    transform: translateY(-0.425rem);
    background: linear-gradient(
        90deg,
        transparent,
        rgba(41, 65, 86, 0.72) 5%,
        rgba(41, 65, 86, 0.72) 95%,
        transparent
    );
}

.odds-tile {
    display: flex;
    min-height: 3.15rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--board-border-soft);
    border-radius: 11px;
    background: var(--board-panel-2);
}

div[data-testid="stMarkdownContainer"]:has(> .market-title),
div[data-testid="stMarkdownContainer"]:has(> .odds-tile) {
    margin-bottom: 0 !important;
}

.odds-tile span {
    color: var(--board-muted);
    font-size: 0.62rem;
    font-weight: 750;
    letter-spacing: 0.055em;
    text-transform: uppercase;
}

.odds-tile strong {
    color: var(--board-lime);
    font-size: 0.98rem;
    font-variant-numeric: tabular-nums;
}

[data-baseweb="tab-list"] {
    gap: 0.4rem;
    margin: 0.2rem 0 0.55rem;
}

[data-baseweb="tab"] {
    min-height: 2.45rem;
    padding: 0.4rem 0.8rem;
    border: 1px solid var(--board-border-soft);
    border-radius: 10px;
    background: #0a151f;
}

[data-baseweb="tab"] p {
    color: var(--board-muted) !important;
    font-size: 0.78rem;
    font-weight: 650;
}

[data-baseweb="tab"][aria-selected="true"] {
    border-color: rgba(202, 240, 74, 0.42);
    background: var(--board-lime-soft);
}

[data-baseweb="tab"][aria-selected="true"] p {
    color: var(--board-lime) !important;
}

[data-baseweb="tab-highlight"] {
    display: none;
}

[class*="st-key-market_view_"] [data-testid="stButtonGroup"],
[class*="st-key-nfl_slate_market_"] [data-testid="stButtonGroup"],
[class*="st-key-nfl_analysis_"] [data-testid="stButtonGroup"] {
    margin: 0.85rem 0 0.55rem;
}

[class*="st-key-market_view_"] [data-testid="stButtonGroup"] button,
[class*="st-key-nfl_slate_market_"] [data-testid="stButtonGroup"] button,
[class*="st-key-nfl_analysis_"] [data-testid="stButtonGroup"] button {
    min-height: 2.45rem;
    border-color: var(--board-border-soft) !important;
    background: #0a151f !important;
    color: var(--board-muted) !important;
    font-size: 0.78rem;
    font-weight: 650;
}

[class*="st-key-market_view_"] [data-testid="stButtonGroup"] button[aria-checked="true"],
[class*="st-key-nfl_slate_market_"] [data-testid="stButtonGroup"] button[aria-checked="true"],
[class*="st-key-nfl_analysis_"] [data-testid="stButtonGroup"] button[aria-checked="true"] {
    border-color: var(--board-lime) !important;
    background: rgba(202, 240, 74, 0.27) !important;
    box-shadow: inset 0 -2px 0 var(--board-lime), 0 0 22px rgba(202, 240, 74, 0.08);
    color: var(--board-text) !important;
    font-weight: 850 !important;
}

[class*="st-key-market_view_"] [data-testid="stButtonGroup"] button[aria-checked="true"] p,
[class*="st-key-nfl_slate_market_"] [data-testid="stButtonGroup"] button[aria-checked="true"] p,
[class*="st-key-nfl_analysis_"] [data-testid="stButtonGroup"] button[aria-checked="true"] p {
    color: var(--board-text) !important;
    font-weight: 850 !important;
}

[class*="st-key-live_add_"] button {
    min-height: 3.15rem !important;
}

.stButton > button,
[data-testid="stFormSubmitButton"] > button {
    min-height: 2.6rem;
    border: 1px solid var(--board-border) !important;
    border-radius: 11px !important;
    background: #122130 !important;
    color: var(--board-text) !important;
    font-weight: 700 !important;
    transition: 150ms ease !important;
}

.stButton > button:hover,
[data-testid="stFormSubmitButton"] > button:hover {
    border-color: rgba(202, 240, 74, 0.65) !important;
    background: var(--board-lime-soft) !important;
    color: var(--board-lime) !important;
    transform: translateY(-1px);
}

.stButton > button[kind="primary"],
[data-testid="stFormSubmitButton"] > button[kind="primary"] {
    border-color: var(--board-lime) !important;
    background: var(--board-lime) !important;
    color: #050709 !important;
}

.stButton > button[kind="primary"]:hover,
[data-testid="stFormSubmitButton"] > button[kind="primary"]:hover {
    background: #dcf881 !important;
    color: #050709 !important;
}

[class*="st-key-model_matchup_selector_"] button,
[class*="st-key-nfl_matchup_"] button {
    min-height: 2.75rem !important;
}

[class*="st-key-model_matchup_selector_"] button[kind="primary"] p,
[class*="st-key-nfl_matchup_"] button[kind="primary"] p {
    color: #050709 !important;
    font-weight: 850 !important;
}

[class*="st-key-gamecast_toggle_"] button,
[class*="st-key-gamecast_toggle_"] button[kind="primary"] {
    min-height: 1.8rem !important;
    padding: .25rem .66rem !important;
    border: 1px solid rgba(125, 227, 175, .55) !important;
    border-radius: 999px !important;
    background: rgba(125, 227, 175, .14) !important;
    box-shadow: none !important;
    color: #fff !important;
    font-size: .72rem !important;
    font-weight: 750 !important;
    letter-spacing: .025em;
    gap: .45rem !important;
}

[class*="st-key-gamecast_toggle_"] button :is(p, span),
[class*="st-key-gamecast_toggle_"] button[kind="primary"] :is(p, span) {
    color: #fff !important;
    font-size: .72rem !important;
    font-weight: 750 !important;
    line-height: 1.6 !important;
    margin: 0 !important;
}

[class*="st-key-gamecast_toggle_"] button:hover,
[class*="st-key-gamecast_toggle_"] button[kind="primary"]:hover {
    border-color: #7de3af !important;
    background: rgba(125, 227, 175, .20) !important;
    box-shadow: none !important;
    color: #fff !important;
    transform: none;
}

[data-testid="stSidebar"] .stButton > button[kind="primary"] {
    border-color: var(--board-orange) !important;
    background: var(--board-orange) !important;
    box-shadow: 0 10px 28px rgba(202, 107, 43, 0.2) !important;
    color: var(--board-text) !important;
}

[data-testid="stSidebar"] .stButton > button[kind="primary"] p {
    color: var(--board-text) !important;
}

[data-testid="stSidebar"] .stButton > button[kind="primary"]:hover {
    border-color: var(--board-orange-light) !important;
    background: var(--board-orange-light) !important;
    box-shadow: 0 12px 32px rgba(202, 107, 43, 0.3) !important;
    color: #050709 !important;
}

[data-testid="stSidebar"] .stButton > button[kind="primary"]:hover p {
    color: #050709 !important;
}

[data-baseweb="input"] > div,
[data-baseweb="select"] > div,
[data-testid="stNumberInputContainer"] > div,
[data-testid="stDateInput"] [data-baseweb="input"] > div {
    border-color: var(--board-border) !important;
    border-radius: 11px !important;
    background: var(--board-panel) !important;
}

[data-testid="stExpander"] {
    overflow: hidden;
    border-color: var(--board-border-soft) !important;
    border-radius: 13px !important;
    background: rgba(13, 23, 34, 0.76);
}

[data-testid="stDataFrame"] {
    overflow: hidden;
    border: 1px solid var(--board-border) !important;
    border-radius: 16px;
}

[data-testid="stAlert"] {
    border: 1px solid var(--board-border) !important;
    border-radius: 14px !important;
    background: var(--board-panel) !important;
}

[data-testid="stDialog"] > div {
    border: 1px solid var(--board-border) !important;
    border-radius: 22px !important;
    background: #09131d !important;
    box-shadow: 0 30px 90px rgba(0, 0, 0, 0.6) !important;
}

[data-testid="stDialog"] :is(.stButton, [data-testid="stFormSubmitButton"]) > button[kind="primary"] {
    border-color: var(--board-orange) !important;
    background: var(--board-orange) !important;
    box-shadow: 0 10px 28px rgba(202, 107, 43, 0.2) !important;
    color: var(--board-text) !important;
    font-weight: 900 !important;
    letter-spacing: 0.06em;
}

[data-testid="stDialog"] :is(.stButton, [data-testid="stFormSubmitButton"]) > button[kind="primary"] p {
    color: var(--board-text) !important;
}

[data-testid="stDialog"] :is(.stButton, [data-testid="stFormSubmitButton"]) > button[kind="primary"]:hover {
    border-color: var(--board-orange-light) !important;
    background: var(--board-orange-light) !important;
    box-shadow: 0 12px 32px rgba(202, 107, 43, 0.3) !important;
    color: #050709 !important;
}

[data-testid="stDialog"] :is(.stButton, [data-testid="stFormSubmitButton"]) > button[kind="primary"]:hover p {
    color: #050709 !important;
}

.model-game-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.7rem;
    margin: -0.15rem 0 0.45rem;
    color: var(--board-muted);
    font-size: 0.78rem;
}

.model-game-meta strong {
    color: var(--board-orange-light);
    font-size: 0.7rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.model-starter-line {
    color: var(--board-muted);
    font-size: 0.74rem;
    line-height: 1.45;
}

.model-starter-line > .model-starter-team,
.model-starter-line > strong {
    font-weight: 820;
}

.model-starter-line > strong {
    color: var(--board-text);
}

.model-starter-line > span:last-child {
    color: var(--board-muted);
}

.model-starter-stats,
.model-starter-primary {
    display: inline;
}

.model-starter-secondary {
    display: block;
}

.team-check-line,
.team-check-caption {
    line-height: 1.45;
}

.team-check-line {
    color: var(--board-text);
    font-size: 0.84rem;
    font-weight: 760;
}

.team-check-caption {
    color: var(--board-muted);
    font-size: 0.72rem;
}

.team-check-line > span:last-child,
.team-check-caption > span:last-child {
    color: inherit;
}

.model-factor-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
    gap: 0.65rem;
    margin: 0.45rem 0 0.7rem;
}

.model-factor-card {
    display: grid;
    min-height: 4.3rem;
    grid-template-columns: 1fr auto;
    align-content: center;
    gap: 0.12rem 0.7rem;
    padding: 0.72rem 0.85rem;
    border: 1px solid var(--board-border-soft);
    border-radius: 13px;
    background: linear-gradient(145deg, rgba(17, 34, 50, 0.92), rgba(8, 18, 27, 0.96));
}

.model-factor-card > span {
    grid-column: 1 / -1;
    color: var(--board-muted);
    font-size: 0.56rem;
    font-weight: 850;
    letter-spacing: 0.09em;
}

.model-factor-card > strong {
    color: var(--board-text);
    font-size: 0.93rem;
    letter-spacing: 0.04em;
}

.model-factor-card > small {
    align-self: center;
    color: var(--board-orange-light);
    font-size: 0.72rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.run-projection-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 0.9rem 0 0.5rem;
}

.run-projection-heading > span {
    color: var(--board-text);
    font-size: 0.88rem;
    font-weight: 750;
}

.run-projection-heading > strong {
    padding: 0.22rem 0.48rem;
    border: 1px solid var(--board-border);
    border-radius: 999px;
    font-size: 0.56rem;
    font-weight: 850;
    letter-spacing: 0.08em;
}

.run-projection-heading > strong.active {
    border-color: rgba(202, 240, 74, 0.48);
    background: var(--board-lime-soft);
    color: var(--board-lime);
}

.run-projection-heading > strong.testing {
    border-color: rgba(202, 107, 43, 0.52);
    background: rgba(202, 107, 43, 0.1);
    color: var(--board-orange-light);
}

.run-projection-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.55rem;
    margin-bottom: 0.7rem;
}

.run-projection-card {
    display: flex;
    min-height: 4.6rem;
    flex-direction: column;
    justify-content: center;
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--board-border-soft);
    border-radius: 14px;
    background:
        radial-gradient(circle at 100% 0, rgba(202, 107, 43, 0.1), transparent 7rem),
        linear-gradient(145deg, rgba(13, 34, 51, 0.97), rgba(6, 16, 25, 0.98));
}

.run-projection-card > span {
    color: var(--board-muted);
    font-size: 0.56rem;
    font-weight: 850;
    letter-spacing: 0.075em;
}

.run-projection-card > strong {
    margin: 0.12rem 0 0.04rem;
    color: var(--board-text);
    font-size: 1.35rem;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.035em;
}

.personnel-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 1rem 0 0.55rem;
}

.personnel-heading > span {
    color: var(--board-text);
    font-size: 0.88rem;
    font-weight: 750;
}

.personnel-heading > strong {
    color: var(--board-orange-light);
    font-size: 0.56rem;
    font-weight: 850;
    letter-spacing: 0.08em;
}

.personnel-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.55rem;
    margin-bottom: 0.55rem;
}

.personnel-card {
    display: flex;
    min-height: 5.25rem;
    flex-direction: column;
    justify-content: center;
    padding: 0.72rem 0.82rem;
    border: 1px solid var(--board-border-soft);
    border-radius: 13px;
    background: linear-gradient(145deg, rgba(17, 34, 50, 0.9), rgba(8, 18, 27, 0.98));
}

.personnel-card.strong,
.personnel-card.ready {
    border-color: rgba(202, 240, 74, 0.34);
    background: linear-gradient(145deg, rgba(34, 55, 24, 0.74), rgba(8, 18, 27, 0.98));
}

.personnel-card.light,
.personnel-card.monitor,
.personnel-card.taxed {
    border-color: rgba(202, 107, 43, 0.5);
    background: linear-gradient(145deg, rgba(66, 37, 21, 0.72), rgba(18, 17, 18, 0.98));
}

.personnel-card > span {
    color: var(--board-muted);
    font-size: 0.54rem;
    font-weight: 850;
    letter-spacing: 0.09em;
}

.personnel-card > strong {
    margin: 0.16rem 0 0.08rem;
    color: var(--board-text);
    font-size: 1.05rem;
    font-variant-numeric: tabular-nums;
}

.personnel-card > small {
    color: var(--board-muted);
    font-size: 0.62rem;
    line-height: 1.28;
}

/* NFL uses the MLB context cards, with paired team measures and readable details. */
.nfl-context-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nfl-team-stat-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.nfl-participation-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}

.nfl-context-grid .personnel-card,
.nfl-participation-grid .personnel-card,
.nfl-weather-grid .personnel-card {
    min-width: 0;
    overflow-wrap: anywhere;
}

.nfl-context-grid .personnel-card > span,
.nfl-participation-grid .personnel-card > span,
.nfl-weather-grid .personnel-card > span {
    font-size: 0.75rem;
}

.nfl-context-grid .personnel-card > small,
.nfl-participation-grid .personnel-card > small,
.nfl-weather-grid .personnel-card > small {
    font-size: 0.875rem;
    line-height: 1.45;
}

.weather-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 1rem 0 0.55rem;
}

.weather-heading > span {
    color: var(--board-text);
    font-size: 0.88rem;
    font-weight: 750;
}

.weather-heading > strong {
    color: var(--board-lime);
    font-size: 0.59rem;
    font-weight: 850;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.weather-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
    margin-bottom: 0.55rem;
}

.weather-card {
    display: flex;
    min-height: 5.25rem;
    flex-direction: column;
    justify-content: center;
    padding: 0.72rem 0.82rem;
    overflow: hidden;
    border: 1px solid var(--board-border-soft);
    border-radius: 13px;
    background: linear-gradient(145deg, rgba(17, 34, 50, 0.9), rgba(8, 18, 27, 0.98));
}

.weather-card.weather-alert {
    border-color: rgba(202, 107, 43, 0.62);
    background: linear-gradient(145deg, rgba(72, 38, 20, 0.76), rgba(24, 18, 15, 0.96));
}

.weather-card > span {
    color: var(--board-muted);
    font-size: 0.54rem;
    font-weight: 850;
    letter-spacing: 0.1em;
}

.weather-card > strong {
    margin: 0.18rem 0 0.08rem;
    color: var(--board-text);
    font-size: 0.95rem;
    line-height: 1.15;
}

.weather-card > small {
    color: var(--board-muted);
    font-size: 0.63rem;
    line-height: 1.28;
}

.weather-hourly {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    margin: 0.15rem 0 0.55rem;
    border: 1px solid var(--board-border-soft);
    border-radius: 12px;
    background: var(--board-border-soft);
}

.weather-hour {
    display: grid;
    gap: 0.08rem;
    padding: 0.65rem 0.75rem;
    background: rgba(7, 16, 24, 0.98);
}

.weather-hour > strong {
    color: var(--board-orange-light);
    font-size: 0.63rem;
    letter-spacing: 0.05em;
}

.weather-hour > span {
    color: var(--board-text);
    font-size: 0.9rem;
    font-weight: 750;
}

.weather-hour > small {
    color: var(--board-muted);
    font-size: 0.61rem;
}

.weather-dome {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.8rem;
    padding: 0.8rem 0.9rem;
    border: 1px solid var(--board-border-soft);
    border-radius: 13px;
    background: rgba(11, 27, 40, 0.82);
}

.weather-dome > strong {
    color: var(--board-lime);
    font-size: 0.75rem;
}

.weather-dome > span {
    color: var(--board-muted);
    font-size: 0.68rem;
}

.shortlist-readiness {
    display: flex;
    min-height: 3.45rem;
    flex-direction: column;
    justify-content: center;
}

.shortlist-readiness > span {
    color: var(--board-orange-light);
    font-size: 0.62rem;
    font-weight: 850;
    letter-spacing: 0.07em;
}

.shortlist-readiness > small {
    color: var(--board-muted);
    font-size: 0.66rem;
    text-transform: capitalize;
}

.shortlist-verdict-stack {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
}

.shortlist-verdict-stack > .weather-concern {
    color: var(--board-orange-light);
    font-size: 0.52rem;
    font-weight: 850;
    letter-spacing: 0.055em;
    line-height: 1.15;
}

.model-number {
    display: flex;
    min-height: 3.45rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.model-number > span {
    color: var(--board-muted);
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.model-number > strong {
    color: var(--board-text);
    font-size: 1rem;
    font-variant-numeric: tabular-nums;
}

.model-number > small {
    color: var(--board-muted);
    font-size: 0.67rem;
    font-variant-numeric: tabular-nums;
}

.model-number-values {
    display: grid;
    width: 100%;
    max-width: 6.8rem;
    grid-template-columns: 1fr 1fr;
    align-items: baseline;
    gap: 0.65rem;
}

.model-number-values > strong {
    color: var(--board-text);
    font-size: 1.05rem;
    font-variant-numeric: tabular-nums;
    text-align: left;
}

.model-number-values > small {
    color: var(--board-muted);
    font-size: 0.8rem;
    font-variant-numeric: tabular-nums;
    text-align: right;
}

.model-number.positive > strong {
    color: var(--board-lime);
}

.model-number.negative > strong {
    color: var(--board-orange-light);
}

.model-number.row-aligned {
    transform: translateY(-0.5rem);
}

.model-verdict {
    display: inline-flex;
    min-width: 4.25rem;
    min-height: 1.8rem;
    align-items: center;
    justify-content: center;
    padding: 0.25rem 0.55rem;
    border: 1px solid var(--board-border);
    border-radius: 999px;
    background: var(--board-panel-2);
    color: var(--board-muted);
    font-size: 0.64rem;
    font-weight: 850;
    letter-spacing: 0.07em;
}

.model-verdict.value {
    border-color: rgba(202, 240, 74, 0.48);
    background: var(--board-lime-soft);
    color: var(--board-lime);
}

.model-verdict.best-look,
.model-verdict.edge {
    border-color: rgba(202, 240, 74, 0.62);
    background: linear-gradient(135deg, rgba(202, 240, 74, 0.18), rgba(202, 107, 43, 0.12));
    color: var(--board-lime);
}

.model-verdict.lean {
    border-color: rgba(202, 107, 43, 0.5);
    background: rgba(202, 107, 43, 0.12);
    color: var(--board-orange-light);
}

.model-verdict.play {
    border-color: rgba(202, 240, 74, 0.7);
    background: rgba(202, 240, 74, 0.2);
    color: var(--board-lime);
    box-shadow: 0 0 16px rgba(202, 240, 74, 0.12);
}

.model-verdict.primary {
    min-width: 5.8rem;
    border-color: rgba(202, 240, 74, 0.82);
    background: linear-gradient(135deg, rgba(202, 240, 74, 0.25), rgba(202, 107, 43, 0.12));
    color: var(--board-lime);
    box-shadow: 0 0 20px rgba(202, 240, 74, 0.16);
}

.model-verdict.alternative {
    min-width: 5.8rem;
    border-color: rgba(202, 107, 43, 0.52);
    background: rgba(202, 107, 43, 0.12);
    color: var(--board-orange-light);
}

.model-verdict.watch,
.model-verdict.wait,
.model-verdict.longshot,
.model-verdict.too-expensive,
.model-verdict.potential {
    border-color: rgba(202, 107, 43, 0.5);
    background: rgba(202, 107, 43, 0.12);
    color: var(--board-orange-light);
}

.model-market-board-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 0.8rem;
    margin: 1rem 0 0.55rem;
}

.model-market-board-heading > span {
    color: var(--board-text);
    font-size: 0.82rem;
    font-weight: 850;
    letter-spacing: 0.1em;
}

.model-market-board-heading > small {
    color: var(--board-muted);
    font-size: 0.65rem;
}

[class*="st-key-model_market_strip_"] {
    height: 100%;
}

[class*="st-key-model_market_strip_"]
    > div[data-testid="stVerticalBlockBorderWrapper"] {
    height: 100%;
    min-height: 12.5rem;
    padding: 0.82rem 0.85rem 0.72rem;
    border-color: var(--board-border-soft) !important;
    border-radius: 15px !important;
    background:
        radial-gradient(circle at 100% 0, rgba(202, 107, 43, 0.08), transparent 8rem),
        linear-gradient(145deg, rgba(15, 34, 50, 0.95), rgba(7, 17, 26, 0.98));
}

.market-strip-card-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding-bottom: 0.55rem;
}

[class*="_add_"] button,
[class*="st-key-dialog_log_"] button {
    border-color: var(--board-orange) !important;
    background: var(--board-orange) !important;
    box-shadow: 0 10px 28px rgba(202, 107, 43, 0.2) !important;
    color: var(--board-text) !important;
    font-weight: 900 !important;
    letter-spacing: 0.06em;
}

[class*="_add_"] button p,
[class*="st-key-dialog_log_"] button p {
    color: var(--board-text) !important;
}

[class*="_bet_logged_"] button:disabled,
[class*="st-key-model_strip_"] button:disabled {
    border-color: #46515b !important;
    background: #303841 !important;
    box-shadow: none !important;
    color: #9aa4ae !important;
    cursor: not-allowed !important;
    opacity: 0.88 !important;
    transform: none !important;
}

[class*="_bet_logged_"] button:disabled p,
[class*="st-key-model_strip_"] button:disabled p {
    color: #9aa4ae !important;
}

[class*="st-key-live_bet_logged_"] button {
    min-height: 3.15rem !important;
}

[class*="_add_"] button:hover,
[class*="st-key-dialog_log_"] button:hover {
    border-color: var(--board-orange-light) !important;
    background: var(--board-orange-light) !important;
    box-shadow: 0 12px 32px rgba(202, 107, 43, 0.3) !important;
    color: #050709 !important;
}

[class*="_add_"] button:hover p,
[class*="st-key-dialog_log_"] button:hover p {
    color: #050709 !important;
}

.market-strip-card-heading > span {
    color: var(--board-orange-light);
    font-size: 0.67rem;
    font-weight: 900;
    letter-spacing: 0.1em;
}

.market-strip-card-heading > small {
    overflow: hidden;
    color: var(--board-muted);
    font-size: 0.58rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[class*="st-key-model_market_strip_"] .stButton > button {
    min-height: 2.55rem;
    justify-content: space-between;
    border-color: var(--board-border) !important;
    background: rgba(18, 35, 49, 0.9) !important;
    font-size: 0.78rem;
    font-variant-numeric: tabular-nums;
}

/* NFL quote buttons use the same compact selection/price treatment as MLB. */
[class*="st-key-model_market_strip_nfl_"] .stButton > button {
    box-shadow: none !important;
    font-weight: 600 !important;
    letter-spacing: normal;
}

[class*="st-key-model_market_strip_"] .stButton > button[kind="primary"] {
    border-color: rgba(202, 240, 74, 0.62) !important;
    background: var(--board-lime-soft) !important;
    color: var(--board-lime) !important;
}

.market-strip-pick-meta {
    display: flex;
    min-height: 1rem;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
    margin: -0.4rem 0 0.05rem;
    padding: 0 0.12rem;
}

.market-strip-pick-meta > span {
    color: var(--board-muted);
    font-size: 0.56rem;
}

.market-strip-pick-meta b.positive {
    color: var(--board-lime);
}

.market-strip-pick-meta b.negative {
    color: var(--board-orange-light);
}

.market-strip-pick-meta > strong {
    color: var(--board-muted);
    font-size: 0.54rem;
    font-weight: 900;
    letter-spacing: 0.06em;
}

.market-strip-pick-meta > strong.value {
    color: var(--board-lime);
}

.market-strip-pick-meta > strong.best-look,
.market-strip-pick-meta > strong.edge {
    color: var(--board-lime);
}

.market-strip-pick-meta > strong.lean {
    color: var(--board-orange-light);
}

.market-strip-pick-meta > strong.watch,
.market-strip-pick-meta > strong.wait,
.market-strip-pick-meta > strong.longshot,
.market-strip-pick-meta.market-only > strong {
    color: var(--board-orange-light);
}

.market-strip-empty {
    display: grid;
    min-height: 7rem;
    place-items: center;
    color: var(--board-muted);
    font-size: 0.7rem;
    text-align: center;
}

.tracker-insight-card {
    min-height: 18rem;
    height: 100%;
    padding: 1.2rem;
    border: 1px solid var(--board-border);
    border-radius: 20px;
    background:
        radial-gradient(circle at 96% 4%, rgba(202, 107, 43, 0.1), transparent 12rem),
        linear-gradient(145deg, rgba(16, 38, 58, 0.96), rgba(6, 14, 21, 0.98));
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.2);
}

.tracked-bet-summary {
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
    color: var(--board-muted);
    font-size: 0.82rem;
    line-height: 1.4;
}

.tracked-bet-summary > strong {
    color: var(--board-text);
    font-size: 0.92rem;
}

.tracked-bet-summary > span > strong {
    font-weight: 800;
}

.tracker-live-row {
    display: grid;
    grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
    gap: 0.55rem;
    margin-top: 0.7rem;
}

.tracker-bet-divider {
    width: calc(100% - 2rem);
    height: 1px;
    margin: 1.25rem auto;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(75, 101, 120, 0.55) 12%,
        rgba(75, 101, 120, 0.55) 88%,
        transparent 100%
    );
}

.tracker-live-score,
.tracker-bet-progress {
    display: flex;
    min-height: 4rem;
    flex-direction: column;
    justify-content: center;
    padding: 0.62rem 0.72rem;
    border: 1px solid var(--board-border-soft);
    border-radius: 12px;
    background: rgba(11, 27, 40, 0.82);
}

.tracker-live-row.live .tracker-live-score {
    border-color: rgba(202, 107, 43, 0.6);
    background: linear-gradient(145deg, rgba(67, 36, 20, 0.72), rgba(11, 27, 40, 0.92));
}

.tracker-live-score > span,
.tracker-progress-heading > span {
    color: var(--board-orange-light);
    font-size: 0.54rem;
    font-weight: 850;
    letter-spacing: 0.09em;
}

.tracker-live-score > strong {
    margin-top: 0.18rem;
    color: var(--board-text);
    font-size: 0.78rem;
    font-variant-numeric: tabular-nums;
}

.tracker-bet-progress {
    gap: 0.48rem;
}

.tracker-progress-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.tracker-progress-heading > small {
    color: var(--board-muted);
    font-size: 0.52rem;
    line-height: 1.15;
    text-align: right;
}

.tracker-progress-track {
    position: relative;
    height: 1.45rem;
    overflow: hidden;
    border: 1px solid rgba(151, 169, 184, 0.22);
    border-radius: 999px;
    background: rgba(3, 11, 17, 0.9);
}

.tracker-progress-track > span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: var(--board-orange);
    transition: width 320ms ease, background 220ms ease;
}

.tracker-bet-progress.good .tracker-progress-track > span {
    background: var(--board-lime);
}

.tracker-bet-progress.bad .tracker-progress-track > span {
    background: #d74d3f;
}

.tracker-progress-track > strong {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--board-text);
    font-size: 0.72rem;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.9);
}

.tracker-card-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.tracker-card-heading > span {
    color: var(--board-orange-light);
    font-size: 0.67rem;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.tracker-card-heading > strong {
    color: var(--board-muted);
    font-size: 0.78rem;
    font-weight: 650;
}

.performance-grid {
    display: grid;
    grid-template-columns: 8.2rem minmax(9rem, 1fr);
    align-items: center;
    gap: 1.15rem;
    min-height: 13.8rem;
}

.win-donut {
    position: relative;
    display: grid;
    width: 8.2rem;
    height: 8.2rem;
    place-items: center;
    border-radius: 50%;
    background: conic-gradient(
        var(--board-lime) calc(var(--win-rate) * 1%),
        var(--board-navy-2) 0
    );
    box-shadow: 0 0 32px rgba(202, 240, 74, 0.08);
}

.win-donut::before {
    position: absolute;
    width: 6.15rem;
    height: 6.15rem;
    border: 1px solid var(--board-border-soft);
    border-radius: 50%;
    background: var(--board-navy);
    content: "";
}

.win-donut > div {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.win-donut strong {
    color: var(--board-text);
    font-size: 1.6rem;
    letter-spacing: -0.045em;
}

.win-donut span {
    color: var(--board-muted);
    font-size: 0.68rem;
}

.tracker-outcomes,
.allocation-list {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.tracker-bar-label,
.allocation-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.34rem;
    color: var(--board-muted);
    font-size: 0.72rem;
}

.tracker-bar-label strong,
.allocation-label strong {
    color: var(--board-text);
    font-size: 0.75rem;
    font-variant-numeric: tabular-nums;
}

.tracker-bar-track,
.allocation-track {
    height: 0.42rem;
    overflow: hidden;
    border-radius: 999px;
    background: #08121c;
    box-shadow: inset 0 0 0 1px rgba(41, 65, 86, 0.5);
}

.tracker-bar-track > span,
.allocation-track > span {
    display: block;
    min-width: 0;
    height: 100%;
    border-radius: inherit;
}

.tracker-bar-track .bar-win {
    background: var(--board-lime);
}

.tracker-bar-track .bar-loss {
    background: var(--board-orange);
}

.tracker-bar-track .bar-open {
    background: var(--board-text);
}

.tracker-bar-track .bar-cash {
    background: #37658d;
}

.allocation-row {
    padding: 0.42rem 0;
}

.allocation-label {
    margin-bottom: 0.5rem;
    font-size: 0.78rem;
}

.allocation-track {
    height: 0.55rem;
}

.allocation-track > span {
    background: linear-gradient(90deg, var(--board-lime), var(--board-orange));
    box-shadow: 0 0 14px rgba(202, 240, 74, 0.12);
}

.gamecast-shell {
    margin: 0.85rem 0 1.2rem;
    overflow: hidden;
    border: 1px solid rgba(202, 107, 43, 0.58);
    border-radius: 20px;
    background:
        radial-gradient(circle at 5% 0, rgba(202, 240, 74, 0.07), transparent 18rem),
        radial-gradient(circle at 100% 10%, rgba(202, 107, 43, 0.11), transparent 20rem),
        #07111a;
    box-shadow: 0 20px 54px rgba(0, 0, 0, 0.3);
}

.gamecast-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--board-border-soft);
    background: rgba(202, 107, 43, 0.08);
}

.gamecast-header > div {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

.gamecast-header strong {
    color: var(--board-orange-light);
    font-size: 0.72rem;
    letter-spacing: 0.12em;
}

.gamecast-header small,
.gamecast-refresh {
    color: var(--board-muted);
    font-size: 0.66rem;
}

.gamecast-scoreboard {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 1rem;
    padding: 1.05rem 1.2rem;
    border-bottom: 1px solid var(--board-border-soft);
}

.score-team {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 0.65rem;
}

.score-team > span {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    border: 1px solid rgba(202, 240, 74, 0.35);
    border-radius: 50%;
    background: var(--board-lime-soft);
    color: var(--board-lime);
    font-size: 0.72rem;
    font-weight: 800;
}

.score-team small {
    overflow: hidden;
    color: var(--board-muted);
    font-size: 0.72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.score-team > strong {
    color: var(--board-text);
    font-size: 2rem;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.05em;
}

.score-team.home {
    grid-template-columns: auto 1fr auto;
}

/* History & Results ------------------------------------------------------ */
.daily-score-card {
    display: grid;
    grid-template-columns: minmax(8.5rem, 0.7fr) minmax(25rem, 2.2fr) minmax(12rem, 0.9fr);
    align-items: center;
    gap: 1.25rem;
    margin: 0 0 0.7rem;
    padding: 1rem 1.15rem;
    border: 1px solid var(--board-border-soft);
    border-radius: 16px;
    background:
        radial-gradient(circle at 100% 50%, rgba(202, 107, 43, 0.055), transparent 18rem),
        rgba(8, 17, 26, 0.78);
}

.daily-score-state,
.daily-score-result {
    display: flex;
    min-width: 0;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    text-align: center;
}

.daily-score-status {
    color: var(--board-muted);
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.daily-score-status.final {
    color: var(--board-lime);
}

.daily-score-status.live {
    color: var(--board-orange-light);
}

.daily-score-state small,
.daily-score-result small {
    margin-top: 0.3rem;
    color: var(--board-muted);
    font-size: 0.72rem;
}

.daily-score-matchup {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 0.75rem;
}

.daily-score-team {
    display: grid;
    grid-template-columns: 2.6rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.7rem;
    min-width: 0;
}

.daily-score-code {
    display: grid;
    width: 2.6rem;
    height: 2.6rem;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--team-color) 55%, transparent);
    border-radius: 50%;
    background: color-mix(in srgb, var(--team-color) 12%, transparent);
    color: var(--team-color);
    font-size: 0.7rem;
    font-weight: 850;
}

.daily-score-name {
    overflow: hidden;
    color: var(--team-color);
    font-size: 0.92rem;
    line-height: 1.2;
    text-align: center;
    text-overflow: ellipsis;
}

.daily-score-team > b {
    color: var(--board-text);
    font-size: 1.9rem;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.04em;
}

.daily-score-team.winner > b {
    color: var(--board-lime);
}

.daily-score-at {
    color: var(--board-muted);
    font-size: 0.72rem;
    font-weight: 750;
    text-transform: uppercase;
}

.daily-score-result > span {
    color: var(--board-orange-light);
    font-size: 0.64rem;
    font-weight: 850;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.daily-score-result > strong {
    margin-top: 0.2rem;
    color: var(--board-text);
    font-size: 0.84rem;
    line-height: 1.25;
}

.inning-badge {
    padding: 0.35rem 0.7rem;
    border: 1px solid rgba(202, 107, 43, 0.4);
    border-radius: 999px;
    background: rgba(202, 107, 43, 0.1);
    color: var(--board-orange-light);
    font-size: 0.72rem;
    font-weight: 750;
    white-space: nowrap;
}

.gamecast-matchup-grid {
    display: grid;
    grid-template-columns: minmax(14rem, 1.6fr) minmax(8rem, 0.7fr) minmax(8rem, 0.7fr);
    gap: 0.75rem;
    padding: 0.9rem 1rem;
}

.matchup-card,
.count-card,
.diamond-card {
    min-height: 9.5rem;
    padding: 0.85rem;
    border: 1px solid var(--board-border-soft);
    border-radius: 14px;
    background: rgba(13, 23, 34, 0.84);
}

.gamecast-eyebrow {
    display: block;
    margin-bottom: 0.5rem;
    color: var(--board-muted);
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.1em;
}

.matchup-card > strong {
    display: block;
    font-size: 1.05rem;
}

.matchup-card > small,
.on-deck {
    color: var(--board-muted);
    font-size: 0.72rem;
}

.current-event {
    margin: 0.75rem 0 0.45rem;
    color: var(--board-text);
    font-size: 0.78rem;
    line-height: 1.38;
}

.count-numbers {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem;
}

.count-numbers > div {
    display: flex;
    min-height: 4.2rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--board-border-soft);
    border-radius: 11px;
    background: var(--board-navy);
}

.count-numbers strong {
    color: var(--board-lime);
    font-size: 1.35rem;
}

.count-numbers span,
.outs > span:first-child {
    color: var(--board-muted);
    font-size: 0.6rem;
}

.outs {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.75rem;
}

.out-dot {
    width: 0.55rem;
    height: 0.55rem;
    border: 1px solid var(--board-border);
    border-radius: 50%;
    background: var(--board-navy);
}

.out-dot.active {
    border-color: var(--board-orange);
    background: var(--board-orange);
    box-shadow: 0 0 10px rgba(202, 107, 43, 0.35);
}

.base-diamond {
    position: relative;
    width: 6.4rem;
    height: 5.5rem;
    margin: 0.4rem auto 0;
}

.base {
    position: absolute;
    width: 1.2rem;
    height: 1.2rem;
    transform: rotate(45deg);
    border: 1px solid #6f8090;
    border-radius: 2px;
    background: #101f2d;
}

.base.occupied {
    border-color: var(--board-lime);
    background: var(--board-lime);
    box-shadow: 0 0 13px rgba(202, 240, 74, 0.32);
}

.base.second {
    top: 0;
    left: 2.6rem;
}

.base.third {
    top: 2rem;
    left: 0.55rem;
}

.base.first {
    top: 2rem;
    right: 0.55rem;
}

.home-plate {
    position: absolute;
    bottom: 0;
    left: 2.7rem;
    width: 1rem;
    height: 0.75rem;
    border: 1px solid #6f8090;
    clip-path: polygon(0 0, 100% 0, 84% 65%, 50% 100%, 16% 65%);
    background: var(--board-text);
}

.gamecast-feeds {
    display: grid;
    grid-template-columns: 1fr 1.25fr;
    gap: 0.75rem;
    padding: 0 1rem 1rem;
}

.gamecast-feeds > div {
    padding: 0.85rem;
    border: 1px solid var(--board-border-soft);
    border-radius: 14px;
    background: rgba(5, 12, 18, 0.72);
}

.gamecast-feeds h4 {
    margin: 0 0 0.7rem;
    color: var(--board-text);
    font-size: 0.82rem;
}

.gamecast-feed-row {
    display: grid;
    grid-template-columns: 0.55rem 1fr;
    gap: 0.55rem;
    padding: 0.55rem 0;
    border-top: 1px solid rgba(41, 65, 86, 0.45);
}

.gamecast-feed-row:first-of-type {
    border-top: 0;
}

.gamecast-feed-row > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 0.15rem;
}

.gamecast-feed-row strong {
    color: var(--board-text);
    font-size: 0.7rem;
    line-height: 1.35;
}

.gamecast-feed-row small,
.gamecast-empty {
    color: var(--board-muted);
    font-size: 0.65rem;
    line-height: 1.4;
}

.feed-dot {
    width: 0.45rem;
    height: 0.45rem;
    margin-top: 0.22rem;
    border-radius: 50%;
}

.feed-dot.pitch {
    background: var(--board-lime);
}

.feed-dot.play {
    background: var(--board-orange);
}

hr {
    border-color: var(--board-border-soft) !important;
}

#baboon-page-loading {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 2147483647;
    place-items: center;
    background: var(--board-bg, #06090b);
    color: var(--board-text, #f5f7f8);
}

body.baboon-page-loading #baboon-page-loading { display: grid; }
body.baboon-page-loading [data-testid="stApp"] { visibility: hidden; }

.page-loading-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    text-align: center;
}

.page-loading-content .landing-hero-mark {
    width: 8rem;
    height: 8rem;
}

.page-loading-content strong {
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: 0.04em;
}

.page-loading-dots {
    display: inline-block;
    width: 1.2em;
    text-align: left;
    animation: page-loading-ellipsis 1.4s steps(1, end) infinite;
}

@keyframes page-loading-ellipsis {
    0% { clip-path: inset(0 100% 0 0); }
    25% { clip-path: inset(0 66.66% 0 0); }
    50% { clip-path: inset(0 33.33% 0 0); }
    75%, 100% { clip-path: inset(0 0 0 0); }
}

@media (prefers-reduced-motion: reduce) {
    .page-loading-dots { animation: none; }
}

.page-loading-content button {
    padding: 0.6rem 1rem;
    border: 1px solid var(--board-border-soft, #2e4555);
    border-radius: 8px;
    background: transparent;
    color: var(--board-muted, #9caeb9);
    cursor: pointer;
}

.nfl-market-label {
    color: var(--board-orange-light);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.1em;
}

.nfl-market-main {
    min-height: 2.9rem;
    margin-top: 0.45rem;
    color: var(--board-text);
    font-size: 1rem;
    font-weight: 760;
    line-height: 1.35;
}

.nfl-market-main.team-market-title {
    color: color-mix(in srgb, var(--team-color) 74%, white);
}

.nfl-shadow-action {
    display: flex;
    min-height: 3.15rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--board-border-soft);
    border-radius: 11px;
    background: #122130;
    text-align: center;
}

.nfl-shadow-action > span {
    color: var(--board-orange-light);
    font-size: 0.64rem;
    font-weight: 850;
    letter-spacing: 0.07em;
}

.nfl-shadow-action > small {
    color: var(--board-muted);
    font-size: 0.58rem;
}

.nfl-readiness {
    color: var(--board-orange-light);
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    text-align: right;
}

.nfl-shadow-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.85rem;
    padding: 0.22rem 0.65rem;
    border: 1px solid rgba(240, 154, 85, 0.55);
    border-radius: 999px;
    color: var(--board-orange-light);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.nfl-market-stat-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
    margin: 0.3rem 0 0.7rem;
}

.nfl-market-stat-grid > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.nfl-market-stat-grid span {
    color: var(--board-muted);
    font-size: 0.53rem;
    font-weight: 850;
    letter-spacing: 0.07em;
}

.nfl-market-stat-grid strong {
    color: var(--board-text);
    font-size: 0.9rem;
    font-variant-numeric: tabular-nums;
}

.nfl-market-stat-grid strong.positive,
.nfl-analysis-value.positive strong {
    color: var(--board-lime);
}

.nfl-market-stat-grid strong.negative {
    color: var(--board-orange-light);
}

.nfl-market-stat-grid small {
    color: var(--board-muted);
    font-size: 0.6rem;
    font-variant-numeric: tabular-nums;
}

.nfl-shortlist-name {
    display: flex;
    min-height: 3.45rem;
    flex-direction: column;
    justify-content: center;
    color: color-mix(in srgb, var(--team-color) 74%, white);
    font-size: 1.02rem;
    font-weight: 820;
}

.nfl-shortlist-name > small {
    margin-top: 0.18rem;
    color: var(--board-muted);
    font-size: 0.68rem;
    font-weight: 600;
}

.nfl-shortlist-status {
    display: flex;
    min-height: 3.45rem;
    flex-direction: column;
    justify-content: center;
}

.nfl-shortlist-status > strong {
    color: var(--board-orange-light);
    font-size: 0.66rem;
    font-weight: 850;
    letter-spacing: 0.07em;
}

.nfl-shortlist-status > small {
    color: var(--board-muted);
    font-size: 0.64rem;
}

.nfl-analysis-name {
    color: var(--team-color, var(--board-text));
    font-size: 1rem;
    font-weight: 760;
}

.nfl-analysis-value {
    display: flex;
    flex-direction: column;
    gap: 0.08rem;
}

.nfl-analysis-value span {
    color: var(--board-muted);
    font-size: 0.64rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.nfl-analysis-value strong {
    font-size: 1.05rem;
}

.nfl-analysis-value small {
    color: var(--board-muted);
    font-size: 0.72rem;
}

.nfl-team-heading {
    margin-bottom: 0.45rem;
    color: var(--team-color, var(--board-text));
    font-size: 1.05rem;
    font-weight: 800;
}

@media (max-width: 900px) {
    .profile-hero {
        align-items: flex-start;
        flex-direction: column;
        padding: 1.2rem;
    }

    .profile-avatar {
        width: 6.5rem;
        height: 6.5rem;
        flex-basis: 6.5rem;
        font-size: 2.4rem;
    }

    [class*="st-key-profile_hero_"]
        > div[data-testid="stVerticalBlockBorderWrapper"] {
        padding: 1.2rem;
    }

    .landing-nav {
        margin-bottom: 1.2rem;
    }

    .landing-hero {
        padding-top: 0.35rem;
    }

    .landing-hero h1 {
        font-size: clamp(2.9rem, 15vw, 4.6rem) !important;
    }

    [class*="st-key-landing_login_card"] {
        margin-top: 0.5rem;
        padding: 1.35rem 1.15rem 1.15rem;
    }

    .landing-proof {
        grid-template-columns: 1fr;
        margin-top: 1.6rem;
        padding: 1rem 0;
    }

    .landing-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .model-factor-grid,
    .run-projection-grid,
    .personnel-grid,
    .weather-grid {
        grid-template-columns: 1fr;
    }

    .model-market-board-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .weather-hourly {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    [data-testid="stMainBlockContainer"] {
        padding-top: 1.35rem;
    }

    .dashboard-context {
        text-align: left;
        white-space: normal;
    }

    .dashboard-header-spacer {
        height: 0.7rem;
    }

    [data-testid="stMetric"] {
        min-height: 7rem;
        padding: 0.9rem;
    }

    div[data-testid="stVerticalBlockBorderWrapper"] {
        padding: 0.95rem;
        border-radius: 17px !important;
    }

    .game-meta {
        align-items: flex-start;
        flex-direction: column;
    }

    .tracker-insight-card {
        min-height: auto;
    }

    .performance-grid {
        grid-template-columns: 1fr;
        justify-items: center;
    }

    .tracker-outcomes {
        width: 100%;
    }

    .tracker-live-row {
        grid-template-columns: 1fr;
    }

    .gamecast-header,
    .gamecast-scoreboard {
        align-items: flex-start;
    }

    .gamecast-header {
        flex-direction: column;
    }

    .gamecast-scoreboard {
        grid-template-columns: 1fr;
    }

    .gamecast-matchup-grid,
    .gamecast-feeds {
        grid-template-columns: 1fr;
    }

    .daily-score-card {
        grid-template-columns: 1fr;
    }

    .daily-score-matchup {
        grid-template-columns: 1fr;
    }

    .daily-score-at {
        display: none;
    }

    .inning-badge {
        grid-row: 1;
    }
}

/* Keep the sidebar profile action as a true, compact text control. This lives
   after the shared button theme so the native Streamlit frame cannot repaint it. */
[data-testid="stSidebar"] .st-key-sidebar_profile_shortcut [data-testid="stButton"],
[data-testid="stSidebar"] .st-key-sidebar_profile_shortcut .stButton {
    width: 100% !important;
    display: flex !important;
    justify-content: flex-end !important;
}

[data-testid="stSidebar"] .st-key-sidebar_profile_shortcut button,
[data-testid="stSidebar"] .st-key-sidebar_profile_shortcut button:hover,
[data-testid="stSidebar"] .st-key-sidebar_profile_shortcut button:active {
    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 0.2rem 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--board-orange-light) !important;
    transform: none !important;
}

[data-testid="stSidebar"] .st-key-sidebar_profile_shortcut button p {
    margin: 0 !important;
    color: var(--board-orange-light) !important;
    font-size: 0.68rem !important;
    font-weight: 850 !important;
    letter-spacing: 0.025em !important;
    line-height: 1.15 !important;
    white-space: nowrap !important;
}

[data-testid="stSidebar"] .st-key-sidebar_profile_shortcut button:focus-visible {
    outline: 2px solid var(--board-orange-light) !important;
    outline-offset: 3px !important;
}

/* The navigation sidebar has one deliberate desktop width. Streamlit's native
   collapse control remains available, while its drag handle is disabled. */
section[data-testid="stSidebar"] {
    width: 20.75rem !important;
    min-width: 20.75rem !important;
    max-width: 20.75rem !important;
}

section[data-testid="stSidebar"] > div:first-child {
    width: 20.75rem !important;
    min-width: 20.75rem !important;
    max-width: 20.75rem !important;
}

[data-testid="stSidebarResizeHandle"] {
    display: none !important;
    pointer-events: none !important;
}

/* Keep the avatar, identity, and compact profile link on the same centerline. */
.st-key-sidebar_profile_shortcut [data-testid="stHorizontalBlock"] {
    min-height: 2.25rem;
    align-items: center !important;
}

.st-key-sidebar_profile_shortcut [data-testid="stColumn"],
.st-key-sidebar_profile_shortcut [data-testid="stMarkdown"],
.st-key-sidebar_profile_shortcut [data-testid="stElementContainer"] {
    align-self: center !important;
}

.st-key-sidebar_profile_shortcut [data-testid="stMarkdownContainer"] p {
    margin: 0 !important;
}

.sidebar-profile {
    min-height: 2rem;
}

/* Member avatars are the profile action. The accessible native button sits
   invisibly over the image, so no extra "Open profile" tile is rendered. */
[class*="st-key-member_avatar_action_"] {
    position: relative !important;
    overflow: hidden !important;
}

[class*="st-key-member_avatar_action_"] [class*="st-key-open_member_"],
[class*="st-key-member_avatar_action_"] [data-testid="stButton"],
[class*="st-key-member_avatar_action_"] .stButton {
    position: absolute !important;
    z-index: 8 !important;
    inset: 0 !important;
    width: 3.4rem !important;
    height: 3.4rem !important;
    margin: 0 !important;
}

[class*="st-key-member_avatar_action_"] button {
    position: absolute !important;
    inset: 0 !important;
    width: 3.4rem !important;
    min-width: 3.4rem !important;
    max-width: 3.4rem !important;
    height: 3.4rem !important;
    min-height: 3.4rem !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 0 !important;
}

[class*="st-key-member_avatar_action_"] button p,
[class*="st-key-member_avatar_action_"] button span {
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    font-size: 0 !important;
}

/* Profile editing uses the same selected-action treatment as the site tabs. */
.st-key-edit_profile_action button[kind="primary"] {
    border-color: var(--board-lime) !important;
    background: var(--board-lime) !important;
    box-shadow: none !important;
    color: #050709 !important;
}

.st-key-edit_profile_action button[kind="primary"] p {
    color: #050709 !important;
    font-weight: 850 !important;
}

.st-key-edit_profile_action button[kind="primary"]:hover {
    background: #dcf881 !important;
    color: #050709 !important;
}

[class*="st-key-public_open_bets_"] {
    margin-bottom: 1.4rem;
}

.profile-open-bet-divider {
    height: 1px;
    margin: 0.85rem 0;
    background: var(--board-border-soft);
}

.tracked-bet-private {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0.15rem 0.4rem;
    border: 1px solid rgba(240, 154, 85, 0.45);
    border-radius: 999px;
    color: var(--board-orange-light);
    font-size: 0.58rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    vertical-align: middle;
}

@media (max-width: 900px) {
    section[data-testid="stSidebar"],
    section[data-testid="stSidebar"] > div:first-child {
        width: min(20.75rem, 88vw) !important;
        min-width: min(20.75rem, 88vw) !important;
        max-width: min(20.75rem, 88vw) !important;
    }
}

/* These corrections intentionally follow every shared sidebar rule. */
.st-key-sidebar_profile_shortcut {
    position: relative !important;
    min-height: 4.15rem !important;
    padding: 0.65rem 0.75rem !important;
}

.st-key-sidebar_profile_shortcut .sidebar-profile {
    min-height: 2.75rem !important;
    padding-right: 5.1rem !important;
    align-items: center !important;
}

.st-key-sidebar_profile_shortcut .st-key-sidebar_open_profile {
    position: absolute !important;
    z-index: 5 !important;
    top: 50% !important;
    right: 0.75rem !important;
    width: auto !important;
    margin: 0 !important;
    transform: translateY(-50%) !important;
}

[data-testid="stSidebar"] .st-key-sidebar_profile_shortcut
    .st-key-sidebar_open_profile [data-testid="stButton"],
[data-testid="stSidebar"] .st-key-sidebar_profile_shortcut
    .st-key-sidebar_open_profile .stButton {
    position: static !important;
    display: block !important;
    width: auto !important;
    transform: none !important;
}

[data-testid="stSidebar"] .st-key-sidebar_profile_shortcut
    .st-key-sidebar_open_profile button,
[data-testid="stSidebar"] .st-key-sidebar_profile_shortcut
    .st-key-sidebar_open_profile button p {
    width: auto !important;
    max-width: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
}

[class*="st-key-member_avatar_action_"] {
    overflow: visible !important;
    margin-inline: auto !important;
    transform: translateY(-0.15rem);
}

[class*="st-key-member_avatar_action_"] [data-testid="stMarkdownContainer"],
[class*="st-key-member_avatar_action_"] [data-testid="stMarkdownContainer"] p {
    height: 3.4rem !important;
    overflow: visible !important;
    line-height: 0 !important;
}

.member-avatar {
    box-sizing: border-box;
    vertical-align: top;
}

/* Preserve the bio's position while leaving a little breathing room where the
   compact follower-count line used to sit. */
.member-card-copy > p {
    margin-bottom: 0.3rem;
}

/* Tile contents use explicit center alignment so browser and Streamlit spacing
   changes cannot leave avatars, copy, or actions visually off-axis. */
[class*="st-key-member_card_"] [data-testid="stHorizontalBlock"] {
    align-items: center !important;
}

/* The logout action remains anchored at the bottom without spanning the panel. */
.st-key-sidebar_logout .stButton,
.st-key-sidebar_logout [data-testid="stButton"] {
    display: flex !important;
    justify-content: center !important;
}

.st-key-sidebar_logout .stButton > button,
.st-key-sidebar_logout [data-testid="stButton"] > button {
    width: 8.5rem !important;
    min-width: 8.5rem !important;
    max-width: 8.5rem !important;
}

/* Home composition; accents and tile decoration are shared site-wide below. */
.home-intro {
    position: relative;
    padding: clamp(24px, 3vw, 40px);
    margin: 4px 0 20px;
    border: 1px solid #3c4050;
    border-radius: 22px;
    background: radial-gradient(ellipse at 100% 0%, rgba(255, 162, 89, .17), transparent 53%),
                radial-gradient(ellipse at 0% 100%, rgba(153, 119, 240, .18), transparent 60%),
                linear-gradient(110deg, #111e24, #17232d);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
}
.home-eyebrow { color: #d0f344; font-size: .78rem; font-weight: 800; letter-spacing: .13em; }
.home-intro h2 {
    font-size: var(--home-heading-size) !important; line-height: 1.15;
    margin: 14px 0 !important; padding: 0 !important; border: 0;
}
.home-intro h2, .home-intro h2 [data-heading-text], .home-intro h2 [data-heading-text] span { color: var(--board-orange) !important; }
.home-intro p { color: #c0cad2; font-size: 1.05rem; margin: 0; }
.st-key-home_filters {
    border-color: #44566a !important;
    border-top: 3px solid var(--board-orange) !important;
    background: linear-gradient(115deg, rgba(79, 120, 165, .13), rgba(150, 109, 211, .10));
    box-shadow: 0 8px 28px rgba(0, 0, 0, .10);
}
.st-key-home_filters label { color: #d8d4f5 !important; }
.home-stats { container: home-stats / inline-size; }
.home-stats-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 16px;
    grid-auto-rows: 1fr;
}
@container home-stats (max-width: 850px) {
    .home-stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@container home-stats (max-width: 600px) {
    .home-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container home-stats (max-width: 380px) {
    .home-stats-grid { grid-template-columns: minmax(0, 1fr); }
}
.home-stat {
    --tile-accent: #b6c7d4;
    --tile-tint: 118, 151, 172;
    position: relative;
    container-type: inline-size;
    min-width: 0;
    box-sizing: border-box;
    overflow: hidden;
    display: flex; flex-direction: column; gap: 12px;
    padding: 22px 18px; min-height: 130px;
    border: 1px solid rgba(var(--tile-tint), .42);
    border-top: 3px solid var(--tile-accent);
    border-radius: 16px;
    background: radial-gradient(ellipse at 100% 0%, rgba(var(--tile-tint), .20), transparent 78%), #10202b;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
    text-decoration: none !important; color: #edf2f4 !important;
    transition: transform .16s ease, border-color .16s ease;
}
.home-stat--positive { --tile-accent: #7de3af; --tile-tint: 61, 200, 145; }
.home-stat--negative { --tile-accent: #ff9b9b; --tile-tint: 240, 106, 119; }
.home-stat--violet { --tile-accent: #c4acff; --tile-tint: 164, 129, 242; }
.home-stat--blue { --tile-accent: #8ecfff; --tile-tint: 75, 166, 235; }
.home-stat--amber { --tile-accent: #ffd08b; --tile-tint: 232, 162, 71; }
.home-stat span { position: relative; z-index: 1; color: #c6d0d9; font-size: .85rem; }
.home-stat strong {
    position: relative; z-index: 1; color: var(--tile-accent);
    /* Fit the full value to the tile, including its sign, commas and cents. */
    font-size: min(2.1rem, calc(180cqi / var(--stat-value-length, 10)));
    line-height: 1.3;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.home-stat:hover { transform: translateY(-2px); border-color: var(--tile-accent); }
.home-stat:focus-visible { outline: 2px solid var(--tile-accent); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
    .home-stat { transition: none; }
    .home-stat:hover { transform: none; }
}

/* Shared Home design language ------------------------------------------------
   New custom components use .site-tile and .site-section-title. Standard
   Streamlit headings/metrics inherit these styles on every page automatically.
   Team colors, result deltas and qualification badges retain their own meaning. */
:root {
    --site-lime: #d0f344;
    --site-blue: #8ecfff;
    --site-violet: #c4acff;
    --site-amber: #ffd08b;
    --site-positive: #7de3af;
    --site-negative: #ff9b9b;
    --site-surface: #10202b;
    --site-blue-rgb: 75, 166, 235;
    --site-violet-rgb: 164, 129, 242;
    --site-amber-rgb: 232, 162, 71;
    --site-lime-rgb: 178, 212, 61;
    --site-positive-rgb: 61, 200, 145;
    --site-negative-rgb: 240, 106, 119;
}

/* Inline-flex aligns the marker's bottom to the text baseline, including
   wrapped headings; Streamlit's separate permalink remains keyboard accessible. */
:where([data-testid="stMain"], [data-testid="stDialog"]) :is(h2, h3, h4, h5, .site-section-title, .home-section-title):not(:where(.home-intro *, .landing-hero *, .profile-identity *)) {
    display: flex;
    align-items: baseline;
    column-gap: 10px;
    padding-left: 0 !important;
    padding-top: 0 !important;
    border-left: 0;
}
:where([data-testid="stMain"], [data-testid="stDialog"]) :is(h2, h3, h4, h5, .site-section-title, .home-section-title):not(:where(.home-intro *, .landing-hero *, .profile-identity *))::before {
    content: "";
    display: block;
    flex: 0 0 5px;
    width: 5px;
    height: .9em;
    border-radius: 3px;
    background: var(--section-accent, var(--site-blue));
    pointer-events: none;
}
h2 { --section-accent: var(--site-lime); }
h3 { --section-accent: var(--site-blue); }
h4 { --section-accent: var(--site-violet); }
h5 { --section-accent: var(--site-amber); }
:is(h2, h3, h4)[id$="shortlist"] { --section-accent: var(--site-lime); }
:is(h2, h3, h4)[id="early-looks"] { --section-accent: var(--site-amber); }
:is(h2, h3, h4)[id="matchup-analysis"] { --section-accent: var(--site-blue); }
:is(.run-projection-heading, .personnel-heading, .weather-heading,
    .model-market-board-heading, .market-strip-card-heading, .tracker-card-heading) > span:first-child {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
}
:is(.run-projection-heading, .personnel-heading, .weather-heading,
    .model-market-board-heading, .market-strip-card-heading, .tracker-card-heading) > span:first-child::before {
    content: "";
    display: block;
    flex: 0 0 4px;
    width: 4px;
    height: 1em;
    border-radius: 3px;
    background: var(--section-accent, var(--site-blue));
    pointer-events: none;
}
.personnel-heading { --section-accent: var(--site-violet); }
.weather-heading { --section-accent: var(--site-blue); }
.run-projection-heading, .model-market-board-heading { --section-accent: var(--site-lime); }
.market-strip-card-heading, .tracker-card-heading { --section-accent: var(--site-amber); }
.home-section--lime, .site-section--lime { --section-accent: var(--site-lime); }
.home-section--blue, .site-section--blue { --section-accent: var(--site-blue); }
.home-section--amber, .site-section--amber { --section-accent: var(--site-amber); }
.home-section--violet, .site-section--violet { --section-accent: var(--site-violet); }

:is([data-testid="stMetric"], .site-tile, .home-stat, .landing-stat-card,
    .odds-tile, .model-factor-card, .run-projection-card, .personnel-card,
    .weather-card, .weather-card.weather-alert, .personnel-card:is(.ready, .strong, .light, .monitor, .taxed),
    .weather-dome, .tracker-insight-card, .daily-score-card,
    .matchup-card, .count-card, .diamond-card) {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border-color: rgba(var(--tile-tint, var(--site-blue-rgb)), .42);
    border-top: 3px solid var(--tile-accent, var(--site-blue));
    background: var(--tile-surface, linear-gradient(110deg, rgba(var(--tile-tint, var(--site-blue-rgb)), .07), transparent 65%), var(--site-surface));
    box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
}
/* A: clean edges are the default for dense factors, odds, personnel and
   ordinary metrics. Texture is explicitly assigned by the tile's purpose. */

/* B: diagonal corners for matchups, projected scores and result summaries. */
:is(.matchup-card, .daily-score-card, .run-projection-card, .tracker-insight-card, .site-tile--lines) {
    --tile-surface: linear-gradient(120deg, var(--site-surface) 45%, rgba(var(--tile-tint, var(--site-blue-rgb)), .13)), var(--site-surface);
}
:is(.matchup-card, .daily-score-card, .run-projection-card, .tracker-insight-card, .site-tile--lines)::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0 0 0 auto;
    width: min(42%, 180px);
    background: repeating-linear-gradient(128deg, transparent 0 21px, rgba(var(--tile-tint, var(--site-blue-rgb)), .25) 22px 23px, transparent 24px 42px);
    mask-image: linear-gradient(90deg, transparent, #000);
    opacity: .55;
    pointer-events: none;
}

/* C: a small, fading dot pattern for weather in both sports. */
:is(.weather-card, .weather-dome, .nfl-weather-grid .personnel-card, .site-tile--dots)::after {
    content: "";
    position: absolute;
    z-index: -1;
    top: 8px;
    right: 8px;
    width: 102px;
    height: 95px;
    background: radial-gradient(circle, rgba(var(--tile-tint, var(--site-blue-rgb)), .65) 1px, transparent 1.6px) 0 0 / 12px 12px;
    mask-image: linear-gradient(235deg, #000, transparent 74%);
    opacity: .55;
    pointer-events: none;
}

/* D: the original ring is reserved for Home's headline statistics. */
:is(.home-stat, .site-tile--ring) {
    --tile-surface: radial-gradient(ellipse at 100% 0%, rgba(var(--tile-tint, var(--site-blue-rgb)), .19), transparent 78%), var(--site-surface);
}
:is(.home-stat, .site-tile--ring)::after {
    content: "";
    position: absolute;
    z-index: -1;
    right: -25px;
    bottom: -36px;
    width: 104px;
    height: 104px;
    border-radius: 50%;
    border: 1px solid rgba(var(--tile-tint, var(--site-blue-rgb)), .32);
    box-shadow: 0 0 0 18px rgba(var(--tile-tint, var(--site-blue-rgb)), .08);
    opacity: .55;
    pointer-events: none;
}
.site-tile { padding: 22px 18px; border-width: 1px; border-style: solid; border-top-width: 3px; border-radius: 16px; }
/* Generic values stay neutral; colored deltas and Home profit retain meaning. */
[data-testid="stMetricValue"] { color: var(--board-text); }
[data-testid="stMetricValue"] :is(div, p) { color: inherit !important; }
/* Keep native metric tooltips and popovers outside the clipped decoration. */
:is([data-testid="stMain"], [data-testid="stDialog"]) [data-testid="stMetric"] { overflow: visible; }

:is(.model-factor-grid, .run-projection-grid, .personnel-grid,
    .weather-grid, .landing-stat-grid, .gamecast-matchup-grid) > :nth-child(4n+1),
[data-testid="stHorizontalBlock"] > [data-testid="stColumn"]:nth-child(4n+1) [data-testid="stMetric"] {
    --tile-accent: var(--site-lime);
    --tile-tint: var(--site-lime-rgb);
}
:is(.model-factor-grid, .run-projection-grid, .personnel-grid,
    .weather-grid, .landing-stat-grid, .gamecast-matchup-grid) > :nth-child(4n+2),
[data-testid="stHorizontalBlock"] > [data-testid="stColumn"]:nth-child(4n+2) [data-testid="stMetric"] {
    --tile-accent: var(--site-blue);
    --tile-tint: var(--site-blue-rgb);
}
:is(.model-factor-grid, .run-projection-grid, .personnel-grid,
    .weather-grid, .landing-stat-grid, .gamecast-matchup-grid) > :nth-child(4n+3),
[data-testid="stHorizontalBlock"] > [data-testid="stColumn"]:nth-child(4n+3) [data-testid="stMetric"] {
    --tile-accent: var(--site-violet);
    --tile-tint: var(--site-violet-rgb);
}
:is(.model-factor-grid, .run-projection-grid, .personnel-grid,
    .weather-grid, .landing-stat-grid, .gamecast-matchup-grid) > :nth-child(4n),
[data-testid="stHorizontalBlock"] > [data-testid="stColumn"]:nth-child(4n) [data-testid="stMetric"] {
    --tile-accent: var(--site-amber);
    --tile-tint: var(--site-amber-rgb);
}

/* Semantic overrides always win over a grid's decorative palette. */
.personnel-grid > .personnel-card:is(.ready, .strong),
.site-tile--positive, .home-stat--positive {
    --tile-accent: var(--site-positive); --tile-tint: var(--site-positive-rgb);
}
.personnel-grid > .personnel-card:is(.light, .monitor, .taxed),
.weather-grid > .weather-card.weather-alert,
.site-tile--amber, .home-stat--amber {
    --tile-accent: var(--site-amber); --tile-tint: var(--site-amber-rgb);
}
.site-tile--negative, .home-stat--negative {
    --tile-accent: var(--site-negative); --tile-tint: var(--site-negative-rgb);
}
.site-tile--blue, .home-stat--blue { --tile-accent: var(--site-blue); --tile-tint: var(--site-blue-rgb); }
.site-tile--violet, .home-stat--violet { --tile-accent: var(--site-violet); --tile-tint: var(--site-violet-rgb); }
.site-tile--lime { --tile-accent: var(--site-lime); --tile-tint: var(--site-lime-rgb); }

/* Owned market/account containers share a quieter surface without clipping
   controls or adding decorative rings behind entire sections. */
[data-testid="stMain"] :is(
    [class*="st-key-profile_hero_"], [class*="st-key-member_card_"],
    [class*="st-key-model_market_strip_"], [class*="st-key-nfl_official_group_"], [class*="st-key-nhl_pick_"]
) {
    border-color: #344b61 !important;
    background: linear-gradient(115deg, rgba(79, 120, 165, .09), rgba(150, 109, 211, .06)), var(--board-navy);
}

/* Native Home actions over the existing logo images: no document reload or
   duplicate image payload. Both logos retain their original displayed size. */
:is(.st-key-header_home_logo, .st-key-sidebar_home_logo) {
    position: relative;
    max-width: 100%;
    gap: 0 !important;
}
.st-key-header_home_logo { width: 120px; }
.st-key-sidebar_home_logo { width: 72px; }
:is(.st-key-header_home_logo, .st-key-sidebar_home_logo) [data-testid="stElementContainer"]:has([data-testid="stButton"]),
:is(.st-key-header_home_logo, .st-key-sidebar_home_logo) [data-testid="stButton"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
}
:is(.st-key-header_home_logo, .st-key-sidebar_home_logo) button[kind] {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
    cursor: pointer;
}
/* Visually hide only the label; the native button keeps its accessible name. */
:is(.st-key-header_home_logo, .st-key-sidebar_home_logo) button[kind] [data-testid="stMarkdownContainer"] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}
:is(.st-key-header_home_logo, .st-key-sidebar_home_logo) button[kind]:hover {
    background: rgba(208, 243, 68, .05) !important;
}
:is(.st-key-header_home_logo, .st-key-sidebar_home_logo) button[kind]:focus-visible {
    outline: 2px solid var(--site-lime) !important;
    outline-offset: 3px;
}
/* The logo is navigation, so omit Streamlit's image-zoom affordance. */
:is(.st-key-header_home_logo, .st-key-sidebar_home_logo) [data-testid="stElementToolbar"] {
    display: none;
}
:is(.st-key-header_home_logo, .st-key-sidebar_home_logo) [data-testid="stImage"] {
    margin: 0 !important;
}

/* Home annotation refinements: one content edge, matched controls and chart row. */
.home-intro {
    --home-heading-size: clamp(1.8rem, 3.2vw, 3rem);
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    text-align: left;
}
.home-intro > *, .home-intro h2 {
    margin: 0 !important;
    padding: 0 !important;
    min-width: 0;
}
.home-eyebrow { display: block; }
.st-key-home_filters label {
    /* Match the native select's 1px border plus 8px text inset. */
    padding-inline-start: 9px;
    color: var(--board-muted) !important;
}
.st-key-home_performance > [data-testid="stHorizontalBlock"] { align-items: start; }
:is(.st-key-home_trend, .st-key-home_breakdown) h3 {
    margin: 0 !important;
    padding-bottom: 0 !important;
    min-height: 1.4em;
    line-height: 1.4;
}
/* Keep both content boxes level if a heading wraps at intermediate widths. */
@media (min-width: 1001px) and (max-width: 1200px) {
    :is(.st-key-home_trend, .st-key-home_breakdown) h3 { min-height: 2.8em; }
}
.st-key-sidebar_profile_row [data-testid="stHorizontalBlock"] { align-items: center !important; }
[data-testid="stSidebar"] .st-key-sidebar_profile_search button[kind] {
    display: flex;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
    padding: 0 !important;
    min-height: 2.65rem !important;
}
[data-testid="stSidebar"] .st-key-sidebar_profile_search button [data-testid="stMarkdownContainer"] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

/* Give the chart and results their full width when the sidebar narrows the page. */
@media (max-width: 1000px) {
    .st-key-home_performance [data-testid="stColumn"] {
        width: 100% !important;
        flex: 1 1 100% !important;
        min-width: 100% !important;
    }
}

/* Profile card: centered portrait, compact social counts and owned corner actions. */
[class*="st-key-profile_hero_"] .profile-avatar {
    margin-inline: auto;
    max-width: 100%;
    height: auto;
    aspect-ratio: 1;
}
.profile-topline {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .4rem 1.5rem;
}
.profile-topline .profile-member-since { margin: 0; }
[class*="st-key-profile_footer_"] .st-key-edit_profile_action {
    margin-left: auto;
}
.st-key-edit_profile_action button[kind="primary"] {
    min-height: 2.65rem !important;
    padding: .5rem 1rem !important;
}
:is([class*="st-key-directory_follow_"], [class*="st-key-profile_follow_"])
button[kind="primary"],
:is([class*="st-key-directory_follow_"], [class*="st-key-profile_follow_"])
button[kind="primary"] :is(p, span) {
    color: #050709 !important;
    font-weight: 850 !important;
}

/* Compact community directory: three cards per row, with responsive fallbacks. */
.st-key-member_directory_grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem !important;
}
.st-key-member_directory_grid [class*="st-key-member_card_"] {
    min-width: 0;
    min-height: 6.25rem;
    justify-content: center;
    padding: .85rem !important;
}
.st-key-member_directory_grid [class*="st-key-member_row_"] {
    display: grid !important;
    grid-template-columns: 3.4rem minmax(0, 1fr) auto;
    align-items: center !important;
    gap: .75rem !important;
}
.st-key-member_directory_grid [class*="st-key-member_row_"] > * {
    width: 100% !important;
    min-width: 0 !important;
}
.st-key-member_directory_grid .member-card-copy { min-width: 0; }
.st-key-member_directory_grid .member-card-copy :is(strong, span) {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.st-key-member_directory_grid .member-card-copy p {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 0;
}
.st-key-member_directory_grid [class*="st-key-directory_follow_"] button {
    min-height: 2rem !important;
    padding: .35rem .65rem !important;
}
.st-key-member_directory_grid [class*="st-key-directory_follow_"] button p {
    font-size: .75rem !important;
    white-space: nowrap;
}
@media (max-width: 1400px) {
    .st-key-member_directory_grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1050px) {
    .st-key-member_directory_grid { grid-template-columns: minmax(0, 1fr); }
}
/* Keep the ledger or empty-state notice clear of the performance panels. */
.st-key-tracker_insights { margin-bottom: 1rem; }
/* Let Streamlit measure full card copy instead of clipping its last line. */
.st-key-member_directory_grid [class*="st-key-member_row_"] {
    overflow: visible;
    height: auto !important;
    min-height: 4.3rem;
}
.st-key-member_directory_grid [data-testid="stLayoutWrapper"],
.st-key-member_directory_grid [data-testid="stMarkdown"] > div {
    height: auto !important;
}
.st-key-member_directory_grid [data-testid="stMarkdown"] > div {
    display: block;
}

/* Align visible letter edges with the large E, not just the text boxes.
   Source Sans has different side bearings for the eyebrow T and subtitle F. */
.home-intro > .home-eyebrow {
    padding-inline-start: calc(var(--home-heading-size) * .083 - .024em) !important;
}
.home-intro > p {
    padding-inline-start: calc(var(--home-heading-size) * .083 - .09em) !important;
}
/* Match the breathing room above the plotted data on the left. */
.st-key-home_breakdown h3 {
    padding-bottom: 1rem !important;
}

/* Member cards share one true center line, with a wider photo-to-copy gutter. */
.st-key-member_directory_grid [class*="st-key-member_card_"] {
    padding-left: 1rem !important;
}
.st-key-member_directory_grid [class*="st-key-member_row_"] {
    column-gap: 1.1rem !important;
}
.st-key-member_directory_grid [class*="st-key-member_avatar_action_"] {
    margin: 0 !important;
    transform: none;
}
.st-key-member_directory_grid [data-testid="stHtml"] {
    display: grid;
    align-items: center;
}

/* Home filters and compact results use the same restrained orange accent. */
.st-key-home_filters [data-baseweb="select"] > div,
.st-key-home_filters .react-aria-ComboBox > [role="group"] {
    background: rgba(202, 107, 43, .10) !important;
}
.home-breakdown-table {
    overflow-x: auto;
    border: 1px solid var(--board-border);
    border-radius: 16px;
}
.home-breakdown-table table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
    font-size: .875rem;
}
.home-breakdown-table :is(th, td) {
    text-align: left !important;
    padding: .5rem .6rem;
    border-right: 1px solid var(--board-border-soft);
    border-bottom: 1px solid var(--board-border-soft);
    white-space: nowrap;
}
.home-breakdown-table th {
    color: var(--board-muted);
    background: #091119;
    font-weight: 400;
}
.home-breakdown-table td { background: #050709; }
.home-breakdown-table :is(th, td):last-child { border-right: 0; }
.home-breakdown-table tr:last-child td { border-bottom: 0; }

/* Slate headers keep matchup details together and live controls at the right. */
[class*="st-key-slate_header_"] {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 1rem !important;
}
[class*="st-key-slate_header_"] > div { min-width: 0; }
.slate-matchup-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .4rem 1rem;
}
.slate-matchup-heading .game-matchup-title { margin: 0; }
.slate-starters { display: grid; gap: .3rem; margin-top: .85rem; }
[class*="st-key-slate_actions_"] {
    align-items: flex-end !important;
    gap: .6rem !important;
}
[class*="st-key-gamecast_toggle_"] button::before {
    content: "";
    flex: 0 0 .45rem;
    width: .45rem;
    height: .45rem;
    border-radius: 50%;
    background: #7de3af;
    box-shadow: 0 0 0 4px rgba(125, 227, 175, .14);
    animation: live-pulse 1.8s ease-in-out infinite;
    margin-right: 0;
}
[data-testid="stSidebar"] [role="radiogroup"] label {
    display: flex !important;
    align-items: center !important;
}
[data-testid="stSidebar"] [role="radiogroup"] [data-testid="stMarkdownContainer"] p {
    margin: 0 !important;
    line-height: 1.4 !important;
}
@media (max-width: 700px) {
    [class*="st-key-slate_header_"] { grid-template-columns: minmax(0, 1fr); }
    [class*="st-key-slate_header_"] > div:last-child { justify-self: end; }
}
@media (prefers-reduced-motion: reduce) {
    [class*="st-key-gamecast_toggle_"] button::before { animation: none; }
}

/* Saved shortlist rows: stacked status badges beside vertically centered content. */
.model-verdict.locked {
    color: #ff9b9b;
    border-color: #d95050;
    background: rgba(217, 80, 80, .14);
    box-shadow: 0 0 18px rgba(217, 80, 80, .12);
}
[class*="st-key-shortlist_row_"] .shortlist-verdict-stack {
    gap: .5rem;
}
[class*="st-key-shortlist_row_"] .shortlist-verdict-stack > .model-verdict {
    min-width: 6.2rem;
}
[class*="st-key-shortlist_row_"] [data-testid="stColumn"]:nth-child(2) [data-testid="stVerticalBlock"] {
    gap: .2rem !important;
}
[class*="st-key-shortlist_row_"] [data-testid="stColumn"]:nth-child(2) p { margin: 0; }
[class*="st-key-shortlist_row_"] [data-testid="stColumn"]:nth-child(2) :is([data-testid="stCaptionContainer"], [data-testid="stMarkdownContainer"]) {
    margin-block: 0 !important;
}
[class*="st-key-shortlist_row_"] :is(.model-number, .shortlist-readiness) {
    align-items: flex-start;
    justify-content: center;
    text-align: left;
    min-height: 0;
    gap: .35rem;
}
[class*="st-key-shortlist_row_"] :is(.model-number, .shortlist-readiness) > span {
    font-size: .58rem;
    line-height: 1.6;
    min-height: .928rem;
}
[class*="st-key-shortlist_row_"] .shortlist-readiness > small {
    font-size: .8rem;
    line-height: 1.6;
}
[class*="st-key-shortlist_story_"] [data-testid="stCaptionContainer"] { opacity: 1 !important; }
[class*="st-key-shortlist_story_"] [data-testid="stCaptionContainer"] :is(p, span) { color: #fff !important; }

/* Sidebar account destinations mirror the compact Sport selector. */
.sidebar-profile-card {
    padding: 0.75rem;
    border: 1px solid var(--board-border-soft);
    border-radius: 12px;
    background: rgba(13, 27, 40, 0.72);
}
.sidebar-profile-card .sidebar-profile > div { min-width: 0; }
.sidebar-profile-card .sidebar-profile strong,
.sidebar-profile-card .sidebar-profile small { display: block; }
.st-key-sidebar_user_navigation { margin: 0.35rem 0 0.7rem; }

/* NHL uses the same summary tiles, number styles and shortlist surfaces as MLB/NFL. */
.nhl-board-title { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.nhl-board-title h2 { padding-block: 0; margin: 0; }
.nhl-board-title .model-verdict { min-width: auto; }
.nhl-pick-row {
    display: grid;
    grid-template-columns: .85fr 2.1fr 1fr 1fr 1fr 1.1fr;
    align-items: center;
    gap: 1rem;
}
.nhl-pick-name { display: flex; flex-direction: column; gap: .35rem; min-width: 0; }
.nhl-pick-name > strong { font-size: 1.05rem; }
.nhl-pick-name > small { color: var(--board-muted); line-height: 1.5; }
.nhl-pick-row :is(.model-number, .shortlist-readiness) {
    min-height: 0; align-items: flex-start; text-align: left; gap: .35rem;
}
.nhl-pick-row .model-number > span { font-size: .58rem; }
.nhl-pick-row .shortlist-readiness > small { font-size: .8rem; }
.nhl-pick-row .model-number-values { gap: .5rem; }
.nhl-pick-row .model-number-values > strong { white-space: nowrap; }
.nhl-state-won > span { color: var(--site-positive); }
.nhl-state-lost > span { color: #ff8796; }
[class*="st-key-nhl_pick_"] [data-testid="stExpander"] {
    margin-top: .35rem; background: transparent; border-color: var(--board-border-soft);
}
.st-key-nhl_board_view { margin: .25rem 0 1rem; }
@media (max-width: 1100px) {
    .nhl-pick-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .nhl-pick-row > .model-verdict { justify-self: start; }
    .nhl-pick-name { grid-column: span 2; }
    .nhl-pick-row > .shortlist-readiness { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
    .nhl-board-title { gap: .6rem; }
    .nhl-board-title h2 { font-size: 1.5rem; }
    .st-key-nhl_board_summary [data-testid="stHorizontalBlock"] {
        flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory;
        gap: .8rem; padding-bottom: .6rem;
    }
    .st-key-nhl_board_summary [data-testid="stColumn"] {
        flex: 0 0 72% !important; min-width: 72% !important; scroll-snap-align: start;
    }
    .st-key-nhl_current_picks[data-testid="stVerticalBlock"],
    .st-key-nhl_current_picks > [data-testid="stVerticalBlock"] {
        flex-direction: row; overflow-x: auto; scroll-snap-type: x mandatory;
        align-items: stretch; gap: 1rem; padding-bottom: .6rem;
    }
    .st-key-nhl_current_picks > [data-testid="stLayoutWrapper"],
    .st-key-nhl_current_picks > [data-testid="stVerticalBlock"] > [data-testid="stLayoutWrapper"] {
        flex: 0 0 91%; min-width: 0; scroll-snap-align: start;
    }
    [class*="st-key-nhl_pick_"] [data-testid="stHorizontalBlock"] { flex-wrap: wrap !important; }
    [class*="st-key-nhl_pick_"] [data-testid="stColumn"] { flex: 1 1 100% !important; min-width: 100% !important; }
    .nhl-pick-row { gap: .85rem .5rem; }
    .nhl-pick-row > .model-verdict, .nhl-pick-name { grid-column: 1 / -1; }
    .nhl-pick-row .model-number-values { flex-wrap: wrap; gap: .3rem; }
    .nhl-pick-row .model-number-values > strong { font-size: 1.05rem; }
    .st-key-nhl_board_view [data-testid="stButtonGroup"] { flex-wrap: nowrap; overflow-x: auto; }
    .st-key-nhl_board_view button { flex-shrink: 0; white-space: nowrap; }
}
.st-key-sidebar_logout [data-testid="stButton"] { min-width: 0 !important; }
[data-testid="stSidebar"] .st-key-sidebar_logout button[kind] {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
}
[data-testid="stSidebar"] .st-key-sidebar_logout button[kind="primary"] {
    background: var(--board-orange) !important;
    border-color: var(--board-orange) !important;
    color: var(--board-text) !important;
}
.st-key-sidebar_logout > [data-testid="stElementContainer"] {
    flex: 1 1 0 !important;
    min-width: 0 !important;
}
.st-key-sidebar_logout { width: auto !important; }
/* A collapsed sidebar must not cover its own expand control on narrow screens. */
[data-testid="stSidebar"][aria-expanded="false"] { pointer-events: none; }
/* Keep the footer at the bottom of tall sidebars and after the menu when the
   viewport is short, so every destination remains reachable by scrolling. */
[data-testid="stSidebarContent"] {
    display: flex;
    flex-direction: column;
    padding-bottom: 1rem;
}
[data-testid="stSidebarUserContent"] {
    display: flex;
    flex-direction: column;
    flex: 1 0 auto;
}
[data-testid="stSidebarUserContent"] > [data-testid="stVerticalBlock"] { flex: 1; }
[data-testid="stLayoutWrapper"]:has(> .st-key-sidebar_logout) {
    margin-top: auto;
    flex-shrink: 0;
}
.st-key-sidebar_logout {
    position: static;
    width: 100% !important;
}
[data-testid="stSidebarUserContent"] > div {
    display: flex;
    flex-direction: column;
    flex: 1;
}
[data-testid="stSidebarUserContent"] > div > [data-testid="stVerticalBlock"] { flex: 1; }
[data-testid="stSidebarUserContent"] { padding-bottom: 0; }

/* Persistent navigation rail, inspired by the quiet icon-and-text sidebar. */
body.sidebar-rail-enabled [data-testid="stSidebar"] {
    position: fixed !important; inset: 0 auto 0 0 !important;
    width: 76px !important; min-width: 76px !important; max-width: none !important;
    transform: none !important; visibility: visible !important; pointer-events: auto !important;
    background: #090c0e; border-right: 1px solid #242a2e;
    transition: width 180ms ease; z-index: 999991; /* Above the transparent Streamlit header. */
}
body.sidebar-rail-open [data-testid="stSidebar"] { width: 300px !important; box-shadow: 16px 0 40px #0006; }
body.sidebar-rail-enabled [data-testid="stSidebar"] > div:first-of-type { width: 300px !important; min-width: 300px !important; }
body.sidebar-rail-enabled [data-testid="stSidebarContent"] { overflow-x: hidden; padding: 48px 0 16px !important; }
body.sidebar-rail-enabled [data-testid="stSidebarUserContent"] { width: 300px !important; box-sizing: border-box; padding-inline:16px; }
body.sidebar-rail-enabled [data-testid="stMain"] { margin-left: 76px !important; width: calc(100% - 76px) !important; }
body.sidebar-rail-enabled :is([data-testid="stSidebarCollapseButton"], [data-testid="stExpandSidebarButton"], [data-testid="stSidebarResizeHandle"]) { display:none !important; }
.sidebar-rail-toggle { position:absolute; top:10px; left:20px; width:36px; height:32px; border:1px solid #343c43; background:#12191e; color:#edab6b; border-radius:7px; font-size:24px; cursor:pointer; z-index:2; }
.sidebar-rail-toggle:focus-visible { outline:2px solid var(--board-orange); outline-offset:3px; }

.sidebar-rail-toggle { display:flex; align-items:center; justify-content:center; padding:0; line-height:1; box-sizing:border-box; }
.sidebar-rail-toggle svg { display:block; width:20px; height:20px; flex:0 0 20px; }
body.sidebar-rail-open .sidebar-rail-toggle svg { transform:rotate(180deg); }
body.sidebar-rail-enabled [data-testid="stSidebar"] [data-testid="stWidgetLabel"] p { font-size: .66rem; letter-spacing:.16em; text-transform:uppercase; color:#929bA3; font-weight:600; }
body.sidebar-rail-enabled [data-testid="stSidebar"] :is([class*="st-key-sidebar_page_"], .st-key-sidebar_user_destination) [data-testid="stRadioOption"] { border-radius:6px; min-height:44px; padding:10px 12px; gap:14px; width:268px; box-sizing:border-box; }
body.sidebar-rail-enabled [data-testid="stSidebar"] :is([class*="st-key-sidebar_page_"], .st-key-sidebar_user_destination) [data-testid="stRadioOption"] > div:first-of-type > div > div:first-child { display:none; }
body.sidebar-rail-enabled [data-testid="stSidebar"] [data-testid="stRadioOption"]:has(input:checked) { background:#ffffff09; border-color:transparent; box-shadow:inset 3px 0 var(--board-orange); }
body.sidebar-rail-enabled [data-testid="stSidebar"] [data-testid="stRadioOption"]:has(input:checked) .sidebar-nav-icon { color:var(--board-orange-light); }
body.sidebar-rail-enabled [data-testid="stSidebar"] [role="radiogroup"] p { font-weight:500; font-size:.9rem; }
.sidebar-nav-icon { display:inline-flex; width:20px; height:20px; flex:0 0 20px; color:#9ca6ae; }
.sidebar-nav-icon svg { width:20px; height:20px; }
body.sidebar-rail-enabled .sidebar-profile-card { background:transparent; border-color:#242a2e; border-radius:8px; padding:8px 10px; }
body.sidebar-rail-enabled .st-key-sidebar_home_logo { width:44px !important; }
body.sidebar-rail-enabled .st-key-sidebar_home_logo img { width:44px !important; }
body.sidebar-rail-enabled .st-key-sidebar_logout button { gap:10px; }
body.sidebar-rail-enabled:not(.sidebar-rail-open) [data-testid="stSidebar"] :is(.sidebar-wordmark, .sidebar-profile > div, [data-testid="stWidgetLabel"], [data-testid="stRadioOption"] [data-testid="stMarkdownContainer"]) { visibility:hidden; }
body.sidebar-rail-enabled:not(.sidebar-rail-open) .sidebar-profile-card { border-color:transparent; }
body.sidebar-rail-enabled:not(.sidebar-rail-open) .st-key-active_sport { visibility:hidden; }
body.sidebar-rail-enabled:not(.sidebar-rail-open) [data-testid="stSidebarUserContent"] > div > [data-testid="stVerticalBlock"] > [data-testid="stElementContainer"]:has([data-testid="stCaptionContainer"]) { visibility:hidden; }
body.sidebar-rail-enabled:not(.sidebar-rail-open) .st-key-sidebar_logout { flex-direction:column !important; width:44px !important; }
body.sidebar-rail-enabled:not(.sidebar-rail-open) .st-key-sidebar_logout button { width:44px !important; min-width:44px !important; padding:10px !important; }
body.sidebar-rail-enabled:not(.sidebar-rail-open) .st-key-sidebar_logout button [data-testid="stMarkdownContainer"] { display:none; }
@media(prefers-reduced-motion:reduce) { body.sidebar-rail-enabled [data-testid="stSidebar"] { transition:none; } }

body.sidebar-rail-enabled [data-testid="stSidebar"] { overflow:hidden !important; }
body.sidebar-rail-enabled [data-testid="stSidebarHeader"] { display:none; }
body.sidebar-rail-enabled [data-testid="stSidebarContent"] { height:100%; }
body.sidebar-rail-enabled [data-testid="stSidebar"] [data-testid="stRadioOption"] > div:first-of-type > div { gap:0 !important; }
body.sidebar-rail-enabled:not(.sidebar-rail-open) [data-testid="stSidebar"] [data-testid="stCaptionContainer"] { visibility:hidden; }
body.sidebar-rail-enabled [data-testid="stHeader"] { left:76px !important; width:calc(100% - 76px) !important; }
body.sidebar-rail-enabled:not(.sidebar-rail-open) [data-testid="stSidebarUserContent"] [data-testid="stButton"]:not(:has(.sidebar-nav-icon)):not(:has(button[aria-label="Baboon Bets — Home"])) { visibility:hidden; }
body.sidebar-rail-enabled [data-testid="stSidebar"] [data-testid="stHorizontalBlock"]:has(.sidebar-wordmark) { flex-wrap:nowrap !important; align-items:center; }
body.sidebar-rail-enabled [data-testid="stSidebar"] [data-testid="stHorizontalBlock"]:has(.sidebar-wordmark) > [data-testid="stColumn"] { min-width:0 !important; width:auto !important; flex:1 1 0 !important; }
body.sidebar-rail-enabled [data-testid="stSidebar"] [data-testid="stHorizontalBlock"]:has(.sidebar-wordmark) > [data-testid="stColumn"]:first-child { flex:0 0 54px !important; }
body.sidebar-rail-enabled:not(.sidebar-rail-open) .st-key-sidebar_home_logo [data-testid="stButton"] { visibility:visible !important; }

/* The avatar and account name are one native, keyboard-accessible profile link. */
.st-key-sidebar_profile_row { position: relative; }
.st-key-sidebar_profile_row [data-testid="stMarkdownContainer"]:has(> .sidebar-profile-card) {
    margin-bottom: 0;
}
.st-key-sidebar_profile_row .st-key-sidebar_open_profile {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 2;
}
.st-key-sidebar_profile_row .st-key-sidebar_open_profile [data-testid="stButton"] {
    position: absolute !important;
    inset: 0 !important;
    margin: 0 !important;
    height: 100% !important;
    visibility: visible !important;
}
[data-testid="stSidebar"] .st-key-sidebar_profile_row .st-key-sidebar_open_profile button {
    position: absolute !important;
    inset: 0 !important;
    margin: 0 !important;
    visibility: visible !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
}
.st-key-sidebar_profile_row .st-key-sidebar_open_profile button p {
    opacity: 0;
}
.st-key-sidebar_profile_row:has(button:hover) .sidebar-avatar,
.st-key-sidebar_profile_row:has(button:focus-visible) .sidebar-avatar {
    border-color: var(--board-lime);
    transform: scale(1.06);
}
.st-key-sidebar_profile_row:has(button:focus-visible) .sidebar-profile-card {
    outline: 2px solid var(--board-lime);
    outline-offset: 2px;
}

/* Keep unit fields clear of Streamlit's inline form submission hint. */
.st-key-settings_fields [data-testid="stNumberInput"] [data-testid="InputInstructions"] {
    display: none !important;
}

/* Align every collapsed-rail control to the same 38px centerline. */

body.sidebar-rail-enabled:not(.sidebar-rail-open) .sidebar-profile-card {
    width: 44px;
    box-sizing: border-box;
    padding: 8px 0;
}
body.sidebar-rail-enabled:not(.sidebar-rail-open) .sidebar-profile { justify-content: center; }
body.sidebar-rail-enabled:not(.sidebar-rail-open) .sidebar-profile > div { display: none; }
body.sidebar-rail-enabled:not(.sidebar-rail-open) [data-testid="stSidebar"] :is([class*="st-key-sidebar_page_"], .st-key-sidebar_user_destination) [data-testid="stRadioOption"] {
    position: relative;
    width: 44px;
    padding-inline: 0;
}
body.sidebar-rail-enabled:not(.sidebar-rail-open) [data-testid="stRadioOption"] > .sidebar-nav-icon,
body.sidebar-rail-enabled:not(.sidebar-rail-open) .st-key-sidebar_logout button > .sidebar-nav-icon {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}
body.sidebar-rail-enabled:not(.sidebar-rail-open) .st-key-sidebar_logout button { position: relative; }
body.sidebar-rail-enabled:not(.sidebar-rail-open) .st-key-sidebar_home .sidebar-nav-icon { color: #fff; }

body.sidebar-rail-enabled:not(.sidebar-rail-open) [data-testid="stSidebar"] [data-testid="stRadioOption"] [data-testid="stMarkdownContainer"] { white-space: nowrap; }

/* Quick Bet keeps the current page behind a small progress popup. */
body.baboon-quick-bet-loading #baboon-page-loading {
    display: grid;
    background: rgba(3, 7, 10, .68);
    backdrop-filter: blur(3px);
}
.quick-bet-overlay .page-loading-content {
    width: min(360px, calc(100vw - 40px));
    box-sizing: border-box;
    padding: 30px 28px;
    border: 1px solid var(--board-orange, #c76a27);
    border-radius: 20px;
    background: #0b1720;
    box-shadow: 0 18px 70px #0008;
    overflow: hidden;
    gap: 20px;
}
.quick-bet-overlay .landing-hero-mark {
    width: 64px;
    height: 76px;
    animation: quick-bet-run 2.4s linear infinite;
}
.quick-bet-overlay .landing-hero-logo {
    animation: quick-bet-stride .28s ease-in-out infinite alternate;
}
.quick-bet-overlay .landing-rump-copy { display: none; }
@keyframes quick-bet-run {
    from { transform: translateX(-100px); }
    to { transform: translateX(100px); }
}
@keyframes quick-bet-stride {
    from { transform: translateY(0) rotate(-7deg); }
    to { transform: translateY(-6px) rotate(5deg); }
}
@media (prefers-reduced-motion: reduce) {
    .quick-bet-overlay .landing-hero-mark,
    .quick-bet-overlay .landing-hero-logo { animation: none; }
}

.quick-bet-success .landing-hero-mark,
.quick-bet-success .landing-hero-logo { animation: none; transform: none; }
.quick-bet-success .page-loading-content strong { color: #86e6b5; }
.page-loading-content .quick-bet-confirmation {
    margin: 0;
    color: #e5edf2;
    font-size: 14px;
    line-height: 1.5;
    text-align: center;
}

.quick-bet-overlay .page-loading-content { position: relative; }
.page-loading-content .quick-bet-close {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    font-size: 26px;
    line-height: 32px;
    text-align: center;
    color: #e5edf2;
}
.page-loading-content .quick-bet-close:hover { background: #ffffff12; }
.page-loading-content .quick-bet-close:focus-visible { outline: 2px solid #c76a27; }

.about-model-stages { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 8px 0 24px; }
.about-model-stages .site-tile { padding: 20px; }
.about-model-stages strong { color: var(--board-text); font-size: 1.1rem; }
.about-model-stages p { margin: 8px 0 0; color: var(--board-muted); line-height: 1.5; }
@media (max-width: 700px) { .about-model-stages { grid-template-columns: 1fr; } }

/* A quiet notification bell opposite the sidebar expansion control. */
.st-key-sidebar_notifications {
    position: fixed !important; top: 10px; left: 248px; width: 36px !important;
    z-index: 999995;
}
.st-key-sidebar_notifications button[kind] {
    width: 36px !important; min-width: 36px !important; height: 32px !important;
    min-height: 32px !important; padding: 0 !important; display: flex;
    align-items: center; justify-content: center; border: 1px solid #343c43 !important;
    background: #12191e !important; color: #f5f7f8 !important; border-radius: 7px;
}
.st-key-sidebar_notifications button [data-testid="stMarkdownContainer"] { display: none; }
.st-key-sidebar_notifications button:hover { color: var(--board-orange) !important; border-color: var(--board-orange) !important; }
.notification-unread-dot {
    position: absolute; right: 3px; top: 3px; width: 7px; height: 7px;
    border-radius: 50%; background: var(--board-orange); border: 1px solid #090c0e;
    pointer-events: none; z-index: 2;
}
body.sidebar-rail-enabled:not(.sidebar-rail-open) .st-key-sidebar_notifications { display: none !important; }
.st-key-sidebar_notifications { gap: 0 !important; }
.st-key-sidebar_notifications [data-testid="stElementContainer"]:has(.notification-unread-dot) {
    position: absolute !important; inset: 0; pointer-events: none;
}

/* Notifications temporarily occupy the full sidebar, preserving navigation state. */
body:has(.st-key-sidebar_notification_panel) .st-key-sidebar_normal_navigation,
body:has(.st-key-sidebar_notification_panel) .st-key-sidebar_notifications,
body:has(.st-key-sidebar_notification_panel) .sidebar-rail-toggle { display: none !important; }
.st-key-sidebar_notification_panel {
    position: fixed !important; inset: 0 auto 0 0; width: 300px !important;
    box-sizing: border-box; padding: 16px; background: #090c0e;
    overflow-y: auto; overflow-x: hidden; z-index: 999995; gap: 12px;
}
.st-key-sidebar_notification_panel [data-testid="stVerticalBlock"] { gap: 10px; }
.st-key-sidebar_notification_panel h3 { font-size: 1.35rem !important; }
.st-key-sidebar_notification_panel [data-testid="stText"] { white-space: pre-wrap; overflow-wrap: anywhere; }
.st-key-sidebar_notification_panel [data-testid="stMarkdownContainer"] { overflow-wrap: anywhere; }
.st-key-sidebar_notification_panel button[kind] { min-height: 34px; }
.st-key-sidebar_notifications_back button[kind] { border: 0; background: transparent; padding-left: 0; }
.st-key-sidebar_normal_navigation { flex: 1; min-height: 0; }

/* Mobile uses a fully hidden drawer; desktop retains the hover rail. */
.sidebar-mobile-menu, .sidebar-mobile-backdrop { display: none; }
@media (max-width: 767px) {
    body.sidebar-rail-enabled [data-testid="stSidebar"] {
        width: 300px !important; height: 100dvh !important;
        transform: translateX(-100%) !important; visibility: hidden !important;
        transition: transform 180ms ease, visibility 180ms !important;
        z-index: 999992 !important;
    }
    body.sidebar-rail-enabled.sidebar-rail-open [data-testid="stSidebar"] {
        transform: translateX(0) !important; visibility: visible !important;
    }
    body.sidebar-rail-enabled [data-testid="stMain"] {
        margin-left: 0 !important; width: 100% !important;
    }
    body.sidebar-rail-enabled [data-testid="stHeader"] {
        left: 0 !important; width: 100% !important;
    }
    body.sidebar-rail-enabled .sidebar-rail-toggle { display: none !important; }
    body.sidebar-rail-enabled .sidebar-mobile-menu {
        display: flex; align-items: center; justify-content: center;
        position: fixed; top: max(8px, env(safe-area-inset-top)); left: 12px;
        width: 44px; height: 44px; padding: 10px; border: 0; border-radius: 8px;
        color: #f5f7f8; background: #090c0e; z-index: 999993; cursor: pointer;
    }
    .sidebar-mobile-menu svg { width: 24px; height: 24px; }
    .sidebar-mobile-menu:focus-visible { outline: 2px solid var(--board-orange); outline-offset: 2px; }
    body.sidebar-rail-enabled.sidebar-rail-open .sidebar-mobile-backdrop {
        display: block; position: fixed; inset: 0; background: #0007;
        z-index: 999991; touch-action: none;
    }
    .st-key-sidebar_notification_panel { padding-top: 64px; }
}
@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
    body.sidebar-rail-enabled [data-testid="stSidebar"] { transition: none !important; }
}

/* Keep mobile navigation and its footer together in the visible drawer. */
@media (max-width: 767px) {
    body.sidebar-rail-enabled [data-testid="stSidebarContent"] {
        overflow: hidden !important; padding: 56px 0 max(12px, env(safe-area-inset-bottom)) !important;
        box-sizing: border-box;
    }
    body.sidebar-rail-enabled [data-testid="stSidebarUserContent"] {
        flex: 0 1 auto !important; min-height: 0; padding-inline: 12px !important;
    }
    body.sidebar-rail-enabled .st-key-sidebar_normal_navigation {
        flex: 0 0 auto !important; gap: 6px !important;
        width: 276px !important; min-width: 276px !important;
        transform: scale(var(--mobile-menu-scale, 1)); transform-origin: top left;
    }
    body.sidebar-rail-enabled .st-key-sidebar_normal_navigation [data-testid="stVerticalBlock"] {
        gap: 6px !important;
    }
    body.sidebar-rail-enabled .st-key-sidebar_normal_navigation [data-testid="stRadioOption"] {
        min-height: 30px !important; padding: 4px 10px !important; gap: 10px !important;
    }
    body.sidebar-rail-enabled .st-key-sidebar_normal_navigation [role="radiogroup"] {
        gap: 2px !important;
    }
    body.sidebar-rail-enabled .st-key-sidebar_normal_navigation [role="radiogroup"] p {
        font-size: .85rem !important; line-height: 1.2 !important;
    }
    body.sidebar-rail-enabled .st-key-sidebar_user_navigation { margin: 0 !important; }
    body.sidebar-rail-enabled .st-key-sidebar_normal_navigation [data-testid="stCaptionContainer"] {
        font-size: .7rem !important; line-height: 1.35 !important;
    }
    body.sidebar-rail-enabled .st-key-sidebar_normal_navigation [data-testid="stCaptionContainer"] p {
        font-size: inherit !important; line-height: inherit !important; margin: 0 !important;
    }
    body.sidebar-rail-enabled .st-key-sidebar_normal_navigation [data-testid="stWidgetLabel"] {
        min-height: 0; margin-bottom: 3px;
    }
    body.sidebar-rail-enabled .sidebar-profile-card { padding: 5px 8px; }
    body.sidebar-rail-enabled .st-key-sidebar_logout {
        margin-top: 6px !important; padding-top: 8px !important;
        flex-direction: row !important; flex-shrink: 0;
    }
    body.sidebar-rail-enabled [data-testid="stLayoutWrapper"]:has(> .st-key-sidebar_logout) {
        margin-top: 0 !important;
    }
    body.sidebar-rail-enabled .st-key-sidebar_normal_navigation button[kind] {
        min-height: 34px !important; padding-block: 5px !important;
    }
}

/* Distinct inbox cards, with explicit labels as well as semantic colors. */
[class*="st-key-notification_card_"] {
    --notification-accent: #a7bdcd;
    --notification-tint: rgba(167, 189, 205, .08);
    background: linear-gradient(135deg, var(--notification-tint), #0a131c) !important;
    border-color: color-mix(in srgb, var(--notification-accent) 38%, transparent) !important;
    border-left: 3px solid var(--notification-accent) !important;
    border-radius: 14px !important;
    padding: 13px !important;
}
[class*="st-key-notification_card_official_"] { --notification-accent: #ffd17a; --notification-tint: rgba(255, 209, 122, .12); }
[class*="st-key-notification_card_follow_"] { --notification-accent: #c3a8ff; --notification-tint: rgba(195, 168, 255, .12); }
[class*="st-key-notification_card_win_"] { --notification-accent: #80e7b2; --notification-tint: rgba(128, 231, 178, .12); }
[class*="st-key-notification_card_loss_"] { --notification-accent: #ff939a; --notification-tint: rgba(255, 147, 154, .12); }
.notification-card { color: #fff; }
.notification-card-heading { display: flex; gap: 10px; align-items: center; }
.notification-card-heading strong { color: var(--notification-accent) !important; font-size: .94rem; line-height: 1.4; }
.notification-card-icon { flex: 0 0 34px; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: var(--notification-tint); }
.notification-card-icon img { width: 26px; height: 26px; }
.notification-card-category { font-size: .76rem; font-weight: 700; margin-top: 10px; }
.notification-card-detail { font-size: .85rem !important; line-height: 1.55 !important; margin: 8px 0 0 !important; color: #fff; overflow-wrap: anywhere; }
[class*="st-key-notification_card_"] :is(.notification-card-category, .notification-card-detail, [data-testid="stCaptionContainer"], [data-testid="stCaptionContainer"] p, button[kind] p) { color: #fff !important; }
[class*="st-key-notification_card_"] button[kind] { border-color: color-mix(in srgb, var(--notification-accent) 45%, transparent) !important; color: #fff !important; font-size: .82rem !important; }

.notification-card-category .notification-result-word { color: var(--notification-accent) !important; }

/* Native app navigation replaces the browser-only rail inside the app. */
body.baboon-native-app :is([data-testid="stSidebar"], .sidebar-mobile-menu, .sidebar-mobile-backdrop) { display: none !important; }
body.baboon-native-app [data-testid="stMain"] { margin-left: 0 !important; width: 100% !important; }

/* Compact app filter gears sit immediately beside their page titles. */
:is(.st-key-tracker_title_filters, .st-key-home_title_filters) { gap: 4px !important; }
:is(.st-key-tracker_title_filters, .st-key-home_title_filters) [data-testid="stPopoverButton"] {
    width: 32px !important; min-width: 32px !important; height: 32px !important;
    min-height: 32px !important; padding: 4px !important;
    background: transparent !important; border: 0 !important; box-shadow: none !important;
    color: #b6c7d4 !important;
}
:is(.st-key-tracker_title_filters, .st-key-home_title_filters) [data-testid="stPopoverButton"] :is([data-testid="stMarkdownContainer"], [aria-hidden="true"]) { display: none !important; }
:is(.st-key-tracker_title_filters, .st-key-home_title_filters) [data-testid="stPopoverButton"] [data-testid="stIconMaterial"] { font-size: 18px !important; }
:is(.st-key-tracker_title_filters, .st-key-home_title_filters) [data-testid="stPopoverButton"]:hover { color: #d4f542 !important; }
:is(.st-key-tracker_title_filters, .st-key-home_title_filters) [data-testid="stPopoverButton"]:focus-visible { outline: 2px solid #d4f542 !important; outline-offset: 2px; }
:is(.st-key-tracker_title_filters, .st-key-home_title_filters) [data-testid="stHeaderActionElements"] { display: none !important; }

/* App member profiles: identity, social counts, actions, and a public bet grid. */
.st-key-native_profile { gap: 14px !important; }
.native-profile-username { display: block; margin-top: 2px; font-size: .8rem; font-weight: 500; color: #a7b9c4; overflow-wrap: anywhere; }
.st-key-native_profile_summary { gap: 12px !important; }
.native-profile-avatar {
    display: flex; align-items: center; justify-content: center;
    width: 84px; height: 84px; border-radius: 50%; box-sizing: border-box;
    border: 2px solid #cf762e; padding: 3px; background: #13212b;
    color: #e5eeef; font-size: 30px; font-weight: 700;
}
.native-profile-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.st-key-native_profile_counts { gap: 4px !important; min-width: 0; }
.st-key-native_profile_counts > [data-testid="stElementContainer"] { min-width: 0 !important; flex: 1 1 0 !important; }
.st-key-native_profile_counts button {
    padding: 8px 0 !important; border: 0 !important; box-shadow: none !important;
    background: transparent !important; min-width: 0 !important; color: #edf2f4 !important;
}
.st-key-native_profile_counts button p { margin: 0 !important; font-size: 12px !important; line-height: 1.5 !important; white-space: nowrap; }
.st-key-native_profile_counts button strong { display: block; font-size: 18px; font-weight: 750; }
.st-key-native_profile_counts button:hover { color: #d4f542 !important; }
.native-profile-bio strong { display: block; font-size: 1.2rem; line-height: 1.3; overflow-wrap: anywhere; color: #f4f6f6; }
.native-profile-bio p { white-space: pre-wrap; overflow-wrap: anywhere; font-size: .88rem; line-height: 1.5; margin: 5px 0 7px; color: #dbe2e6; }
.native-profile-bio small { color: #81939e; font-size: .72rem; }
.st-key-native_profile_actions button { min-height: 36px; padding: 6px 8px !important; border-radius: 8px !important; }
.st-key-native_profile_actions button p { font-size: .8rem !important; font-weight: 650; white-space: nowrap; }
.st-key-native_profile_tabs { border-bottom: 1px solid #25343f; padding-bottom: 0; }
.st-key-native_profile_tabs [data-testid="stButtonGroup"] { width: 100%; }
.st-key-native_profile_tabs button { border-radius: 0 !important; border: 0 !important; border-bottom: 2px solid transparent !important; background: transparent !important; padding: 10px 5px !important; }
.st-key-native_profile_tabs button:is([aria-pressed="true"], [aria-checked="true"]) { border-bottom-color: #d4f542 !important; color: #eef5dd !important; }
.native-profile-bet-grid, .native-profile-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.native-profile-bet { padding: 14px 12px; min-width: 0; border-radius: 12px; display: flex; flex-direction: column; gap: 12px; }
.native-profile-bet-sport { font-size: .68rem; letter-spacing: .1em; font-weight: 750; color: var(--tile-accent, #8ecfff); }
.native-profile-bet .tracked-bet-summary { overflow-wrap: anywhere; }
.native-profile-bet .tracked-bet-summary > strong { font-size: .88rem !important; line-height: 1.4; }
.native-profile-bet .tracked-bet-summary p { font-size: .76rem !important; line-height: 1.5; }
.native-profile-bet > small { font-size: .68rem; line-height: 1.4; color: #97a9b6; margin-top: auto; }
.native-profile-stat { padding: 18px 14px; min-width: 0; border-radius: 12px; }
.native-profile-stat span { font-size: .8rem; color: #a7b9c4; }
.native-profile-stat strong { display: block; font-size: clamp(18px, 5vw, 24px); overflow-wrap: anywhere; margin-top: 8px; color: var(--tile-accent, #eff4f6); }
.native-profile-empty { padding: 34px 12px; text-align: center; border-top: 1px solid #1d2c35; }
.native-profile-empty > span { display: block; font-size: 35px; color: #95bbcf; margin-bottom: 12px; }
.native-profile-empty strong { color: #e6eef3; font-size: .96rem; }
.native-profile-empty p { font-size: .8rem; color: #96a7b3; margin: 8px 0; }

.st-key-native_profile [data-testid="stElementContainer"]:has(.native-profile-context) { display: none !important; }

/* Profile date and circular edit/share controls share the same compact row. */
.native-profile-since { color: #81939e; font-size: .72rem; }
.st-key-native_profile_meta { gap: 12px !important; }
.st-key-native_profile_meta > [data-testid="stElementContainer"] { flex: 1 1 0 !important; min-width: 0; }
.st-key-native_profile_tools { gap: 8px !important; flex-shrink: 0 !important; }
.st-key-native_profile_tools button {
    width: 36px !important; min-width: 36px !important; height: 36px !important; min-height: 36px !important;
    border-radius: 50% !important; padding: 0 !important; background: #15212b !important;
    border: 1px solid #30424e !important; box-shadow: none !important; color: #e4edf3 !important;
}
.st-key-native_profile_tools button [data-testid="stMarkdownContainer"] { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip-path: inset(50%); white-space: nowrap; }
.st-key-native_profile_tools button [data-testid="stIconMaterial"] { font-size: 18px !important; }
.st-key-native_profile_tools button:hover { border-color: #d4f542 !important; color: #d4f542 !important; }

/* A quiet, ledger-backed social feed. Avatar and card are the entire post. */
.st-key-social_feed { max-width: 720px; margin-inline: auto; }
[class*="st-key-social_post_"] { padding: 18px 0; border-bottom: 1px solid #24313a; }
.social-post { display: grid; grid-template-columns: 44px minmax(0,1fr); gap: 14px; align-items: start; }
.social-avatar { width: 44px; height: 44px; border-radius: 50%; overflow: hidden; display: flex; align-items: center; justify-content: center; background: #bd672d; color: white !important; text-decoration: none; border: 2px solid #405447; font-weight: 700; }
.social-avatar:hover { border-color: #d3f442; }
.social-avatar img { width: 100%; height: 100%; object-fit: cover; }
.social-bet-tile { padding: 20px; border: 1px solid #3a5264; border-top: 3px solid #8bd0ff; border-radius: 20px; color: #fff; background: linear-gradient(135deg,#172e3d,#10191f 85%); min-width: 0; }
.social-post--win .social-bet-tile { border-color: #578575; border-top-color: #82e7b6; background: linear-gradient(135deg,#193c32,#101b20 85%); }
.social-post--loss .social-bet-tile { border-color: #87464e; border-top-color: #ff8291; background: linear-gradient(135deg,#3a2028,#17191f 85%); }
.social-bet-top { display: flex; justify-content: space-between; gap: 12px; font-size: .75rem; flex-wrap: wrap; }
.social-matchup { margin-top: 18px; font-size: .8rem; }
.social-bet-tile h4 { font-size: 1.15rem !important; line-height: 1.35; margin: 8px 0 22px !important; padding: 0 !important; color: white !important; overflow-wrap: anywhere; }
.social-bet-numbers { display: flex; flex-wrap: wrap; gap: 16px 28px; }
.social-bet-numbers small { display: block; color: #d2dce3; font-size: .75rem; }
.social-bet-numbers strong { display: block; font-size: 1.1rem; color: white; }
.social-post--win .social-result { color: #82e7b6; }
.social-post--loss .social-result { color: #ff8291; }
[class*="st-key-social_actions_"] { width: calc(100% - 58px) !important; margin-left: 58px; gap: 14px !important; }
[class*="st-key-social_actions_"] button { background: transparent !important; border: 0 !important; box-shadow: none !important; color: #d4dfe6 !important; min-height: 40px; }
[class*="st-key-social_like_"] button[kind="primary"] { color: #ff839d !important; }
@media(max-width:600px) {
 .social-post { grid-template-columns: 36px minmax(0,1fr); gap: 10px; }
 .social-avatar { width: 36px; height: 36px; }
 .social-bet-tile { padding: 15px; border-radius: 17px; }
 .social-bet-numbers { gap: 12px 20px; }
 [class*="st-key-social_actions_"] { width: calc(100% - 46px) !important; margin-left: 46px; }
}

.social-avatar, .social-avatar * { text-decoration: none !important; }

/* Likes have a distinct pink heart; notification details stay white. */
[class*="st-key-notification_card_like_"] { --notification-accent: #ff66d9; --notification-tint: rgba(255,102,217,.16); }

/* NBA trial uses the NHL summary/card rhythm; selectors are NBA-only. */
.st-key-nba_testing_view { margin: .25rem 0 1rem; }
[class*="st-key-nba_pick_"] [data-testid="stExpander"] {
    margin-top: .35rem; background: transparent; border-color: var(--board-border-soft);
}
@media (max-width: 700px) {
    .st-key-nba_board_summary [data-testid="stHorizontalBlock"] {
        flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory;
        gap: .8rem; padding-bottom: .6rem;
    }
    .st-key-nba_board_summary [data-testid="stColumn"] {
        flex: 0 0 72% !important; min-width: 72% !important; scroll-snap-align: start;
    }
    .st-key-nba_testing_view [role="radiogroup"] { flex-wrap: nowrap; overflow-x: auto; }
    .st-key-nba_testing_view button { flex-shrink: 0; white-space: nowrap; }
}

/* Prediction market that supplied a card's price (Kalshi, Polymarket). */
.model-number > span .venue-logo {
  height: 12px;
  width: auto;
  margin-left: 6px;
  vertical-align: -2px;
  border-radius: 2px;
}
.model-number > span .venue-tag {
  margin-left: 6px;
  padding: 0 5px;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-size: 0.85em;
  letter-spacing: 0;
  opacity: 0.8;
}
