/* ============================================================
   MBE — THE ROYAL ORDER OF THE HOG
   Year VII "Clubhouse" theme · Piggy Piggy site v2
   Loaded LAST on every page; overrides consolidated-styles.css
   and per-page inline styles. In Lardo Veritas.
   ============================================================ */

/* ---------- Design tokens ---------- */
:root {
    --felt-950: #050f0a;
    --felt-900: #07150f;
    --felt-800: #0b2318;
    --felt-700: #113526;
    --felt-600: #16452f;
    --felt-line: rgba(212, 175, 55, 0.22);

    --gold: #d4af37;
    --gold-bright: #f2d67c;
    --gold-pale: #e9cf8f;
    --gold-deep: #8c6d1f;

    --cream: #f4e9cf;
    --cream-dim: #c9bc9c;
    --cream-faint: #9a9077;

    --rose: #ff4fa3;
    --rose-bright: #ff7dbb;
    --rose-deep: #c2186b;

    --mud: #6b4a2b;
    --mud-deep: #3e2a17;

    --danger: #ff3b30;
    --ok: #4caf50;

    --font-display: 'Fraunces', 'Playfair Display', Georgia, serif;
    --font-ui: 'Outfit', 'Trebuchet MS', sans-serif;

    --nav-h: 64px;
    --radius: 14px;
    --plaque-grad: linear-gradient(160deg, #17402c 0%, #0e2c1e 55%, #123626 100%);
    --gold-grad: linear-gradient(160deg, #f2d67c 0%, #d4af37 45%, #a8842a 80%, #d4af37 100%);
    color-scheme: dark;
}

/* ---------- Base / page felt ---------- */
html { -webkit-text-size-adjust: 100%; }

body {
    background:
        radial-gradient(120% 90% at 50% -10%, rgba(212,175,55,0.10) 0%, rgba(212,175,55,0) 55%),
        radial-gradient(140% 120% at 50% 115%, rgba(255,79,163,0.07) 0%, rgba(255,79,163,0) 50%),
        repeating-linear-gradient(45deg, rgba(255,255,255,0.012) 0 2px, rgba(0,0,0,0) 2px 6px),
        linear-gradient(180deg, var(--felt-800) 0%, var(--felt-900) 45%, var(--felt-950) 100%) !important;
    background-attachment: fixed !important;
    color: var(--cream) !important;
    font-family: var(--font-ui) !important;
    min-height: 100vh;
    padding-bottom: calc(var(--nav-h) + env(safe-area-inset-bottom, 0px) + 18px) !important;
}

::selection { background: var(--gold); color: var(--felt-900); }

* { scrollbar-width: thin; scrollbar-color: var(--gold-deep) transparent; }
*::-webkit-scrollbar { width: 8px; height: 8px; }
*::-webkit-scrollbar-thumb { background: var(--gold-deep); border-radius: 8px; }
*::-webkit-scrollbar-track { background: transparent; }

.container {
    max-width: 680px !important;
    padding: 14px 14px 30px !important;
    margin: 0 auto !important;
}

/* Desktop web: let the two-column layout breathe */
@media (min-width: 900px) {
    .container { max-width: 1040px !important; padding: 20px 24px 40px !important; }
    .main-content { gap: 20px; }
    /* single-column pages read better with a comfortable measure */
    .parlour-card, #identityCard { max-width: 720px; margin-left: auto !important; margin-right: auto !important; }
    .sessions-container, .year-section { max-width: 860px; margin-left: auto !important; margin-right: auto !important; }
}

.pig-grid { max-width: 420px; margin-left: auto; margin-right: auto; }

/* House Odds board: tappable fate rows */
.odds-row {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 8px;
    margin: -2px -4px;
    border-radius: 8px;
    border: 1px solid transparent;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, border-color 0.15s ease;
}
.odds-row:hover, .odds-row:active {
    background: rgba(212, 175, 55, 0.1);
    border-color: rgba(212, 175, 55, 0.3);
}

/* Summons enrollment alarm banner */
.summons-banner {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 4px 0 14px;
    padding: 12px 40px 12px 16px;
    position: relative;
    border-radius: 12px;
    border: 1px solid rgba(255, 110, 90, 0.65);
    background: linear-gradient(165deg, rgba(160, 37, 37, 0.6), rgba(109, 20, 20, 0.5));
    cursor: pointer;
    animation: mbe-summons-throb 1.6s ease-in-out infinite;
    -webkit-tap-highlight-color: transparent;
}
.summons-banner strong {
    font-family: var(--font-ui);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: #ffd9d3;
}
.summons-banner span {
    font-family: var(--font-display);
    font-style: italic;
    font-size: 0.74rem;
    color: #e8b8ae;
}
.summons-dismiss {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 1px solid rgba(255, 217, 211, 0.4);
    background: transparent;
    color: #ffd9d3;
    font-size: 0.8rem;
    cursor: pointer;
    line-height: 1;
}
@keyframes mbe-summons-throb {
    0%, 100% { box-shadow: 0 0 0 0 rgba(255, 110, 90, 0.35); border-color: rgba(255, 110, 90, 0.65); }
    50% { box-shadow: 0 0 18px 2px rgba(255, 110, 90, 0.5); border-color: rgba(255, 160, 140, 0.9); }
}

/* Quiet clubhouse flavor. This is in-page copy, never a notification. */
.hog-hotline {
    width: min(100%, 680px);
    min-height: 48px;
    margin: 2px auto 14px;
    padding: 10px 38px 10px 14px;
    position: relative;
    display: block;
    border: 1px solid rgba(212, 175, 55, 0.3);
    border-radius: 12px;
    background: linear-gradient(165deg, rgba(212, 175, 55, 0.09), rgba(255, 79, 163, 0.05));
    color: var(--cream-dim);
    font-family: var(--font-display);
    font-size: 0.78rem;
    font-style: italic;
    line-height: 1.35;
    text-align: left;
    cursor: pointer;
    box-shadow: inset 0 1px 0 rgba(242, 214, 124, 0.05);
    -webkit-tap-highlight-color: transparent;
}
.hog-hotline strong {
    display: block;
    margin-bottom: 2px;
    color: var(--gold-pale);
    font-family: var(--font-ui);
    font-size: 0.62rem;
    font-style: normal;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}
.hog-hotline::after {
    content: "↻";
    position: absolute;
    top: 50%;
    right: 14px;
    color: var(--gold);
    font-family: var(--font-ui);
    font-size: 1rem;
    font-style: normal;
    transform: translateY(-50%);
}
.hog-hotline:hover, .hog-hotline:active {
    border-color: rgba(242, 214, 124, 0.6);
    background: linear-gradient(165deg, rgba(212, 175, 55, 0.15), rgba(255, 79, 163, 0.08));
}

/* Status-bar debt badge */
.sb-debt {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin: 0 10px;
    padding: 5px 12px;
    border-radius: 999px;
    font-family: var(--font-ui);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    white-space: nowrap;
    cursor: pointer;
    color: #ffd9d3;
    background: linear-gradient(165deg, rgba(160, 37, 37, 0.55), rgba(109, 20, 20, 0.45));
    border: 1px solid rgba(255, 110, 90, 0.5);
    animation: mbe-debt-throb 3s ease-in-out infinite;
}
.sb-debt.all-pending {
    color: var(--felt-900);
    background: var(--gold-grad);
    border-color: var(--gold-bright);
    animation: none;
}

/* Personal debt banner on the front page */
.my-debt-chip {
    margin: 14px auto 0;
    max-width: 480px;
    padding: 11px 18px;
    border-radius: 999px;
    border: 1px solid rgba(255, 110, 90, 0.45);
    background: linear-gradient(165deg, rgba(160, 37, 37, 0.35), rgba(109, 20, 20, 0.25));
    color: var(--cream);
    font-family: var(--font-display);
    font-style: italic;
    font-size: 0.88rem;
    text-align: center;
    cursor: pointer;
    box-shadow: 0 3px 14px rgba(160, 37, 37, 0.25);
    animation: mbe-debt-throb 3s ease-in-out infinite;
}
.my-debt-chip strong { color: var(--rose-bright); font-style: normal; }
.my-debt-chip .mdc-cta {
    display: block;
    font-family: var(--font-ui);
    font-style: normal;
    font-size: 0.6rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--gold-pale);
    margin-top: 3px;
}
@keyframes mbe-debt-throb {
    0%, 100% { box-shadow: 0 3px 14px rgba(160, 37, 37, 0.22); }
    50% { box-shadow: 0 3px 22px rgba(160, 37, 37, 0.45); }
}

/* Narrow phones: never let the grid force a 320px minimum */
@media (max-width: 700px) {
    .main-content { grid-template-columns: 1fr !important; }
    .main-content > * { min-width: 0 !important; max-width: 100% !important; }
}

/* ---------- Champagne bubbles (were beer bubbles) ---------- */
.beer-bubbles { opacity: 0.75; }
.bubble {
    background: radial-gradient(circle at 35% 30%, rgba(242,214,124,0.9), rgba(212,175,55,0.25) 60%, rgba(212,175,55,0) 75%) !important;
    border: 1px solid rgba(242, 214, 124, 0.35) !important;
    box-shadow: 0 0 6px rgba(212, 175, 55, 0.25) !important;
    max-width: 14px; max-height: 14px;
}

/* ---------- Header: the crest ---------- */
.header {
    text-align: center;
    padding: 18px 10px 6px !important;
    background: none !important;
    border: none !important;
    box-shadow: none !important;
}

.mbe-crest { display: flex; justify-content: center; margin-bottom: 6px; }
.mbe-crest svg {
    width: 92px; height: 92px;
    filter: drop-shadow(0 4px 14px rgba(212, 175, 55, 0.35));
}

.mbe-club-name {
    font-family: var(--font-ui);
    font-size: 0.64rem;
    font-weight: 600;
    letter-spacing: 0.42em;
    text-transform: uppercase;
    color: var(--gold-pale);
    margin-bottom: 2px;
    text-indent: 0.42em; /* balance letterspacing */
}

.title, .header h1 {
    font-family: var(--font-display) !important;
    font-weight: 800 !important;
    font-size: clamp(1.9rem, 8vw, 2.7rem) !important;
    line-height: 1.05 !important;
    letter-spacing: 0.01em;
    background: linear-gradient(175deg, #f7e3a4 0%, var(--gold) 45%, #a8842a 75%, var(--gold-bright) 100%);
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    color: var(--gold) !important;
    text-shadow: none !important;
    margin: 0 0 2px !important;
    animation: none !important;
}

.subtitle {
    font-family: var(--font-display) !important;
    font-style: italic;
    font-weight: 400 !important;
    font-size: 0.95rem !important;
    color: var(--cream-dim) !important;
    margin: 0 !important;
}

.mbe-motto {
    font-family: var(--font-ui);
    font-size: 0.6rem;
    font-weight: 500;
    letter-spacing: 0.34em;
    text-transform: uppercase;
    color: var(--cream-faint);
    margin-top: 8px;
    text-indent: 0.34em;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}
.mbe-motto::before, .mbe-motto::after {
    content: "";
    height: 1px; width: 34px;
    background: linear-gradient(90deg, transparent, var(--gold-deep));
}
.mbe-motto::after { background: linear-gradient(90deg, var(--gold-deep), transparent); }

/* Tone down the giant flanking pig emojis into small mascots */
.pig-emoji {
    font-size: 1.4rem !important;
    animation: none !important;
    opacity: 0.9;
    display: inline-block;
}

/* ---------- Navigation: pills on desktop, bottom bar on phones ---------- */
.nav-tabs {
    display: flex !important;
    gap: 6px !important;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 14px !important;
    background: none !important;
    border: none !important;
}

.nav-btn, .nav-link, .nav-tab {
    font-family: var(--font-ui) !important;
    font-weight: 600 !important;
    font-size: 0.72rem !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--cream-dim) !important;
    background: rgba(212, 175, 55, 0.06) !important;
    border: 1px solid var(--felt-line) !important;
    border-radius: 999px !important;
    padding: 9px 14px !important;
    text-decoration: none !important;
    transition: all 0.2s ease !important;
    box-shadow: none !important;
    text-shadow: none !important;
}

.nav-btn:hover, .nav-link:hover, .nav-tab:hover {
    color: var(--gold-bright) !important;
    border-color: var(--gold) !important;
    background: rgba(212, 175, 55, 0.12) !important;
    transform: none !important;
}

.nav-btn.active, .nav-link.active, .nav-tab.active {
    background: var(--gold-grad) !important;
    color: var(--felt-900) !important;
    border-color: var(--gold-bright) !important;
    font-weight: 700 !important;
    box-shadow: 0 2px 12px rgba(212, 175, 55, 0.4) !important;
}

@media (max-width: 640px) {
    .nav-tabs {
        position: fixed !important;
        left: 0; right: 0; bottom: 0;
        z-index: 1200;
        margin: 0 !important;
        padding: 8px 10px calc(8px + env(safe-area-inset-bottom, 0px)) !important;
        gap: 4px !important;
        flex-wrap: nowrap !important;
        background: rgba(6, 17, 11, 0.92) !important;
        -webkit-backdrop-filter: blur(14px);
        backdrop-filter: blur(14px);
        border-top: 1px solid var(--felt-line) !important;
        box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.55);
    }
    .nav-tab {
        flex: 1 1 0 !important;
        min-height: 48px;
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        text-align: center !important;
        font-size: 0.56rem !important;
        letter-spacing: 0.04em;
        line-height: 1.5 !important;
        padding: 7px 2px !important;
        border-radius: 10px !important;
        border-color: transparent !important;
        background: none !important;
        white-space: normal !important;
    }
    .nav-tab.active {
        box-shadow: 0 2px 10px rgba(212, 175, 55, 0.45) !important;
    }
}

