
    @font-face {
      font-family: 'Univers';
      src: url('/fonts/univers-light.woff2') format('woff2'),
           url('/fonts/univers-light.ttf') format('truetype');
      font-weight: 300;
      font-style: normal;
      font-display: swap;
    }
    @font-face {
      font-family: 'Univers';
      src: url('/fonts/univers-regular.woff2') format('woff2'),
           url('/fonts/univers-regular.ttf') format('truetype');
      font-weight: 400;
      font-style: normal;
      font-display: swap;
    }
    @font-face {
      font-family: 'Univers';
      src: url('/fonts/univers-bold.woff2') format('woff2'),
           url('/fonts/univers-bold.ttf') format('truetype');
      font-weight: 700;
      font-style: normal;
      font-display: swap;
    }
    @font-face {
      font-family: 'Univers Condensed';
      src: url('/fonts/univers-condensed.woff2') format('woff2'),
           url('/fonts/univers-condensed.ttf') format('truetype');
      font-weight: 400;
      font-style: normal;
      font-display: swap;
    }
    @font-face {
      font-family: 'Univers Condensed';
      src: url('/fonts/univers-bold-condensed.woff2') format('woff2'),
           url('/fonts/univers-bold-condensed.ttf') format('truetype');
      font-weight: 700;
      font-style: normal;
      font-display: swap;
    }

    :root {
      --bg:        #111111;
      --surface:   #1a1a1a;
      --surface2:  #242424;
      --border:    #333333;
      --accent:    #a0a0a0;
      --accent2:   #888888;
      --text:      #e8e8e8;
      --text-muted:#808080;
      --bg-contrast: #111111;
      --venue-hs-bg:   #141414;
      --venue-wynn-bg: #141414;
      --venue-aria-bg: #141414;
      --venue-gn-bg:   #141414;
      --hover-overlay: rgba(255,255,255,0.04);
      --serif:     'Libre Baskerville', Georgia, serif;
      --radius:    12px;
      --radius-sm: 8px;
      --tab-h:     56px;
      --header-h:  60px;
      /* Venue brand colors — muted for dark mode */
      --venue-wsop:          #e8e8e8;
      --venue-wsop-cond:     #999;
      --venue-ipo:           #1a6b3c;
      --venue-personal:      #4a9eff;
      --venue-wynn:          #cc0000;
      --venue-aria:          #5a3a9a;
      --venue-golden-nugget: #7a6520;
      --venue-resorts-world: #2a7a72;
      --venue-south-point:   #5e4430;
      --venue-orleans:       #944828;
      --venue-mgm-grand:     #2a6a3e;
      --venue-mgm-nh:        #8a7020;
      --venue-ts:            #8a6508;
      --venue-tch:           #a0522d;
      --venue-caesars:       #b8962e;
      --venue-hardrock:      #1a9e9e;
      --venue-wsope:         #1a3c6e;
      --venue-venetian:      #3b0a0a;
      --venue-borgata:       #6b21a8;
      --venue-foxwoods:      #4a2d7a;
      --venue-thunder-valley:#d4a017;
      --venue-bellagio:      #c9a867;
      --venue-lodge:         #2d5a27;
      --venue-bestbet:       #1a73e8;
      --venue-ballys:        #b91c1c;
      --venue-cherokee:      #e91e90;
      --venue-choctaw:       #dc2626;
      --venue-tunica:        #0d6efd;
      --venue-wsopc-lv:      #d4a017;
    }

    [data-theme="light"] {
      --bg:        #f5f5f5;
      --surface:   #ffffff;
      --surface2:  #ebebeb;
      --border:    #d0d0d0;
      --accent:    #555555;
      --accent2:   #777777;
      --text:      #1a1a1a;
      --text-muted:#888888;
      --bg-contrast: #ffffff;
      --venue-hs-bg:   #eeeeee;
      --venue-wynn-bg: #eeeeee;
      --venue-aria-bg: #eeeeee;
      --venue-gn-bg:   #eeeeee;
      --hover-overlay: rgba(0,0,0,0.04);
      /* Venue brand colors — full saturation for light mode */
      --venue-wsop:          #111111;
      --venue-wsop-cond:     #444;
      --venue-ipo:           #0d8a3e;
      --venue-personal:      #2563eb;
      --venue-wynn:          #cc0000;
      --venue-aria:          #6d28d9;
      --venue-golden-nugget: #92700a;
      --venue-resorts-world: #0d9488;
      --venue-south-point:   #6b4226;
      --venue-orleans:       #c2410c;
      --venue-mgm-grand:     #15803d;
      --venue-mgm-nh:        #b8860b;
      --venue-ts:            #7a5a06;
      --venue-tch:           #b5603a;
      --venue-caesars:       #9a7a20;
      --venue-hardrock:      #0d8a8a;
      --venue-wsope:         #1a4a8c;
      --venue-venetian:      #5a1515;
      --venue-borgata:       #7c3aed;
      --venue-foxwoods:      #5b37a0;
      --venue-thunder-valley:#c89c10;
      --venue-bellagio:      #a08540;
      --venue-lodge:         #1a8a1a;
      --venue-bestbet:       #1565c0;
      --venue-ballys:        #dc2626;
      --venue-cherokee:      #d81b7f;
      --venue-choctaw:       #e53935;
      --venue-tunica:        #0d6efd;
      --venue-wsopc-lv:      #d4a017;
    }

    /* Dusk theme — deep navy/blue dark variant */
    [data-theme="dusk"] {
      --bg:        #0d1525;
      --surface:   #141e33;
      --surface2:  #1c2840;
      --border:    #2a3a58;
      --accent:    #8898b8;
      --accent2:   #6878a0;
      --text:      #d8dce8;
      --text-muted:#6878a0;
      --bg-contrast: #0d1525;
      --venue-hs-bg:   #121a2a;
      --venue-wynn-bg: #121a2a;
      --venue-aria-bg: #121a2a;
      --venue-gn-bg:   #121a2a;
      --hover-overlay: rgba(100,150,255,0.06);
      /* Venue brand colors — same as dark mode */
      --venue-wsop:          #e8e8e8;
      --venue-wsop-cond:     #999;
      --venue-ipo:           #1a6b3c;
      --venue-personal:      #4a9eff;
      --venue-wynn:          #cc0000;
      --venue-aria:          #5a3a9a;
      --venue-golden-nugget: #7a6520;
      --venue-resorts-world: #2a7a72;
      --venue-south-point:   #5e4430;
      --venue-orleans:       #944828;
      --venue-mgm-grand:     #2a6a3e;
      --venue-mgm-nh:        #8a7020;
      --venue-ts:            #8a6508;
      --venue-tch:           #a0522d;
      --venue-caesars:       #b8962e;
      --venue-hardrock:      #1a9e9e;
      --venue-wsope:         #1a3c6e;
      --venue-venetian:      #3b0a0a;
      --venue-borgata:       #6b21a8;
      --venue-foxwoods:      #4a2d7a;
      --venue-thunder-valley:#d4a017;
      --venue-bellagio:      #c9a867;
      --venue-lodge:         #2d5a27;
      --venue-bestbet:       #1a73e8;
      --venue-ballys:        #b91c1c;
      --venue-cherokee:      #e91e90;
      --venue-choctaw:       #dc2626;
      --venue-tunica:        #0d6efd;
      --venue-wsopc-lv:      #d4a017;
    }

    /* Cloudy theme — muted grey light variant */
    [data-theme="cloudy"] {
      --bg:        #cbcbcb;
      --surface:   #d6d6d6;
      --surface2:  #c8c8c8;
      --border:    #a0a0a0;
      --accent:    #505050;
      --accent2:   #686868;
      --text:      #1a1a1a;
      --text-muted:#606060;
      --bg-contrast: #c8c8c8;
      --venue-hs-bg:   #c4c4c4;
      --venue-wynn-bg: #c4c4c4;
      --venue-aria-bg: #c4c4c4;
      --venue-gn-bg:   #c4c4c4;
      --hover-overlay: rgba(0,0,0,0.06);
      /* Venue brand colors — full saturation for light variant */
      --venue-wsop:          #111111;
      --venue-wsop-cond:     #444;
      --venue-ipo:           #0d8a3e;
      --venue-personal:      #2563eb;
      --venue-wynn:          #cc0000;
      --venue-aria:          #6d28d9;
      --venue-golden-nugget: #92700a;
      --venue-resorts-world: #0d9488;
      --venue-south-point:   #6b4226;
      --venue-orleans:       #c2410c;
      --venue-mgm-grand:     #15803d;
      --venue-mgm-nh:        #b8860b;
      --venue-ts:            #7a5a06;
      --venue-tch:           #b5603a;
      --venue-caesars:       #9a7a20;
      --venue-hardrock:      #0d8a8a;
      --venue-wsope:         #1a4a8c;
      --venue-venetian:      #5a1515;
      --venue-borgata:       #7c3aed;
      --venue-foxwoods:      #5b37a0;
      --venue-thunder-valley:#c89c10;
      --venue-bellagio:      #a08540;
      --venue-lodge:         #1a8a1a;
      --venue-bestbet:       #1565c0;
      --venue-ballys:        #dc2626;
      --venue-cherokee:      #d81b7f;
      --venue-choctaw:       #e53935;
      --venue-tunica:        #0d6efd;
      --venue-wsopc-lv:      #d4a017;
    }

    /* High contrast — dark */
    [data-contrast="high"] {
      --bg:        #000000;
      --surface:   #0a0a0a;
      --surface2:  #1a1a1a;
      --border:    #555555;
      --text:      #ffffff;
      --text-muted:#b0b0b0;
      --hover-overlay: rgba(255,255,255,0.07);
    }

    /* High contrast — light */
    [data-theme="light"][data-contrast="high"] {
      --bg:        #ffffff;
      --surface:   #ffffff;
      --surface2:  #e0e0e0;
      --border:    #555555;
      --text:      #000000;
      --text-muted:#444444;
      --hover-overlay: rgba(0,0,0,0.08);
    }

    /* High contrast — dusk */
    [data-theme="dusk"][data-contrast="high"] {
      --bg:        #060c18;
      --surface:   #0c1528;
      --surface2:  #142038;
      --border:    #4060a0;
      --text:      #f0f2fa;
      --text-muted:#90a0c0;
      --hover-overlay: rgba(100,150,255,0.10);
    }

    /* High contrast — cloudy */
    [data-theme="cloudy"][data-contrast="high"] {
      --bg:        #d8d8d8;
      --surface:   #d0d0d0;
      --surface2:  #c0c0c0;
      --border:    #666666;
      --text:      #000000;
      --text-muted:#404040;
      --hover-overlay: rgba(0,0,0,0.10);
    }

    [data-serif="univers"] {
      --serif: 'Univers', 'Helvetica Neue', Arial, sans-serif;
    }
    [data-serif="helvetica"] {
      --serif: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    }

    * { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }

    html, body {
      height: 100%;
      height: -webkit-fill-available;
      overflow: hidden;
      overscroll-behavior: none;
    }

    body {
      font-family: 'Univers Condensed', 'Univers', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
      background: var(--surface);
      color: var(--text);
      font-size: 16px;
      line-height: 1.5;
    }

    button, input, select, textarea { font-family: inherit; }

    /* ── Layout shell ── */
    #root { position: fixed; top: 0; left: 0; right: 0; bottom: calc(0px - env(safe-area-inset-bottom, 0px)); display: flex; flex-direction: column; background: var(--surface); }

    .app-shell {
      display: flex; flex-direction: column; overflow: hidden;
      flex: 1;
      padding-top: env(safe-area-inset-top, 0px);
      padding-bottom: env(safe-area-inset-bottom, 0px);
    }

    .top-bar {
      height: var(--header-h);
      background: var(--surface);
      border-bottom: 1px solid var(--border);
      display: flex;
      align-items: center;
      position: relative;
      justify-content: space-between;
      padding-left: 16px;
      padding-right: 16px;
      flex-shrink: 0;
      z-index: 100;
    }

    .top-bar-title {
      display: flex;
      flex-direction: column;
    }

    .top-bar-title h1 {
      font-family: var(--serif);
      font-size: 0.95rem;
      font-weight: 700;
      color: var(--text);
      line-height: 1.2;
      letter-spacing: -0.05em;
    }

    .top-bar-title small {
      font-size: 0.7rem;
      color: var(--text-muted);
    }

    .top-bar-actions { display: flex; align-items: center; gap: 6px; overflow: hidden; }
    .top-bar-actions .btn-icon {
      width: 32px; height: 32px; min-width: 32px;
      padding: 0; display: flex; align-items: center; justify-content: center;
      border-radius: 50%;
    }
    .top-bar-actions .btn-icon svg { width: 17px; height: 17px; }

    .username-chip {
      font-size: 0.8rem;
      color: var(--text-muted);
      max-width: 100px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      cursor: pointer;
      transition: color 0.15s;
      font-family: inherit;
    }
    .username-chip:hover { color: var(--text); }

    /* ── Live Update dropdown ── */
    .live-update-btn { padding: 6px 8px !important; min-width: 0; }
    .live-update-btn.has-update { color: #22c55e; }

    @keyframes luSlideDown {
      from { opacity: 0; transform: translateY(-12px); }
      to { opacity: 1; transform: translateY(0); }
    }
    @keyframes luSlideIn {
      from { opacity: 0; transform: translateX(-12px); }
      to { opacity: 1; transform: translateX(0); }
    }
    .dropdown-backdrop {
      position: fixed; inset: 0; z-index: 99;
      background: rgba(0,0,0,0.45);
    }

    .live-update-panel {
      position: fixed;
      width: 300px;
      z-index: 100;
      background: var(--surface);
      border: 1.5px solid var(--border);
      border-radius: var(--radius-sm);
      padding: 12px;
      display: flex;
      flex-direction: column;
      gap: 8px;
      box-shadow: 0 4px 12px rgba(0,0,0,0.3);
      overflow-y: auto;
    }
    .live-update-panel > div,
    .live-update-panel > button {
      animation: none;
    }

    .live-update-panel select,
    .live-update-panel input[type="text"],
    .live-update-panel input[type="number"] {
      padding: 6px 8px;
      border: 1.5px solid var(--border);
      border-radius: var(--radius-sm);
      background: var(--bg);
      color: var(--text);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.8rem;
      width: 100%;
      box-sizing: border-box;
    }
    .live-update-panel input:focus {
      outline: none;
      border-color: var(--accent);
    }
    .live-update-field.bag-highlight input {
      border-color: #22c55e;
    }
    .live-update-panel input[type="number"] { -moz-appearance: textfield; }
    .live-update-panel input[type="number"]::-webkit-inner-spin-button,
    .live-update-panel input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

    .live-update-row {
      display: flex;
      gap: 6px;
      align-items: center;
    }
    .live-update-row .live-update-field {
      animation: none;
    }
    .live-update-field {
      display: flex;
      flex-direction: column;
      gap: 2px;
      flex: 1;
    }
    .live-update-field label {
      font-size: 0.6rem;
      color: var(--text-muted);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      text-transform: uppercase;
      letter-spacing: 0.5px;
    }
    .live-update-toggle {
      display: flex;
      align-items: center;
      gap: 5px;
      font-size: 0.72rem;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      color: var(--text);
      cursor: pointer;
      user-select: none;
      white-space: nowrap;
    }
    .live-update-row:has(.live-update-field) > .live-update-toggle {
      margin-top: 16px;
    }
    .live-update-toggle input[type="checkbox"] {
      accent-color: var(--accent);
      width: 14px;
      height: 14px;
    }
    .live-update-row-indent {
      padding-left: 19px;
    }

    .live-update-last {
      font-size: 0.7rem;
      color: var(--text-muted);
      padding: 4px 8px;
      background: var(--surface2, var(--surface));
      border-radius: 4px;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
    }

    .live-update-empty {
      font-size: 0.8rem;
      color: var(--text-muted);
      text-align: center;
      padding: 8px;
    }

    .live-update-tournament-label {
      font-size: 0.72rem;
      color: var(--text-muted);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    /* ── Camera overlay ── */
    .camera-overlay { position:fixed; inset:0; z-index:9999; background:#000; overflow:hidden; }
    .camera-overlay video { position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; touch-action:none; }
    .camera-overlay .camera-stats-bar {
      position:absolute; bottom:60px; left:0; right:0;
      background:rgba(0,0,0,0.6); padding:10px 16px; backdrop-filter:blur(4px);
    }
    .camera-overlay .camera-stats-bar .tournament-name { font-size:0.75rem; color:#fff; opacity:0.8; font-family:'Univers Condensed','Univers',sans-serif; }
    .camera-overlay .camera-stats-bar .stats-line { font-size:1.1rem; color:#22c55e; font-weight:600; font-family:'Univers Condensed','Univers',sans-serif; margin-top:2px; }
    .camera-overlay .camera-watermark { position:absolute; top:12px; left:16px; font-size:0.6rem; color:rgba(255,255,255,0.5); font-family:'Univers Condensed','Univers',sans-serif; letter-spacing:0.5px; }
    .camera-overlay .camera-actions {
      position:absolute; bottom:0; left:0; right:0;
      display:flex; justify-content:center; gap:20px; padding:14px; background:rgba(0,0,0,0.8);
    }
    .camera-overlay .camera-actions button {
      padding:10px 24px; border-radius:24px; border:none;
      font-family:'Univers Condensed','Univers',sans-serif; font-size:0.85rem; cursor:pointer;
    }
    .camera-overlay .camera-btn-capture { background:#fff; color:#000; }
    .camera-overlay .camera-btn-close { background:rgba(255,255,255,0.15); color:#fff; }
    .camera-overlay .camera-btn-share { background:#22c55e; color:#000; font-weight:600; }
    .camera-overlay .camera-btn-retake { background:rgba(255,255,255,0.15); color:#fff; }
    .camera-overlay .camera-btn-gallery { background:rgba(255,255,255,0.15); color:#fff; display:inline-flex; align-items:center; gap:6px; }
    .camera-overlay .camera-preview { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:#000; }
    .camera-overlay .camera-preview img { max-width:100%; max-height:100%; object-fit:contain; }
    .camera-overlay .camera-error { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#fff; font-family:'Univers Condensed','Univers',sans-serif; text-align:center; padding:20px; }
    .camera-step-indicator { position:absolute; top:14px; left:0; right:0; text-align:center; font-size:0.72rem; color:rgba(255,255,255,0.75); font-family:'Univers Condensed','Univers',sans-serif; letter-spacing:0.5px; pointer-events:none; z-index:1; }
    .camera-btn-next { background:#3b82f6; color:#fff; font-weight:600; }
    .camera-overlay-picker { position:absolute; top:40px; left:0; right:0; display:flex; justify-content:center; gap:6px; padding:0 12px; z-index:2; }
    .camera-overlay-picker button { padding:4px 10px; border-radius:12px; border:1px solid rgba(255,255,255,0.3); background:rgba(0,0,0,0.5); color:rgba(255,255,255,0.7); font-family:'Univers Condensed','Univers',sans-serif; font-size:0.65rem; line-height:1; cursor:pointer; backdrop-filter:blur(4px); white-space:nowrap; display:inline-flex; align-items:center; justify-content:center; }
    .camera-overlay-picker button.active { background:#22c55e; color:#000; border-color:#22c55e; font-weight:600; }
    .camera-overlay-picker button:disabled { opacity:0.3; cursor:default; }

    /* ── Tab bar in live-update-panel ── */
    .live-update-tabs {
      display: flex; gap: 0; margin-bottom: 2px;
      border: 1px solid var(--border); border-radius: 6px;
      overflow: hidden;
    }
    .live-update-tabs button {
      flex: 1; padding: 5px 0; border: none;
      background: transparent; color: var(--text-muted);
      font-family: 'Univers Condensed', 'Univers', sans-serif; font-size: 0.68rem;
      line-height: 1;
      cursor: pointer; border-right: 1px solid var(--border);
      transition: background 0.15s, color 0.15s;
    }
    .live-update-tabs button:last-child { border-right: none; }
    .live-update-tabs button.active {
      background: var(--accent); color: #fff; font-weight: 600;
    }
    .live-update-tabs button:not(.active):hover {
      background: var(--surface2, var(--border));
    }

    /* ── Registration section in live-update-panel ── */
    .live-update-registered-section { display:flex; flex-direction:column; gap:6px; }
    .live-update-divider { height:1px; background:var(--border); margin:4px -4px; }

    /* ── Hand game pills ── */
    .hand-game-pills { display:flex; flex-direction:column; gap:4px; }
    .hand-game-pill-row { display:flex; gap:4px; }
    .hand-game-pill-row button { flex:1; padding:3px 6px; border-radius:10px; border:1px solid var(--border); background:transparent; color:var(--text-muted); font-family:'Univers Condensed','Univers',sans-serif; font-size:0.62rem; line-height:1; cursor:pointer; white-space:nowrap; transition:background 0.15s,color 0.15s; text-align:center; display:inline-flex; align-items:center; justify-content:center; }
    .hand-game-pill-row button.active { background:var(--accent); color:#fff; border-color:var(--accent); font-weight:600; }
    .hand-game-label { font-size:0.62rem; color:var(--text-muted); font-family:'Univers Condensed','Univers',sans-serif; text-transform:uppercase; letter-spacing:0.5px; }

    /* ── Card row ── */
    .card-row { display:flex; gap:2px; align-items:center; min-height:32px; flex-wrap:wrap; }
    .card-row.card-row-splay { gap:0; align-items:flex-end; position:relative; height:44px; min-width:60px; }
    .card-row img { height:28px; border-radius:2px; }
    .card-row .card-unknown,
    .card-row .card-placeholder {
      width:20px; height:28px; border-radius:3px; display:flex; align-items:center; justify-content:center;
      font-size:0; color:transparent;
      background:
        repeating-linear-gradient(45deg, transparent, transparent 2.5px, rgba(255,255,255,0.07) 2.5px, rgba(255,255,255,0.07) 3.5px),
        repeating-linear-gradient(-45deg, transparent, transparent 2.5px, rgba(255,255,255,0.07) 2.5px, rgba(255,255,255,0.07) 3.5px),
        linear-gradient(180deg, #243b5c 0%, #1a2744 40%, #152238 100%);
      border: 1.5px solid #3a5a8a;
      box-shadow: inset 0 1px 2px rgba(255,255,255,0.08), 0 1px 2px rgba(0,0,0,0.3);
      position: relative;
      overflow: hidden;
    }
    .card-row .card-unknown::after,
    .card-row .card-placeholder::after {
      content: '';
      position: absolute;
      inset: 3px;
      border: 0.5px solid rgba(255,255,255,0.12);
      border-radius: 1.5px;
    }
    :is([data-theme="light"],[data-theme="cloudy"]) .card-row .card-unknown,
    :is([data-theme="light"],[data-theme="cloudy"]) .card-row .card-placeholder {
      background:
        repeating-linear-gradient(45deg, transparent, transparent 2.5px, rgba(255,255,255,0.1) 2.5px, rgba(255,255,255,0.1) 3.5px),
        repeating-linear-gradient(-45deg, transparent, transparent 2.5px, rgba(255,255,255,0.1) 2.5px, rgba(255,255,255,0.1) 3.5px),
        linear-gradient(180deg, #2e4d70 0%, #1e3a58 40%, #1a2f48 100%);
      border-color: #4a6a9a;
    }

    /* ── Hand result (winner display) ── */
    .hand-result { font-size:0.68rem; font-family:'Univers Condensed','Univers',sans-serif; padding:6px 8px; border-radius:4px; text-align:center; margin-top:2px; letter-spacing:0.3px; line-height:1.4; }
    .hand-result-hero { background:rgba(74,222,128,0.12); color:#4ade80; border:1px solid rgba(74,222,128,0.25); }
    .hand-result-opponent { background:rgba(248,113,113,0.12); color:#f87171; border:1px solid rgba(248,113,113,0.25); }
    .hand-result-split { background:rgba(250,204,21,0.12); color:#facc15; border:1px solid rgba(250,204,21,0.25); }
    :is([data-theme="light"],[data-theme="cloudy"]) .hand-result-hero { background:rgba(22,163,74,0.08); color:#16a34a; border-color:rgba(22,163,74,0.2); }
    :is([data-theme="light"],[data-theme="cloudy"]) .hand-result-opponent { background:rgba(220,38,38,0.08); color:#dc2626; border-color:rgba(220,38,38,0.2); }
    :is([data-theme="light"],[data-theme="cloudy"]) .hand-result-split { background:rgba(202,138,4,0.08); color:#ca8a04; border-color:rgba(202,138,4,0.2); }

    /* ── Bust/Hand tab styles ── */
    .live-update-next-event {
      font-size: 0.7rem; color: var(--text-muted);
      padding: 6px 8px; background: var(--surface2, var(--surface));
      border-radius: 4px; font-family: 'Univers Condensed', 'Univers', sans-serif;
      line-height: 1.4;
    }
    .live-update-next-event strong { color: var(--text); }
    .live-update-hand-placeholder {
      font-size: 0.7rem; color: var(--text-muted);
      text-align: center; padding: 12px 8px;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-style: italic;
    }

    /* ── Hand Replayer ── */
    .replayer-view { max-width: 600px; margin: 0 auto; }
    .replayer-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
    .replayer-header h2 { font-family: var(--serif); font-size:1rem; font-weight:700; }
    .replayer-header-actions { display:flex; gap:6px; }

    /* Hand list */
    .replayer-hand-list { display:flex; flex-direction:column; gap:8px; margin-bottom:16px; }
    .replayer-hand-card {
      background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm);
      padding: 10px 12px; cursor:pointer; transition: border-color 0.15s;
    }
    .replayer-hand-card:hover { border-color: var(--accent); }
    .replayer-hand-card-top { display:flex; justify-content:space-between; align-items:center; }
    .replayer-hand-card-title { font-size:0.82rem; font-weight:600; color:var(--text); }
    .replayer-hand-card-game { font-size:0.65rem; color:var(--accent2); background:var(--surface2); padding:2px 6px; border-radius:4px; }
    .replayer-hand-card-meta { font-size:0.65rem; color:var(--text-muted); margin-top:4px; }
    .replayer-hand-card-actions { display:flex; gap:6px; margin-top:6px; }
    .replayer-empty { text-align:center; color:var(--text-muted); font-size:0.82rem; padding:24px 0; }

    /* Entry mode */
    .replayer-entry { display:flex; flex-direction:column; gap:10px; }
    .replayer-step-label { font-size:0.65rem; color:var(--accent2); font-family:'Univers Condensed','Univers',sans-serif; text-transform:uppercase; letter-spacing:0.5px; margin-bottom:2px; }
    .replayer-section { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm); padding:10px 12px; }
    .replayer-section-title { font-size:0.72rem; font-weight:600; color:var(--text); margin-bottom:8px; font-family:'Univers Condensed','Univers',sans-serif; }

    .replayer-field { display:flex; flex-direction:column; gap:2px; flex:1; }
    .replayer-field label { font-size:0.6rem; color:var(--text-muted); font-family:'Univers Condensed','Univers',sans-serif; text-transform:uppercase; letter-spacing:0.5px; }
    .replayer-field input, .replayer-field select {
      padding:6px 8px; border:1.5px solid var(--border); border-radius:var(--radius-sm);
      background:var(--bg); color:var(--text); font-family:'Univers Condensed','Univers',sans-serif; font-size:0.8rem;
      width:100%; box-sizing:border-box;
    }
    .replayer-field input:focus, .replayer-field select:focus { outline:none; border-color:var(--accent); }
    .replayer-row { display:flex; gap:6px; align-items:flex-end; }
    .replayer-row .replayer-field { flex:1; }

    /* Player rows */
    .replayer-player-row {
      display:flex; gap:6px; align-items:center; padding:4px 0;
      border-bottom:1px solid var(--border);
    }
    .replayer-player-row:last-child { border-bottom:none; }
    .replayer-player-name { font-size:0.75rem; font-weight:600; min-width:60px; }
    .replayer-player-pos { display:inline-flex; align-items:center; justify-content:center; font-size:0.62rem; line-height:1; color:var(--accent2); background:var(--surface2); padding:2px 5px; border-radius:4px; min-width:32px; text-align:center; transition: background 0.15s, color 0.15s, border-color 0.15s; border: 1.5px solid transparent; }
    .replayer-player-pos.hero { background: var(--accent); color: var(--bg); border-color: var(--accent); font-weight: 700; }

    /* Street entry */
    .replayer-street { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm); padding:10px 12px; margin-bottom:8px; }
    .replayer-street-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; }
    .replayer-street-name { font-size:0.75rem; font-weight:600; color:var(--text); font-family:'Univers Condensed','Univers',sans-serif; }
    .replayer-street-pot { font-size:0.68rem; color:var(--accent2); font-family:'Univers Condensed','Univers',sans-serif; }

    .replayer-action-list { display:flex; flex-direction:column; gap:3px; margin-top:6px; }
    .replayer-action-item {
      display:flex; align-items:center; gap:6px; font-size:0.7rem; font-family:'Univers Condensed','Univers',sans-serif;
      padding:3px 6px; background:var(--surface2); border-radius:4px;
    }
    .replayer-action-player { font-weight:600; color:var(--text); min-width:50px; }
    .replayer-action-type { color:var(--accent2); }
    .replayer-action-type.fold { color:#f87171; }
    .replayer-action-type.raise, .replayer-action-type.bet { color:#4ade80; }
    .replayer-action-type.call { color:#60a5fa; }
    .replayer-action-type.check { color:var(--text-muted); }
    .replayer-action-amount { color:var(--text); margin-left:auto; }
    .replayer-action-remove { cursor:pointer; color:var(--text-muted); font-size:0.6rem; margin-left:4px; }
    .replayer-action-remove:hover { color:#f87171; }

    /* Action buttons row */
    .replayer-action-btns { display:flex; gap:4px; flex-wrap:wrap; margin-top:4px; }
    .replayer-action-btns button {
      padding:4px 10px; border-radius:6px; border:1px solid var(--border);
      background:transparent; color:var(--text-muted); font-family:'Univers Condensed','Univers',sans-serif;
      font-size:0.68rem; cursor:pointer; transition:background 0.15s,color 0.15s;
    }
    .replayer-action-btns button:hover { border-color:var(--accent); color:var(--accent); }
    .replayer-action-btns button.action-fold { border-color:rgba(248,113,113,0.4); color:#f87171; }
    .replayer-action-btns button.action-fold:hover { background:rgba(248,113,113,0.1); }
    .replayer-action-btns button.action-bet,
    .replayer-action-btns button.action-raise { border-color:rgba(74,222,128,0.4); color:#4ade80; }
    .replayer-action-btns button.action-bet:hover,
    .replayer-action-btns button.action-raise:hover { background:rgba(74,222,128,0.1); }
    .replayer-action-btns button.action-call { border-color:rgba(96,165,250,0.4); color:#60a5fa; }
    .replayer-action-btns button.action-call:hover { background:rgba(96,165,250,0.1); }

    /* ── GTO Entry View ── */
    .gto-entry {
      display: flex;
      flex-direction: column;
      gap: 0;
      margin-top: 6px;
      padding-bottom: 80vh; /* enough room to scroll any card to the top */
    }

    /* Street header card */
    .gto-street-card {
      background: var(--surface);
      border: 1.5px solid var(--border);
      border-radius: var(--radius-sm);
      overflow: hidden;
    }
    /* Sticky wrapper for everything above the position cards —
       mirrors .schedule-sticky-header: extends to content-area edges,
       cards scroll behind it */
    .gto-sticky-header {
      position: sticky;
      top: -12px;
      z-index: 6;
      background: var(--bg);
      padding: 24px 12px 6px;
      margin: -12px -12px 0;
      box-shadow: 0 4px 0 0 var(--bg);
    }
    .gto-sticky-footer {
      position: fixed;
      bottom: calc(var(--tab-h) + env(safe-area-inset-bottom, 0px));
      left: 0;
      right: 0;
      z-index: 8;
      background: var(--bg);
      padding: 6px 12px;
      box-shadow: none;
    }
    .gto-sticky-footer > * {
      max-width: 600px;
      margin: 0 auto;
    }
    @media (min-width: 640px) {
      .gto-sticky-header { margin: -16px -20px 0; padding: 28px 20px 6px; top: -16px; }
      .gto-sticky-footer { padding: 6px 20px; }
    }
    @media (min-width: 1024px) {
      .gto-sticky-header { margin: -20px -32px 0; padding: 32px 32px 6px; top: -20px; }
      .gto-sticky-footer { padding: 6px 32px; }
    }
    .gto-street-bar {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 10px 12px;
    }
    .gto-street-name {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.78rem;
      font-weight: 700;
      color: var(--text);
      text-transform: uppercase;
      letter-spacing: 0.8px;
    }
    .gto-pot-label {
      font-family: var(--serif);
      font-size: 0.84rem;
      font-weight: 700;
      color: var(--accent);
    }
    .gto-board-row {
      display: flex;
      justify-content: center;
      gap: 4px;
      padding: 4px 12px 10px;
    }
    .gto-board-inline { display: inline-flex; flex: 1; justify-content: center; }
    .gto-board-inline .card-row { gap: 3px; }
    .gto-board-inline .card-img { height: 28px; width: auto; }

    /* Position seat cards — mirrors cal-event-row */
    .gto-seat {
      background: var(--surface);
      border: 1.5px solid var(--border);
      border-left: none;
      border-radius: var(--radius-sm);
      margin-bottom: 6px;
      overflow: hidden;
      display: flex;
      transition: border-color 0.2s, opacity 0.25s;
      overflow-anchor: none;
    }
    .gto-seat.folded { opacity: 0.35; }
    .gto-seat.active { border-color: var(--accent); }

    /* Left color strip — mirrors cal-venue-strip */
    .gto-seat-strip {
      width: 22px;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      align-content: center;
      writing-mode: vertical-rl;
      text-orientation: mixed;
      transform: rotate(180deg);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.48rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.85);
      border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
      padding: 4px 0;
      white-space: nowrap;
      overflow: hidden;
      background: var(--border);
      transition: background 0.2s;
      line-height: 22px;
      text-align: center;
    }
    .gto-seat.active .gto-seat-strip { background: var(--accent); color: var(--bg); }
    .gto-seat.acted-fold .gto-seat-strip { background: #f87171; }
    .gto-seat.acted-check .gto-seat-strip { background: #888888; }
    .gto-seat.acted-call .gto-seat-strip { background: #60a5fa; }
    .gto-seat.acted-raise .gto-seat-strip,
    .gto-seat.acted-bet .gto-seat-strip { background: #4ade80; }
    .gto-seat.acted-allin .gto-seat-strip { background: #facc15; }

    .gto-seat-content {
      flex: 1;
      min-width: 0;
    }

    /* Collapsed bar — mirrors cal-event-bar */
    .gto-seat-bar {
      display: flex;
      flex-direction: column;
      gap: 2px;
      padding: 10px 12px;
      cursor: default;
      user-select: none;
      -webkit-user-select: none;
    }
    .gto-seat-row1 {
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .gto-seat-pos {
      font-size: 0.78rem;
      font-weight: 700;
      color: var(--text-muted);
      flex-shrink: 0;
    }
    .gto-seat.active .gto-seat-pos { color: var(--text); }
    .gto-seat-stack {
      font-family: var(--serif);
      font-size: 0.84rem;
      font-weight: 700;
      color: var(--accent);
      flex-shrink: 0;
      margin-left: auto;
    }
    .gto-seat-row2 {
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .gto-seat-name {
      font-family: var(--serif);
      font-size: 0.84rem;
      font-weight: 400;
      color: var(--text);
      flex: 1;
      min-width: 0;
      line-height: 1.3;
    }
    .gto-seat-hero-cards { display: inline-flex; margin-left: auto; }
    .gto-seat-hero-cards .card-row { gap: 0; }
    .gto-seat-hero-cards .card-img { height: 28px; width: auto; margin-left: -5px; position: relative; }
    .gto-seat-hero-cards .card-img:first-child { margin-left: 0; }
    .gto-seat-hero-cards .card-row .card-unknown { margin-left: -5px; position: relative; }
    .gto-seat-hero-cards .card-row .card-unknown:first-child { margin-left: 0; }
    .gto-seat-hero-cards .card-row > *:nth-child(1) { z-index: 1; }
    .gto-seat-hero-cards .card-row > *:nth-child(2) { z-index: 2; }
    .gto-seat-hero-cards .card-row > *:nth-child(3) { z-index: 3; }
    .gto-seat-hero-cards .card-row > *:nth-child(4) { z-index: 4; }
    .gto-seat-hero-cards .card-row > *:nth-child(5) { z-index: 5; }
    .gto-seat-hero-cards .card-row > *:nth-child(6) { z-index: 6; }
    .gto-seat-hero-cards .card-row > *:nth-child(7) { z-index: 7; }
    .gto-seat-result-badge {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.62rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      padding: 1px 6px;
      border-radius: 4px;
      flex-shrink: 0;
    }
    .gto-seat-result-badge.fold { background: rgba(248,113,113,0.12); color: #f87171; border: 1px solid rgba(248,113,113,0.25); }
    .gto-seat-result-badge.call { background: rgba(96,165,250,0.12); color: #60a5fa; border: 1px solid rgba(96,165,250,0.25); }
    .gto-seat-result-badge.check { background: rgba(136,136,136,0.12); color: var(--text-muted); border: 1px solid rgba(136,136,136,0.25); }
    .gto-seat-result-badge.raise, .gto-seat-result-badge.bet { background: rgba(74,222,128,0.12); color: #4ade80; border: 1px solid rgba(74,222,128,0.25); }
    .gto-seat-result-badge.allin { background: rgba(74,222,128,0.12); color: #4ade80; border: 1px solid rgba(74,222,128,0.25); }
    :is([data-theme="light"],[data-theme="cloudy"]) .gto-seat-result-badge.fold { color: #dc2626; background: rgba(248,113,113,0.1); border-color: rgba(248,113,113,0.3); }
    :is([data-theme="light"],[data-theme="cloudy"]) .gto-seat-result-badge.call { color: #2563eb; background: rgba(96,165,250,0.1); border-color: rgba(96,165,250,0.3); }
    :is([data-theme="light"],[data-theme="cloudy"]) .gto-seat-result-badge.raise,
    :is([data-theme="light"],[data-theme="cloudy"]) .gto-seat-result-badge.bet { color: #15803d; background: rgba(74,222,128,0.1); border-color: rgba(74,222,128,0.3); }

    /* Draw discard phase */
    .gto-draw-declared { opacity: 0.55; }
    .gto-draw-declared.active { opacity: 1; }
    .gto-draw-buttons {
      display: flex; gap: 6px; padding: 8px 10px 6px; flex-wrap: wrap;
    }
    .gto-draw-btn {
      flex: 1 1 0; min-width: 40px; padding: 8px 4px; border-radius: 6px;
      border: 1.5px solid var(--border); background: var(--surface);
      color: var(--text); cursor: pointer; font-family: 'Univers Condensed','Univers',sans-serif;
      font-size: 0.78rem; font-weight: 600; transition: all 0.15s;
      text-align: center;
    }
    .gto-draw-btn:hover { border-color: var(--accent); background: var(--accent-bg, rgba(34,197,94,0.08)); }
    .gto-draw-btn.pat {
      background: rgba(136,136,136,0.1); border-color: rgba(136,136,136,0.3);
      color: var(--text-muted);
    }
    .gto-draw-btn.pat:hover { border-color: var(--accent); color: var(--text); }
    :is([data-theme="light"],[data-theme="cloudy"]) .gto-draw-btn {
      background: var(--surface); border-color: var(--border);
    }

    .gto-seat-draw-history {
      font-size: 0.6rem; font-weight: 600; color: var(--accent2);
      padding: 2px 6px; margin-left: auto; letter-spacing: 0.02em;
      font-family: 'Univers Condensed','Univers',sans-serif;
      background: rgba(136,136,136,0.15); border-radius: 4px;
      white-space: nowrap;
    }

    /* Expanded action panel — animated like cal-event-detail-wrap */
    .gto-seat-detail-wrap {
      display: grid;
      grid-template-rows: 0fr;
      transition: grid-template-rows 0.4s cubic-bezier(0.18, 1.8, 0.35, 1);
      overflow-anchor: none;
    }
    .gto-seat.active .gto-seat-detail-wrap {
      grid-template-rows: 1fr;
    }
    .gto-seat-detail-inner {
      overflow: hidden;
    }
    .gto-seat-detail-inner > .gto-seat-detail {
      opacity: 0;
      transform: translateY(-14px);
      transition: opacity 0.2s ease, transform 0.35s cubic-bezier(0.18, 1.8, 0.35, 1);
    }
    .gto-seat.active .gto-seat-detail-inner > .gto-seat-detail {
      opacity: 1;
      transform: translateY(0);
      transition-delay: 0.06s;
    }

    /* Action row — mirrors cal-action-row */
    .gto-action-row {
      display: flex;
      border-top: 1px solid var(--border);
      margin: 0;
      align-items: stretch;
    }
    .gto-action-btn {
      flex: 1;
      padding: 8px 4px 6px;
      background: none;
      border: none;
      cursor: pointer;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0;
      font-family: inherit;
    }
    .gto-action-btn + .gto-action-btn { border-left: 1px solid var(--border); }
    .gto-action-btn:active { background: rgba(160,160,160,0.1); }
    .gto-action-icon {
      font-size: 1rem;
      line-height: 1;
      height: 1rem;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .gto-action-icon.fold { color: #f87171; }
    .gto-action-icon.check { color: var(--text-muted); }
    .gto-action-icon.call { color: #60a5fa; }
    .gto-action-icon.raise { color: #4ade80; }
    .gto-action-icon.allin { color: #facc15; }
    .gto-action-label {
      font-family: inherit;
      font-size: 0.55rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      color: var(--text-muted);
      margin-top: 5px;
    }

    /* Sizing pills & raise input */
    .gto-sizing-row {
      display: flex;
      gap: 4px;
      flex-wrap: wrap;
      padding: 8px 12px;
      border-top: 1px solid var(--border);
    }
    .gto-sizing-pill {
      padding: 5px 10px;
      border-radius: var(--radius-sm);
      border: 1px solid var(--border);
      background: transparent;
      color: var(--text-muted);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.65rem;
      font-weight: 600;
      cursor: pointer;
      transition: border-color 0.12s, color 0.12s;
    }
    .gto-sizing-pill:active { border-color: var(--accent); color: var(--accent); }
    .gto-raise-slider-row {
      padding: 4px 12px 0;
    }
    .gto-raise-slider {
      -webkit-appearance: none;
      appearance: none;
      width: 100%;
      height: 6px;
      border-radius: 3px;
      background: var(--surface2);
      outline: none;
      cursor: pointer;
    }
    .gto-raise-slider::-webkit-slider-thumb {
      -webkit-appearance: none;
      appearance: none;
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: var(--accent);
      border: 2px solid var(--border);
      cursor: pointer;
    }
    .gto-raise-slider::-moz-range-thumb {
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: var(--accent);
      border: 2px solid var(--border);
      cursor: pointer;
    }
    .gto-raise-slider::-moz-range-track {
      height: 6px;
      border-radius: 3px;
      background: var(--surface2);
    }
    .gto-raise-input-row {
      display: flex;
      gap: 6px;
      align-items: center;
      padding: 8px 12px;
    }
    .gto-raise-input-row input {
      flex: 1;
      padding: 8px 10px;
      border: 1.5px solid var(--border);
      border-radius: var(--radius-sm);
      background: var(--bg);
      color: var(--text);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.82rem;
    }
    .gto-raise-input-row input:focus { outline: none; border-color: var(--accent); }

    /* Footer & setup/phase cards */
    .gto-footer {
      display: flex;
      gap: 6px;
      justify-content: space-between;
      align-items: center;
      padding: 10px 12px;
      border-top: 1px solid var(--border);
    }
    .gto-phase-card {
      background: var(--surface);
      border: 1.5px solid var(--border);
      border-radius: var(--radius-sm);
      overflow: hidden;
    }
    .gto-phase-card .replayer-section {
      border: none;
      border-radius: 0;
      background: transparent;
    }
    .gto-street-label {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.85rem;
      font-weight: 700;
      color: var(--text);
      text-transform: uppercase;
      letter-spacing: 0.8px;
    }
    .gto-undo-btn {
      padding: 5px 12px;
      border-radius: var(--radius-sm);
      border: 1px solid var(--border);
      background: transparent;
      color: var(--text-muted);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.68rem;
      font-weight: 600;
      cursor: pointer;
    }
    .gto-undo-btn:active { border-color: var(--accent); color: var(--accent); }

    /* Card picker grid */
    .card-picker-grid {
      display: grid;
      grid-template-columns: repeat(13, 1fr);
      gap: 3px;
      margin-top: 8px;
    }
    .card-picker-btn {
      aspect-ratio: 2/3;
      border: none;
      border-radius: 4px;
      background: transparent;
      cursor: pointer;
      padding: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: opacity 0.15s, transform 0.1s;
    }
    .card-picker-btn:active { transform: scale(0.92); }
    .card-picker-btn.selected {
      border-color: var(--accent);
      box-shadow: 0 0 0 1px var(--accent);
    }
    .card-picker-btn.used {
      opacity: 0.15;
      pointer-events: none;
    }
    .card-picker-btn img {
      width: 100%;
      height: 100%;
      object-fit: contain;
    }
    .card-picker-suit-label {
      grid-column: 1 / -1;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.55rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      color: var(--text-muted);
      padding: 4px 0 1px;
    }
    .card-picker-suit-label:first-child { padding-top: 0; }

    /* Draw discard section */
    .replayer-draw-section { margin-top:6px; padding:6px 8px; background:var(--surface2); border-radius:4px; }
    .replayer-draw-label { font-size:0.65rem; color:var(--text-muted); font-family:'Univers Condensed','Univers',sans-serif; text-transform:uppercase; margin-bottom:6px; letter-spacing:0.03em; }

    /* Draw info bar in replay mode */
    .replayer-draw-info-bar {
      text-align: center; padding: 6px 10px; background: var(--surface2); border-radius: 6px;
      font-family: 'Univers Condensed','Univers',sans-serif;
    }
    .replayer-draw-info-label {
      font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.05em;
      color: var(--text-muted); margin-bottom: 4px; font-weight: 600;
    }
    .replayer-draw-info-players {
      display: flex; flex-wrap: wrap; gap: 8px; justify-content: center;
    }
    .replayer-draw-info-item {
      display: flex; align-items: center; gap: 4px; font-size: 0.7rem;
    }
    .replayer-draw-info-name {
      font-weight: 600; color: var(--text);
    }
    .replayer-draw-pat-badge {
      display: inline-block; padding: 1px 6px; border-radius: 3px; font-size: 0.62rem;
      background: rgba(136,136,136,0.15); color: var(--text-muted); font-weight: 600;
      letter-spacing: 0.02em; font-family: 'Univers Condensed','Univers',sans-serif;
    }
    .replayer-draw-count-badge {
      display: inline-block; padding: 1px 6px; border-radius: 3px; font-size: 0.62rem;
      background: rgba(34,197,94,0.12); color: #4ade80; font-weight: 600;
      letter-spacing: 0.02em; font-family: 'Univers Condensed','Univers',sans-serif;
    }
    /* Draw card selection — tap to discard */
    .card-img.draw-selectable { transition: filter 0.25s ease, opacity 0.25s ease, transform 0.2s ease; }
    .card-img.draw-selectable:active { transform: scale(0.92); }
    .card-img.draw-discarded {
      filter: grayscale(0.8) brightness(0.45);
      opacity: 0.5;
      transform: translateY(4px);
    }

    .replayer-draw-discarded-cards { opacity: 0.5; }
    .replayer-draw-discarded-cards .card-img,
    .replayer-draw-discarded-cards .card-classic {
      filter: grayscale(0.7) brightness(0.6); position: relative;
    }
    .replayer-draw-new-cards .card-img,
    .replayer-draw-new-cards .card-classic {
      animation: draw-card-arrive 0.3s ease-out;
    }
    @keyframes draw-card-arrive {
      from { opacity: 0; transform: translateY(-6px) scale(0.85); }
      to { opacity: 1; transform: translateY(0) scale(1); }
    }

    /* Replay mode */
    .replayer-replay { display:flex; flex-direction:column; gap:8px; }

    /* Landscape: fullscreen replayer, hide app chrome */
    .replayer-landscape {
      position: fixed;
      inset: 0;
      z-index: 9999;
      background: var(--bg);
      overflow: hidden;
    }
    .replayer-landscape .replayer-table {
      aspect-ratio: 3 / 4.5;
      margin-top: 4px;
      flex: 1;
      min-height: 0;
      max-height: calc(100vh - 60px);
      margin-left: auto;
      margin-right: auto;
    }
    .replayer-landscape .replayer-bottom-fixed {
      position: relative;
      bottom: auto;
      padding: 2px 8px;
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: center;
      gap: 8px;
      flex-wrap: nowrap;
    }
    .replayer-landscape .replayer-bottom-fixed > div {
      display: flex;
      align-items: center;
      gap: 6px;
    }
    .replayer-landscape .replayer-controls {
      margin-bottom: 0;
    }
    /* Hide app chrome in landscape replayer */
    body:has(.replayer-landscape) .top-bar,
    body:has(.replayer-landscape) .bottom-nav,
    body:has(.replayer-landscape) .replayer-header {
      display: none !important;
    }
    .replayer-table {
      position: relative;
      width: 100%;
      aspect-ratio: 3 / 4.5;
      margin-top: 30px;
      margin-bottom: 0;
    }
    .replayer-table-rail {
      position: absolute;
      inset: calc(6% - 20px) calc(18% - 20px);
      border-radius: 999px;
      background:
        /* top-left light */
        linear-gradient(155deg,
          rgba(255,255,255,0.28) 0%,
          rgba(255,255,255,0.1) 12%,
          transparent 30%,
          transparent 70%,
          rgba(0,0,0,0.06) 85%,
          rgba(0,0,0,0.15) 100%
        ),
        /* bottom-right light */
        linear-gradient(335deg,
          rgba(255,255,255,0.18) 0%,
          rgba(255,255,255,0.06) 12%,
          transparent 30%,
          transparent 70%,
          rgba(0,0,0,0.04) 85%,
          rgba(0,0,0,0.1) 100%
        );
      background-color: var(--rail-color, #6b5b8a);
      border: none;
      box-shadow:
        0 2px 0 rgba(255,255,255,0.11) inset,
        0 -3px 6px rgba(0,0,0,0.25) inset,
        0 1px 3px rgba(0,0,0,0.15);
    }
    .replayer-light-strip {
      position: absolute;
      inset: calc(6% - 4px) calc(18% - 4px);
      border-radius: 999px;
      background: transparent;
      border: 2px solid rgba(255,255,255,0.6);
      box-shadow:
        0 0 8px 2px rgba(255,255,255,0.3) inset,
        0 0 16px 4px rgba(255,255,255,0.15) inset,
        0 0 30px 8px rgba(255,255,255,0.08) inset;
      z-index: 1;
      pointer-events: none;
    }
    .replayer-table-felt {
      position: absolute;
      inset: 6% 18%;
      background: radial-gradient(ellipse at 50% 50%, #7b6ba5 0%, #6a5b96 60%, #564a80 100%);
      border-radius: 999px;
      border: 1px solid rgba(0,0,0,0.15);
      box-shadow: inset 0 4px 20px rgba(0,0,0,0.45);
      z-index: 1;
    }
    :is([data-theme="light"],[data-theme="cloudy"]) .replayer-table-felt {
      background: radial-gradient(ellipse at 50% 50%, #9080b8 0%, #8070a8 60%, #6e6098 100%);
      border-color: #a595cf;
    }

    .replayer-pot-display {
      position:absolute; left:50%; top:35%; transform:translate(-50%,-50%);
      z-index:2; text-align:center; font-size:0.78rem; font-weight:600; color:#fff;
      font-family:'Univers Condensed','Univers',sans-serif; text-shadow: 0 1px 3px rgba(0,0,0,0.5);
    }
    .replayer-pot-label { font-size:0.5rem; color:rgba(255,255,255,0.7); text-transform:uppercase; letter-spacing:0.5px; }
    .replayer-split-circles { display:flex; justify-content:center; align-items:center; }
    .replayer-split-circle {
      width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center;
      background: radial-gradient(ellipse, rgba(234,179,8,0.35) 0%, rgba(234,179,8,0.15) 100%);
      border: 1.5px solid rgba(234,179,8,0.6);
      font-size:0.48rem; font-weight:700; line-height:1; color:#facc15; font-family:'Univers Condensed','Univers',sans-serif;
      position:relative;
    }

    .replayer-board-area {
      position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
      z-index:2; display:flex; flex-direction:column; align-items:center; gap:3px;
    }
    .replayer-board-area .card-row { justify-content:center; flex-wrap:nowrap; }
    .replayer-board-area .card-row img { height:44px; }
    .replayer-board-area .card-row .card-unknown { width:30px; height:44px; }
    .replayer-board-area .card-row .card-placeholder { width:30px; height:44px; }

    .replayer-street-label {
      position:absolute; left:50%; top:28%; transform:translate(-50%,-50%);
      z-index:2; font-size:0.55rem; color:rgba(255,255,255,0.6); font-family:'Univers Condensed','Univers',sans-serif;
      text-transform:uppercase; letter-spacing:0.5px; text-shadow: 0 1px 2px rgba(0,0,0,0.4);
    }

    /* Player seats around the oval */
    .replayer-seat {
      position: absolute;
      transform: translate(-50%, -50%);
      z-index: 1;
      text-align:center;
    }
    .replayer-seat.seat-left { transform: translate(0%, -50%); }
    .replayer-seat.seat-right { transform: translate(-100%, -50%); }
    .replayer-seat.folded .replayer-seat-info,
    .replayer-seat.mucked .replayer-seat-info { opacity:0.5; }

    .replayer-seat-cards {
      position: absolute;
      bottom: calc(100% - 10px);
      left: 0;
      right: 0;
      display: flex;
      justify-content: center;
      z-index: 0;
      transition: opacity 0.4s ease;
    }
    .replayer-seat.folded .replayer-seat-cards,
    .replayer-seat.mucked .replayer-seat-cards { opacity:0; transform: scale(0.8) translateY(20px); }
    .replayer-seat-cards .card-row { justify-content:center; flex-wrap:nowrap; }
    .replayer-seat-cards .card-row:not(.card-row-splay) { gap:0; }
    .replayer-seat-cards .card-row:not(.card-row-splay) > *:not(:first-child) { margin-left:-12px; }
    .replayer-seat-cards .card-row:not(.card-row-splay) > *:nth-child(1) { z-index:1; }
    .replayer-seat-cards .card-row:not(.card-row-splay) > *:nth-child(2) { z-index:2; }
    .replayer-seat-cards .card-row:not(.card-row-splay) > *:nth-child(3) { z-index:3; }
    .replayer-seat-cards .card-row:not(.card-row-splay) > *:nth-child(4) { z-index:4; }
    .replayer-seat-cards .card-row:not(.card-row-splay) > *:nth-child(5) { z-index:5; }
    .replayer-seat-cards .card-row img { height:44px; width:30px; filter:drop-shadow(-2px 1px 2px rgba(0,0,0,0.5)); }
    .replayer-seat-cards .card-row .card-unknown { width:30px; height:44px; }
    .replayer-seat-cards .card-row .card-placeholder { width:30px; height:44px; }

    .replayer-dealer-btn {
      position: absolute;
      width: 24px; height: 24px;
      border-radius: 50%;
      background: linear-gradient(145deg, #ffffff 0%, #f0f0f0 40%, #e5e5e5 100%);
      color: #111;
      font-family: var(--serif);
      font-size: 0.65rem;
      font-weight: 900;
      letter-spacing: -0.5px;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 3;
      border: 1.5px solid #ccc;
      box-shadow: 0 2px 4px rgba(0,0,0,0.35), inset 0 1px 2px rgba(255,255,255,0.9), inset 0 -1px 1px rgba(0,0,0,0.1);
      pointer-events: none;
      text-shadow: 0 0.5px 0 rgba(255,255,255,0.5);
    }

    .replayer-seat-info {
      position: relative;
      z-index: 1;
      background: var(--surface);
      border: 1.5px solid var(--border);
      border-radius: 8px;
      padding: 4px 8px;
      min-width: 72px;
      box-shadow: 0 2px 6px rgba(0,0,0,0.25);
      transition: border-color 0.2s, box-shadow 0.3s;
    }
    .replayer-seat.active-turn .replayer-seat-info { border-color:var(--accent); }
    .replayer-seat.winner .replayer-seat-info {
      border-color: #eab308;
      box-shadow: 0 0 8px rgba(234,179,8,0.45), 0 0 18px rgba(234,179,8,0.2), inset 0 0 6px rgba(234,179,8,0.08);
    }
    .replayer-seat.loser .replayer-seat-info {
      border-color: rgba(248,113,113,0.4);
      box-shadow: 0 0 4px rgba(248,113,113,0.2);
    }
    .replayer-seat.split .replayer-seat-info {
      border-color: #facc15;
      box-shadow: 0 0 8px rgba(250,204,21,0.35), 0 0 16px rgba(250,204,21,0.15);
    }
    .replayer-seat-name { font-size:0.62rem; font-weight:600; color:var(--text); font-family:'Univers Condensed','Univers',sans-serif; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:80px; }
    .replayer-seat-pos { font-size:0.5rem; color:var(--accent2); font-family:'Univers Condensed','Univers',sans-serif; }
    .replayer-seat-stack { font-size:0.62rem; font-weight:600; color:var(--text); font-family:'Univers Condensed','Univers',sans-serif; }
    .replayer-seat-action {
      font-size:0.52rem; color:var(--accent2); font-family:'Univers Condensed','Univers',sans-serif;
      min-height:12px;
      transition: opacity 0.2s;
    }
    .replayer-bet-chip {
      position: absolute;
      transform: translate(-50%, -50%);
      font-size: 0.55rem;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-weight: 600;
      color: #fff;
      background: none;
      padding: 2px 6px;
      border-radius: 0;
      white-space: nowrap;
      z-index: 4;
      text-shadow: 0 1px 3px rgba(0,0,0,0.7);
      pointer-events: none;
      display: flex;
      align-items: center;
      gap: 2px;
    }
    .replayer-seat-hand-name {
      position: absolute;
      left: 50%;
      top: 100%;
      transform: translateX(-50%);
      font-size:0.5rem; color:#eab308; font-family:'Univers Condensed','Univers',sans-serif;
      background: var(--surface);
      border: 1.5px solid rgba(234,179,8,0.4);
      border-radius: 6px;
      white-space: pre-line;
      text-align: center;
      line-height: 1.3;
      padding: 2px 6px;
      margin-top: 2px;
      white-space: nowrap;
      box-shadow: 0 2px 4px rgba(0,0,0,0.2);
    }
    .replayer-seat.loser .replayer-seat-hand-name { color:#f87171; border-color:rgba(248,113,113,0.4); }
    .replayer-seat.split .replayer-seat-hand-name { color:#facc15; border-color:rgba(250,204,21,0.4); }

    /* Draw discard badge on seat */
    .replayer-seat-draw-badge {
      position:absolute; left:50%; transform:translateX(-50%);
      bottom:-2px;
      font-size:0.48rem; font-weight:700; font-family:'Univers Condensed','Univers',sans-serif;
      color:#60a5fa; background:rgba(30,58,138,0.85);
      border:1px solid rgba(96,165,250,0.4); border-radius:4px;
      padding:1px 5px; white-space:nowrap;
      box-shadow:0 1px 3px rgba(0,0,0,0.3);
      animation:drawBadgePop 0.3s ease-out;
    }
    @keyframes drawBadgePop {
      0% { opacity:0; transform:translateX(-50%) scale(0.7); }
      100% { opacity:1; transform:translateX(-50%) scale(1); }
    }

    /* Felt color picker & card theme */
    .replayer-options-row {
      display: flex; justify-content: center; align-items: center; gap: 16px;
      padding: 4px 0; flex-wrap: wrap;
    }
    .replayer-option-label {
      font-size: 0.5rem; color: var(--text-muted); font-family: 'Univers Condensed', 'Univers', sans-serif;
      text-transform: uppercase; letter-spacing: 0.5px; margin-right: 4px;
    }
    .replayer-felt-picker { display: flex; align-items: center; gap: 4px; }
    .felt-color-swatch {
      width: 18px; height: 18px; border-radius: 50%; border: 2px solid transparent;
      cursor: pointer; transition: border-color 0.15s, transform 0.15s;
      box-shadow: 0 1px 3px rgba(0,0,0,0.3), inset 0 1px 2px rgba(255,255,255,0.15);
      padding: 0;
    }
    .felt-color-swatch:hover { transform: scale(1.15); }
    .felt-color-swatch.active { border-color: #fff; transform: scale(1.15); }
    .felt-picker-overlay { position:absolute; inset:0; z-index:50; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,0.4); border-radius:999px; }
    .felt-picker-popup { background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:14px 18px; text-align:center; box-shadow:0 8px 24px rgba(0,0,0,0.4); }
    .replayer-card-theme-picker { display: flex; align-items: center; gap: 3px; }
    .replayer-theme-btn {
      font-size: 0.5rem; font-family: 'Univers Condensed', 'Univers', sans-serif; padding: 2px 8px;
      border: 1px solid var(--border); border-radius: 4px; background: var(--surface);
      color: var(--text-muted); cursor: pointer; transition: all 0.15s;
      line-height: 1; display: inline-flex; align-items: center; justify-content: center;
    }
    .replayer-theme-btn.active { background: var(--accent); color: #fff; border-color: var(--accent); }
    .replayer-theme-btn:hover { border-color: var(--accent); }

    /* Action badges */
    .replayer-action-badge {
      display: inline-flex; align-items: center; justify-content: center; font-size: 0.42rem; font-family: 'Univers Condensed', 'Univers', sans-serif;
      padding: 1px 5px; border-radius: 3px; text-transform: uppercase; letter-spacing: 0.3px;
      font-weight: 600; line-height: 1; margin-top: 1px;
    }
    .replayer-action-badge-outer {
      position: absolute;
      top: calc(100% + 2px);
      left: 50%;
      transform: translateX(-50%);
      display: inline-flex; align-items: center; justify-content: center;
      font-size: 0.42rem; font-family: 'Univers Condensed', 'Univers', sans-serif;
      padding: 1px 5px; border-radius: 3px; text-transform: uppercase; letter-spacing: 0.3px;
      font-weight: 600; line-height: 1; white-space: nowrap;
      pointer-events: none;
    }
    .replayer-action-badge.action-fold, .replayer-action-badge-outer.action-fold { background: rgba(239,68,68,0.2); color: #ef4444; }
    .replayer-action-badge.action-check, .replayer-action-badge-outer.action-check { background: rgba(156,163,175,0.2); color: #9ca3af; }
    .replayer-action-badge.action-call, .replayer-action-badge-outer.action-call { background: rgba(59,130,246,0.2); color: #3b82f6; }
    .replayer-action-badge.action-bet, .replayer-action-badge-outer.action-bet,
    .replayer-action-badge.action-raise, .replayer-action-badge-outer.action-raise { background: rgba(34,197,94,0.2); color: #22c55e; }
    .replayer-action-badge.action-allin, .replayer-action-badge-outer.action-allin { background: rgba(234,179,8,0.25); color: #eab308; }

    /* Winner trophy star */
    .replayer-winner-star {
      display: inline-block; margin-right: 2px; font-size: 0.55rem; line-height: 1;
    }

    /* Board card street spacing */
    .replayer-board-spaced { display:flex; align-items:center; gap:2px; justify-content:center; flex-wrap:nowrap; }
    .replayer-board-spaced img { height:44px; }
    .replayer-board-spaced .card-unknown { width:30px; height:44px; }
    .board-street-gap { width:8px; flex-shrink:0; }

    /* Classic card theme */
    .card-classic {
      width: 30px; height: 44px; border-radius: 3px; display: flex; flex-direction: column;
      align-items: center; justify-content: center; gap: 0;
      font-family: var(--serif); font-weight: 700;
      box-shadow: 0 1px 3px rgba(0,0,0,0.3);
      border: 1px solid rgba(255,255,255,0.15);
      line-height: 1;
    }
    .card-classic-red { background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%); color: #fff; }
    .card-classic-dark { background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%); color: #e2e8f0; }
    .card-classic-rank { font-size: 0.72rem; line-height: 1; }
    .card-classic-suit { font-size: 0.6rem; line-height: 1; margin-top: -1px; }
    .replayer-seat-cards .card-classic { width: 30px; height: 44px; }
    .replayer-board-spaced .card-classic { width: 30px; height: 44px; }

    /* Replay controls */
    .replayer-bottom-fixed {
      position:fixed;
      bottom: calc(var(--tab-h) + env(safe-area-inset-bottom, 0px));
      left:0; right:0;
      z-index:8;
      background:var(--bg);
      display:flex; flex-direction:column; gap:2px;
      padding: 4px 12px;
      box-shadow: 0 -2px 8px rgba(0,0,0,0.2);
    }
    .replayer-bottom-fixed > * {
      max-width: 600px;
      margin: 0 auto;
      width: 100%;
    }
    .replayer-controls {
      display:flex; justify-content:center; align-items:center; gap:8px; padding:4px 0;
    }
    .replayer-controls button {
      padding:6px 12px; border-radius:6px; border:1px solid var(--border);
      background:transparent; color:var(--text); font-family:'Univers Condensed','Univers',sans-serif;
      font-size:0.75rem; cursor:pointer; transition:background 0.15s;
      display:flex; align-items:center; justify-content:center; gap:4px;
      line-height:1;
    }
    .replayer-controls button:hover { background:var(--surface2); border-color:var(--accent); }
    .replayer-controls button:disabled { opacity:0.3; cursor:default; }
    .replayer-controls button:disabled:hover { background:transparent; border-color:var(--border); }
    .replayer-speed-label { font-size:0.6rem; line-height:1; color:var(--text-muted); font-family:'Univers Condensed','Univers',sans-serif; }

    .replayer-street-indicator {
      display:flex; gap:4px; justify-content:center; margin-bottom:6px;
    }
    .replayer-street-dot {
      width:8px; height:8px; border-radius:50%; background:var(--border);
      transition: background 0.2s;
    }
    .replayer-street-dot.active { background:var(--accent); }
    .replayer-street-dot.completed { background:var(--text-muted); }

    /* Result display */
    .replayer-result {
      text-align:center; padding:5px 10px; border-radius:var(--radius-sm);
      font-family:'Univers Condensed','Univers',sans-serif; font-size:0.72rem; font-weight:600;
    }
    .replayer-result-hero { background:rgba(74,222,128,0.12); color:#4ade80; border:1px solid rgba(74,222,128,0.25); }
    .replayer-result-opponent { background:rgba(248,113,113,0.12); color:#f87171; border:1px solid rgba(248,113,113,0.25); }
    .replayer-result-split { background:rgba(250,204,21,0.12); color:#facc15; border:1px solid rgba(250,204,21,0.25); }
    :is([data-theme="light"],[data-theme="cloudy"]) .replayer-result-hero { background:rgba(22,163,74,0.08); color:#16a34a; border-color:rgba(22,163,74,0.2); }
    :is([data-theme="light"],[data-theme="cloudy"]) .replayer-result-opponent { background:rgba(220,38,38,0.08); color:#dc2626; border-color:rgba(220,38,38,0.2); }
    :is([data-theme="light"],[data-theme="cloudy"]) .replayer-result-split { background:rgba(202,138,4,0.08); color:#ca8a04; border-color:rgba(202,138,4,0.2); }

    /* Hi-lo split animation */
    .replayer-hilo-high {
      transition: transform 0.5s ease-out;
    }
    .replayer-hilo-high.animate { transform: translateY(-8px); }
    .replayer-hilo-low {
      transition: transform 0.5s ease-out;
    }
    .replayer-hilo-low.animate { transform: translateY(8px); }

    /* Stud card reorder animation */
    .replayer-stud-reorder .card-img {
      transition: transform 0.4s ease-out, opacity 0.3s;
    }
    .replayer-stud-reorder .card-img.grouped { transform: scale(1.05); }
    .replayer-stud-reorder .card-img.ungrouped { opacity: 0.4; transform: scale(0.9); }

    /* ── Replayer Settings Panel ── */
    .replayer-settings-backdrop {
      position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:100;
      animation: settingsFadeIn 0.15s ease-out;
    }
    @keyframes settingsFadeIn { from{opacity:0} to{opacity:1} }
    @keyframes spin { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
    .replayer-settings-panel {
      position:fixed; bottom:0; left:0; right:0; z-index:101;
      background:var(--surface); border-radius:16px 16px 0 0;
      max-height:85vh; overflow-y:auto; padding:16px 16px 32px;
      box-shadow:0 -4px 24px rgba(0,0,0,0.4);
      animation: settingsSlideUp 0.25s ease-out;
    }
    @keyframes settingsSlideUp { from{transform:translateY(100%)} to{transform:translateY(0)} }
    .replayer-settings-header {
      display:flex; justify-content:space-between; align-items:center; margin-bottom:14px;
      font-family:'Univers Condensed','Univers',sans-serif; font-size:0.85rem; font-weight:600; color:var(--text);
    }
    .replayer-settings-close {
      background:none; border:none; color:var(--text-muted); cursor:pointer; font-size:1.2rem; padding:4px;
    }
    .replayer-settings-group {
      margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid var(--border);
    }
    .replayer-settings-group:last-child { border-bottom:none; }
    .replayer-settings-group-title {
      font-family:'Univers Condensed','Univers',sans-serif; font-size:0.65rem; font-weight:600; color:var(--accent2);
      text-transform:uppercase; letter-spacing:0.5px; margin-bottom:8px;
    }
    .replayer-settings-row {
      display:flex; justify-content:space-between; align-items:center; margin-bottom:8px;
    }
    .replayer-settings-label {
      font-size:0.72rem; color:var(--text); font-family:'Univers Condensed','Univers',sans-serif;
    }
    .replayer-settings-sublabel {
      font-size:0.58rem; color:var(--text-muted);
    }
    .replayer-settings-pills {
      display:flex; gap:4px; flex-wrap:wrap;
    }
    .replayer-settings-pill {
      padding:4px 10px; border-radius:12px; border:1px solid var(--border);
      background:transparent; color:var(--text-muted); font-size:0.62rem;
      font-family:'Univers Condensed','Univers',sans-serif; cursor:pointer; transition:all 0.15s;
    }
    .replayer-settings-pill:hover { border-color:var(--accent); color:var(--text); }
    .replayer-settings-pill.active {
      background:var(--accent); color:var(--bg); border-color:var(--accent);
    }
    .replayer-settings-toggle {
      width:36px; height:20px; border-radius:10px; border:none; cursor:pointer;
      background:var(--border); position:relative; transition:background 0.2s;
    }
    .replayer-settings-toggle.on { background:var(--accent); }
    .replayer-settings-toggle::after {
      content:''; position:absolute; top:2px; left:2px; width:16px; height:16px;
      border-radius:50%; background:#fff; transition:transform 0.2s;
    }
    .replayer-settings-toggle.on::after { transform:translateX(16px); }
    .replayer-gear-btn {
      background:var(--surface); border:1px solid var(--border); color:var(--text-muted); cursor:pointer;
      padding:6px; display:flex; align-items:center; transition:color 0.15s, background 0.15s;
      border-radius:6px; position:relative; z-index:10;
    }
    .replayer-gear-btn:hover { color:var(--text); background:var(--surface2); }

    /* ── Theme: Casino Royale ── */
    .replayer-table.theme-casino-royale .replayer-table-felt {
      background:radial-gradient(ellipse at 50% 50%, #1a2744 0%, #152036 60%, #0f1829 100%) !important;
      border-color:#c9a84c !important; border-width:3px !important;
      box-shadow:0 0 0 4px rgba(0,0,0,0.3), inset 0 2px 12px rgba(0,0,0,0.4), 0 0 20px rgba(201,168,76,0.15) !important;
    }
    .replayer-table.theme-casino-royale .replayer-seat-info {
      border-color:#c9a84c44; box-shadow:0 2px 6px rgba(0,0,0,0.4);
    }
    .replayer-table.theme-casino-royale .replayer-seat-name {
      font-family:'Libre Baskerville',Georgia,serif !important; font-size:0.58rem;
    }
    .replayer-table.theme-casino-royale .replayer-pot-display { color:#ffd700; }
    .replayer-table.theme-casino-royale .replayer-pot-label { color:rgba(255,215,0,0.6); }

    /* ── Theme: Neon Vegas ── */
    .replayer-table.theme-neon-vegas .replayer-table-felt {
      background:radial-gradient(ellipse at 50% 50%, #0a0a0a 0%, #111 60%, #080808 100%) !important;
      border-color:#00e5ff !important; border-width:2px !important;
      box-shadow:0 0 0 2px rgba(0,229,255,0.3), inset 0 0 20px rgba(0,229,255,0.05), 0 0 30px rgba(255,0,128,0.1) !important;
    }
    .replayer-table.theme-neon-vegas .replayer-seat-info {
      border-color:rgba(0,229,255,0.3); box-shadow:0 0 8px rgba(0,229,255,0.15), 0 0 4px rgba(255,0,128,0.1);
    }
    .replayer-table.theme-neon-vegas .replayer-pot-display {
      color:#00e5ff; text-shadow:0 0 10px rgba(0,229,255,0.6);
    }
    .replayer-table.theme-neon-vegas .replayer-pot-label { color:rgba(255,0,128,0.8); }
    .replayer-table.theme-neon-vegas .replayer-street-label {
      color:rgba(0,229,255,0.7); text-shadow:0 0 6px rgba(0,229,255,0.4);
    }
    .replayer-table.theme-neon-vegas .replayer-bet-chip {
      background:rgba(255,0,128,0.5); box-shadow:0 0 6px rgba(255,0,128,0.3);
    }
    @keyframes neonPulse {
      0%,100% { box-shadow:0 0 0 2px rgba(0,229,255,0.3), 0 0 20px rgba(0,229,255,0.1); }
      50% { box-shadow:0 0 0 2px rgba(0,229,255,0.6), 0 0 30px rgba(0,229,255,0.2); }
    }
    .replayer-table.theme-neon-vegas .replayer-table-felt { animation:neonPulse 3s ease-in-out infinite; }

    /* ── Theme: Vintage ── */
    .replayer-table.theme-vintage .replayer-table-felt {
      background:radial-gradient(ellipse at 50% 50%, #8B7355 0%, #7A6548 60%, #6B573D 100%) !important;
      border-color:#5C4A32 !important; border-width:4px !important;
      box-shadow:0 0 0 4px rgba(0,0,0,0.2), inset 0 2px 12px rgba(0,0,0,0.3) !important;
    }
    .replayer-table.theme-vintage .replayer-seat-info {
      background:linear-gradient(135deg, #f5e6c8, #e8d5b0); border-color:#c4a878; color:#3a2a14;
    }
    .replayer-table.theme-vintage .replayer-seat-name {
      font-family:'Libre Baskerville',Georgia,serif !important; color:#3a2a14 !important; font-size:0.58rem;
    }
    .replayer-table.theme-vintage .replayer-seat-stack { color:#5a4a2e !important; }
    .replayer-table.theme-vintage .replayer-seat-action { color:#8a7a5e !important; }
    .replayer-table.theme-vintage .replayer-pot-display { color:#f5e6c8; text-shadow:0 1px 3px rgba(0,0,0,0.6); }
    .replayer-table.theme-vintage .replayer-street-label {
      color:rgba(245,230,200,0.7); font-family:'Libre Baskerville',Georgia,serif !important;
    }

    /* ── Theme: Minimalist ── */
    .replayer-table.theme-minimalist .replayer-table-felt {
      background:#f0f0f0 !important; border-color:#ccc !important; border-width:1px !important;
      box-shadow:0 1px 4px rgba(0,0,0,0.08) !important; border-radius:50% !important;
    }
    .replayer-table.theme-minimalist .replayer-seat-info {
      background:#fff; border:1px solid #ddd; box-shadow:0 1px 3px rgba(0,0,0,0.06);
    }
    .replayer-table.theme-minimalist .replayer-seat-name {
      font-family:-apple-system,system-ui,sans-serif !important; color:#222 !important;
    }
    .replayer-table.theme-minimalist .replayer-seat-stack { color:#666 !important; }
    .replayer-table.theme-minimalist .replayer-pot-display { color:#222; text-shadow:none; }
    .replayer-table.theme-minimalist .replayer-pot-label { color:#999; }
    .replayer-table.theme-minimalist .replayer-street-label { color:#999; text-shadow:none; }
    .replayer-table.theme-minimalist .replayer-bet-chip { background:rgba(0,0,0,0.08); color:#222; }
    .replayer-table.theme-minimalist .replayer-dealer-btn { background:#222; color:#fff; }

    /* ── Theme: High Stakes ── */
    .replayer-table.theme-high-stakes .replayer-table-felt {
      background:radial-gradient(ellipse at 50% 50%, #1a1a1a 0%, #111 60%, #0a0a0a 100%) !important;
      border-color:#b91c1c !important; border-width:3px !important;
      box-shadow:0 0 0 4px rgba(0,0,0,0.4), inset 0 0 30px rgba(185,28,28,0.08) !important;
    }
    .replayer-table.theme-high-stakes .replayer-seat-info { border-color:rgba(185,28,28,0.3); }
    .replayer-table.theme-high-stakes .replayer-pot-display {
      color:#ef4444; text-shadow:0 0 8px rgba(239,68,68,0.4);
    }
    .replayer-table.theme-high-stakes .replayer-dealer-btn { background:#b91c1c; color:#fff; }

    /* ── Commentator Mode ── */
    .replayer-commentary {
      background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm);
      padding:8px 12px; margin-top:6px; font-size:0.68rem; color:var(--text);
      font-family: var(--serif); font-style:italic;
      min-height:28px; line-height:1.5; border-left:3px solid var(--accent);
    }

    /* ── Action Timeline ── */
    .replayer-timeline {
      display:flex; align-items:center; gap:2px; padding:4px 0; margin-top:4px;
      overflow-x:auto; -webkit-overflow-scrolling:touch;
    }
    .replayer-timeline-dot {
      width:10px; height:10px; border-radius:50%; flex-shrink:0; cursor:pointer;
      transition:all 0.15s; border:1.5px solid transparent;
    }
    .replayer-timeline-dot:hover { transform:scale(1.4); }
    .replayer-timeline-dot.current { border-color:#fff; transform:scale(1.3); }
    .replayer-timeline-dot.action-fold { background:#6b7280; }
    .replayer-timeline-dot.action-check { background:#22c55e; }
    .replayer-timeline-dot.action-call { background:#3b82f6; }
    .replayer-timeline-dot.action-bet { background:#f59e0b; }
    .replayer-timeline-dot.action-raise { background:#ef4444; }
    .replayer-timeline-dot.action-allin { background:#a855f7; }
    .replayer-timeline-dot.street-marker {
      width:2px; height:14px; border-radius:1px; background:var(--border); cursor:default;
    }
    .replayer-timeline-dot.street-marker:hover { transform:none; }

    /* ── Hand Strength Meter ── */
    .replayer-hand-strength {
      display:flex; align-items:center; gap:6px; margin-top:4px; padding:4px 8px;
      background:var(--surface); border:1px solid var(--border); border-radius:6px;
    }
    .replayer-hand-strength-label {
      font-size:0.58rem; color:var(--text-muted); font-family:'Univers Condensed','Univers',sans-serif;
      text-transform:uppercase; letter-spacing:0.3px; white-space:nowrap;
    }
    .replayer-hand-strength-bar {
      flex:1; height:6px; background:var(--surface2); border-radius:3px; overflow:hidden;
    }
    .replayer-hand-strength-fill { height:100%; border-radius:3px; transition:width 0.4s ease-out; }
    .replayer-hand-strength-pct {
      font-size:0.62rem; font-weight:600; font-family:'Univers Condensed','Univers',sans-serif;
      min-width:32px; text-align:right;
    }

    /* ── Pot Odds Display ── */
    .replayer-pot-odds {
      display:inline-flex; align-items:center; gap:4px; padding:2px 8px;
      background:rgba(59,130,246,0.1); border:1px solid rgba(59,130,246,0.25);
      border-radius:4px; font-size:0.58rem; color:#60a5fa;
      font-family:'Univers Condensed','Univers',sans-serif; margin-top:4px;
    }

    /* ── SPR Badge (on felt, near pot) ── */
    .replayer-spr-badge {
      position:absolute; left:50%; top:29%; transform:translate(-50%,-50%);
      z-index:2; font-size:0.44rem; font-family:'Univers Condensed','Univers',sans-serif;
      color:rgba(255,255,255,0.7); background:rgba(0,0,0,0.35);
      padding:1px 6px; border-radius:8px; white-space:nowrap;
      letter-spacing:0.3px;
    }
    /* ── Pot Odds Badge (on felt, near pot) ── */
    .replayer-pot-odds-badge {
      position:absolute; right:15%; top:35%; transform:translate(50%,-50%);
      z-index:3; font-size:0.44rem; font-family:'Univers Condensed','Univers',sans-serif; font-weight:600;
      color:#60a5fa; background:rgba(59,130,246,0.15);
      border:1px solid rgba(59,130,246,0.3);
      padding:1px 6px; border-radius:8px; white-space:nowrap;
    }
    /* ── Bet Sizing Label ── */
    .replayer-bet-sizing {
      font-size:0.38rem; font-family:'Univers Condensed','Univers',sans-serif; color:rgba(255,255,255,0.6);
      text-transform:uppercase; letter-spacing:0.3px; margin-top:1px;
      text-align:center; white-space:nowrap;
    }
    /* ── Range Estimation Dot/Label ── */
    .replayer-range-label {
      font-size:0.36rem; font-family:'Univers Condensed','Univers',sans-serif; font-weight:600;
      line-height:1; padding:1px 4px; border-radius:3px; display:inline-flex; align-items:center; justify-content:center;
      margin-top:1px; text-transform:uppercase; letter-spacing:0.2px;
    }
    .replayer-range-strong { background:rgba(239,68,68,0.2); color:#f87171; }
    .replayer-range-medium { background:rgba(59,130,246,0.2); color:#60a5fa; }
    .replayer-range-speculative { background:rgba(156,163,175,0.2); color:#9ca3af; }
    .replayer-range-passive { background:rgba(34,197,94,0.2); color:#4ade80; }
    /* ── Running Chip Count ── */
    .replayer-chip-delta {
      font-size:0.42rem; font-family:'Univers Condensed','Univers',sans-serif; font-weight:600;
      margin-top:0px; text-align:center;
    }
    .replayer-chip-delta.positive { color:#4ade80; }
    .replayer-chip-delta.negative { color:#f87171; }
    .replayer-chip-delta.neutral { color:var(--text-muted); }
    /* ── Equity Display at Showdown ── */
    .replayer-equity-bar-wrap {
      position:absolute; left:50%; bottom:-4px; transform:translateX(-50%);
      width:60px; display:flex; flex-direction:column; align-items:center; gap:1px;
    }
    .replayer-equity-bar {
      width:100%; height:4px; background:rgba(255,255,255,0.1); border-radius:2px; overflow:hidden;
    }
    .replayer-equity-fill { height:100%; border-radius:2px; transition:width 0.4s ease-out; }
    .replayer-equity-pct {
      font-size:0.38rem; font-family:'Univers Condensed','Univers',sans-serif; font-weight:600; white-space:nowrap;
    }
    /* ── Hand Notes ── */
    .replayer-notes-area {
      margin-top:6px; padding:6px 8px; background:var(--surface);
      border:1px solid var(--border); border-radius:6px;
    }
    .replayer-notes-area label {
      font-size:0.55rem; font-family:'Univers Condensed','Univers',sans-serif; color:var(--text-muted);
      text-transform:uppercase; letter-spacing:0.4px; display:block; margin-bottom:3px;
    }
    .replayer-notes-area textarea {
      width:100%; min-height:48px; resize:vertical; background:var(--bg); color:var(--text);
      border:1px solid var(--border); border-radius:4px; padding:4px 6px;
      font-size:0.65rem; font-family:'Univers Condensed','Univers',sans-serif; line-height:1.4;
    }
    .replayer-notes-area textarea:focus { outline:none; border-color:var(--accent); }
    /* ── Enhanced Timeline with street color segments ── */
    .replayer-timeline-street-label {
      font-size:0.36rem; font-family:'Univers Condensed','Univers',sans-serif; text-transform:uppercase;
      letter-spacing:0.3px; padding:0 2px; flex-shrink:0; opacity:0.7;
    }
    .replayer-timeline-dot.street-preflop { background:#9ca3af; }
    .replayer-timeline-dot.street-flop { background:#22c55e; }
    .replayer-timeline-dot.street-turn { background:#3b82f6; }
    .replayer-timeline-dot.street-river { background:#ef4444; }
    .replayer-timeline-dot.street-preflop.current,
    .replayer-timeline-dot.street-flop.current,
    .replayer-timeline-dot.street-turn.current,
    .replayer-timeline-dot.street-river.current { border-color:#fff; transform:scale(1.3); }

    /* ── Cinematic Card Deal Animation (preflop) ── */
    @keyframes cinematicDeal {
      0% { opacity:0; transform:translate(var(--deal-dx,40px),var(--deal-dy,-60px)) scale(0.2); }
      30% { opacity:0.6; }
      70% { transform:translate(calc(var(--deal-dx,40px)*0.1),calc(var(--deal-dy,-60px)*0.1)) scale(0.95); }
      85% { transform:translate(0,0) scale(1.03); }
      100% { opacity:1; transform:none; }
    }
    .replayer-seat-cards.animate-deal {
      animation:cinematicDeal 0.4s cubic-bezier(0.23,1,0.32,1) both;
    }
    /* Stagger deal animation per seat */
    .replayer-seat-cards.animate-deal {
      animation-delay: var(--deal-seat-delay, 0ms);
    }

    /* ── Board Card Animations ── */
    @keyframes flopCardSlide {
      0% { opacity:0; transform:translateX(-60px) scale(0.7) rotate(-8deg); }
      50% { opacity:0.8; transform:translateX(6px) scale(1.03) rotate(1deg); }
      70% { transform:translateX(-2px) scale(0.99) rotate(0deg); }
      100% { opacity:1; transform:translateX(0) scale(1) rotate(0deg); }
    }
    @keyframes turnRiverSlide {
      0% { opacity:0; transform:translateX(-40px) scale(0.6); filter:blur(2px); }
      60% { opacity:0.9; transform:translateX(4px) scale(1.02); filter:blur(0); }
      100% { opacity:1; transform:translateX(0) scale(1); filter:blur(0); }
    }
    .replayer-board-area.animate-board-flop .card-row > :nth-child(1) { animation:flopCardSlide 0.4s cubic-bezier(0.23,1,0.32,1) both; animation-delay:0ms; }
    .replayer-board-area.animate-board-flop .card-row > :nth-child(2) { animation:flopCardSlide 0.4s cubic-bezier(0.23,1,0.32,1) both; animation-delay:120ms; }
    .replayer-board-area.animate-board-flop .card-row > :nth-child(3) { animation:flopCardSlide 0.4s cubic-bezier(0.23,1,0.32,1) both; animation-delay:240ms; }
    .replayer-board-area.animate-board-turn .card-row > :nth-child(4) { animation:turnRiverSlide 0.35s cubic-bezier(0.23,1,0.32,1) both; }
    .replayer-board-area.animate-board-river .card-row > :nth-child(5) { animation:turnRiverSlide 0.35s cubic-bezier(0.23,1,0.32,1) both; }
    /* Legacy fallback */
    .replayer-board-area.animate-board .card-img,
    .replayer-board-area.animate-board .card-classic { animation:flopCardSlide 0.4s cubic-bezier(0.23,1,0.32,1) both; }

    /* ── Fold Animation (cards slide to muck) ── */
    @keyframes foldToMuck {
      0% { opacity:1; transform:translateX(-50%) scale(1) rotate(0deg); }
      40% { opacity:0.7; transform:translateX(calc(-50% + var(--muck-dx,0px))) translateY(var(--muck-dy,20px)) scale(0.85) rotate(var(--muck-rot,-8deg)); }
      100% { opacity:0; transform:translateX(calc(-50% + var(--muck-dx,0px))) translateY(var(--muck-dy,40px)) scale(0.4) rotate(var(--muck-rot,-15deg)); }
    }
    .replayer-seat.anim-fold .replayer-seat-cards {
      animation:foldToMuck 0.4s cubic-bezier(0.4,0,0.2,1) forwards !important;
    }
    .replayer-seat.anim-fold .replayer-seat-info {
      transition:opacity 0.3s 0.1s;
      opacity:0.5;
    }

    /* ── Chip Bet Animation (slide from seat toward pot) ── */
    @keyframes chipSlideToPot {
      0% { opacity:0; transform:translate(calc(-50% + var(--chip-start-dx,0px)),calc(-50% + var(--chip-start-dy,0px))) scale(0.4); }
      30% { opacity:1; }
      100% { opacity:1; transform:translate(-50%,-50%) scale(1); }
    }
    .replayer-bet-chip.animate-chips {
      animation:chipSlideToPot 0.35s cubic-bezier(0.23,1,0.32,1) both;
    }

    /* ── Pot Collection Animation (chips slide to winner) ── */
    @keyframes potCollect {
      0% { opacity:1; transform:translate(-50%,-50%) scale(1); }
      100% { opacity:0; transform:translate(calc(-50% + var(--win-dx,0px)),calc(-50% + var(--win-dy,0px))) scale(0.3); }
    }
    .replayer-pot-display.anim-pot-collect {
      animation:potCollect 0.5s cubic-bezier(0.4,0,0.2,1) forwards;
    }

    /* ── Winner Shimmer / Gold Pulse ── */
    @keyframes winnerShimmer {
      0% { box-shadow:0 0 4px rgba(234,179,8,0.3), 0 0 8px rgba(234,179,8,0.1); border-color:rgba(234,179,8,0.4); }
      20% { box-shadow:0 0 16px rgba(255,215,0,0.7), 0 0 32px rgba(255,215,0,0.3), inset 0 0 8px rgba(255,215,0,0.1); border-color:#ffd700; }
      40% { box-shadow:0 0 10px rgba(234,179,8,0.5), 0 0 20px rgba(234,179,8,0.2); border-color:rgba(234,179,8,0.6); }
      60% { box-shadow:0 0 14px rgba(255,215,0,0.6), 0 0 28px rgba(255,215,0,0.25), inset 0 0 6px rgba(255,215,0,0.08); border-color:#ffd700; }
      100% { box-shadow:0 0 8px rgba(234,179,8,0.45), 0 0 18px rgba(234,179,8,0.2); border-color:#eab308; }
    }
    @keyframes winnerBounce {
      0% { transform:scale(1); }
      15% { transform:scale(1.12) translateY(-4px); }
      30% { transform:scale(0.98) translateY(1px); }
      45% { transform:scale(1.06) translateY(-2px); }
      60% { transform:scale(0.99); }
      100% { transform:scale(1); }
    }
    .replayer-seat.winner .replayer-seat-cards { animation:winnerBounce 0.7s cubic-bezier(0.23,1,0.32,1); }
    .replayer-seat.winner .replayer-seat-info { animation:winnerShimmer 1.8s ease-in-out 2; }
    @keyframes winnerStarSpin {
      0% { transform:scale(0) rotate(0deg); opacity:0; }
      50% { transform:scale(1.3) rotate(180deg); opacity:1; }
      100% { transform:scale(1) rotate(360deg); opacity:1; }
    }
    .replayer-seat.winner .replayer-winner-star { animation:winnerStarSpin 0.5s ease-out; display:inline-block; }

    /* ── Showdown Card Flip (3D) ── */
    /* Showdown flip disabled — conflicts with card splay transforms */

    /* ── Street Transition ── */
    @keyframes streetTransition {
      0% { opacity:1; }
      30% { opacity:0.5; }
      100% { opacity:1; }
    }
    .replayer-table.anim-street-transition .replayer-table-felt {
      animation:streetTransition 0.5s ease-in-out;
    }
    @keyframes streetLabelPop {
      0% { opacity:0; transform:translate(-50%,-50%) scale(0.6); }
      60% { opacity:1; transform:translate(-50%,-50%) scale(1.1); }
      100% { opacity:1; transform:translate(-50%,-50%) scale(1); }
    }
    .replayer-street-label.anim-pop {
      animation:streetLabelPop 0.4s cubic-bezier(0.23,1,0.32,1);
    }

    /* ── Chip icon for bet animation ── */
    .replayer-flying-chip {
      position:absolute;
      width:14px; height:14px; border-radius:50%;
      background:radial-gradient(ellipse, #e8c840 0%, #d4a420 60%, #b8901a 100%);
      border:1.5px solid rgba(255,255,255,0.5);
      box-shadow:0 1px 3px rgba(0,0,0,0.4);
      z-index:10; pointer-events:none;
      animation:flyChipToPot var(--fly-duration,0.4s) cubic-bezier(0.23,1,0.32,1) forwards;
    }
    @keyframes flyChipToPot {
      0% { left:var(--fly-x0); top:var(--fly-y0); opacity:1; transform:scale(0.6); }
      100% { left:var(--fly-x1); top:var(--fly-y1); opacity:0.8; transform:scale(1); }
    }
    .replayer-flying-chip.to-winner {
      background:radial-gradient(ellipse, #ffd700 0%, #e8b800 60%, #c4980a 100%);
      animation:flyChipToWinner var(--fly-duration,0.5s) cubic-bezier(0.23,1,0.32,1) forwards;
    }
    @keyframes flyChipToWinner {
      0% { left:var(--fly-x0); top:var(--fly-y0); opacity:1; transform:scale(1); }
      100% { left:var(--fly-x1); top:var(--fly-y1); opacity:0; transform:scale(0.4); }
    }

    /* ── Draw discard card animation ── */
    .replayer-draw-discard-card {
      position:absolute; width:18px; height:26px; border-radius:3px;
      background:linear-gradient(135deg, #1a3a6a 0%, #0d2240 100%);
      border:1px solid rgba(255,255,255,0.25);
      box-shadow:0 2px 6px rgba(0,0,0,0.5);
      z-index:12; pointer-events:none;
      animation:drawDiscardFly 0.55s cubic-bezier(0.23,1,0.32,1) forwards;
    }
    .replayer-draw-discard-card.fade-out {
      animation:drawDiscardFade 0.35s ease-out forwards;
    }
    @keyframes drawDiscardFly {
      0% { left:var(--dd-x0); top:var(--dd-y0); opacity:1; transform:translate(-50%,-50%) rotate(0deg) scale(1); }
      100% { left:50%; top:50%; opacity:0.85; transform:translate(calc(-50% + var(--dd-spread)), -50%) rotate(-8deg) scale(0.85); }
    }
    @keyframes drawDiscardFade {
      0% { left:50%; top:50%; opacity:0.85; transform:translate(calc(-50% + var(--dd-spread)), -50%) rotate(-8deg) scale(0.85); }
      100% { left:50%; top:50%; opacity:0; transform:translate(calc(-50% + var(--dd-spread)), -50%) rotate(-12deg) scale(0.5); }
    }

    /* ── Player stats overlay ── */
    .replayer-player-stats {
      position:absolute; top:-2px; right:-2px;
      font-size:0.42rem; font-family:'Univers Condensed','Univers',sans-serif; color:var(--text-muted);
      background:var(--surface2); padding:1px 4px; border-radius:3px;
      border:1px solid var(--border); white-space:nowrap; z-index:5;
    }

    /* ── Pot chip stacks visual ── */
    .replayer-pot-chips {
      display:flex; gap:3px; justify-content:center; align-items:flex-end;
    }
    .replayer-pot-chip-stack { display:flex; flex-direction:column-reverse; align-items:center; }
    .replayer-pot-chip-disc {
      width:14px; height:5px; border-radius:50%;
      border:0.5px solid rgba(255,255,255,0.35);
      margin-top:-3px; box-shadow:0 1px 1px rgba(0,0,0,0.3);
    }
    .replayer-pot-chip-disc:first-child { margin-top:0; }

    /* ── Table shapes ── */
    .replayer-table-felt.shape-round { border-radius:50% !important; inset:12% 22% !important; }
    .replayer-table-felt.shape-octagon {
      border-radius:0 !important; inset:8% 18% !important;
      clip-path:polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
    }

    /* ── Scrollable content area ── */
    .content-area {
      flex: 1;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      padding: 12px 12px 80px; /* bottom pad clears the tab bar */
      background: var(--bg);
    }
    .view-fade {
      animation: viewFadeIn 0.2s ease-out;
      height: 100%;
    }
    .tab-panel.tab-active {
      animation: viewFadeIn 0.2s ease-out;
    }
    @keyframes viewFadeIn {
      from { opacity: 0; }
      to { opacity: 1; }
    }
    /* ── Pull-to-refresh ── */
    .ptr-container {
      position: relative;
    }
    .ptr-indicator {
      position: absolute;
      top: -40px;
      left: 50%;
      transform: translateX(-50%);
      width: 28px;
      height: 28px;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: transform 0.15s ease-out, opacity 0.15s;
      opacity: 0;
      z-index: 10;
      pointer-events: none;
    }
    .ptr-indicator.visible {
      opacity: 1;
    }
    .ptr-spinner {
      width: 20px;
      height: 20px;
      border: 2px solid var(--border);
      border-top-color: var(--accent);
      border-radius: 50%;
    }
    .ptr-spinner.spinning {
      animation: ptrSpin 0.6s linear infinite;
    }
    @keyframes ptrSpin {
      to { transform: rotate(360deg); }
    }

    .content-area:has(.tab-panel.tab-active .dashboard-view) {
      overflow: hidden;
      padding-bottom: 12px;
    }

    /* ── Bottom tab bar ── */
    .bottom-nav {
      height: var(--tab-h);
      background: var(--surface);
      border-top: 1px solid var(--border);
      display: flex;
      align-items: stretch;
      flex-shrink: 0;
      position: relative;
      z-index: 100;
    }

    .nav-tab {
      flex: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 3px;
      background: none;
      border: none;
      color: var(--text-muted);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.65rem;
      font-weight: 600;
      line-height: 1;
      cursor: pointer;
      transition: color 0.2s;
      padding: 6px 0;
      letter-spacing: 0.02em;
      text-transform: none;
    }

    .nav-tab.active { color: var(--accent); }

    .nav-tab svg { width: 22px; height: 22px; stroke-width: 1.8; }

    .nav-tab-center {
      flex: 1.3;
      font-size: 0.72rem;
    }
    .nav-tab-center svg { width: 26px; height: 26px; }

    /* ── Auth screen ── */
    .auth-wrap {
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 100vh;
      padding: 24px 16px;
      background: var(--bg);
    }

    .auth-card {
      width: 100%;
      max-width: 400px;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 32px 24px;
    }

    .auth-logo {
      text-align: center;
      margin-bottom: 24px;
    }

    .auth-logo h1 { font-family: var(--serif); font-size: 1.4rem; font-weight: 700; color: var(--text); margin-bottom: 4px; letter-spacing: -0.05em; }
    .auth-logo p { font-size: 0.8rem; color: var(--text-muted); }

    .form-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }

    .form-field label { font-size: 0.85rem; font-weight: 600; color: var(--text-muted); }

    .form-field input {
      padding: 13px 14px;
      border: 1.5px solid var(--border);
      border-radius: var(--radius-sm);
      background: var(--bg);
      color: var(--text);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 1rem;
      transition: border-color 0.2s;
    }

    .form-field input:focus {
      outline: none;
      border-color: var(--accent);
    }

    /* ── Buttons ── */
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      padding: 13px 20px;
      border: none;
      border-radius: var(--radius-sm);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.95rem;
      font-weight: 600;
      cursor: pointer;
      transition: opacity 0.15s, transform 0.1s;
      line-height: 1;
    }

    .btn:active { transform: scale(0.97); }

    .btn-primary { background: var(--accent); color: var(--bg-contrast); }
    .btn-primary:hover { opacity: 0.88; }
    .btn-primary:disabled { opacity: 0.3; cursor: not-allowed; }

    .btn-danger { background: var(--accent2); color: #fff; }
    .btn-danger:hover { opacity: 0.88; }

    .btn-ghost {
      background: transparent;
      color: var(--text-muted);
      border: 1.5px solid var(--border);
    }

    .btn-ghost:hover { border-color: var(--accent); color: var(--accent); }

    .btn-sm { padding: 8px 14px; font-size: 0.82rem; }

    .btn-full { width: 100%; }

    /* ── Alerts ── */
    .alert {
      padding: 12px 14px;
      border-radius: var(--radius-sm);
      font-size: 0.9rem;
      margin-bottom: 12px;
      display: flex;
      align-items: flex-start;
      gap: 8px;
    }

    .alert-error { background: rgba(136,136,136,0.15); border: 1px solid rgba(136,136,136,0.4); color: #999999; }
    .alert-success { background: rgba(160,160,160,0.12); border: 1px solid rgba(160,160,160,0.4); color: var(--accent); }

    /* ── Toasts ── */
    .toast-container {
      position: fixed;
      bottom: calc(var(--tab-h) + 12px);
      left: 50%;
      transform: translateX(-50%);
      z-index: 9999;
      display: flex;
      flex-direction: column-reverse;
      gap: 8px;
      pointer-events: none;
      width: calc(100% - 24px);
      max-width: 400px;
    }
    .toast {
      pointer-events: auto;
      padding: 10px 16px;
      border-radius: var(--radius-sm);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.8rem;
      font-weight: 500;
      letter-spacing: 0.02em;
      display: flex;
      align-items: center;
      gap: 8px;
      box-shadow: 0 4px 16px rgba(0,0,0,0.3);
      animation: toastIn 0.25s ease-out;
      cursor: pointer;
    }
    .toast.exiting {
      animation: toastOut 0.2s ease-in forwards;
    }
    .toast-error {
      background: var(--surface);
      border: 1px solid #ef4444;
      color: #ef4444;
    }
    .toast-success {
      background: var(--surface);
      border: 1px solid #22c55e;
      color: #22c55e;
    }
    .toast-info {
      background: var(--surface);
      border: 1px solid var(--accent);
      color: var(--accent);
    }
    .toast-icon {
      flex-shrink: 0;
      font-size: 1rem;
      line-height: 1;
    }
    .toast-message {
      flex: 1;
      min-width: 0;
    }
    @keyframes toastIn {
      from { opacity: 0; transform: translateY(12px) scale(0.95); }
      to { opacity: 1; transform: translateY(0) scale(1); }
    }
    @keyframes toastOut {
      from { opacity: 1; transform: translateY(0) scale(1); }
      to { opacity: 0; transform: translateY(8px) scale(0.95); }
    }

    /* ── Skeleton loading ── */
    @keyframes shimmer {
      0% { background-position: -200% 0; }
      100% { background-position: 200% 0; }
    }
    .skeleton {
      background: linear-gradient(90deg, var(--surface2) 25%, var(--border) 50%, var(--surface2) 75%);
      background-size: 200% 100%;
      animation: shimmer 1.5s ease-in-out infinite;
      border-radius: var(--radius-sm);
    }
    .skeleton-text {
      height: 0.8rem;
      margin-bottom: 6px;
      border-radius: 4px;
    }
    .skeleton-text.sm { width: 40%; }
    .skeleton-text.md { width: 65%; }
    .skeleton-text.lg { width: 90%; }
    .skeleton-card {
      border-radius: var(--radius);
      padding: 14px 16px;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }
    .skeleton-strip {
      height: 6px;
      border-radius: 3px;
    }
    .skeleton-row {
      display: flex;
      gap: 10px;
      align-items: center;
    }
    .skeleton-circle {
      width: 28px;
      height: 28px;
      border-radius: 50%;
      flex-shrink: 0;
    }
    .skeleton-btn {
      height: 36px;
      border-radius: var(--radius-sm);
    }

    /* ── Settings ── */
    .settings-view { padding: 0 4px; }
    .settings-section {
      margin-bottom: 24px;
    }
    .settings-section-label {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.7rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--text-muted);
      margin-bottom: 8px;
      padding-left: 2px;
    }
    .settings-card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius-sm);
      overflow: hidden;
    }
    .settings-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 12px 14px;
      gap: 12px;
      border-bottom: 1px solid var(--border);
    }
    .settings-row:last-child { border-bottom: none; }
    .settings-row-label {
      font-size: 0.88rem;
      color: var(--text);
    }
    .settings-row-value {
      font-size: 0.82rem;
      color: var(--text-muted);
      text-align: right;
    }
    .settings-row-btn {
      width: 100%;
      padding: 12px 14px;
      background: none;
      border: none;
      border-bottom: 1px solid var(--border);
      color: var(--text);
      font-size: 0.88rem;
      text-align: left;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }
    .settings-row-btn:last-child { border-bottom: none; }
    .settings-row-btn:active { background: var(--hover-overlay); }
    .settings-row-btn.danger { color: #b91c1c; }

    .settings-toggle {
      position: relative;
      width: 44px;
      height: 24px;
      background: var(--border);
      border-radius: 12px;
      border: none;
      cursor: pointer;
      transition: background 0.2s;
      flex-shrink: 0;
    }
    .settings-toggle.on { background: var(--accent); }
    .settings-toggle::after {
      content: '';
      position: absolute;
      top: 2px;
      left: 2px;
      width: 20px;
      height: 20px;
      background: white;
      border-radius: 50%;
      transition: transform 0.2s;
    }
    .settings-toggle.on::after { transform: translateX(20px); }

    .settings-debug-input {
      background: var(--surface2);
      border: 1px solid var(--border);
      border-radius: var(--radius-sm);
      color: var(--text);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.82rem;
      padding: 6px 10px;
      width: 100%;
      max-width: 220px;
    }
    .settings-debug-input:focus {
      outline: none;
      border-color: var(--accent);
    }

    .settings-about {
      text-align: center;
      padding: 20px 0;
      color: var(--text-muted);
      font-size: 0.78rem;
    }
    .settings-about h3 {
      font-family: var(--serif);
      font-size: 1.1rem;
      color: var(--text);
      margin-bottom: 4px;
      letter-spacing: -0.05em;
    }

    /* ── Search & filters ── */
    .sticky-filters {
      position: sticky;
      top: -12px;
      z-index: 100;
      background: var(--bg);
      margin: -12px -12px 0;
      padding: 24px 12px 6px;
      box-shadow: 0 4px 0 0 var(--bg);
    }

    .search-bar {
      display: flex;
      align-items: center;
      background: var(--surface);
      border: 1.5px solid var(--border);
      border-radius: var(--radius-sm);
      padding: 0 12px;
      margin-bottom: 10px;
      gap: 8px;
    }

    .search-bar svg { color: var(--text-muted); flex-shrink: 0; width: 18px; height: 18px; }

    .search-bar input {
      flex: 1;
      background: none;
      border: none;
      color: var(--text);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.95rem;
      padding: 12px 0;
      min-width: 0;
    }

    .search-bar input:focus { outline: none; }
    .search-bar input::placeholder { color: var(--text-muted); }

    .filter-row {
      display: flex;
      gap: 8px;
      margin-bottom: 10px;
      flex-wrap: wrap;
    }

    .filter-chip {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      padding: 7px 12px;
      background: var(--surface);
      border: 1.5px solid var(--border);
      border-radius: 20px;
      font-size: 0.82rem;
      font-weight: 600;
      line-height: 1;
      color: var(--text-muted);
      cursor: pointer;
      white-space: nowrap;
    }
    .filter-chip svg { width: 14px; height: 14px; display: block; flex-shrink: 0; color: var(--text); }

    .filter-chip.active { border-color: var(--accent); color: var(--accent); background: rgba(160,160,160,0.1); }

    .filter-panel {
      position: fixed; z-index: 100;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 16px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      overflow-y: auto;
      box-shadow: 0 8px 32px rgba(0,0,0,0.3);
      -webkit-overflow-scrolling: touch;
      overscroll-behavior: contain;
    }

    .filter-group { display: flex; flex-direction: column; gap: 6px; }

    .filter-group label { font-size: 0.78rem; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.05em; }

    .filter-group select,
    .filter-group input[type="number"] {
      padding: 10px 12px;
      border: 1.5px solid var(--border);
      border-radius: var(--radius-sm);
      background: var(--bg);
      color: var(--text);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.9rem;
      width: 100%;
    }

    .filter-group select:focus,
    .filter-group input[type="number"]:focus {
      outline: none;
      border-color: var(--accent);
    }

    .filter-span2 { grid-column: span 2; }

    .date-slider-wrap { position: relative; width: 100%; height: 36px; padding: 0 2px; }
    .date-slider-track {
      position: absolute; top: 16px; left: 2px; right: 2px; height: 4px;
      background: var(--border); border-radius: 2px;
    }
    .date-slider-fill {
      position: absolute; top: 16px; height: 4px; border-radius: 2px;
      background: var(--accent);
    }
    .date-slider-input {
      position: absolute; top: 4px; left: 0; width: 100%; height: 28px;
      -webkit-appearance: none; appearance: none;
      background: transparent; pointer-events: none; margin: 0;
    }
    .date-slider-input::-webkit-slider-thumb {
      -webkit-appearance: none; appearance: none;
      width: 18px; height: 18px; border-radius: 50%;
      background: var(--accent); border: 2px solid var(--surface);
      cursor: pointer; pointer-events: auto;
      box-shadow: 0 1px 4px rgba(0,0,0,0.3);
    }
    .date-slider-input::-moz-range-thumb {
      width: 18px; height: 18px; border-radius: 50%;
      background: var(--accent); border: 2px solid var(--surface);
      cursor: pointer; pointer-events: auto;
      box-shadow: 0 1px 4px rgba(0,0,0,0.3);
    }
    .date-slider-labels {
      display: flex; justify-content: space-between; align-items: center;
      font-size: 0.72rem; color: var(--text-muted); margin-top: 2px;
      font-family: 'Univers Condensed', 'Univers', sans-serif; font-weight: 400;
    }
    .date-slider-labels span { min-width: 50px; }
    .date-slider-labels span:last-child { text-align: right; }
    .date-slider-date-link {
      cursor: pointer; position: relative;
      color: var(--accent); text-decoration: underline;
      text-underline-offset: 2px;
    }
    .date-slider-date-link:last-child { text-align: right; }
    .date-slider-date-link input[type="date"] {
      position: absolute; top: 0; left: 0; width: 100%; height: 100%;
      opacity: 0; cursor: pointer;
      -webkit-appearance: none;
    }

    .month-row {
      transition: all 0.25s ease;
    }
    .month-series-wrap {
      display: grid;
      grid-template-rows: 0fr;
      opacity: 0;
      transition: grid-template-rows 0.25s ease, opacity 0.2s ease;
    }
    .month-series-wrap.open {
      grid-template-rows: 1fr;
      opacity: 1;
    }
    .month-series-wrap > span {
      overflow: hidden;
    }

    .results-count {
      font-size: 0.8rem;
      color: var(--text-muted);
      margin-bottom: 8px;
      padding-left: 2px;
    }

    /* ── Tournament cards ── */
    .tournament-list { display: flex; flex-direction: column; gap: 10px; }

    .t-card {
      background: var(--surface);
      border: 1.5px solid var(--border);
      border-radius: var(--radius);
      overflow: hidden;
      transition: border-color 0.2s;
    }

    .t-card.saved { border-color: var(--accent); }

    /* Venue backgrounds — tournament cards */
    .t-card.venue-hs   { background: var(--venue-hs-bg); }
    .t-card.venue-wynn { background: var(--venue-wynn-bg); }
    .t-card.venue-aria { background: var(--venue-aria-bg); }
    .t-card.venue-gn   { background: var(--venue-gn-bg); }

    /* Bracelet events → gold border */
    .t-card.bracelet { border-color: #c0c0c0; }

    /* Bracelet + saved: gold wins */
    .t-card.bracelet.saved { border-color: #c0c0c0; }

    .t-card.past {
      opacity: 0.4;
    }

    .t-card-main {
      padding: 14px 14px 12px;
    }

    .t-card-top {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 10px;
      margin-bottom: 6px;
    }

    .t-card-badges { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }

    .badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 0.72rem;
      font-weight: 700;
      padding: 3px 9px;
      border-radius: 20px;
      letter-spacing: 0.03em;
      line-height: 1;
    }

    .badge-event { background: rgba(136,136,136,0.2); color: #999999; }
    .badge-variant { background: rgba(160,160,160,0.12); color: var(--accent); }
    .badge-clickable { cursor: pointer; }
    .badge-clickable:active { opacity: 0.6; }

    .t-buyin {
      font-family: var(--serif);
      font-size: 1.25rem;
      font-weight: 700;
      color: var(--accent);
      flex-shrink: 0;
    }

    .t-name {
      font-family: var(--serif);
      font-size: 0.95rem;
      font-weight: 400;
      color: var(--text);
      line-height: 1.4;
      margin-bottom: 10px;
    }

    .t-meta {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 6px 12px;
    }

    .t-meta-item {
      display: flex;
      flex-direction: column;
      gap: 1px;
    }

    .t-meta-label {
      font-size: 0.68rem;
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: 0.05em;
      font-weight: 600;
    }

    .t-meta-value {
      font-family: var(--serif);
      font-size: 0.85rem;
      color: var(--text);
      font-weight: 400;
    }

    .t-notes {
      margin-top: 8px;
      font-size: 0.8rem;
      color: var(--text-muted);
      font-style: italic;
      grid-column: span 2;
    }

    .t-card-footer {
      display: flex;
      border-top: 1px solid var(--border);
    }

    .t-action-btn {
      flex: 1;
      padding: 12px;
      background: none;
      border: none;
      font-size: 0.85rem;
      font-weight: 700;
      cursor: pointer;
      color: var(--accent);
      transition: background 0.15s;
      letter-spacing: 0.02em;
    }

    .t-action-btn:active { background: rgba(160,160,160,0.1); }

    .t-action-btn.remove { color: var(--accent2); }
    .t-action-btn.remove:active { background: rgba(136,136,136,0.1); }

    .countdown-pill {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 4px;
      background: rgba(160,160,160,0.1);
      border: 1px solid rgba(160,160,160,0.25);
      color: var(--accent);
      font-size: 0.78rem;
      font-weight: 700;
      line-height: 1;
      padding: 3px 10px;
      border-radius: 20px;
      margin-top: 8px;
    }

    /* ── Empty states ── */
    .empty-state {
      text-align: center;
      padding: 60px 24px;
      color: var(--text-muted);
    }

    .empty-state svg { width: 48px; height: 48px; margin-bottom: 16px; opacity: 0.4; }
    .empty-state h3 { font-size: 1rem; color: var(--text); margin-bottom: 6px; }
    .empty-state p { font-size: 0.85rem; }

    /* ── Calendar ── */
    .calendar-nav {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 12px;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 8px 16px;
    }

    .cal-nav-btn {
      background: none;
      border: none;
      color: var(--accent);
      cursor: pointer;
      padding: 4px;
      border-radius: 6px;
      display: flex;
      align-items: center;
    }

    .cal-nav-btn:hover { background: rgba(160,160,160,0.1); }
    .cal-nav-btn svg { width: 20px; height: 20px; }

    .cal-date-label {
      text-align: center;
    }

    .cal-date-label .day-name { font-size: 0.78rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.08em; }
    .cal-date-label .day-full { font-size: 1.1rem; font-weight: 700; color: var(--text); }

    .cal-date-strip {
      display: flex;
      gap: 6px;
      overflow-x: auto;
      padding-bottom: 6px;
      margin-bottom: 8px;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
    }

    .cal-date-strip::-webkit-scrollbar { display: none; }

    .cal-date-btn {
      flex-shrink: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding: 5px 10px;
      border-radius: var(--radius-sm);
      background: var(--surface);
      border: 1.5px solid var(--border);
      cursor: pointer;
      min-width: 52px;
      transition: all 0.15s;
    }

    .cal-date-btn.active { background: var(--accent); border-color: var(--accent); animation: date-bounce 0.45s cubic-bezier(0.18, 1.8, 0.35, 1) both; }

    @keyframes date-bounce {
      0%   { transform: scale(0.85); }
      60%  { transform: scale(1.12); }
      100% { transform: scale(1); }
    }
    .cal-date-btn.has-events { border-color: rgba(160,160,160,0.5); }

    .cal-date-btn .dow {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.65rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      color: var(--text-muted);
    }

    .cal-date-btn.active .dow { color: var(--bg-contrast); }

    .cal-date-btn .dom {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 1.1rem;
      font-weight: 800;
      color: var(--text);
      line-height: 1.2;
    }

    .cal-date-btn.active .dom { color: var(--bg-contrast); }

    .cal-date-btn .ev-dot {
      width: 5px; height: 5px;
      border-radius: 50%;
      background: var(--accent);
      margin-top: 2px;
    }

    .cal-date-btn.active .ev-dot { background: var(--bg-contrast); }

    .cal-event-count {
      font-size: 0.75rem;
      color: var(--text-muted);
      margin-bottom: 8px;
    }

    /* ── Upload ── */
    .upload-card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 32px 20px;
      text-align: center;
    }

    .upload-card h2 { font-size: 1.1rem; color: var(--accent); margin-bottom: 8px; }
    .upload-card p { font-size: 0.85rem; color: var(--text-muted); margin-bottom: 24px; }

    .drop-zone {
      border: 2px dashed var(--border);
      border-radius: var(--radius);
      padding: 40px 20px;
      margin-bottom: 20px;
      transition: border-color 0.2s;
    }

    .drop-zone:hover { border-color: var(--accent); }
    .drop-zone svg { width: 40px; height: 40px; color: var(--text-muted); margin-bottom: 12px; }
    .drop-zone p { font-size: 0.85rem; color: var(--text-muted); }

    .file-input { display: none; }

    /* ── Section headers ── */
    .section-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 10px;
    }

    .section-header h2 { font-size: 1rem; font-weight: 700; color: var(--text); }

    .schedule-sticky-header {
      position: sticky;
      top: -12px;
      z-index: 6;
      background: var(--bg);
      padding: 24px 12px 12px;
      margin: -12px -12px -2px;
      box-shadow: 0 4px 0 0 var(--bg);
    }

    /* ── Calendar event rows (collapsible) ── */
    .cal-event-row {
      background: var(--surface);
      border: none;
      border-radius: var(--radius-sm);
      margin-bottom: 6px;
      overflow: hidden;
      transition: border-color 0.2s;
      display: flex;
    }

    .cal-event-row-content {
      flex: 1;
      min-width: 0;
      border: 1.5px solid var(--border);
      border-left: none;
      border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    }

    .cal-venue-strip {
      width: 22px;
      flex-shrink: 0;
      align-self: stretch;
      display: grid;
      place-items: center;
      writing-mode: vertical-rl;
      text-orientation: mixed;
      transform: rotate(180deg);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.48rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.85);
      border-radius: 0;
      position: relative;
      user-select: none;
      padding: 0 2px 0 0;
      white-space: nowrap;
      overflow: hidden;
      text-align: center;
      line-height: 22px;
      box-sizing: border-box;
      transition: font-size 0.3s ease, letter-spacing 0.3s ease;
    }
    .venue-strip-abbr,
    .venue-strip-full {
      grid-area: 1 / 1;
      transition: opacity 0.3s ease;
    }
    .venue-strip-full { opacity: 0; }
    .cal-event-row.open .venue-strip-abbr { opacity: 0; }
    .cal-event-row.open .venue-strip-full { opacity: 1; }

    .cal-event-row.open .cal-venue-strip {
      font-size: 0.72rem;
      letter-spacing: 0.12em;
    }

    /* saved border color applied inline via venue brand color */

    /* Venue backgrounds removed — all cards use var(--surface) for consistency */

    /* Bracelet events only get special border when saved */
    .cal-event-row.bracelet.saved .cal-event-row-content {
      border-color: #c0c0c0;
    }
    :is([data-theme="light"],[data-theme="cloudy"]) .cal-event-row.bracelet.saved .cal-event-row-content {
      border-color: #000000;
    }

    .cal-event-row.past {
      opacity: 0.4;
    }

    /* ── Conditional events ── */
    .cal-event-row.conditional .cal-event-row-content {
      border-style: dashed dashed dashed none;
    }
    /* Anchor / must-play events — inset bold border (no size change) */
    .cal-event-row.anchor {
      box-shadow: inset 0 0 0 1.5px var(--border);
    }
    .badge-anchor {
      background: rgba(59,130,246,0.15);
      color: #60a5fa;
      border: 1px solid rgba(59,130,246,0.3);
    }
    :is([data-theme="light"],[data-theme="cloudy"]) .badge-anchor {
      color: #2563eb;
    }
    /* anchor icon color handled via .cal-action-icon in new layout */

    /* conditional saved border color applied inline via venue brand color */
    .cal-condition-label {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.6rem;
      font-weight: 600;
      line-height: 1;
      color: var(--text-muted);
      background: rgba(136,136,136,0.12);
      border: 1px solid rgba(136,136,136,0.25);
      padding: 2px 6px;
      border-radius: 3px;
      white-space: nowrap;
      letter-spacing: 0.02em;
    }
    .badge-condition {
      background: rgba(136,136,136,0.15);
      color: var(--text-muted);
      border: 1px solid rgba(136,136,136,0.3);
    }
    .badge-rake {
      font-variant-numeric: tabular-nums;
    }
    .badge-rake.rake-low {
      background: rgba(34,197,94,0.12);
      color: #4ade80;
      border: 1px solid rgba(34,197,94,0.25);
    }
    .badge-rake.rake-mid {
      background: rgba(234,179,8,0.12);
      color: #facc15;
      border: 1px solid rgba(234,179,8,0.25);
    }
    .badge-rake.rake-high {
      background: rgba(239,68,68,0.12);
      color: #f87171;
      border: 1px solid rgba(239,68,68,0.25);
    }
    :is([data-theme="light"],[data-theme="cloudy"]) .badge-rake.rake-low {
      color: #15803d;
      background: rgba(34,197,94,0.1);
      border-color: rgba(34,197,94,0.3);
    }
    :is([data-theme="light"],[data-theme="cloudy"]) .badge-rake.rake-mid {
      color: #a16207;
      background: rgba(234,179,8,0.1);
      border-color: rgba(234,179,8,0.3);
    }
    :is([data-theme="light"],[data-theme="cloudy"]) .badge-rake.rake-high {
      color: #dc2626;
      background: rgba(239,68,68,0.1);
      border-color: rgba(239,68,68,0.3);
    }
    /* ── If I Bust dropdown ── */
    .bust-list { border-top: 1px solid var(--border); }
    .bust-list-toggle {
      display: flex; align-items: center; justify-content: space-between;
      width: 100%; padding: 10px 12px; border: none; background: none;
      color: var(--text-muted); font-family: 'Univers Condensed', 'Univers', sans-serif; font-size: 0.78rem;
      font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; cursor: pointer;
    }
    .bust-list-toggle:hover { color: var(--text); }
    .bust-list-items { padding: 0 12px 10px; display: flex; flex-direction: column; gap: 6px; }
    .bust-list-item {
      display: flex; align-items: center; gap: 8px; padding: 6px 8px;
      background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-sm);
      font-size: 0.78rem;
    }
    .bust-list-time { color: var(--text-muted); font-weight: 600; white-space: nowrap; min-width: 60px; }
    .bust-list-name { flex: 1; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .bust-list-buyin { color: var(--text-muted); font-weight: 600; white-space: nowrap; }
    .bust-list-add {
      width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid var(--accent);
      background: none; color: var(--accent); font-size: 1rem; font-weight: 700;
      cursor: pointer; display: flex; align-items: center; justify-content: center;
      flex-shrink: 0; padding: 0; line-height: 1;
    }
    .bust-list-add:hover { background: var(--accent); color: var(--bg); }

    .condition-picker {
      border-top: 1px solid var(--border);
      padding: 12px;
    }
    .condition-picker-title {
      font-size: 0.72rem;
      font-weight: 700;
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: 0.05em;
      margin-bottom: 8px;
    }
    .condition-type-row {
      display: flex;
      gap: 8px;
      margin-bottom: 10px;
    }
    .condition-type-btn {
      flex: 1;
      padding: 8px 10px;
      border: 1.5px solid var(--border);
      border-radius: var(--radius-sm);
      background: var(--bg);
      color: var(--text-muted);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.78rem;
      font-weight: 600;
      cursor: pointer;
      text-align: center;
    }
    .condition-type-btn.active {
      border-color: var(--accent);
      color: var(--accent);
      background: rgba(160,160,160,0.1);
    }
    .condition-sat-list {
      display: flex;
      flex-direction: column;
      gap: 4px;
      margin-bottom: 10px;
      max-height: 150px;
      overflow-y: auto;
    }
    .condition-sat-item {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 8px 10px;
      border: 1px solid var(--border);
      border-radius: var(--radius-sm);
      background: var(--surface2);
      cursor: pointer;
      font-size: 0.78rem;
      color: var(--text);
    }
    .condition-sat-item:active,
    .condition-sat-item:hover {
      background: var(--hover-overlay);
    }
    .condition-sat-item.selected {
      border-color: var(--accent);
      background: rgba(160,160,160,0.08);
    }
    .condition-search {
      padding: 8px 10px;
      border: 1.5px solid var(--border);
      border-radius: var(--radius-sm);
      background: var(--bg);
      color: var(--text);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.82rem;
      width: 100%;
      box-sizing: border-box;
      margin-bottom: 8px;
    }
    .condition-search:focus {
      outline: none;
      border-color: var(--accent);
    }
    .cal-event-bar {
      display: flex;
      flex-direction: column;
      gap: 4px;
      padding: 10px 12px;
      cursor: pointer;
      position: relative;
      user-select: none;
      -webkit-user-select: none;
    }

    .cal-event-bar:active { background: var(--hover-overlay); }

    .cal-sat-badge {
      font-size: 0.55rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      color: var(--text-muted);
      background: var(--border);
      border-radius: 3px;
      padding: 1px 4px;
      line-height: 1;
      flex-shrink: 0;
    }

    .cal-bounty-icon {
      width: 14px;
      height: 14px;
      color: var(--text);
      opacity: 0.5;
      pointer-events: none;
      flex-shrink: 0;
      margin-left: auto;
      align-self: center;
      position: relative;
      top: -6px;
      left: 1px;
    }

    .cal-bounty-icon + .cal-bounty-icon {
      margin-left: 4px;
    }

    .cal-bounty-icon:has(+ .cal-bracelet-icon) {
      left: -3px;
    }

    .cal-ring-icon {
      width: 18px;
      height: 18px;
      color: #c9a227;
      opacity: 0.85;
      pointer-events: none;
      flex-shrink: 0;
      align-self: center;
      position: relative;
      top: -3px;
      left: 3px;
    }

    .cal-bracelet-icon {
      width: 21px;
      height: 21px;
      color: #c9a227;
      opacity: 0.85;
      pointer-events: none;
      flex-shrink: 0;
      align-self: center;
      margin-left: auto;
      margin-right: -4.5px;
      position: relative;
      top: -5px;
      left: -5px;
    }

    .cal-bar-row1 {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .cal-bar-row2 {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .cal-event-time {
      font-size: 0.78rem;
      font-weight: 700;
      color: var(--text-muted);
      flex-shrink: 0;
    }

    .cal-event-name {
      font-family: var(--serif);
      flex: 1;
      font-size: 0.84rem;
      font-weight: 400;
      color: var(--text);
      min-width: 0;
      line-height: 1.3;
    }
    [data-serif="univers"] .cal-event-name {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-weight: 700;
    }
    [data-serif="helvetica"] .cal-event-name {
      font-weight: 700;
      letter-spacing: -0.025em;
    }

    .cal-event-buyin {
      font-family: var(--serif);
      font-size: 0.84rem;
      font-weight: 700;
      color: var(--accent);
      flex-shrink: 0;
      margin-left: auto;
    }

    .cal-venue-chip {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.62rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      padding: 1px 5px;
      border-radius: 3px;
      border: 1.5px solid transparent;
      flex-shrink: 0;
      /* color and background set via inline style */
    }
    /* Venue-branded pills (chip) */
    .venue-wsop.cal-venue-chip {
      color: #111111 !important;
      background: #e8e8e8 !important;
    }
    :is([data-theme="light"],[data-theme="cloudy"]) .venue-wsop.cal-venue-chip {
      color: #ffffff !important;
      background: #111111 !important;
    }
    .venue-wynn.cal-venue-chip {
      color: #ffffff !important;
      background: var(--venue-wynn) !important;
    }
    .venue-aria.cal-venue-chip {
      color: #ffffff !important;
      background: var(--venue-aria) !important;
    }
    .venue-golden-nugget.cal-venue-chip {
      color: #ffffff !important;
      background: var(--venue-golden-nugget) !important;
    }
    .venue-resorts-world.cal-venue-chip {
      color: #ffffff !important;
      background: var(--venue-resorts-world) !important;
    }
    .venue-south-point.cal-venue-chip {
      color: #ffffff !important;
      background: var(--venue-south-point) !important;
    }
    .venue-orleans.cal-venue-chip {
      color: #ffffff !important;
      background: var(--venue-orleans) !important;
    }
    .venue-mgm-grand.cal-venue-chip {
      color: #ffffff !important;
      background: var(--venue-mgm-grand) !important;
    }
    /* Venue strip — WSOP light mode inversion */
    :is([data-theme="light"],[data-theme="cloudy"]) .venue-strip-wsop {
      background: #111111 !important;
      color: #ffffff !important;
    }

    /* saved indicator removed — saved state shown by venue-colored border */

    /* ── Tracking ── */
    .tracking-stats {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px 12px;
    }
    @media (min-width: 420px) {
      .tracking-stats { grid-template-columns: 1fr 1fr 1fr 1fr; }
    }
    .tracking-profit-pos { color: #4ade80; }
    .tracking-profit-neg { color: #f87171; }
    :is([data-theme="light"],[data-theme="cloudy"]) .tracking-profit-pos { color: #16a34a; }
    :is([data-theme="light"],[data-theme="cloudy"]) .tracking-profit-neg { color: #dc2626; }
    .tracking-card {
      background: var(--surface);
      border: 1.5px solid var(--border);
      border-radius: var(--radius-sm);
      padding: 12px 14px;
      margin-bottom: 8px;
    }
    .tracking-form-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
      margin-bottom: 12px;
    }
    .tracking-poy { color: #fbbf24; }
    :is([data-theme="light"],[data-theme="cloudy"]) .tracking-poy { color: #d97706; }

    @keyframes lfg-pop {
      0%   { opacity: 0; transform: scale(0.3) rotate(-30deg); }
      30%  { opacity: 1; transform: scale(1.15) rotate(-30deg); }
      60%  { opacity: 1; transform: scale(1) rotate(-30deg); }
      100% { opacity: 0; transform: scale(4.0) rotate(-30deg); }
    }
    .lfg-burst {
      font-family: var(--serif);
      font-weight: 700;
      color: #4ade80;
      pointer-events: none;
      animation: lfg-pop 1s ease-out forwards;
      position: relative;
      left: 15px;
      top: -40px;
    }
    :is([data-theme="light"],[data-theme="cloudy"]) .lfg-burst { color: #16a34a; }

    .cal-event-chevron {
      display: flex;
      justify-content: center;
      color: var(--text-muted);
      transition: transform 0.2s;
      margin-top: -3.5px;
      margin-bottom: -3.5px;
      position: relative;
      top: -6px;
      cursor: pointer;
    }

    .mini-late-reg + .cal-event-chevron { margin-top: -2.5px; margin-bottom: -2.5px; top: -4px; }
    .cal-event-chevron.open { transform: rotate(180deg); margin-top: -0.5px; margin-bottom: -6.5px; padding-bottom: 0; top: -10px; }
    .cal-event-chevron svg { width: 14px; height: 14px; }

    .back-to-today-fab {
      position: fixed;
      bottom: calc(var(--tab-h) + env(safe-area-inset-bottom, 0px) + 16px);
      left: 50%;
      z-index: 50;
      background: var(--accent);
      color: var(--bg);
      border: none;
      border-radius: 999px;
      padding: 8px 18px;
      font-family: var(--serif);
      font-size: 0.82rem;
      font-weight: 700;
      cursor: pointer;
      box-shadow: 0 2px 12px rgba(0,0,0,0.3);
      display: flex;
      align-items: center;
      gap: 5px;
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transform: translate(-50%, 10px);
      transition: opacity 0.3s ease, transform 0.3s ease, visibility 0s linear 0.3s;
    }
    .back-to-today-fab.visible {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      transform: translate(-50%, 0);
      transition: opacity 0.3s ease, transform 0.3s ease, visibility 0s linear 0s;
    }
    .back-to-today-fab .fab-arrow-down { display: none; }
    .back-to-today-fab[data-dir="down"] .fab-arrow-up { display: none; }
    .back-to-today-fab[data-dir="down"] .fab-arrow-down { display: inline; }

    .cal-event-detail-wrap {
      display: grid;
      grid-template-rows: 0fr;
      transition: grid-template-rows 0.4s cubic-bezier(0.18, 1.8, 0.35, 1);
    }

    .cal-event-detail-wrap.open {
      grid-template-rows: 1fr;
    }

    .cal-event-detail-inner {
      overflow: hidden;
    }

    .cal-event-detail-inner > .cal-event-detail {
      opacity: 0;
      transform: translateY(-14px);
      transition: opacity 0.2s ease, transform 0.35s cubic-bezier(0.18, 1.8, 0.35, 1);
    }

    .cal-event-detail-wrap.open > .cal-event-detail-inner > .cal-event-detail {
      opacity: 1;
      transform: translateY(0);
      transition-delay: 0.06s;
    }

    .cal-event-detail {
      border-top: 1px solid var(--border);
      padding: 12px 12px 4px;
    }

    .cal-detail-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px 12px;
      margin-bottom: 10px;
    }

    .cal-detail-item { display: flex; flex-direction: column; gap: 1px; }
    .cal-detail-label { font-size: 0.68rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.05em; font-weight: 600; }
    .cal-detail-value { font-family: var(--serif); font-size: 0.82rem; color: var(--text); font-weight: 400; }

    .cal-detail-badges {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4px 12px;
      margin-bottom: 10px;
      align-items: start;
    }
    .cal-badges-left { display: flex; gap: 6px; flex-wrap: wrap; }
    .cal-badges-right { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }

    .cal-structure-link {
      display: inline-block;
      font-size: 0.78rem;
      color: var(--accent);
      text-decoration: none;
      margin-bottom: 10px;
    }
    .cal-structure-link:active { opacity: 0.6; }

    /* ── Table Scanner (Hendon Mob) ── */
    .table-scanner { margin-bottom: 10px; }

    .table-scanner-progress {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 0.78rem;
      color: var(--text-muted);
    }
    .table-scanner-progress-label { white-space: nowrap; }
    .table-scanner-progress-pct { white-space: nowrap; min-width: 32px; text-align: right; }
    .table-scanner-bar-track {
      flex: 1;
      height: 4px;
      background: var(--surface2);
      border-radius: 2px;
      overflow: hidden;
    }
    .table-scanner-bar-fill {
      height: 100%;
      background: var(--accent);
      border-radius: 2px;
      transition: width 0.2s;
    }

    .table-scanner-results {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 10px 12px;
    }
    .table-scanner-results-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 14px;
    }
    .table-scanner-rescan {
      background: none;
      border: none;
      color: var(--accent);
      font-size: 0.75rem;
      font-weight: 600;
      cursor: pointer;
      padding: 2px 6px;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      text-transform: uppercase;
      letter-spacing: 0.03em;
    }
    .table-scanner-rescan:active { opacity: 0.6; }

    .table-scanner-oval {
      position: relative;
      width: 100%;
      aspect-ratio: 2 / 1;
      margin: 4px 0;
      transition: width 0.4s ease, aspect-ratio 0.4s ease, margin 0.4s ease;
    }
    .table-scanner-felt {
      position: absolute;
      inset: 18% 10%;
      border-radius: 999px;
      border: 10px solid #1a5c2e;
      box-shadow: 0 4px 24px rgba(0,0,0,0.5), inset 0 2px 12px rgba(0,0,0,0.4);
      padding: 0;
      appearance: none;
      -webkit-appearance: none;
      transition: inset 0.4s ease, background 0.4s ease;
    }
    .table-scanner-seat {
      position: absolute;
      transform: translate(-50%, -50%);
      z-index: 1;
      transition: left 0.4s ease, top 0.4s ease;
    }
    .table-scanner-seat.seat-left { transform: translate(0%, -50%); }
    .table-scanner-seat.seat-left .table-scanner-name-stack { text-align: left; }
    .table-scanner-seat.seat-right { transform: translate(-100%, -50%); }
    .table-scanner-seat.seat-right .table-scanner-name-stack { text-align: right; }
    .table-scanner-seat.seat-center .table-scanner-name-stack { text-align: center; }
    .table-scanner-link {
      display: flex;
      align-items: center;
      gap: 3px;
      padding: 4px 8px;
      background: var(--surface2);
      border: 1px solid var(--border);
      border-radius: 6px;
      font-size: 0.7rem;
      font-weight: 600;
      color: var(--text);
      text-decoration: none;
      white-space: nowrap;
      transition: background 0.15s;
      cursor: pointer;
      font-family: inherit;
    }
    .table-scanner-link:active { background: var(--border); }
    .table-scanner-name-stack {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 0;
      line-height: 1.2;
    }
    .table-scanner-chips {
      font-size: 0.62rem;
      color: var(--text-muted);
      font-weight: 400;
    }

    .cal-action-row {
      display: flex;
      border-top: 1px solid var(--border);
      margin: 0 -12px;
      align-items: stretch;
    }

    .cal-action-btn, .cal-entries-counter {
      flex: 1;
      padding: 8px 4px 6px;
      background: none;
      border: none;
      cursor: pointer;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0;
      font-family: inherit;
    }
    .cal-entries-counter { cursor: default; }
    .cal-action-btn + .cal-action-btn,
    .cal-action-btn + .cal-entries-counter,
    .cal-entries-counter + .cal-action-btn { border-left: 1px solid var(--border); }
    .cal-action-icon, .cal-entries-stepper {
      font-size: 1rem;
      line-height: 1;
      height: 1rem;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .cal-action-icon svg { width: 1rem; height: 1rem; }
    .cal-action-label {
      font-family: inherit;
      font-size: 0.55rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      color: var(--text-muted);
      margin-top: 5px;
    }
    .cal-action-btn:active { background: rgba(160,160,160,0.1); }
    .cal-action-btn.remove .cal-action-icon { color: #ef4444; }
    .cal-action-btn.anchor-btn.locked .cal-action-icon { color: #60a5fa; }
    :is([data-theme="light"],[data-theme="cloudy"]) .cal-action-btn.anchor-btn.locked .cal-action-icon { color: #2563eb; }

    /* ── Entries stepper ── */
    .cal-entries-stepper {
      width: 100%;
      position: relative;
      height: 1rem;
    }
    .cal-entries-display {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      height: 100%;
      pointer-events: none;
    }
    .cal-entries-display .minus, .cal-entries-display .plus {
      font-size: 1rem;
      font-weight: 600;
      color: var(--accent);
    }
    .cal-entries-display .minus.disabled, .cal-entries-display .plus.disabled { opacity: 0.25; }
    .cal-entries-display .value {
      font-size: 1rem;
      line-height: 1;
      font-weight: 600;
      color: var(--text);
      min-width: 10px;
      text-align: center;
    }
    .cal-entries-overlay {
      position: absolute;
      top: 0; left: 0; right: 0; bottom: 0;
      display: flex;
    }
    .cal-entries-overlay button {
      flex: 1;
      background: none;
      border: none;
      cursor: pointer;
      color: transparent;
      font-size: 0;
      padding: 0;
    }
    .cal-entries-overlay button:disabled { cursor: default; }
    .cal-entries-overlay button:active:not(:disabled) { background: rgba(160,160,160,0.08); }

    /* ── Late reg bar ── */
    .late-reg-wrap {
      margin-top: 10px;
      margin-bottom: 10px;
      padding-top: 10px;
      border-top: 1px solid var(--border);
    }

    .late-reg-label-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 8px;
      margin-bottom: 5px;
    }

    .late-reg-label {
      font-size: 0.72rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.05em;
    }

    .late-reg-label.open   { color: #b0b0b0; }
    .late-reg-label.soon   { color: #909090; }
    .late-reg-label.urgent { color: #707070; }
    .late-reg-label.closed { color: var(--text-muted); }
    .late-reg-label.pending { color: var(--text-muted); }
    .late-reg-time.pending  { color: var(--text-muted); }
    .late-reg-sep { flex: 1; height: 1px; background: var(--border); }

    .late-reg-time {
      font-size: 0.82rem;
      font-weight: 700;
    }

    .late-reg-time.open   { color: #b0b0b0; }
    .late-reg-time.soon   { color: #909090; }
    .late-reg-time.urgent { color: #707070; }
    .late-reg-time.closed { color: var(--text-muted); }

    .late-reg-bar-bg {
      height: 6px;
      border-radius: 3px;
      background: var(--border);
      overflow: hidden;
      display: flex;
      justify-content: flex-end;
    }

    .late-reg-bar-fill {
      height: 100%;
      border-radius: 3px;
      transition: width 1s linear;
    }

    .late-reg-bar-fill.open   { background: #b0b0b0; }
    .late-reg-bar-fill.soon   { background: #909090; }
    .late-reg-bar-fill.urgent { background: #707070; }
    .late-reg-bar-fill.closed { background: var(--border); width: 0% !important; }
    .late-reg-bar-fill.critical { background: #c0392b; animation: regPulse 1.2s ease-in-out infinite; }

    @keyframes regPulse {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.35; }
    }

    /* ── Mini late-reg bar (collapsed calendar row) ── */
    .mini-late-reg {
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 0 12px;
      justify-content: flex-start;
      position: relative;
      top: -5px;
    }
    .mini-late-reg-time {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.58rem;
      font-weight: 600;
      letter-spacing: 0.03em;
      color: var(--text-muted);
      flex-shrink: 0;
      white-space: nowrap;
    }
    .mini-late-reg-track {
      flex: 1;
      height: 3px;
      border-radius: 1.5px;
      background: var(--border);
      overflow: hidden;
      display: flex;
      justify-content: flex-end;
    }
    .mini-late-reg-fill {
      height: 100%;
      border-radius: 1.5px;
      transition: width 1s linear;
    }
    .mini-late-reg-fill.critical { background: #c0392b !important; animation: regPulse 1.2s ease-in-out infinite; }

    /* ── Conflict warning ── */
    .conflict-badge {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      background: rgba(136,136,136,0.15);
      border: 1px solid rgba(136,136,136,0.4);
      color: #999999;
      font-size: 0.75rem;
      font-weight: 700;
      padding: 3px 10px;
      border-radius: 20px;
      margin-top: 6px;
    }

    /* ── Responsive tweaks for desktop ── */
    @media (min-width: 640px) {
      .content-area { padding: 16px 20px 80px; }
      .sticky-filters { margin: -16px -20px 0; padding: 32px 20px 6px; top: -16px; }
      .schedule-sticky-header { margin: -16px -20px 0; padding: 28px 20px 10px; top: -16px; }

      .tournament-list {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
        gap: 14px;
      }

      .filter-panel {
        grid-template-columns: repeat(4, 1fr);
      }

      .filter-span2 { grid-column: span 1; }
    }

    @media (min-width: 1024px) {
      .content-area { padding: 20px 32px 80px; }
      .sticky-filters { margin: -20px -32px 0; padding: 40px 32px 6px; top: -20px; }
      .schedule-sticky-header { margin: -20px -32px 0; padding: 32px 32px 10px; top: -20px; }

      .tournament-list {
        grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
      }
    }

    /* ── Dashboard View ── */
    .dashboard-view {
      display: flex;
      flex-direction: column;
      gap: 16px;
      height: 100%;
      overflow: hidden;
    }

    .dash-bottom-stack {
      display: flex;
      flex-direction: column;
      gap: 20px;
      flex: 1;
    }
    .dash-bottom-stack > :last-child {
      margin-top: auto;
      margin-bottom: 15px;
    }

    .dashboard-section {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }

    .dashboard-section-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 2px;
    }

    .dashboard-section-title {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.85rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      color: var(--text-muted);
    }

    .dashboard-section-badge {
      font-size: 0.65rem;
      font-weight: 600;
      color: var(--text-muted);
      background: var(--surface2);
      padding: 2px 8px;
      border-radius: 10px;
    }

    /* What's Next event cards */
    .dash-event-card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 14px 16px 14px 30px;
      display: flex;
      flex-direction: column;
      gap: 6px;
      transition: background 0.15s;
      position: relative;
      overflow: hidden;
    }

    .dash-venue-strip {
      position: absolute;
      top: 0; left: 0; bottom: 0;
      width: 22px;
      display: flex;
      align-items: center;
      justify-content: center;
      writing-mode: vertical-rl;
      text-orientation: mixed;
      transform: rotate(180deg);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.48rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.85);
      user-select: none;
      overflow: hidden;
      line-height: 22px;
      text-align: center;
      white-space: nowrap;
      border-radius: 0;
    }

    .dash-event-card.playing .dash-venue-strip,
    .dash-event-card.next-up .dash-venue-strip,
    .dash-event-card.manually-expanded .dash-venue-strip {
      width: 22px;
      font-size: 0.48rem;
      letter-spacing: 0.08em;
    }

    .dash-event-card.playing,
    .dash-event-card.next-up,
    .dash-event-card.manually-expanded {
      padding-top: 14px;
      padding-left: 30px;
    }

    .dash-event-card:hover {
      background: var(--hover-overlay);
    }

    .dash-event-card.collapsed {
      padding: 8px 12px 8px 30px; gap: 0; opacity: 0.85;
      border: 1px dashed var(--border);
      border-radius: var(--radius);
      background: none;
      overflow: hidden;
      position: relative;
    }

    .dash-event-card.collapsed .dash-venue-strip {
      top: -1px; left: -1px; bottom: -1px;
      border-radius: var(--radius) 0 0 var(--radius);
    }

    .dash-event-card.collapsed .dash-event-meta {
      display: none;
    }

    .dash-collapsed-row {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 8px 12px;
      min-height: 36px;
    }
    .dash-collapsed-strip {
      width: 3px;
      height: 20px;
      border-radius: 2px;
      flex-shrink: 0;
    }
    .dash-collapsed-time {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.72rem;
      font-weight: 600;
      color: var(--text-muted);
      min-width: 52px;
      flex-shrink: 0;
    }
    .dash-collapsed-name {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.78rem;
      font-weight: 500;
      color: var(--text);
      flex: 1;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .dash-collapsed-buyin {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.72rem;
      font-weight: 600;
      color: var(--text-muted);
      flex-shrink: 0;
    }
    .dash-collapsed-tag {
      font-size: 0.6rem;
      font-weight: 600;
      text-transform: uppercase;
      padding: 1px 5px;
      border-radius: 4px;
      flex-shrink: 0;
    }
    .dash-collapsed-countdown {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.68rem;
      font-weight: 500;
      color: var(--text-muted);
      flex-shrink: 0;
      min-width: 42px;
      text-align: right;
    }
    .dash-collapsed-countdown.soon {
      color: var(--accent);
    }
    .dash-collapsed-countdown.live {
      color: #22c55e;
      font-weight: 700;
    }

    .dash-up-next-list {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }

    .dash-stack-display {
      display: flex;
      align-items: center;
      gap: 8px;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.82rem;
      color: var(--text);
      padding: 4px 0;
    }
    .dash-stack-display .dash-stack-value {
      font-weight: 700;
      font-size: 0.9rem;
    }
    .dash-stack-display .dash-stack-bb {
      font-size: 0.75rem;
      color: var(--text-muted);
      font-weight: 500;
    }

    .dash-event-card.bagged {
      /* venue-color outline + "Bagged" tag is sufficient — no green edge */
    }

    .dash-event-card.anchor {
      border-left: 3px solid var(--text) !important;
    }

    .dash-event-card.playing {
      border-width: 2px;
    }

    .dash-card-content {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .dash-event-card.conditional {
      opacity: 0.7;
      border-left: none;
      border-right: none;
      border-bottom: none;
    }
    .dash-event-card.conditional .dash-card-content {
      border-left: 1.5px dashed var(--border);
      border-right: 1.5px dashed var(--border);
      border-bottom: 1.5px dashed var(--border);
      border-radius: 0 0 var(--radius) var(--radius);
      margin: -8px -16px -14px;
      padding: 8px 16px 14px;
    }

    .dash-event-card.done {
      opacity: 0.45;
      filter: grayscale(0.6);
    }

    .dash-event-card.reg-closed {
      opacity: 0.5;
    }

    .dash-event-header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
    }

    .dash-event-name {
      font-family: var(--serif);
      font-size: 0.82rem;
      font-weight: 700;
      color: var(--text);
      line-height: 1.3;
      flex: 1;
    }

    .dash-event-buyin {
      font-family: var(--serif);
      font-size: 0.78rem;
      font-weight: 700;
      color: var(--accent);
      white-space: nowrap;
    }

    .dash-event-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 6px 14px;
      font-size: 0.72rem;
      color: var(--text-muted);
    }

    .dash-event-meta span {
      display: inline-flex;
      align-items: center;
      gap: 4px;
    }

    .dash-event-meta svg {
      width: 11px;
      height: 11px;
      flex-shrink: 0;
    }

    .dash-event-stats {
      display: flex;
      gap: 8px;
    }

    .dash-stat-box {
      flex: 1 1 0;
      background: var(--surface2);
      border-radius: var(--radius-sm);
      padding: 8px 6px;
      text-align: center;
      min-width: 0;
    }

    .dash-stat-value {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.9rem;
      font-weight: 600;
      color: var(--text);
      line-height: 1.1;
    }

    .dash-stat-label {
      font-size: 0.6rem;
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: 0.04em;
      margin-top: 2px;
    }

    .dash-event-tag {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      font-size: 0.62rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      padding: 2px 8px;
      border-radius: 4px;
    }

    .dash-event-tag.bagged {
      background: rgba(34, 197, 94, 0.15);
      color: #22c55e;
    }

    .dash-event-tag.anchor {
      background: rgba(255, 255, 255, 0.08);
      color: var(--text);
    }

    :is([data-theme="light"],[data-theme="cloudy"]) .dash-event-tag.anchor {
      background: rgba(0, 0, 0, 0.06);
    }

    .dash-event-tag.conditional {
      background: rgba(255, 255, 255, 0.04);
      color: var(--text-muted);
    }

    :is([data-theme="light"],[data-theme="cloudy"]) .dash-event-tag.conditional {
      background: rgba(0, 0, 0, 0.04);
    }

    .dash-event-tag.reg-closed {
      background: rgba(239, 68, 68, 0.12);
      color: #ef4444;
    }

    .dash-start-btn {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      width: 100%;
      padding: 8px 16px;
      border: 1px solid var(--border);
      border-radius: var(--radius-sm);
      background: var(--surface2);
      color: var(--text);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.78rem;
      font-weight: 600;
      cursor: pointer;
      transition: background 0.15s, border-color 0.15s;
      text-transform: uppercase;
      letter-spacing: 0.04em;
    }

    .dash-start-btn:hover {
      background: var(--hover-overlay);
      border-color: var(--text-muted);
    }

    .dash-start-btn svg {
      width: 14px;
      height: 14px;
    }

    .dash-playing-badge {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      width: 100%;
      padding: 8px 16px;
      border: 1px solid var(--accent);
      border-radius: var(--radius-sm);
      background: color-mix(in srgb, var(--accent) 8%, transparent);
      color: var(--accent);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.78rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.04em;
    }

    .dash-playing-dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: var(--accent);
      animation: playingPulse 1.5s ease-in-out infinite;
    }

    @keyframes playingPulse {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.3; }
    }

    .dash-status-row {
      display: flex;
      gap: 6px;
      align-items: stretch;
    }
    .dash-status-row > button {
      flex: 1;
    }
    .dash-status-stack {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .dash-status-stack .dash-playing-badge {
      width: 100%;
    }
    .dash-status-stack .dash-action-row {
      display: flex;
      gap: 6px;
    }
    .dash-status-stack .dash-action-row > button {
      flex: 1;
    }

    .dash-status-row .dash-playing-badge {
      flex: 1;
    }

    .dash-bag-btn, .dash-bust-btn, .dash-update-btn {
      padding: 8px 14px;
      border-radius: var(--radius-sm);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.72rem;
      font-weight: 600;
      cursor: pointer;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      transition: opacity 0.15s;
    }

    .dash-bag-btn {
      background: color-mix(in srgb, #22c55e 12%, transparent);
      border: 1px solid #22c55e;
      color: #22c55e;
    }

    .dash-update-btn {
      background: color-mix(in srgb, #3b82f6 12%, transparent);
      border: 1px solid #3b82f6;
      color: #3b82f6;
    }

    .dash-bust-btn {
      background: color-mix(in srgb, #ef4444 12%, transparent);
      border: 1px solid #ef4444;
      color: #ef4444;
    }

    .dash-bag-btn:hover, .dash-bust-btn:hover, .dash-rebuy-btn:hover, .dash-update-btn:hover { opacity: 0.75; }

    .dash-rebuy-btn {
      padding: 8px 14px;
      border-radius: var(--radius-sm);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.72rem;
      font-weight: 600;
      cursor: pointer;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      background: color-mix(in srgb, var(--accent) 12%, transparent);
      border: 1px solid var(--accent);
      color: var(--accent);
      transition: opacity 0.15s;
    }

    .dash-no-rebuy {
      padding: 8px 10px;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.65rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      color: var(--text-muted);
      white-space: nowrap;
    }

    .dash-finished-badge {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      width: 100%;
      padding: 8px 16px;
      border: 1px solid var(--border);
      border-radius: var(--radius-sm);
      background: var(--surface2);
      color: var(--text-muted);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.78rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.04em;
    }

    .dash-restart-badge {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      width: 100%;
      padding: 8px 16px;
      border: 1px solid #22c55e;
      border-radius: var(--radius-sm);
      background: color-mix(in srgb, #22c55e 8%, transparent);
      color: #22c55e;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.78rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.04em;
    }

    .dash-restart-badge svg { width: 14px; height: 14px; }

    .dash-undo-x {
      margin-left: auto;
      background: none;
      border: 1px solid color-mix(in srgb, var(--accent) 40%, transparent);
      border-radius: 50%;
      color: var(--accent);
      width: 28px;
      height: 28px;
      min-width: 28px;
      font-size: 0.75rem;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      padding: 0;
      opacity: 0.7;
      transition: opacity 0.15s;
      -webkit-tap-highlight-color: transparent;
      touch-action: manipulation;
    }
    .dash-undo-x:hover { opacity: 1; }
    .dash-undo-x:active { opacity: 1; transform: scale(0.9); }
    .dash-undo-x.muted {
      border-color: color-mix(in srgb, var(--text-muted) 40%, transparent);
      color: var(--text-muted);
    }

    .dash-unbag-x {
      margin-left: auto;
      background: none;
      border: 1px solid color-mix(in srgb, #22c55e 40%, transparent);
      border-radius: 50%;
      color: #22c55e;
      width: 28px;
      height: 28px;
      min-width: 28px;
      font-size: 0.75rem;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      padding: 0;
      opacity: 0.7;
      transition: opacity 0.15s;
      -webkit-tap-highlight-color: transparent;
      touch-action: manipulation;
    }
    .dash-unbag-x:hover { opacity: 1; }
    .dash-unbag-x:active { opacity: 1; transform: scale(0.9); }

    /* P&L Widget */
    .dash-pl-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 8px;
    }

    .dash-pl-card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 6px 8px;
      text-align: center;
    }

    .dash-pl-value {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.95rem;
      font-weight: 700;
      color: var(--text);
      line-height: 1.1;
    }

    .dash-pl-value.positive { color: #22c55e; }
    .dash-pl-value.negative { color: #ef4444; }

    .dash-pl-label {
      font-size: 0.58rem;
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: 0.04em;
      margin-top: 2px;
    }

    .dash-pl-btn {
      cursor: pointer;
      transition: background 0.15s;
      position: relative;
    }
    .dash-pl-btn:hover {
      background: var(--hover-overlay);
    }

    .dash-pl-dropdown {
      position: absolute;
      top: 100%;
      left: 0;
      width: 180px;
      margin-top: 4px;
      background: var(--surface);
      border: 1.5px solid var(--border);
      border-radius: var(--radius-sm);
      padding: 4px 0;
      z-index: 50;
      box-shadow: 0 4px 12px rgba(0,0,0,0.3);
      animation: luSlideDown 0.15s ease-out;
    }
    .dash-pl-dropdown-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 5px 12px;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.75rem;
    }
    .dash-pl-dropdown-venue {
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: 0.03em;
    }
    .dash-pl-dropdown-amount {
      color: var(--text);
      font-weight: 600;
    }

    /* Connections toggle */
    /* Up Next carousel selector */
    .dash-carousel-track {
      display: flex;
      transition: transform 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
      will-change: transform;
    }
    .dash-carousel-track.swiping { transition: none; }
    .dash-carousel-slide {
      flex: 0 0 100%;
      width: 100%;
      min-width: 0;
    }
    .dash-upnext-dots {
      display: flex; gap: 5px; justify-content: center; padding: 10px 0 2px;
    }
    .dash-upnext-dot {
      width: 6px; height: 6px; border-radius: 50%;
      background: var(--border);
      transition: background 0.15s;
    }
    .dash-upnext-dot.active { background: var(--accent); }

    /* Connections avatar row */
    .dash-connections-row {
      display: flex;
      gap: 8px;
      overflow: hidden;
      padding: 2px 0;
    }

    .dash-conn-avatar {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 2px;
      width: 44px;
      cursor: pointer;
      padding: 2px;
      border-radius: var(--radius-sm);
      transition: background 0.15s;
      border: none;
      background: none;
      color: var(--text);
      position: relative;
      flex-shrink: 0;
    }
    .dash-conn-avatar:hover { background: var(--hover-overlay); }
    .dash-conn-avatar .conn-name {
      font-size: 0.55rem;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      color: var(--text-muted);
      text-align: center;
      max-width: 44px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .dash-conn-avatar .playing-dot {
      position: absolute;
      top: 0; right: 4px;
      width: 8px; height: 8px;
      border-radius: 50%;
      background: #22c55e;
      border: 2px solid var(--bg);
    }
    .dash-conn-overflow {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      width: 44px;
      cursor: pointer;
      padding: 2px;
      border: none;
      background: none;
      color: var(--text-muted);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.65rem;
      flex-shrink: 0;
    }
    .dash-conn-overflow:hover { color: var(--text); }

    /* Friends playing carousel */
    .dash-friends-scroll {
      display: flex;
      gap: 10px;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      padding: 2px 0;
    }
    .dash-friends-scroll::-webkit-scrollbar { display: none; }
    .dash-friend-chip {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-shrink: 0;
      padding: 8px 12px;
      background: var(--surface2);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      min-width: 0;
      max-width: 260px;
      cursor: pointer;
      transition: border-color 0.15s;
    }
    .dash-friend-chip:hover { border-color: var(--accent); }
    .dash-friend-chip .friend-info {
      display: flex;
      flex-direction: column;
      gap: 1px;
      min-width: 0;
    }
    .dash-friend-chip .friend-name {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.75rem;
      font-weight: 600;
      color: var(--text);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .dash-friend-chip .friend-event {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.65rem;
      color: var(--text-muted);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .dash-friend-chip .friend-stack {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.65rem;
      color: #22c55e;
      white-space: nowrap;
    }

    /* Connection dropdown popup */
    .dash-conn-dropdown {
      position: absolute;
      z-index: 50;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      box-shadow: 0 4px 16px rgba(0,0,0,0.25);
      padding: 10px 12px;
      min-width: 200px;
      max-width: 260px;
      left: 50%;
      transform: translateX(-50%);
    }
    .dash-conn-dropdown.above { bottom: calc(100% + 4px); }
    .dash-conn-dropdown.below { top: calc(100% + 4px); }
    .dash-conn-dropdown-name {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-weight: 600;
      font-size: 0.8rem;
      color: var(--text);
      margin-bottom: 6px;
    }
    .dash-conn-dropdown-label {
      font-size: 0.6rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      color: var(--text-muted);
      margin-bottom: 2px;
      margin-top: 6px;
    }
    .dash-conn-dropdown-label:first-of-type { margin-top: 0; }
    .dash-conn-dropdown-event {
      font-size: 0.7rem;
      color: var(--text);
      padding: 2px 0;
    }
    .dash-conn-dropdown-event .muted { color: var(--text-muted); }

    /* ── Social View ── */
    .social-view {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }

    .social-buddy-card {
      display: flex;
      flex-direction: column;
      gap: 0;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 10px 12px;
      cursor: pointer;
      transition: background 0.15s;
      text-align: left;
      color: var(--text);
      font-family: inherit;
      width: 100%;
    }
    .social-buddy-card:hover { background: var(--hover-overlay); }
    .social-buddy-card.live { border-color: var(--accent); }

    .social-buddy-row {
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .social-buddy-info {
      flex: 1;
      min-width: 0;
    }

    .social-buddy-name {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-weight: 600;
      font-size: 0.88rem;
    }

    .social-buddy-status {
      font-size: 0.72rem;
      color: var(--text-muted);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .social-buddy-status.live {
      color: #22c55e;
      display: flex;
      align-items: center;
      gap: 5px;
    }
    .social-buddy-status.busted { color: #ef4444; }

    .social-live-dot {
      width: 6px; height: 6px;
      border-radius: 50%;
      background: #22c55e;
      flex-shrink: 0;
      animation: livePulse 2s ease-in-out infinite;
    }

    @keyframes livePulse {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.4; }
    }

    .social-buddy-detail {
      margin-top: 8px;
      padding-top: 8px;
      border-top: 1px solid var(--border);
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .social-detail-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 0.72rem;
    }

    .social-detail-label {
      color: var(--text-muted);
      text-transform: uppercase;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-weight: 500;
      letter-spacing: 0.04em;
      font-size: 0.65rem;
    }

    .social-detail-value {
      color: var(--text);
      font-weight: 600;
      font-variant-numeric: tabular-nums;
    }

    /* ── Groups ── */
    .social-group-card {
      display: flex;
      flex-direction: column;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 10px 12px;
      cursor: pointer;
      transition: background 0.15s;
      text-align: left;
      color: var(--text);
      font-family: inherit;
      width: 100%;
    }
    .social-group-card:hover { background: var(--hover-overlay); }

    .social-group-avatar {
      width: 36px; height: 36px;
      border-radius: 10px;
      background: var(--accent);
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-weight: 700;
      font-size: 16px;
      flex-shrink: 0;
    }

    .social-group-meta {
      font-size: 0.72rem;
      color: var(--text-muted);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    /* ── Group Detail View ── */
    .group-detail-view {
      display: flex;
      flex-direction: column;
      height: 100%;
    }

    .group-detail-header {
      display: flex;
      align-items: center;
      gap: 10px;
      padding-bottom: 12px;
      border-bottom: 1px solid var(--border);
      margin-bottom: 8px;
    }

    .group-back-btn {
      background: none;
      border: none;
      color: var(--accent);
      font-size: 20px;
      cursor: pointer;
      padding: 4px 8px 4px 0;
      font-family: inherit;
    }

    .group-segments {
      display: flex;
      gap: 0;
      background: var(--surface);
      border-radius: var(--radius);
      border: 1px solid var(--border);
      overflow: hidden;
      margin-bottom: 12px;
    }

    .group-segment-btn {
      flex: 1;
      padding: 8px 0;
      background: none;
      border: none;
      color: var(--text-secondary);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      font-size: 12px;
      font-weight: 500;
      cursor: pointer;
      transition: background 0.15s, color 0.15s;
    }
    .group-segment-btn:hover { background: var(--hover-overlay); }
    .group-segment-btn.active {
      background: var(--accent);
      color: #fff;
      font-weight: 700;
    }

    /* ── Group Feed ── */
    .group-feed-container {
      display: flex;
      flex-direction: column;
      flex: 1;
      min-height: 0;
    }

    .group-feed {
      flex: 1;
      overflow-y: auto;
      display: flex;
      flex-direction: column;
      gap: 8px;
      padding-bottom: 8px;
      max-height: 60vh;
    }

    .group-feed-item {
      display: flex;
      gap: 8px;
      align-items: flex-start;
    }

    .group-feed-item-body {
      flex: 1;
      min-width: 0;
    }

    .group-feed-item-header {
      display: flex;
      align-items: baseline;
      gap: 6px;
    }

    .group-feed-item-name {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-weight: 600;
      font-size: 0.82rem;
    }

    .group-feed-item-time {
      font-size: 0.65rem;
      color: var(--text-muted);
    }

    .group-feed-item-text {
      font-size: 0.82rem;
      color: var(--text);
      word-break: break-word;
      line-height: 1.4;
    }

    .group-feed-item.live-update .group-feed-item-text {
      color: var(--accent);
      font-size: 0.75rem;
    }

    .group-feed-input {
      display: flex;
      gap: 8px;
      padding-top: 8px;
      border-top: 1px solid var(--border);
    }

    .group-feed-input input {
      flex: 1;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      color: var(--text);
      padding: 8px 12px;
      font-family: inherit;
      font-size: 13px;
      outline: none;
    }
    .group-feed-input input:focus { border-color: var(--accent); }

    .group-feed-input button {
      background: var(--accent);
      color: #fff;
      border: none;
      border-radius: var(--radius);
      padding: 8px 16px;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      text-transform: uppercase;
      font-weight: 600;
      font-size: 12px;
      letter-spacing: 0.04em;
      cursor: pointer;
    }
    .group-feed-input button:disabled { opacity: 0.5; cursor: not-allowed; }

    /* ── Group Schedule ── */
    .group-schedule {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }

    .group-schedule-card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 10px 12px;
    }

    .group-schedule-card-top {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      margin-bottom: 6px;
    }

    .group-schedule-members {
      display: flex;
      align-items: center;
      gap: 2px;
      flex-wrap: wrap;
    }

    .group-schedule-member {
      margin-right: -4px;
    }

    /* ── Group Members ── */
    .group-members-list {
      display: flex;
      flex-direction: column;
    }

    /* ── Create Group Modal ── */
    .create-group-modal {
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,0.6);
      z-index: 9999;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 20px;
    }

    .create-group-panel {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 20px;
      width: 100%;
      max-width: 360px;
      max-height: 80vh;
      overflow-y: auto;
    }

    .create-group-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 16px;
    }

    .create-group-label {
      display: block;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      font-size: 0.7rem;
      font-weight: 500;
      color: var(--text-secondary);
      margin-bottom: 4px;
    }

    .create-group-input {
      width: 100%;
      background: var(--bg);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      color: var(--text);
      padding: 8px 12px;
      font-family: inherit;
      font-size: 14px;
      outline: none;
      box-sizing: border-box;
    }
    .create-group-input:focus { border-color: var(--accent); }

    .create-group-buddies {
      display: flex;
      flex-direction: column;
      gap: 4px;
      max-height: 200px;
      overflow-y: auto;
    }

    .create-group-buddy-btn {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 6px 10px;
      background: var(--bg);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      color: var(--text);
      cursor: pointer;
      font-family: inherit;
      font-size: 13px;
      text-align: left;
      width: 100%;
      transition: border-color 0.15s;
    }
    .create-group-buddy-btn:hover { border-color: var(--accent); }
    .create-group-buddy-btn.selected { border-color: var(--accent); background: var(--hover-overlay); }

    .create-group-submit {
      width: 100%;
      margin-top: 16px;
      background: var(--accent);
      color: #fff;
      border: none;
      border-radius: var(--radius);
      padding: 10px 0;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      text-transform: uppercase;
      font-weight: 700;
      font-size: 14px;
      letter-spacing: 0.04em;
      cursor: pointer;
    }
    .create-group-submit:disabled { opacity: 0.5; cursor: not-allowed; }

    /* ── Leaderboard ── */
    .group-leaderboard {
      padding: 12px 16px;
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .leaderboard-card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 12px;
    }
    .leaderboard-rank {
      font-weight: 700;
      font-size: 16px;
      min-width: 32px;
      text-align: center;
      color: var(--text-secondary);
    }
    .leaderboard-stats {
      font-size: 12px;
      color: var(--text-secondary);
      margin-top: 2px;
    }
    .leaderboard-net-pos { color: #22c55e; font-weight: 600; }
    .leaderboard-net-neg { color: #ef4444; font-weight: 600; }
    .leaderboard-bar-wrap {
      width: 100%;
      height: 4px;
      background: var(--border);
      border-radius: 2px;
      overflow: hidden;
      margin-top: 4px;
    }
    .leaderboard-bar {
      height: 100%;
      border-radius: 2px;
      background: var(--accent);
      transition: width 0.3s ease;
    }
    .leaderboard-toggle-section {
      margin-top: 16px;
      padding-top: 16px;
      border-top: 1px solid var(--border);
    }
    .leaderboard-toggle-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 8px 0;
    }
    .toggle-switch {
      position: relative;
      display: inline-block;
      width: 40px;
      height: 22px;
    }
    .toggle-switch input { opacity: 0; width: 0; height: 0; }
    .toggle-slider {
      position: absolute;
      cursor: pointer;
      inset: 0;
      background: var(--border);
      border-radius: 22px;
      transition: 0.2s;
    }
    .toggle-slider::before {
      content: '';
      position: absolute;
      width: 16px;
      height: 16px;
      left: 3px;
      bottom: 3px;
      background: #fff;
      border-radius: 50%;
      transition: 0.2s;
    }
    .toggle-switch input:checked + .toggle-slider { background: var(--accent); }
    .toggle-switch input:checked + .toggle-slider::before { transform: translateX(18px); }

    /* ── Staking ── */
    .staking-series-card {
      display: block; width: 100%; text-align: left;
      background: var(--surface); border: 1px solid var(--border);
      border-radius: 10px; padding: 12px 14px; margin: 0 16px 8px;
      cursor: pointer; color: var(--text);
      font-family: inherit; font-size: inherit;
      box-sizing: border-box;
    }
    .staking-series-card:hover { border-color: var(--accent); }
    .staking-badge {
      font-size: 10px; font-weight: 700; text-transform: uppercase;
      padding: 2px 8px; border-radius: 999px; letter-spacing: 0.5px;
      border: 1px solid;
    }
    .staking-badge-pre { color: var(--text-muted); border-color: var(--border); }
    .staking-badge-active { color: var(--accent); border-color: var(--accent); }
    .staking-badge-settled { color: #22c55e; border-color: #22c55e; }
    .staking-type-badge {
      font-size: 10px; font-weight: 600; text-transform: uppercase;
      padding: 2px 6px; border-radius: 4px; letter-spacing: 0.3px;
      background: var(--border); color: var(--text-secondary);
    }
    .staking-modal {
      position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);
      background: var(--surface); border: 1px solid var(--border);
      border-radius: 12px; width: min(400px, 90vw); max-height: 85vh;
      overflow-y: auto; z-index: 10001;
    }
    .staking-modal-header {
      display: flex; justify-content: space-between; align-items: center;
      padding: 14px 16px; border-bottom: 1px solid var(--border);
    }
    .staking-modal-body { padding: 16px; }
    .staking-modal-footer {
      display: flex; align-items: center; gap: 8px;
      padding: 12px 16px; border-top: 1px solid var(--border);
    }
    .staking-field {
      display: block; margin-bottom: 10px; font-size: 12px; color: var(--text-secondary);
    }
    .staking-field span { display: block; margin-bottom: 3px; font-weight: 500; }
    .staking-field input, .staking-field select {
      width: 100%; padding: 8px 10px; border: 1px solid var(--border);
      border-radius: 8px; background: var(--bg); color: var(--text);
      font-size: 13px; font-family: inherit; box-sizing: border-box;
    }
    .staking-field input:focus, .staking-field select:focus {
      outline: none; border-color: var(--accent);
    }
    .staking-backer-card, .staking-agreement-card, .staking-event-card, .staking-settlement-card {
      background: var(--surface); border: 1px solid var(--border);
      border-radius: 10px; padding: 12px; margin-bottom: 8px;
    }
    .staking-backer-card { display: flex; align-items: flex-start; gap: 10px; }
    .staking-agreement-card.inactive { opacity: 0.5; }
    .staking-pnl-pos { color: #22c55e; }
    .staking-pnl-neg { color: #ef4444; }

    /* ── Schedule Export ── */
    .export-options {
      display: flex;
      flex-direction: column;
      gap: 10px;
      padding: 0 4px;
    }
    .export-option-btn {
      display: flex;
      align-items: center;
      gap: 14px;
      width: 100%;
      padding: 14px 16px;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 10px;
      cursor: pointer;
      text-align: left;
      color: var(--text);
      font-family: inherit;
      transition: border-color 0.15s;
    }
    .export-option-btn:hover:not(:disabled) { border-color: var(--accent); }
    .export-option-btn:disabled { opacity: 0.5; cursor: wait; }
    .export-option-icon { font-size: 28px; flex-shrink: 0; }
    .export-option-label { font-weight: 600; font-size: 0.92rem; margin-bottom: 2px; }
    .export-option-desc { font-size: 0.75rem; color: var(--text-muted); }

    /* ── Notifications ── */
    .notif-btn {
      position: relative;
      padding: 6px 8px !important;
      min-width: 0;
    }
    .notif-btn svg { width: 18px; height: 18px; }
    .notif-badge {
      position: absolute;
      top: 2px;
      right: 2px;
      background: #ef4444;
      color: #fff;
      font-size: 0.55rem;
      font-weight: 700;
      width: 14px;
      height: 14px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      line-height: 1;
    }
    .notif-backdrop {
      position: fixed;
      inset: 0;
      z-index: 9998;
    }
    .notif-panel {
      position: fixed;
      top: calc(var(--header-h, 60px) + 4px);
      right: 12px;
      width: min(360px, calc(100vw - 24px));
      max-height: calc(100vh - var(--header-h, 60px) - 20px);
      overflow-y: auto;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      box-shadow: 0 8px 32px rgba(0,0,0,0.25);
      z-index: 9999;
      animation: notifSlideDown 0.15s ease-out;
    }
    @keyframes notifSlideDown {
      from { opacity: 0; transform: translateY(-8px); }
      to { opacity: 1; transform: translateY(0); }
    }
    .notif-panel-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 12px 14px 8px;
      border-bottom: 1px solid var(--border);
    }
    .notif-panel-title {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      text-transform: uppercase;
      font-size: 0.85rem;
      font-weight: 600;
      letter-spacing: 0.04em;
    }
    .notif-list { padding: 0; }
    .notif-section { padding: 8px 0; border-bottom: 1px solid var(--border); }
    .notif-section:last-child { border-bottom: none; }
    .notif-section-title {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      text-transform: uppercase;
      font-size: 0.6rem;
      font-weight: 600;
      letter-spacing: 0.06em;
      color: var(--text-muted);
      padding: 0 14px 4px;
    }
    .notif-item {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 8px 14px;
    }
    .notif-item-content { flex: 1; min-width: 0; }
    .notif-item-text { font-size: 13px; line-height: 1.3; }
    .notif-item-text strong { font-weight: 600; }
    .notif-item-time { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
    .notif-item-actions {
      display: flex;
      gap: 6px;
      flex-shrink: 0;
    }
    .btn-xs {
      padding: 3px 10px !important;
      font-size: 11px !important;
      line-height: 1 !important;
      border-radius: 6px !important;
    }
    .notif-item-info { opacity: 0.75; }
    .notif-empty {
      text-align: center;
      color: var(--text-muted);
      padding: 24px 14px;
      font-size: 13px;
    }
    .group-member-card {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 8px 0;
      border-bottom: 1px solid var(--border);
    }
    .group-member-card:last-child { border-bottom: none; }

    /* Quick Actions pill bar */
    .dash-actions-bar {
      display: flex;
      border: 1px solid var(--border);
      border-radius: 6px;
      overflow: hidden;
    }
    .dash-actions-bar button {
      flex: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 4px;
      padding: 7px 0;
      border: none;
      border-right: 1px solid var(--border);
      background: transparent;
      color: var(--text-muted);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.62rem;
      font-weight: 500;
      cursor: pointer;
      transition: background 0.15s, color 0.15s;
      text-transform: uppercase;
      letter-spacing: 0.03em;
    }

    .dash-actions-bar button:last-child { border-right: none; }
    .dash-actions-bar button:hover {
      background: var(--surface2, var(--border));
      color: var(--text);
    }
    .dash-actions-bar button svg {
      width: 14px;
      height: 14px;
    }

    /* Placeholder views */
    .placeholder-view {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 16px;
      padding: 60px 20px;
      text-align: center;
    }

    .placeholder-view svg {
      width: 48px;
      height: 48px;
      color: var(--text-muted);
      opacity: 0.5;
    }

    .placeholder-view h2 {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 1.1rem;
      font-weight: 600;
      color: var(--text);
    }

    .placeholder-view p {
      font-size: 0.82rem;
      color: var(--text-muted);
      max-width: 300px;
      line-height: 1.5;
    }

    /* More menu */
    .more-menu {
      display: flex;
      flex-direction: column;
      gap: 4px;
      padding: 8px 0;
    }

    .more-menu-item {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      gap: 4px;
      padding: 14px 16px;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      color: var(--text);
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.85rem;
      font-weight: 600;
      cursor: pointer;
      transition: background 0.15s;
      text-decoration: none;
    }

    .more-menu-item:hover {
      background: var(--hover-overlay);
    }

    .more-menu-item svg {
      width: 20px;
      height: 20px;
      color: var(--text-muted);
      flex-shrink: 0;
    }

    .more-menu-item .menu-item-desc {
      font-size: 0.7rem;
      font-weight: 400;
      color: var(--text-muted);
      margin-top: 2px;
    }

    .dash-empty {
      text-align: center;
      padding: 12px 16px;
      color: var(--text-muted);
      font-size: 0.75rem;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
    }

    .dash-empty svg {
      width: 24px;
      height: 24px;
      margin-bottom: 4px;
      opacity: 0.4;
    }

    /* ── Social Overlays ─────────────────────────────────────── */
    .share-menu-backdrop {
      position: fixed; inset: 0; z-index: 9998;
      background: rgba(0,0,0,0.5);
    }
    .share-menu-panel {
      position: fixed; z-index: 9999;
      bottom: 0; left: 0; right: 0;
      background: var(--surface);
      border-radius: var(--radius) var(--radius) 0 0;
      padding: 20px 16px 32px;
      max-height: 70vh; overflow-y: auto;
    }
    .share-menu-panel h3 {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 1.1rem; font-weight: 600;
      color: var(--text); margin: 0 0 14px;
    }
    .share-menu-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 10px;
    }
    .share-menu-item {
      display: flex; flex-direction: column;
      align-items: center; gap: 8px;
      padding: 14px 8px;
      background: var(--surface2);
      border: 1.5px solid var(--border);
      border-radius: var(--radius-sm);
      cursor: pointer; text-align: center;
      transition: border-color 0.15s;
    }
    .share-menu-item:hover { border-color: var(--accent); }
    .share-menu-item .share-icon {
      font-size: 1.5rem; line-height: 1;
    }
    .share-menu-item .share-label {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.78rem; font-weight: 500;
      color: var(--text);
    }
    .share-menu-item .share-desc {
      font-size: 0.65rem; color: var(--text-muted);
      line-height: 1.3;
    }
    .share-menu-item.disabled {
      opacity: 0.4; pointer-events: none;
    }

    /* Milestone celebration modal */
    .milestone-modal-backdrop {
      position: fixed; inset: 0; z-index: 10000;
      background: rgba(0,0,0,0.7);
      display: flex; align-items: center; justify-content: center;
    }
    .milestone-modal {
      background: var(--surface);
      border: 2px solid #fbbf24;
      border-radius: var(--radius);
      padding: 28px 24px;
      max-width: 340px; width: 90%;
      text-align: center;
    }
    .milestone-modal .milestone-icon {
      font-size: 3rem; margin-bottom: 12px;
    }
    .milestone-modal .milestone-title {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 1.3rem; font-weight: 700;
      color: #fbbf24; margin-bottom: 8px;
    }
    .milestone-modal .milestone-desc {
      font-size: 0.85rem; color: var(--text);
      margin-bottom: 16px; line-height: 1.4;
    }
    .milestone-modal .milestone-actions {
      display: flex; gap: 8px; justify-content: center;
    }

    /* Wrap-up slide picker */
    .wrapup-slide-picker {
      display: flex; gap: 8px; overflow-x: auto;
      padding: 12px 0;
    }
    .wrapup-slide-picker button {
      flex: 0 0 auto;
      padding: 6px 14px;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.75rem; font-weight: 500;
      line-height: 1;
      border: 1.5px solid var(--border);
      border-radius: var(--radius-sm);
      background: var(--surface2);
      color: var(--text-muted);
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }
    .wrapup-slide-picker button.active {
      border-color: #22c55e; color: #22c55e;
    }

    /* Share button style */
    .btn-share-overlay {
      display: inline-flex; align-items: center; justify-content: center; gap: 6px;
      padding: 8px 14px;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.8rem; font-weight: 500;
      line-height: 1;
      background: var(--surface2);
      border: 1.5px solid var(--border);
      border-radius: var(--radius-sm);
      color: var(--text); cursor: pointer;
    }
    .btn-share-overlay:hover { border-color: var(--accent); }

    /* ── OFC (Open Face Chinese) Styles ── */
    .ofc-player-section {
      margin-bottom: 14px;
      padding: 10px;
      border: 1px solid var(--border);
      border-radius: var(--radius-sm, 6px);
      background: var(--surface, rgba(255,255,255,0.03));
    }
    .ofc-player-name {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.75rem;
      font-weight: 600;
      color: var(--text);
      margin-bottom: 8px;
      text-transform: uppercase;
      letter-spacing: 0.05em;
    }
    .ofc-rows {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .ofc-row {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 6px 8px;
      border: 1.5px solid var(--border);
      border-radius: var(--radius-sm, 6px);
      cursor: pointer;
      transition: border-color 0.15s, background 0.15s;
    }
    .ofc-row:hover {
      border-color: var(--accent, #a78bfa);
      background: rgba(167, 139, 250, 0.05);
    }
    .ofc-row-active {
      border-color: var(--accent, #a78bfa);
      background: rgba(167, 139, 250, 0.08);
      box-shadow: 0 0 0 1px var(--accent, #a78bfa);
    }
    .ofc-row-label {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.6rem;
      font-weight: 600;
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: 0.05em;
      min-width: 70px;
      flex-shrink: 0;
    }
    .ofc-row-cards {
      flex: 1;
      display: flex;
      justify-content: center;
    }
    .ofc-row-cards .card-row {
      justify-content: center;
    }

    /* OFC Card Picker */
    .ofc-card-picker {
      margin-top: 8px;
      padding: 8px;
      background: var(--surface2, rgba(0,0,0,0.2));
      border-radius: var(--radius-sm, 6px);
      border: 1px solid var(--border);
    }
    .ofc-picker-rank-row {
      display: flex;
      gap: 3px;
      margin-bottom: 3px;
      justify-content: center;
    }
    .ofc-picker-card {
      width: 32px;
      height: 28px;
      border: 1px solid var(--border);
      border-radius: 4px;
      background: var(--surface, rgba(255,255,255,0.05));
      cursor: pointer;
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.6rem;
      font-weight: 600;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all 0.12s;
    }
    .ofc-picker-card:hover:not(:disabled) {
      border-color: var(--accent, #a78bfa);
      background: rgba(167, 139, 250, 0.1);
    }
    .ofc-picker-card.selected {
      border-color: #22c55e;
      background: rgba(34, 197, 94, 0.15);
      box-shadow: 0 0 0 1px #22c55e;
    }
    .ofc-picker-card.used {
      opacity: 0.25;
      cursor: not-allowed;
    }

    /* OFC Replay View */
    .ofc-replay {
      padding: 0;
    }
    .ofc-replay-board {
      display: flex;
      flex-direction: column;
      gap: 16px;
      padding: 12px 0;
    }
    .ofc-replay-player {
      padding: 12px;
      border: 1.5px solid var(--border);
      border-radius: var(--radius-sm, 8px);
      background: var(--surface, rgba(255,255,255,0.03));
    }
    .ofc-replay-player.ofc-hero {
      border-color: var(--accent, #a78bfa);
      background: rgba(167, 139, 250, 0.05);
    }
    .ofc-replay-player-name {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.8rem;
      font-weight: 700;
      color: var(--text);
      text-transform: uppercase;
      letter-spacing: 0.05em;
      margin-bottom: 10px;
      text-align: center;
    }
    .ofc-replay-rows {
      display: flex;
      flex-direction: column;
      gap: 8px;
      align-items: center;
    }
    .ofc-replay-row {
      display: flex;
      align-items: center;
      gap: 10px;
      width: 100%;
      justify-content: center;
    }
    .ofc-replay-row-label {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.55rem;
      font-weight: 600;
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: 0.05em;
      min-width: 45px;
      text-align: right;
    }
    .ofc-replay-row .card-row {
      justify-content: center;
    }

    /* OFC Street indicator */
    .ofc-street-indicator {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 12px;
      padding: 8px 0;
      border-top: 1px solid var(--border);
      margin-top: 4px;
    }
    .ofc-street-name {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.75rem;
      font-weight: 600;
      color: var(--text);
      text-transform: uppercase;
      letter-spacing: 0.05em;
    }
    .ofc-street-count {
      font-family: 'Univers Condensed', 'Univers', sans-serif;
      font-size: 0.6rem;
      color: var(--text-muted);
    }
