        /* ── Page-specific body ── */
        body { padding:16px 16px 90px; max-width:520px; margin:0 auto; }

        /* ── Top nav links ── */
        .nav-ugen-link, .nav-back-link {
            background:none; border:none; color:var(--text-muted);
            font-family:'DM Sans',sans-serif; font-size:13px; font-weight:600;
            cursor:pointer; transition:color 0.15s;
        }
        .nav-ugen-link:hover, .nav-back-link:hover { color:var(--text); }

        /* ── Panels ── */
        .tab-panel { display:none; }
        .tab-panel.active { display:block; animation:fadeUp 0.3s ease both; }

        /* ── Cards ── */
        .card { background:var(--card); border:1px solid var(--card-border); border-radius:var(--radius); overflow:hidden; margin-bottom:12px; }
        .card-title { font-size:15px; font-weight:700; padding:16px 20px 12px; display:flex; align-items:center; gap:8px; border-bottom:1px solid var(--card-border); }
        .card > .t-meta { font-size:11px; color:var(--muted); padding:6px 20px 0; }
        .player-row {
            display:flex; align-items:center; justify-content:space-between;
            padding:14px 20px; border-bottom:1px solid rgba(255,255,255,0.04);
            cursor:pointer; text-decoration:none; color:var(--text); transition:background 0.15s;
        }
        .player-row:last-child { border-bottom:none; }
        .player-row:hover { background:rgba(255,255,255,0.03); }
        .player-left { display:flex; align-items:center; gap:14px; }
        .standing { font-family:'Space Mono',monospace; font-size:13px; color:var(--muted); width:20px; text-align:right; }
        .player-name { font-size:15px; font-weight:600; }
        .player-club { font-size:12px; color:var(--muted); margin-top:2px; }
        .rank-right { display:flex; align-items:center; }
        .rank-badge-wrapper {
            position:relative; display:inline-flex; align-items:center;
        }
        .rank-badge {
            background:linear-gradient(135deg, rgba(34,197,94,0.10) 0%, rgba(34,197,94,0.18) 100%);
            border:1px solid rgba(34,197,94,0.22);
            color:var(--accent); font-family:'Space Mono',monospace;
            font-variant-numeric:tabular-nums;
            font-size:12px; font-weight:700; padding:5px 12px; border-radius:18px;
            white-space:nowrap;
            backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
            transition:box-shadow 0.2s ease, border-color 0.2s ease;
        }
        .rank-badge-wrapper:hover .rank-badge {
            border-color:rgba(34,197,94,0.4);
            box-shadow:0 0 12px rgba(34,197,94,0.12);
        }
        .rank-movement {
            position:absolute; top:-7px; right:-12px;
            font-family:'Space Mono',monospace; font-variant-numeric:tabular-nums;
            font-size:0.65em; font-weight:700; line-height:1;
            padding:2px 5px; border-radius:8px;
            white-space:nowrap; pointer-events:none;
        }
        .rank-movement.up {
            color:#22c55e;
            background:rgba(34,197,94,0.15); border:1px solid rgba(34,197,94,0.3);
        }
        .rank-movement.down {
            color:#ef4444;
            background:rgba(239,68,68,0.12); border:1px solid rgba(239,68,68,0.25);
        }
        .empty-state { padding:32px 20px; color:var(--muted); text-align:center; font-size:14px; }

        /* ── Expand/collapse for rankings ── */
        .extra-players { display:none; }
        .extra-players.open { display:block; }
        .expand-btn {
            display:block; width:100%; padding:14px 20px;
            background:none; border:none; border-top:1px solid rgba(255,255,255,0.06);
            color:var(--accent); font-family:'DM Sans',sans-serif; font-size:13px; font-weight:600;
            cursor:pointer; text-align:center; transition:background 0.15s;
        }
        .expand-btn:hover { background:rgba(34,197,94,0.06); }
        .expand-btn.open { border-bottom:1px solid rgba(255,255,255,0.06); }

        /* ── Tournament tab ── */
        .t-event { border-bottom:1px solid rgba(255,255,255,0.06); }
        .t-event:last-child { border-bottom:none; }
        .t-row { display:flex; padding:14px 20px; cursor:pointer; transition:background 0.15s; gap:8px; align-items:center; }
        .t-row:hover { background:rgba(255,255,255,0.03); }
        #turneringer .t-name { font-size:14px; font-weight:600; }
        #turneringer .t-meta { font-size:12px; color:var(--muted); margin-top:2px; display:flex; flex-wrap:wrap; gap:4px 12px; align-items:center; }
        .t-date-badge { background:var(--accent-dim); color:var(--accent); font-family:'Space Mono',monospace; font-size:11px; font-weight:700; padding:3px 8px; border-radius:10px; white-space:nowrap; }
        #turneringer .t-classes { padding:0 20px 14px; display:none; }
        #turneringer .t-classes.open { display:block; }
        .t-class-pill { display:inline-flex; align-items:center; gap:6px; background:rgba(255,255,255,0.05); border:1px solid var(--card-border); border-radius:10px; padding:6px 12px; margin:3px 4px 3px 0; font-size:12px; color:var(--text); }
        .t-class-pill .count { font-family:'Space Mono',monospace; font-size:11px; color:var(--accent); }
        .t-class-pill.full .count { color:#ef4444; }
        .t-ev-actions { display:flex; gap:6px; align-items:center; flex-shrink:0; }
        .t-ev-actions button { background:rgba(255,255,255,0.05); border:1px solid var(--card-border); color:var(--muted); border-radius:8px; padding:5px; cursor:pointer; display:flex; align-items:center; transition:all 0.15s; }
        .t-ev-actions button:hover { background:rgba(255,255,255,0.09); color:var(--text); border-color:rgba(255,255,255,0.15); }
        .t-ev-actions svg { width:13px; height:13px; }
        .t-loading { padding:16px 20px; color:var(--muted); font-size:13px; }
        .t-loc { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:10px; }
        .t-loc input { background:var(--card); border:1px solid var(--card-border); color:var(--text); font-family:'Space Mono',monospace; font-size:13px; padding:6px 12px; border-radius:12px; width:90px; outline:none; transition:border-color 0.15s; }
        .t-loc input:focus { border-color:var(--accent); }
        .t-loc input::placeholder { color:var(--muted); }
        .t-radius { display:flex; gap:5px; flex-wrap:wrap; }
        .t-rad { background:var(--card); border:1px solid var(--card-border); color:var(--muted); font-family:'Space Mono',monospace; font-size:11px; font-weight:700; padding:5px 10px; border-radius:14px; cursor:pointer; transition:all 0.15s; }
        .t-rad:hover:not(:disabled) { color:var(--text); border-color:#2e2e3a; }
        .t-rad:disabled { opacity:0.35; cursor:not-allowed; }
        .t-rad.active { background:var(--accent-dim); border-color:rgba(34,197,94,0.35); color:var(--accent); }
        .t-loc-clear { background:none; border:none; color:var(--muted); font-size:12px; cursor:pointer; padding:4px 8px; }
        .t-loc-clear:hover { color:var(--text); }
        .t-dist { font-family:'Space Mono',monospace; font-size:10px; color:var(--muted); margin-left:auto; white-space:nowrap; }
        .t-section-label { font-size:12px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:0.05em; margin-bottom:8px; }
        .t-filters { display:grid; grid-template-columns:repeat(4, 1fr); gap:6px; margin-bottom:12px; }
        .t-filter { background:var(--card); border:1px solid var(--card-border); color:var(--muted); font-family:'Space Mono',monospace; font-size:12px; font-weight:700; padding:6px 0; border-radius:18px; cursor:pointer; transition:all 0.15s; text-align:center; }
        .t-filter:hover { color:var(--text); border-color:#2e2e3a; }
        .t-filter.active { background:var(--accent-dim); border-color:rgba(34,197,94,0.35); color:var(--accent); }
        .t-search-btn { display:block; width:100%; padding:14px; background:rgba(234,179,8,0.15); border:1px solid rgba(234,179,8,0.35); border-radius:var(--radius); color:#eab308; font-family:'DM Sans',sans-serif; font-size:14px; font-weight:600; cursor:pointer; text-align:center; margin:12px 0; transition:all 0.15s; position:relative; }
        .t-search-btn:hover:not(:disabled) { border-color:rgba(234,179,8,0.5); background:rgba(234,179,8,0.22); }
        .t-search-btn:disabled { cursor:default; opacity:0.45; }
        .t-search-btn.loading { color:rgba(234,179,8,0.6); }
        .t-search-btn.stop-mode { background:rgba(239,68,68,0.15); border-color:rgba(239,68,68,0.35); color:#ef4444; opacity:1; cursor:pointer; }
        .t-search-btn.stop-mode:hover { background:rgba(239,68,68,0.22); border-color:rgba(239,68,68,0.5); }
        .t-search-btn.stop-mode .spinner { border-color:rgba(239,68,68,0.3); border-top-color:#ef4444; }
        .t-search-btn .spinner { display:none; width:14px; height:14px; border:2px solid rgba(234,179,8,0.3); border-top-color:#eab308; border-radius:50%; animation:spin 0.6s linear infinite; vertical-align:middle; margin-left:6px; }
        .t-search-btn.loading .spinner { display:inline-block; }

        /* ── Week view (Ugen tab) ── */
        .week-nav {
            display:flex; align-items:center; justify-content:center; gap:16px;
            padding:8px 0 16px; user-select:none;
        }
        .week-label {
            font-family:'Space Mono',monospace; font-size:13px; font-weight:700;
            color:var(--text); text-align:center; min-width:200px;
        }
        .week-arrow {
            background:var(--card); border:1px solid var(--card-border);
            color:var(--text); width:36px; height:36px; border-radius:50%;
            font-size:20px; cursor:pointer; display:flex; align-items:center; justify-content:center;
            transition:all 0.15s; font-family:'DM Sans',sans-serif;
        }
        .week-arrow:hover { background:rgba(255,255,255,0.06); border-color:rgba(255,255,255,0.15); }
        .week-arrow:disabled { opacity:0.25; cursor:not-allowed; }

        .day-section { margin-bottom:16px; }
        .day-header {
            font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:0.06em;
            color:var(--muted); padding:0 4px 8px; display:flex; align-items:center; gap:8px;
        }
        .day-header .day-line { flex:1; height:1px; background:var(--card-border); }
        .day-section.today .day-header { color:var(--accent); }

        .week-tournament {
            background:var(--card); border:1px solid var(--card-border);
            border-radius:var(--radius); overflow:hidden; margin-bottom:8px;
            animation:fadeUp 0.35s ease both;
        }
        .week-tournament-header {
            padding:12px 16px 8px; display:flex; align-items:flex-start; gap:8px;
            border-bottom:1px solid rgba(255,255,255,0.04);
        }
        .week-tournament-icon { font-size:14px; flex-shrink:0; padding-top:1px; }
        .week-tournament-name { font-size:14px; font-weight:600; line-height:1.3; }
        .week-tournament-link {
            color:var(--text); text-decoration:none; transition:color 0.15s;
        }
        .week-tournament-link:hover { color:var(--accent); }

        .week-league { }
        .week-league-meta {
            padding:0 16px 8px; display:flex; flex-wrap:wrap; gap:8px;
            font-size:11px; color:var(--muted);
        }
        .league-label {
            background:rgba(245,158,11,0.12); color:#f59e0b;
            padding:2px 8px; border-radius:10px; font-weight:500;
        }
        .league-time { display:flex; align-items:center; gap:3px; }
        .league-location { display:flex; align-items:center; gap:3px; }

        .league-matchup {
            display:flex; align-items:stretch; gap:0;
            border-top:1px solid rgba(255,255,255,0.04);
        }
        .league-team { flex:1; min-width:0; padding:8px 0; }
        .league-team-name {
            font-size:11px; font-weight:600; color:var(--muted);
            padding:0 12px 4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
        }
        .league-vs {
            display:flex; align-items:center; justify-content:center;
            font-size:15px; font-weight:700; color:var(--muted);
            padding:0 12px; flex-shrink:0; align-self:center;
        }

        .week-players { padding:4px 12px 10px; display:flex; flex-wrap:wrap; gap:6px; }
        .player-chip {
            display:inline-flex; align-items:center; gap:6px;
            background:rgba(255,255,255,0.04); border:1px solid var(--card-border);
            border-radius:20px; padding:6px 12px 6px 8px;
            font-size:12px; font-weight:500; color:var(--text);
            text-decoration:none; transition:all 0.15s;
            border-left:3px solid var(--card-border);
        }
        .player-chip:hover { background:rgba(255,255,255,0.07); border-color:rgba(255,255,255,0.12); }
        .player-chip.men { border-left-color:var(--men); }
        .player-chip.women { border-left-color:var(--women); }
        .player-chip.udvalgte { border-left-color:var(--udvalgte); }
        .player-chip .chip-rank {
            font-family:'Space Mono',monospace; font-size:11px; font-weight:700;
            color:var(--accent); background:var(--accent-dim);
            padding:2px 6px; border-radius:10px; min-width:28px; text-align:center;
        }
        .player-chip .chip-partner {
            color:var(--muted); font-weight:400; font-size:11px;
        }
        .player-chip .chip-class {
            font-size:10px; color:var(--muted); margin-left:2px;
        }

        /* Result cards in weekly view */
        .week-result { border-left:3px solid rgba(255,255,255,0.08); }
        .week-results { padding:4px 12px 10px; display:flex; flex-direction:column; gap:0; }
        .result-row {
            display:flex; align-items:center; gap:8px; flex-wrap:wrap;
            font-size:12px; color:var(--text);
            padding:6px 0; border-bottom:1px solid rgba(255,255,255,0.04);
        }
        .result-row:last-child { border-bottom:none; }
        .result-player {
            display:inline-flex; align-items:center; gap:5px;
            text-decoration:none; color:var(--text); font-weight:500;
            border-left:3px solid var(--card-border); padding:4px 8px 4px 7px;
            border-radius:16px; background:rgba(255,255,255,0.04);
            transition:all 0.15s; flex-shrink:0;
        }
        .result-player:hover { background:rgba(255,255,255,0.07); }
        .result-player.men { border-left-color:var(--men); }
        .result-player.women { border-left-color:var(--women); }
        .result-player.udvalgte { border-left-color:var(--udvalgte); }
        .result-name {
            max-width:120px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
        }
        .result-matches {
            display:inline-flex; align-items:center; gap:6px; flex-wrap:wrap;
        }
        .result-match {
            display:inline-flex; align-items:center; gap:4px;
        }
        .result-badge {
            font-size:10px; font-weight:700; padding:2px 7px; border-radius:6px;
            text-transform:uppercase; letter-spacing:.5px; flex-shrink:0;
        }
        .result-badge.win { background:rgba(74,222,128,0.12); color:#4ade80; }
        .result-badge.loss { background:rgba(248,113,113,0.12); color:#f87171; }
        .result-score {
            font-family:'Space Mono',monospace; font-size:11px; font-weight:600;
            color:var(--text); flex-shrink:0;
        }
        .result-partner {
            font-size:11px; color:var(--muted); font-style:italic;
            white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex-shrink:0;
        }

        .week-empty {
            text-align:center; color:var(--muted); font-size:13px;
            padding:8px 0; font-style:italic;
        }

        .week-no-data {
            text-align:center; color:var(--muted); font-size:14px;
            padding:48px 20px;
        }

        @media(min-width:768px){
            body { max-width:860px; padding:24px 40px 100px; }
            .bottom-nav-inner { max-width:480px; }
        }
        .card { animation:fadeUp 0.35s ease both; }

        /* ── Lab tab ── */
        .lab-title{font-size:20px;font-weight:700;margin-bottom:6px;}
        .lab-subheader{font-size:13px;color:var(--text-muted);margin-bottom:20px;line-height:1.5;}