/* ---------- Cards: club plaques ---------- */
.card, .leaderboard, .bookkeeper-panel, .year-section, .session-card, .activity-feed, .sessions-container {
    background: var(--plaque-grad) !important;
    border: 1px solid var(--felt-line) !important;
    border-radius: var(--radius) !important;
    box-shadow:
        inset 0 1px 0 rgba(242, 214, 124, 0.08),
        0 10px 30px rgba(0, 0, 0, 0.45) !important;
    color: var(--cream) !important;
    position: relative;
}

.card, .leaderboard { padding: 20px 16px !important; margin-bottom: 16px !important; }

/* gold pinstripe inner frame */
.card::before, .leaderboard::before {
    content: "";
    position: absolute; inset: 6px;
    border: 1px solid rgba(212, 175, 55, 0.14);
    border-radius: calc(var(--radius) - 5px);
    pointer-events: none;
}

.card-title, .leaderboard h1, .bookkeeper-panel h3 {
    font-family: var(--font-display) !important;
    font-weight: 700 !important;
    font-size: 1.15rem !important;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    background: none !important;
    -webkit-text-fill-color: currentColor !important;
    color: var(--gold-pale) !important;
    text-align: center;
    text-shadow: none !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 12px;
}
.card-title::before, .card-title::after {
    content: "";
    height: 1px;
    flex: 0 1 40px;
    background: linear-gradient(90deg, transparent, var(--gold-deep));
}
.card-title::after { background: linear-gradient(90deg, var(--gold-deep), transparent); }

