/* ── Map overlay header (type switcher + expand) ── */
        .map-overlay-header {
            position: absolute; top: 8px; left: 8px; right: 8px; z-index: 10;
            display: flex; align-items: center; justify-content: space-between; gap: 6px;
            pointer-events: none;
        }
        .map-overlay-header > * { pointer-events: auto; }

        /* Frosted-glass pill behind the type buttons */
        .map-overlay-header .map-type-btns {
            background: rgba(255,255,255,0.92);
            backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
            border-radius: 20px; padding: 3px 4px;
            box-shadow: 0 2px 8px rgba(0,0,0,0.18);
        }
        html.dark-mode .map-overlay-header .map-type-btns {
            background: rgba(15,23,42,0.88);
        }

        /* Frosted-glass expand button */
        .map-overlay-header .mini-map-expand-btn {
            background: rgba(255,255,255,0.92);
            backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
            border-radius: 7px; padding: 6px;
            box-shadow: 0 2px 8px rgba(0,0,0,0.18);
        }
        html.dark-mode .map-overlay-header .mini-map-expand-btn {
            background: rgba(15,23,42,0.88); color: #94a3b8;
        }
        /* Hide expand button when already fullscreen */
        .mini-map-container.is-fullscreen .map-overlay-header .mini-map-expand-btn { display: none; }

        /* ── Map overlay playback bar (bottom of container) ── */
        .map-overlay-playback {
            position: absolute; bottom: 0; left: 0; right: 0;
            background: rgba(255,255,255,0.88) !important;
            backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
            border-top: 1px solid rgba(0,0,0,0.08) !important;
        }
        html.dark-mode .map-overlay-playback {
            background: rgba(15,23,42,0.90) !important;
            border-top-color: rgba(255,255,255,0.08) !important;
        }

        /* ── Map type switcher pills ── */
        .map-type-btns { display: flex; gap: 3px; flex-shrink: 0; }
        .map-type-btn {
            font-size: 0.7em; font-weight: 600; padding: 2px 8px; border-radius: 12px;
            border: 1px solid transparent; background: none; color: #374151; cursor: pointer;
            transition: background 0.13s, color 0.13s;
            white-space: nowrap;
        }
        .map-type-btn:hover { background: rgba(0,0,0,0.07); }
        .map-type-btn.is-active { background: oklch(37% 0.15 155); color: #fff; }
        html.dark-mode .map-type-btn { color: #cbd5e1; }
        html.dark-mode .map-type-btn:hover { background: rgba(255,255,255,0.12); }
        html.dark-mode .map-type-btn.is-active { background: oklch(37% 0.15 155); color: #fff; }

        /* ── 3D Follow button ── */
        .map-follow-btn {
            flex-shrink: 0; font-size: 0.72em; font-weight: 700; padding: 3px 9px;
            border: none; border-radius: 20px; background: #e2e8f0; color: #374151;
            cursor: pointer; letter-spacing: 0.03em; transition: background 0.15s, color 0.15s;
        }
        .map-follow-btn:hover { background: #cbd5e1; }
        .map-follow-btn.is-active { background: #7c3aed; color: #fff; }
        .map-follow-btn.is-active:hover { background: #6d28d9; }
        html.dark-mode .map-follow-btn { background: #334155; color: #94a3b8; }
        html.dark-mode .map-follow-btn:hover { background: #475569; color: #e2e8f0; }
        html.dark-mode .map-follow-btn.is-active { background: #7c3aed; color: #fff; }

        /* ── Strength Overview card ── */
        .strength-overview-card { grid-column: 1 / -1; }
        .strength-stat-tiles {
            display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px;
        }
        .strength-stat-tile {
            flex: 1 1 100px; min-width: 90px;
            display: flex; flex-direction: column; align-items: center;
            background: #f1f5f9; border-radius: 10px; padding: 12px 10px 8px;
        }
        html.dark-mode .strength-stat-tile { background: #1e293b; }
        .strength-stat-value {
            font-size: 1.45em; font-weight: 700; color: oklch(37% 0.15 155); line-height: 1.1;
        }
        html.dark-mode .strength-stat-value { color: oklch(68% 0.14 155); }
        .strength-stat-label {
            font-size: 0.7em; font-weight: 600; color: #64748b; text-transform: uppercase;
            letter-spacing: 0.05em; margin-top: 4px; text-align: center;
        }
        /* ── Exercise Breakdown card ── */
        .strength-breakdown-card { grid-column: 1 / -1; }
        .strength-ex-row { align-items: baseline; }
        .strength-ex-name { font-weight: 600; color: oklch(14% 0.018 155); }
        html.dark-mode .strength-ex-name { color: #e2e8f0; }
        .strength-ex-val { color: #0f766e; font-size: 0.88em; }
        html.dark-mode .strength-ex-val { color: #2dd4bf; }

        .ai-result-box {
            margin-top: 15px; white-space: pre-wrap;
            background-color: #f8f9fa; padding: 10px;
            border-radius: 5px; border: 1px solid #e9ecef;
        }
        /* ── AI analysis history panel ── */
        .ai-hist-panel {
            border: 1px solid #e2e8f0; border-radius: 8px; overflow: hidden; margin-bottom: 14px;
        }
        html.dark-mode .ai-hist-panel { border-color: #334155; }
        .ai-hist-header {
            display: flex; align-items: center; justify-content: space-between;
            padding: 8px 12px; background: #f8fafc; border-bottom: 1px solid #e2e8f0;
        }
        html.dark-mode .ai-hist-header { background: #1e293b; border-color: #334155; }
        .ai-hist-title { font-weight: 700; font-size: 0.82em; color: #374151; }
        html.dark-mode .ai-hist-title { color: #94a3b8; }
        .ai-hist-nav { display: flex; align-items: center; gap: 8px; }
        .ai-hist-nav-btn {
            background: none; border: 1px solid #e2e8f0; border-radius: 5px;
            padding: 3px 10px; font-size: 0.78em; font-weight: 600; cursor: pointer; color: #374151;
            transition: background 0.13s;
        }
        html.dark-mode .ai-hist-nav-btn { border-color: #334155; color: #94a3b8; }
        .ai-hist-nav-btn:hover:not(:disabled) { background: oklch(88% 0.06 155); color: oklch(37% 0.15 155); }
        html.dark-mode .ai-hist-nav-btn:hover:not(:disabled) { background: oklch(24% 0.06 155); color: #7eb8e0; }
        .ai-hist-nav-btn:disabled { opacity: 0.38; cursor: default; }
        .ai-hist-counter { font-size: 0.78em; color: #64748b; white-space: nowrap; }
        .ai-hist-body { padding: 10px 12px; }
        .ai-hist-meta {
            font-size: 0.75em; color: #64748b; margin-bottom: 6px;
            display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
        }
        html.dark-mode .ai-hist-meta { color: #94a3b8; }
        .ai-hist-badge {
            display: inline-block; font-size: 0.72em; font-weight: 700; padding: 2px 7px;
            border-radius: 10px; text-transform: uppercase; letter-spacing: 0.04em;
        }
        .ai-hist-badge--standard { background: oklch(88% 0.06 155); color: oklch(37% 0.15 155); }
        .ai-hist-badge--race     { background: #dcfce7; color: #15803d; }
        html.dark-mode .ai-hist-badge--standard { background: oklch(24% 0.06 155); color: #7eb8e0; }
        html.dark-mode .ai-hist-badge--race     { background: #14532d; color: #4ade80; }
        .ai-hist-result {
            white-space: pre-wrap; font-size: 0.88em; color: #1e293b; line-height: 1.6;
            background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 6px; padding: 10px;
            max-height: 300px; overflow-y: auto;
        }
        html.dark-mode .ai-hist-result { background: oklch(14% 0.018 155); border-color: #334155; color: #e2e8f0; }
        .ai-hist-footer {
            display: flex; justify-content: flex-end; padding: 6px 12px;
            border-top: 1px solid #e2e8f0; background: #f8fafc;
        }
        html.dark-mode .ai-hist-footer { border-color: #334155; background: #1e293b; }
        .ai-hist-load-btn {
            background: none; border: 1px solid #cbd5e1; border-radius: 5px; cursor: pointer;
            padding: 4px 12px; font-size: 0.78em; font-weight: 600; color: #475569;
            transition: background 0.13s;
        }
        .ai-hist-load-btn:hover { background: #f1f5f9; }
        .ai-prompt-textarea {
            width: 100%; padding: 10px;
            border: 1px solid #cbd5e1; border-radius: 6px;
            font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
            background: #fff; color: #1e293b;
        }
        .ai-prompt-load-btn {
            background-color: #e2e8f0; color: #1f2937;
            padding: 6px 10px; border: 1px solid #cbd5e1;
            border-radius: 4px; cursor: pointer;
        }
        /* ── Dark mode ── */
        html.dark-mode .ai-result-box { background-color: transparent; border-color: #334155; color: #e2e8f0 !important; }
        html.dark-mode .ai-prompt-textarea { background: oklch(14% 0.018 155); border-color: #475569; color: #e2e8f0; }
        html.dark-mode .ai-prompt-load-btn { background-color: #1e293b; color: #cbd5e1; border-color: #475569; }
        html.dark-mode label[for="standard_prompt_text"] { color: #cbd5e1; }
        html.dark-mode #email_address { background: oklch(14% 0.018 155); border-color: #475569; color: #e2e8f0; }
        html.dark-mode label[for="email_address"] { color: #cbd5e1; }
        html.dark-mode #standardPromptStatus { color: #94a3b8; }
        html.dark-mode .activity-title-input { background: oklch(14% 0.018 155); border-color: #475569; color: #e2e8f0; }
        html.dark-mode .activity-title-edit-btn { color: #94a3b8; }

        /* ── Workout PR Banner ── */
        .workout-pr-banner { display:flex; align-items:center; gap:10px; padding:10px 16px; margin-bottom:16px; background:#fefce8; border:1px solid #fde68a; border-radius:8px; font-size:0.92em; flex-wrap:wrap; }
        .workout-pr-banner__icon { font-size:1.3em; flex-shrink:0; }
        .workout-pr-banner__text { flex:1; color:#78350f; }
        .workout-pr-banner__link { color:#d97706; font-weight:600; text-decoration:none; white-space:nowrap; }
        .workout-pr-banner__link:hover { text-decoration:underline; }
        html.dark-mode .workout-pr-banner { background:#1c1407; border-color:#78350f; }
        html.dark-mode .workout-pr-banner__text { color:#fde68a; }
        html.dark-mode .workout-pr-banner__link { color:#fbbf24; }

        /* ── Fluid Tracking Card ── */
        .fluid-tracking-card { background: #0f2744; border: 1px solid oklch(24% 0.06 155); }
        .fluid-tracking-card .card-header h2 { color: oklch(75% 0.12 155); }
        .fluid-tracking-card .info-icon { color: oklch(75% 0.12 155); border-color: oklch(24% 0.06 155); }
        .fluid-tracking-card .info-icon:hover { background: oklch(24% 0.06 155); }
        .fluid-tracking-metrics {
            display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px;
        }
        .fluid-metric {
            flex: 1; min-width: 80px; display: flex; flex-direction: column;
            align-items: flex-start; padding: 10px 12px;
            background: rgba(255,255,255,0.05); border-radius: 8px;
        }
        .fluid-metric-value {
            font-size: 1.45em; font-weight: 700; color: #e2e8f0; line-height: 1.1;
        }
        .fluid-metric-label {
            font-size: 0.72em; margin-top: 4px; font-weight: 500; letter-spacing: 0.02em;
        }
        .fluid-metric--sweat .fluid-metric-label { color: oklch(68% 0.14 155); }
        .fluid-metric--consumed .fluid-metric-label { color: #94a3b8; }
        .fluid-metric--net .fluid-metric-label { color: #f87171; }
        html.dark-mode .fluid-tracking-card { background: #0a1929; border-color: oklch(24% 0.06 155); }

.exercise-sets-table { width:100%; border-collapse:collapse; font-size:0.88em; }
                                .exercise-sets-table th { text-align:left; padding:6px 10px; border-bottom:2px solid #e2e8f0; font-weight:600; color:#64748b; font-size:0.8em; text-transform:uppercase; letter-spacing:0.04em; }
                                .exercise-sets-table td { padding:7px 10px; border-bottom:1px solid #f1f5f9; vertical-align:middle; }
                                .exercise-sets-table tr:last-child td { border-bottom:none; }
                                .exercise-sets-table tr:hover td { background:#f8fafc; }
                                .set-num { font-weight:600; color:oklch(37% 0.15 155); min-width:36px; }
                                .set-exercise { font-weight:500; }
                                .set-reps { font-variant-numeric: tabular-nums; }
                                .set-weight { color:#0f766e; font-weight:500; }
                                .set-duration { color:#64748b; font-size:0.9em; }
                                html.dark-mode .exercise-sets-table th { color:#94a3b8; border-bottom-color:#334155; }
                                html.dark-mode .exercise-sets-table td { border-bottom-color:#1e293b; }
                                html.dark-mode .exercise-sets-table tr:hover td { background:#1e293b; }

.workout-comments-section {
                    margin-top: 12px;
                    padding: 14px 16px;
                    background: var(--sidebar-bg, #fff);
                    border: 1px solid #e2e8f0;
                    border-radius: 8px;
                }
                html.dark-mode .workout-comments-section { background: #1e293b; border-color: #334155; }
                .wc-block { margin-bottom: 20px; }
                .wc-label {
                    display: block;
                    font-size: 0.88em;
                    font-weight: 600;
                    color: #374151;
                    margin-bottom: 8px;
                }
                html.dark-mode .wc-label { color: #cbd5e1; }
                .wc-preactivity-text {
                    font-size: 0.9em;
                    color: #374151;
                    background: #f9fafb;
                    border: 1px solid #e5e7eb;
                    border-radius: 7px;
                    padding: 10px 12px;
                    white-space: pre-wrap;
                    line-height: 1.55;
                }
                html.dark-mode .wc-preactivity-text { background: oklch(14% 0.018 155); border-color: #334155; color: #cbd5e1; }
                .wc-thread {
                    margin-bottom: 12px;
                }
                .wc-entry {
                    padding: 10px 0;
                    border-bottom: 1px solid #f1f5f9;
                }
                .wc-entry:last-child { border-bottom: none; }
                html.dark-mode .wc-entry { border-color: #1e293b; }
                .wc-entry-header {
                    display: flex;
                    align-items: baseline;
                    gap: 10px;
                    margin-bottom: 4px;
                }
                .wc-entry-author {
                    font-size: 0.88em;
                    font-weight: 700;
                    color: #111827;
                }
                html.dark-mode .wc-entry-author { color: #e2e8f0; }
                .wc-entry-date {
                    font-size: 0.78em;
                    color: #9ca3af;
                }
                .wc-entry-body {
                    font-size: 0.88em;
                    color: #374151;
                    line-height: 1.55;
                    white-space: pre-wrap;
                }
                html.dark-mode .wc-entry-body { color: #cbd5e1; }
                .wc-thread-empty { font-size: 0.83em; color: #9ca3af; padding: 6px 0 10px; }
                .wc-thread-input { min-height: 56px; resize: vertical; }
                .wc-textarea {
                    width: 100%;
                    box-sizing: border-box;
                    padding: 10px 12px;
                    border: 1px solid #d1d5db;
                    border-radius: 7px;
                    font-size: 0.9em;
                    font-family: inherit;
                    resize: vertical;
                    min-height: 72px;
                    background: #f9fafb;
                    color: #111827;
                    transition: border-color 0.15s;
                }
                .wc-textarea:focus { outline: none; border-color: oklch(45% 0.16 155); }
                html.dark-mode .wc-textarea { background: oklch(14% 0.018 155); border-color: #475569; color: #e2e8f0; }
                html.dark-mode .wc-textarea:focus { border-color: #818cf8; }
                .wc-textarea--private { border-color: #a5b4fc; background: #f5f3ff; }
                html.dark-mode .wc-textarea--private { background: #1e1b4b; border-color: #4338ca; }
                .wc-counter { font-size: 0.75em; color: #9ca3af; margin-top: 3px; }
                html.dark-mode .wc-counter { color: #64748b; }
                .wc-footer { display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-top: 4px; }
                .wc-save-status { font-size: 0.82em; color: #6b7280; }
                .wc-save-status--ok { color: #16a34a; }
                .wc-save-status--err { color: #dc2626; }
                html.dark-mode .wc-save-status { color: #94a3b8; }
                .wc-save-btn {
                    padding: 7px 18px;
                    background: oklch(45% 0.16 155);
                    color: #fff;
                    border: none;
                    border-radius: 6px;
                    font-size: 0.875em;
                    font-weight: 600;
                    cursor: pointer;
                    transition: background 0.15s;
                }
                .wc-save-btn:hover { background: #4f46e5; }
                .wc-save-btn:disabled { opacity: 0.55; cursor: default; }
/* Loading spinner animation (legacy — kept for any inline usages) */
@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* URC chart loader — spinning ring */
.charts-loading-spinner {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px 20px;
}
.urc-loader {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
}
.urc-loader__ring {
    width: 36px;
    height: 36px;
    border: 3px solid #e5e7eb;
    border-top-color: #3b82f6;
    border-radius: 50%;
    animation: urc-spin 0.75s linear infinite;
}
.urc-loader__label {
    font-size: 0.82em;
    color: #9ca3af;
    letter-spacing: 0.03em;
}
@keyframes urc-spin {
    to { transform: rotate(360deg); }
}
html.dark-mode .urc-loader__ring  { border-color: #334155; border-top-color: #3b82f6; }
html.dark-mode .urc-loader__label { color: #6b7280; }