/* generic paragraph + helper copy inside cards */
.card p, .leaderboard p, .modal-content p { color: var(--cream-dim); }

/* Recolor hardcoded inline pinks/greys from old HTML without touching markup */
[style*="color: #FF1493"] { color: var(--rose-bright) !important; }
[style*="color: #9370DB"] { color: var(--gold-pale) !important; }
[style*="color: #666"]    { color: var(--cream-dim) !important; }
[style*="background: rgba(255, 215, 0, 0.1)"] {
    background: rgba(212, 175, 55, 0.08) !important;
    border: 1px solid var(--felt-line) !important;
}

#loadingIndicator { color: var(--gold-pale) !important; }

/* ---------- Buttons: engraved brass ---------- */
.login-btn, .god-btn, .transfer-btn, .action-btn, .player-login-btn,
.session-btn, .add-year-btn, .filter-btn, .jukebox-btn, .hogwash-btn {
    font-family: var(--font-ui) !important;
    font-weight: 600 !important;
    letter-spacing: 0.035em !important;
    border-radius: 13px !important;
    border: 1px solid rgba(212, 175, 55, 0.4) !important;
    cursor: pointer;
    transition: transform 0.16s cubic-bezier(0.2, 0.8, 0.3, 1.1), box-shadow 0.22s ease, filter 0.22s ease !important;
    text-shadow: none !important;
    min-height: 48px;
    -webkit-tap-highlight-color: transparent;
}

.login-btn, .transfer-btn, .action-btn, .player-login-btn, .session-btn, .add-year-btn {
    background: linear-gradient(172deg, #e8cd74 0%, #d0a943 48%, #b68e2e 100%) !important;
    color: #1d150a !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35), 0 1px 3px rgba(212, 175, 55, 0.2), inset 0 1px 0 rgba(255, 251, 235, 0.45), inset 0 -2px 3px rgba(90, 62, 10, 0.25) !important;
}
.login-btn:hover, .transfer-btn:hover, .action-btn:hover, .player-login-btn:hover,
.session-btn:hover, .add-year-btn:hover {
    transform: translateY(-1px) !important;
    filter: brightness(1.05) saturate(1.05);
    box-shadow: 0 5px 16px rgba(0, 0, 0, 0.35), 0 2px 10px rgba(212, 175, 55, 0.3), inset 0 1px 0 rgba(255, 251, 235, 0.45), inset 0 -2px 3px rgba(90, 62, 10, 0.25) !important;
}
.login-btn:active, .transfer-btn:active, .action-btn:active, .player-login-btn:active,
.session-btn:active, .add-year-btn:active, .god-btn:active, .jukebox-btn:active, .filter-btn:active {
    transform: translateY(1px) scale(0.98) !important;
    filter: brightness(0.96);
    transition-duration: 0.06s !important;
}

/* GOD gets ecclesiastical ivory */
.god-btn {
    background: linear-gradient(165deg, #fffdf4 0%, #f0e6c8 55%, #d9c893 100%) !important;
    color: #5a4610 !important;
    border-color: var(--gold-bright) !important;
    box-shadow: 0 0 22px rgba(242, 214, 124, 0.35), inset 0 1px 0 #fff !important;
}

/* HOGWASH — the centerpiece: a gilded invitation to ruin */
.hogwash-btn {
    position: relative;
    overflow: hidden;
    background: linear-gradient(170deg, #123626 0%, #07150f 70%) !important;
    color: var(--gold-bright) !important;
    border: 1px solid var(--gold) !important;
    outline: 1px solid rgba(212, 175, 55, 0.35);
    outline-offset: 3px;
    font-family: var(--font-display) !important;
    font-size: 1.3rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.16em !important;
    padding: 16px 38px !important;
    border-radius: 14px !important;
    box-shadow: 0 8px 26px rgba(0, 0, 0, 0.5), 0 0 22px rgba(212, 175, 55, 0.18), inset 0 1px 0 rgba(242, 214, 124, 0.2) !important;
    animation: mbe-hogpulse 3s ease-in-out infinite !important;
}
.hogwash-btn::after {
    content: "";
    position: absolute;
    top: 0; bottom: 0; width: 55px;
    background: linear-gradient(100deg, transparent, rgba(242, 214, 124, 0.28), transparent);
    animation: mbe-sheen 3.4s ease-in-out infinite;
    pointer-events: none;
}
.hogwash-btn:hover { transform: translateY(-1px) scale(1.02) !important; box-shadow: 0 10px 30px rgba(0,0,0,0.55), 0 0 30px rgba(212, 175, 55, 0.35), inset 0 1px 0 rgba(242, 214, 124, 0.25) !important; }
@keyframes mbe-sheen {
    0%, 55% { left: -70px; }
    90%, 100% { left: 110%; }
}
@keyframes mbe-shimmer {
    0% { background-position: 0% 50%; }
    100% { background-position: 250% 50%; }
}
@keyframes mbe-hogpulse {
    0%, 100% { box-shadow: 0 8px 26px rgba(0, 0, 0, 0.5), 0 0 16px rgba(212, 175, 55, 0.14), inset 0 1px 0 rgba(242, 214, 124, 0.2); }
    50% { box-shadow: 0 8px 26px rgba(0, 0, 0, 0.5), 0 0 30px rgba(212, 175, 55, 0.32), inset 0 1px 0 rgba(242, 214, 124, 0.2); }
}

/* ---------- THE FATES: the card ritual ---------- */
.fate-stage {
    position: relative;
    min-height: 300px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 8px 0 4px;
}
.fate-instruction {
    font-family: var(--font-display);
    font-style: italic;
    font-size: 0.95rem;
    color: var(--gold-pale);
    text-align: center;
    margin-bottom: 16px;
    animation: pulse 2.5s infinite;
}
.fate-fan {
    display: flex;
    justify-content: center;
    gap: 0;
    perspective: 900px;
}
.fate-card {
    width: 74px;
    height: 116px;
    margin: 0 -8px;
    border-radius: 9px;
    cursor: pointer;
    position: relative;
    transform-style: preserve-3d;
    transition: transform 0.5s cubic-bezier(0.3, 0.9, 0.4, 1.1), opacity 0.4s ease, margin 0.4s ease;
    -webkit-tap-highlight-color: transparent;
}
.fate-fan .fate-card:nth-child(1) { transform: rotate(-14deg) translateY(12px); }
.fate-fan .fate-card:nth-child(2) { transform: rotate(-7deg) translateY(3px); }
.fate-fan .fate-card:nth-child(3) { transform: rotate(0deg); }
.fate-fan .fate-card:nth-child(4) { transform: rotate(7deg) translateY(3px); }
.fate-fan .fate-card:nth-child(5) { transform: rotate(14deg) translateY(12px); }
.fate-fan .fate-card:hover { transform: translateY(-10px) scale(1.06); z-index: 5; }

.fate-face {
    position: absolute;
    inset: 0;
    border-radius: 9px;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.fate-back {
    background:
        radial-gradient(circle at 50% 50%, rgba(212,175,55,0.22) 0%, rgba(212,175,55,0) 60%),
        repeating-linear-gradient(45deg, rgba(212,175,55,0.08) 0 3px, rgba(0,0,0,0) 3px 9px),
        linear-gradient(160deg, #17402c, #0a1f15);
    border: 1px solid var(--gold);
    box-shadow: 0 6px 16px rgba(0,0,0,0.5), inset 0 0 0 3px rgba(212,175,55,0.15);
}
.fate-back::after {
    content: "🐷";
    font-size: 1.5rem;
    filter: sepia(1) saturate(3) hue-rotate(-15deg) brightness(1.1);
    opacity: 0.85;
}
.fate-front {
    transform: rotateY(180deg);
    background: linear-gradient(165deg, #1a4530 0%, #0c2418 65%, #123626 100%);
    border: 1px solid var(--gold-bright);
    box-shadow: 0 10px 30px rgba(0,0,0,0.6), inset 0 0 0 3px rgba(212,175,55,0.25);
    padding: 6px;
    text-align: center;
}
.fate-numeral {
    font-family: var(--font-display);
    font-size: 0.6rem;
    letter-spacing: 0.25em;
    color: var(--gold);
    margin-bottom: 2px;
}
.fate-emblem { font-size: 2rem; line-height: 1.2; }
.fate-title {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    color: var(--gold-bright);
    text-transform: uppercase;
    margin-top: 3px;
    line-height: 1.25;
}

/* chosen card ascends and flips */
.fate-card.chosen {
    position: absolute !important;
    left: 50%; top: 44%;
    margin: 0;
    z-index: 20;
    width: 150px; height: 235px;
    transform: translate(-50%, -50%) rotateY(0deg) !important;
    transition: all 0.55s cubic-bezier(0.3, 0.8, 0.3, 1.05);
}
.fate-card.chosen.flipped { transform: translate(-50%, -50%) rotateY(180deg) !important; }
.fate-card.chosen .fate-numeral { font-size: 0.8rem; }
.fate-card.chosen .fate-emblem { font-size: 4rem; }
.fate-card.chosen .fate-title { font-size: 1rem; margin-top: 8px; }
.fate-card.chosen .fate-flavor {
    display: block;
    font-family: var(--font-display);
    font-style: italic;
    font-size: 0.68rem;
    color: var(--cream-dim);
    margin-top: 8px;
    padding: 0 8px;
    line-height: 1.45;
}
.fate-flavor { display: none; }
.fate-card.dismissed { opacity: 0; transform: translateY(60px) rotate(20deg) scale(0.7) !important; pointer-events: none; }

/* outcome-specific card faces */
.fate-front.fate-death {
    background: linear-gradient(165deg, #3d0b0b 0%, #1a0404 70%);
    border-color: #ff3b30;
    box-shadow: 0 0 40px rgba(255, 59, 48, 0.6), inset 0 0 0 3px rgba(255, 59, 48, 0.3);
}
.fate-front.fate-death .fate-title, .fate-front.fate-death .fate-numeral { color: #ff8a80; }
.fate-front.fate-hog {
    background: linear-gradient(165deg, #4a3608 0%, #2a1e04 60%, #56420f 100%);
    border-color: var(--gold-bright);
    box-shadow: 0 0 50px rgba(242, 214, 124, 0.7), inset 0 0 0 3px rgba(242, 214, 124, 0.4);
    animation: mbe-hogpulse 1.2s ease-in-out infinite;
}
.fate-front.fate-tempt {
    background: linear-gradient(165deg, #33104a 0%, #170624 70%);
    border-color: #ba68c8;
    box-shadow: 0 0 34px rgba(186, 104, 200, 0.5), inset 0 0 0 3px rgba(186, 104, 200, 0.3);
}
.fate-front.fate-tempt .fate-title { color: #e6c9ff; }

@keyframes fate-shake {
    0%, 100% { transform: translate(-50%, -50%) rotateY(180deg); }
    20% { transform: translate(-52%, -49%) rotateY(180deg) rotate(-2deg); }
    40% { transform: translate(-48%, -51%) rotateY(180deg) rotate(2deg); }
    60% { transform: translate(-51%, -49%) rotateY(180deg) rotate(-1.5deg); }
    80% { transform: translate(-49%, -51%) rotateY(180deg) rotate(1.5deg); }
}
.fate-card.chosen.flipped.doom { animation: fate-shake 0.5s ease-in-out 3; }

/* Jukebox: velvet lounge */
.jukebox-btn {
    background: linear-gradient(160deg, #3d1d55, #241238) !important;
    color: var(--gold-pale) !important;
    border-color: rgba(212, 175, 55, 0.4) !important;
    box-shadow: 0 4px 18px rgba(61, 29, 85, 0.6) !important;
}

/* Reset / danger-ish admin buttons keep semantic red but refined */
[style*="background: linear-gradient(45deg, #ff6b6b"],
[style*="background: linear-gradient(45deg, #ff0000"] {
    background: linear-gradient(160deg, #8e1b1b, #5d0f0f) !important;
    color: #ffd7d0 !important;
    border: 1px solid rgba(255, 99, 71, 0.5) !important;
}
[style*="background: linear-gradient(45deg, #9C27B0"] {
    background: linear-gradient(160deg, #4a2360, #2c1440) !important;
    color: #e6c9ff !important;
    border: 1px solid rgba(186, 104, 200, 0.5) !important;
}
[style*="background: linear-gradient(45deg, #666"] {
    background: var(--felt-600) !important;
    color: var(--cream-dim) !important;
    border: 1px solid var(--felt-line) !important;
}
[style*="background: linear-gradient(45deg, #4CAF50"] {
    background: linear-gradient(160deg, #1d5c33, #113a20) !important;
    color: #cdeed7 !important;
    border: 1px solid rgba(76, 175, 80, 0.45) !important;
}

/* Filter chips (activity page) */
.filter-btn {
    background: rgba(212, 175, 55, 0.07) !important;
    color: var(--cream-dim) !important;
    border: 1px solid var(--felt-line) !important;
    border-radius: 999px !important;
    min-height: 44px;
    font-size: 0.72rem !important;
}
.filter-btn.active {
    background: var(--gold-grad) !important;
    color: var(--felt-900) !important;
    border-color: var(--gold-bright) !important;
}

/* ---------- Leaderboard: the trophy room ---------- */
#leaderboardList { display: flex; flex-direction: column; gap: 10px; }

.player {
    background: linear-gradient(160deg, rgba(212,175,55,0.10), rgba(212,175,55,0.03)) !important;
    border: 1px solid var(--felt-line) !important;
    border-radius: 12px !important;
    padding: 13px 14px !important;
    margin: 0 !important;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: var(--cream) !important;
    box-shadow: inset 0 1px 0 rgba(242, 214, 124, 0.07) !important;
    transition: transform 0.15s ease !important;
    position: relative;
    overflow: hidden;
}
.player:hover { transform: translateX(3px) !important; background: linear-gradient(160deg, rgba(212,175,55,0.16), rgba(212,175,55,0.05)) !important; }

.player-name {
    font-family: var(--font-display) !important;
    font-weight: 600 !important;
    font-size: 1.05rem !important;
    color: var(--cream) !important;
    display: flex; align-items: center; gap: 8px;
    text-shadow: none !important;
}

.points, .player-score {
    font-family: var(--font-display) !important;
    font-weight: 700 !important;
    font-variant-numeric: tabular-nums;
    font-size: 1.2rem !important;
    color: var(--gold-bright) !important;
    text-shadow: none !important;
    display: flex; align-items: center; gap: 6px;
}

.pig-insult {
    font-family: var(--font-display) !important;
    font-style: italic;
    font-weight: 400 !important;
    font-size: 0.72rem !important;
    color: var(--rose-bright) !important;
    letter-spacing: 0.01em;
}

/* The reigning champion: gold plaque + shimmer sweep */
.player.leader {
    background: linear-gradient(160deg, rgba(242,214,124,0.28), rgba(212,175,55,0.10)) !important;
    border: 1px solid var(--gold) !important;
    box-shadow: 0 0 24px rgba(212, 175, 55, 0.25), inset 0 1px 0 rgba(255,255,255,0.15) !important;
}
.player.leader::after {
    content: "";
    position: absolute; top: 0; bottom: 0; width: 60px;
    background: linear-gradient(100deg, transparent, rgba(255, 253, 240, 0.22), transparent);
    animation: mbe-sweep 3.6s ease-in-out infinite;
}
@keyframes mbe-sweep {
    0%, 55% { left: -80px; }
    85%, 100% { left: 110%; }
}
.player.leader .player-name { color: var(--gold-bright) !important; }

/* The PIG: wallowing in mud, gently wobbling in shame */
.player.pig {
    background: linear-gradient(160deg, rgba(107, 74, 43, 0.55), rgba(62, 42, 23, 0.65)) !important;
    border: 1px dashed rgba(255, 79, 163, 0.45) !important;
    animation: mbe-wallow 4s ease-in-out infinite !important;
}
.player.pig::after {
    content: "🐽";
    position: absolute;
    right: -6px; bottom: -14px;
    font-size: 3.2rem;
    opacity: 0.14;
    transform: rotate(-18deg);
    pointer-events: none;
}
.player.pig .player-name { color: #e8b8d2 !important; }
.player.pig .points { color: var(--rose-bright) !important; }
@keyframes mbe-wallow {
    0%, 100% { transform: rotate(0deg); }
    25% { transform: rotate(-0.5deg); }
    75% { transform: rotate(0.5deg); }
}

/* GOD: celestial ledger row */
.player.god-player {
    background: linear-gradient(160deg, rgba(244, 233, 207, 0.10), rgba(244, 233, 207, 0.03)) !important;
    border: 1px solid rgba(244, 233, 207, 0.3) !important;
}
.player.god-player .player-name { color: #fdf6df !important; letter-spacing: 0.05em; }
.player.god-player .points { color: #fdf6df !important; }

.edit-score-btn {
    background: rgba(212, 175, 55, 0.15) !important;
    border: 1px solid var(--felt-line) !important;
    border-radius: 8px !important;
    color: var(--gold-pale) !important;
}

/* ---------- Modals: private card room ---------- */
.modal { background: rgba(4, 10, 7, 0.82) !important; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }

.modal-content {
    background: var(--plaque-grad) !important;
    border: 1px solid var(--gold-deep) !important;
    border-radius: 18px !important;
    color: var(--cream) !important;
    box-shadow: 0 0 0 1px rgba(242, 214, 124, 0.1), 0 30px 80px rgba(0, 0, 0, 0.7) !important;
    max-height: 88vh;
    overflow-y: auto;
}

.modal-content h2, .modal-content h3 {
    font-family: var(--font-display) !important;
    color: var(--gold-pale) !important;
    letter-spacing: 0.04em;
    text-shadow: none !important;
}

.close {
    color: var(--cream-dim) !important;
    background: rgba(212, 175, 55, 0.1) !important;
    border-radius: 50% !important;
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center;
    line-height: 1 !important;
}
.close:hover { color: var(--gold-bright) !important; background: rgba(212, 175, 55, 0.2) !important; }

/* ---------- Forms ---------- */
.form-group label {
    font-family: var(--font-ui) !important;
    font-size: 0.7rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: var(--gold-pale) !important;
}

input[type="text"], input[type="number"], input[type="tel"], textarea, select {
    background: rgba(5, 15, 10, 0.7) !important;
    border: 1px solid var(--felt-line) !important;
    border-radius: 10px !important;
    color: var(--cream) !important;
    font-family: var(--font-ui) !important;
    padding: 12px 14px !important;
    font-size: 16px !important; /* prevents iOS zoom-on-focus */
    min-height: 46px;
}
input:focus, textarea:focus, select:focus {
    outline: none !important;
    border-color: var(--gold) !important;
    box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.22) !important;
}
select {
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23d4af37' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 14px center !important;
    padding-right: 36px !important;
}

/* ---------- Member badge (was bottom status bar) → pinned to TOP ---------- */
.status-bar {
    top: 0 !important;
    bottom: auto !important;
    background: rgba(6, 17, 11, 0.9) !important;
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--felt-line) !important;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.45) !important;
    color: var(--cream) !important;
    font-family: var(--font-ui) !important;
    padding: calc(8px + env(safe-area-inset-top, 0px)) 16px 8px !important;
    font-size: 0.8rem !important;
}
.status-player { color: var(--gold-pale) !important; font-weight: 700 !important; letter-spacing: 0.06em; }
.status-points { color: var(--cream) !important; }
.status-logout {
    background: rgba(212, 175, 55, 0.14) !important;
    border: 1px solid var(--felt-line) !important;
    color: var(--gold-pale) !important;
    border-radius: 999px !important;
    padding: 5px 12px !important;
    font-size: 0.7rem !important;
}
body:has(.status-bar.visible) .container { padding-top: 46px; }

/* Floating toast: sit above the bottom nav */
.floating-status {
    bottom: calc(var(--nav-h) + env(safe-area-inset-bottom, 0px) + 16px) !important;
    background: rgba(17, 53, 38, 0.95) !important;
    border: 1px solid var(--gold-deep) !important;
    color: var(--gold-pale) !important;
    font-family: var(--font-ui) !important;
}

/* ---------- Activity feed: the club ledger ---------- */
.activity-feed { padding: 6px 10px !important; }

.activity-item {
    background: rgba(5, 15, 10, 0.45) !important;
    border: 1px solid rgba(212, 175, 55, 0.1) !important;
    border-left: 3px solid var(--gold-deep) !important;
    border-radius: 10px !important;
    margin: 8px 0 !important;
    padding: 11px 13px !important;
    color: var(--cream) !important;
}
.activity-item:hover { background: rgba(212, 175, 55, 0.07) !important; transform: none !important; }
.activity-item.hogwash  { border-left-color: var(--rose) !important; }
.activity-item.transfer { border-left-color: var(--gold) !important; }
.activity-item.admin    { border-left-color: var(--cream-faint) !important; }

.activity-time, .activity-date {
    font-family: var(--font-ui) !important;
    font-size: 0.62rem !important;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--cream-faint) !important;
}
.activity-text { color: var(--cream) !important; font-size: 0.88rem !important; }

/* ---------- Golf: the course ledger ---------- */
.session-card { padding: 16px !important; margin-bottom: 14px !important; }
.session-card:hover { border-color: var(--gold) !important; transform: translateY(-2px) !important; }

.session-title {
    font-family: var(--font-display) !important;
    color: var(--gold-pale) !important;
    font-weight: 700 !important;
    letter-spacing: 0.03em;
}

.team-info {
    color: var(--cream-dim) !important;
    background: rgba(5, 15, 10, 0.45) !important;
    border: 1px solid var(--felt-line) !important;
    border-radius: 10px !important;
}
.team-players-prominent { color: var(--cream) !important; font-weight: 600 !important; }
.team-score { color: var(--gold-bright) !important; font-family: var(--font-display) !important; font-weight: 700 !important; }

.scorecard-container { border-radius: 12px; overflow-x: auto; }
.scorecard-table {
    background: rgba(5, 15, 10, 0.55) !important;
    border: 1px solid var(--felt-line) !important;
    border-radius: 12px;
    color: var(--cream) !important;
}
.scorecard-table th, .scorecard-table td {
    border-color: rgba(212, 175, 55, 0.14) !important;
    color: var(--cream) !important;
    font-family: var(--font-ui) !important;
}
.scorecard-table th, .scorecard-table .hole-header {
    background: rgba(212, 175, 55, 0.12) !important;
    color: var(--gold-pale) !important;
    font-size: 0.68rem !important;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.scorecard-table .total-col {
    background: rgba(212, 175, 55, 0.16) !important;
    color: var(--gold-bright) !important;
    font-family: var(--font-display) !important;
    font-weight: 700 !important;
}

/* Score entry must stay legible inside the dark clubhouse modal. */
#scoreModal .scorecard-table .team-row {
    background: #102b1d !important;
}
#scoreModal .scorecard-table .team-row:nth-child(even) {
    background: #173824 !important;
}
#scoreModal .scorecard-table .team-row td {
    background: transparent !important;
    color: #fff4cf !important;
}
#scoreModal .scorecard-table .team-row td:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
    min-width: 118px;
    background: #173824 !important;
    box-shadow: 7px 0 12px rgba(0, 0, 0, 0.22);
}
#scoreModal .scorecard-table .team-row:nth-child(even) td:first-child {
    background: #20482f !important;
}
#scoreModal .scorecard-table .team-row strong {
    color: #fff8df !important;
}
#scoreModal .scorecard-table .team-row small {
    color: #f2d67c !important;
}

#scoreModal .team-score-input {
    padding: 12px;
    border: 1px solid rgba(212, 175, 55, 0.38);
    border-radius: 14px;
    background: rgba(3, 12, 8, 0.46);
}
#scoreModal .team-score-input > label {
    color: #fff1b8 !important;
    font-size: 1rem;
    line-height: 1.25;
}
#scoreModal .hole-input-group {
    padding: 7px 5px;
    border: 1px solid rgba(212, 175, 55, 0.25);
    border-radius: 10px;
    background: rgba(255, 248, 220, 0.06);
}
#scoreModal .hole-label {
    color: #fff1b8 !important;
    font-weight: 800;
    opacity: 1;
}
#scoreModal .hole-input {
    min-height: 48px;
    padding: 8px 4px !important;
    border: 2px solid #d4af37 !important;
    border-radius: 8px !important;
    background: #fffdf5 !important;
    color: #143522 !important;
    -webkit-text-fill-color: #143522;
    caret-color: #143522;
    font-size: 1.15rem !important;
    font-weight: 900;
    opacity: 1;
    box-shadow: inset 0 1px 2px rgba(20, 53, 34, 0.12);
}
#scoreModal .hole-input:focus {
    border-color: #fff1b8 !important;
    background: #ffffff !important;
    box-shadow: 0 0 0 3px rgba(242, 214, 124, 0.3) !important;
}
#scoreModal .tp-check {
    min-height: 28px;
    color: #f2d67c !important;
    font-size: 0.7rem;
    line-height: 1.1;
    opacity: 1;
}
#scoreModal .tp-check input {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
}
#scoreModal .tp-check.cursed {
    color: #ffaaa3 !important;
}

.hole-label { color: var(--gold-pale) !important; }
.ctp-flag { filter: grayscale(0.4) brightness(1.1); }
.ctp-flag.won { filter: none; text-shadow: 0 0 12px rgba(212, 175, 55, 0.8) !important; }

.live-rehearsal-banner {
    align-items: center;
    background: linear-gradient(135deg, #7f1d1d, #b42318) !important;
    border: 2px solid #ffaaa3 !important;
    border-radius: 14px;
    box-shadow: 0 0 24px rgba(255, 71, 87, 0.3);
    color: #fff8df !important;
    flex-direction: column;
    gap: 4px;
    margin: 0 0 16px;
    padding: 13px 16px;
    text-align: center;
}
.live-rehearsal-banner strong {
    color: #ffffff !important;
    font-family: var(--font-display);
    letter-spacing: 0.05em;
}
.live-rehearsal-banner span {
    color: #ffe4df !important;
    font-size: 0.78rem;
    line-height: 1.4;
}
.live-rehearsal-panel {
    background: rgba(5, 15, 10, 0.65);
    border: 1px dashed rgba(242, 214, 124, 0.72);
    border-radius: 14px;
    margin: 14px auto;
    max-width: 620px;
    padding: 14px;
}
.live-rehearsal-panel p {
    color: var(--cream-dim) !important;
    font-size: 0.82rem;
    line-height: 1.4;
    margin: 6px auto 12px;
}
.live-rehearsal-panel p strong {
    color: #ffaaa3 !important;
}
.live-rehearsal-start {
    background: linear-gradient(135deg, #9a6700, #d4af37) !important;
    color: #102b1d !important;
}
.live-rehearsal-restore {
    animation: pulse 2s infinite;
    background: linear-gradient(135deg, #b42318, #ff4757) !important;
    color: #ffffff !important;
}

/* ---------- History: the trophy cabinet ---------- */
.year-section { padding: 18px 16px !important; margin-bottom: 16px !important; }

.year-header {
    min-height: 48px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-display) !important;
    color: var(--gold-pale) !important;
    background: none !important;
    text-shadow: none !important;
    letter-spacing: 0.05em;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
.year-header::after {
    content: "−";
    margin-left: auto;
    color: var(--gold);
    font-family: var(--font-ui);
    font-size: 1.15rem;
}
.year-section.is-collapsed .year-header::after { content: "+"; }
.year-section.is-collapsed .year-content { display: none; }
.history-tap-note {
    margin: -4px 0 14px;
    color: var(--cream-faint);
    font-family: var(--font-display);
    font-size: 0.76rem;
    font-style: italic;
    text-align: center;
}
.history-rules > summary,
.sessions-container > summary {
    list-style: none;
    cursor: pointer;
    min-height: 52px;
    padding: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
    -webkit-tap-highlight-color: transparent;
}
.history-rules > summary::-webkit-details-marker,
.sessions-container > summary::-webkit-details-marker { display: none; }
.history-rules > summary::after,
.sessions-container > summary::after {
    content: "+";
    margin-left: auto;
    color: var(--gold);
    font-size: 1.2rem;
}
.history-rules[open] > summary::after,
.sessions-container[open] > summary::after { content: "−"; }
.history-rules > summary .card-title,
.sessions-container > summary .card-title {
    margin: 0 !important;
    flex: 1;
}
.history-rules-body { padding: 0 16px 16px; }
.rulebook-panel {
    background: rgba(244, 233, 207, 0.96) !important;
    border: 2px solid var(--gold-deep) !important;
    border-radius: 12px !important;
    padding: 18px !important;
    color: #243b2e !important;
}
.rulebook-panel ul { color: #243b2e !important; }
.rulebook-panel strong { color: #123626 !important; }
.rulebook-new {
    padding: 8px 10px;
    border-radius: 8px;
    background: rgba(212, 175, 55, 0.15);
}

.winner-card, .mvp-card, .pig-card, .stat-card {
    border-radius: 12px !important;
    border: 1px solid var(--felt-line) !important;
    color: var(--cream) !important;
}

.mvp-card {
    background: linear-gradient(160deg, rgba(242, 214, 124, 0.2), rgba(212, 175, 55, 0.06)) !important;
    border-color: var(--gold) !important;
    box-shadow: 0 0 22px rgba(212, 175, 55, 0.18) !important;
}
.pig-card {
    background: linear-gradient(160deg, rgba(107, 74, 43, 0.5), rgba(62, 42, 23, 0.6)) !important;
    border: 1px dashed rgba(255, 79, 163, 0.4) !important;
}

.winner-title {
    font-family: var(--font-ui) !important;
    font-size: 0.62rem !important;
    letter-spacing: 0.24em !important;
    text-transform: uppercase !important;
    color: var(--cream-faint) !important;
}
.winner-name {
    font-family: var(--font-display) !important;
    font-weight: 800 !important;
    color: var(--gold-bright) !important;
    text-shadow: none !important;
}
.pig-card .winner-name { color: var(--rose-bright) !important; }

.stat-card { background: rgba(5, 15, 10, 0.45) !important; }
.stat-number {
    font-family: var(--font-display) !important;
    font-weight: 800 !important;
    color: var(--gold-bright) !important;
}
.stat-label {
    font-size: 0.6rem !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    color: var(--cream-faint) !important;
}

/* ---------- Danger Zone stays apocalyptic (it has earned it) ---------- */
#dangerZoneAlert .modal-content {
    border: 2px solid var(--danger) !important;
    box-shadow: 0 0 60px rgba(255, 59, 48, 0.55) !important;
}

/* ---------- Slots / wheel polish ---------- */
.slot-reel {
    border: 1px solid var(--gold-deep) !important;
    border-radius: 12px !important;
    background: rgba(5, 15, 10, 0.7) !important;
}
.slot-option.winner {
    background: var(--gold-grad) !important;
    color: var(--felt-900) !important;
}

/* ---------- Misc semantic colors ---------- */
.success { color: #7fd494 !important; }
.error   { color: #ff8a80 !important; }
.warning { color: var(--gold-bright) !important; }
.info    { color: var(--cream-dim) !important; }

/* ---------- Season banner + Year VII countdown ---------- */
.season-banner {
    text-align: center;
    margin: 4px 0 16px;
    padding: 12px 14px;
    border: 1px solid var(--felt-line);
    border-radius: 12px;
    background: rgba(5, 15, 10, 0.4);
}
.season-label {
    font-family: var(--font-ui);
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--gold-pale);
    text-indent: 0.3em;
}
.season-label.live { color: #8fd6a5; }
.season-sub {
    font-family: var(--font-display);
    font-style: italic;
    font-size: 0.78rem;
    color: var(--cream-faint);
    margin-top: 3px;
}
.season-countdown { margin-top: 10px; }
.cd-title {
    font-size: 0.58rem;
    font-weight: 600;
    letter-spacing: 0.26em;
    text-transform: uppercase;
    color: var(--rose-bright);
    text-indent: 0.26em;
}
.cd-grid {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 6px;
}
.cd-cell {
    min-width: 58px;
    padding: 7px 4px 5px;
    border: 1px solid var(--felt-line);
    border-radius: 10px;
    background: linear-gradient(180deg, rgba(212,175,55,0.10), rgba(212,175,55,0.02));
}
.cd-num {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 1.45rem;
    line-height: 1;
    color: var(--gold-bright);
    font-variant-numeric: tabular-nums;
}
.cd-unit {
    font-size: 0.52rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--cream-faint);
    margin-top: 3px;
}
.cd-sub {
    font-family: var(--font-display);
    font-style: italic;
    font-size: 0.72rem;
    color: var(--cream-dim);
    margin-top: 8px;
}
.season-armed {
    font-family: var(--font-display);
    font-size: 0.95rem;
    color: var(--gold-bright);
    margin-top: 8px;
    animation: mbe-hogpulse 2s ease-in-out infinite;
    border-radius: 10px;
    padding: 6px;
}

/* ---------- Parlour ---------- */
.parlour-card summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 4px 2px;
    -webkit-tap-highlight-color: transparent;
}
.parlour-card summary::-webkit-details-marker { display: none; }
.parlour-emoji { font-size: 1.7rem; }
.parlour-name {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.05rem;
    letter-spacing: 0.04em;
    color: var(--gold-pale);
}
.parlour-tag {
    font-size: 0.68rem;
    color: var(--cream-faint);
    font-style: italic;
    font-family: var(--font-display);
}
.parlour-card summary::after {
    content: "❧";
    margin-left: auto;
    color: var(--gold-deep);
    transition: transform 0.25s ease;
}
.parlour-card[open] summary::after { transform: rotate(90deg); }
.parlour-body { padding-top: 12px; }

.pp-chiprow { display: flex; flex-wrap: wrap; gap: 7px; margin: 8px 0; }
.pp-chip {
    font-family: var(--font-ui);
    font-size: 0.78rem;
    font-weight: 600;
    padding: 9px 14px;
    border-radius: 999px;
    border: 1px solid var(--felt-line);
    background: rgba(212, 175, 55, 0.07);
    color: var(--cream);
    cursor: pointer;
    min-height: 44px;
    -webkit-tap-highlight-color: transparent;
}
.pp-chip.sel {
    background: var(--gold-grad);
    color: var(--felt-900);
    border-color: var(--gold-bright);
    font-weight: 700;
}
.pp-chip.rose.sel { background: linear-gradient(160deg, var(--rose), var(--rose-deep)); color: #fff; border-color: var(--rose-bright); }

/* Golf history stays out of the way until somebody opens the vault. */
.sessions-container {
    padding: 0 !important;
    overflow: hidden;
}
.sessions-container #sessionsDisplay,
.sessions-container #golfYearSelector {
    margin-left: 16px;
    margin-right: 16px;
}
.sessions-container #sessionsDisplay { margin-bottom: 16px; }
.sessions-summary-note {
    color: var(--cream-faint);
    font-family: var(--font-display);
    font-size: 0.7rem;
    font-style: italic;
    text-align: center;
}

.pp-panel {
    border: 1px solid var(--felt-line);
    border-radius: 12px;
    background: rgba(5, 15, 10, 0.4);
    padding: 12px;
    margin: 10px 0;
}
.pp-label {
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--gold-pale);
    margin: 8px 0 4px;
}
.pp-note { font-size: 0.74rem; color: var(--cream-faint); font-style: italic; }
.pp-big-btn {
    display: block;
    width: 100%;
    padding: 13px;
    margin: 8px 0;
    font-size: 0.95rem;
}
.pp-vote-row { display: flex; gap: 10px; margin: 10px 0; }
.pp-vote-row button { flex: 1; }
.pp-guilty {
    background: linear-gradient(165deg, #a02525, #6d1414) !important;
    color: #ffd9d3 !important;
    border: 1px solid rgba(255, 110, 90, 0.5) !important;
}
.pp-innocent {
    background: linear-gradient(165deg, #1d5c33, #113a20) !important;
    color: #cdeed7 !important;
    border: 1px solid rgba(76, 175, 80, 0.45) !important;
}
.pp-tally {
    display: flex;
    justify-content: center;
    gap: 18px;
    font-family: var(--font-display);
    font-size: 1.1rem;
    color: var(--cream);
    margin: 6px 0;
}
.pp-verdict {
    text-align: center;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 1.5rem;
    margin: 10px 0;
    color: var(--gold-bright);
}
.pp-verdict.guilty { color: #ff8a80; }

.pig-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 12px 0; }
.pig-cell {
    aspect-ratio: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    font-size: 2.2rem;
    border: 1px solid var(--felt-line);
    border-radius: 14px;
    background: rgba(212, 175, 55, 0.05);
    cursor: pointer;
    transition: transform 0.12s ease, background 0.2s ease;
    -webkit-tap-highlight-color: transparent;
}
.pig-cell .pc-owner { font-size: 0.66rem; font-weight: 700; color: var(--gold-pale); font-family: var(--font-ui); min-height: 0.9em; }
.pig-cell.scan { background: rgba(242, 214, 124, 0.25); transform: scale(1.06); }
.pig-cell.doomed {
    background: linear-gradient(160deg, #a02525, #6d1414);
    border-color: #ff6e5a;
    animation: mbe-squealshake 0.4s ease-in-out 3;
}
@keyframes mbe-squealshake {
    0%, 100% { transform: rotate(0) scale(1.05); }
    25% { transform: rotate(-6deg) scale(1.1); }
    75% { transform: rotate(6deg) scale(1.1); }
}

.award-card {
    border: 1px solid var(--gold);
    border-radius: 12px;
    background: linear-gradient(160deg, rgba(242, 214, 124, 0.16), rgba(212, 175, 55, 0.04));
    padding: 12px 14px;
    margin: 8px 0;
}
.award-title {
    font-size: 0.6rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--cream-faint);
}
.award-winner {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 1.2rem;
    color: var(--gold-bright);
}
.award-stat { font-size: 0.76rem; color: var(--cream-dim); font-style: italic; }

.debt-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 9px 12px;
    border: 1px solid var(--felt-line);
    border-radius: 10px;
    margin: 6px 0;
    background: rgba(5, 15, 10, 0.4);
}
.debt-interest {
    font-size: 0.62rem;
    font-weight: 700;
    color: #ff8a80;
    border: 1px solid rgba(255, 110, 90, 0.5);
    border-radius: 999px;
    padding: 2px 8px;
}

/* ---------- Accessibility & motion ---------- */
:focus-visible { outline: 2px solid var(--gold) !important; outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
