/**
 *
 * Find Waldo extension for the phpBB Forum Software package.
 *
 * @copyright (c) phpBB Limited <https://www.phpbb.com>, phpBB.nl <https://www.phpbbextnl.be>, SpIdErPiGgY
 * @copyright “Where’s Waldo” / “Where’s Wally” is a trademark of its respective owners.
 * @license GNU General Public License, version 2 (GPL-2.0)
 *
 */

/* ==========================================================
   Find Waldo - WarnowFM Community Design (Rot/Schlager Edition)
   Standard, Christmas, Halloween, Easter + automatic Dark mode
   ========================================================== */

:root {
    --waldo-bg: #fff8f8;
    --waldo-card: #ffffff;
    --waldo-card-2: #fffdfd;
    --waldo-text: #381d1d;
    --waldo-muted: #785a5a;
    --waldo-soft: #fce8e8;
    --waldo-border: #f2cbcb;
    --waldo-accent: #dc2626; /* Kräftiges WarnowFM Rot */
    --waldo-accent-2: #ef4444;
    --waldo-accent-3: #f59e0b; /* Schlager Gold */
    --waldo-accent-dark: #b91c1c;
    --waldo-accent-soft: #fef2f2;
    --waldo-accent-3-dark: #d97706;
    --waldo-header: linear-gradient(135deg, #dc2626 0%, #b91c1c 55%, #991b1b 100%);
    --waldo-panel: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(254,242,242,.98) 100%);
    --waldo-row: linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(254,244,244,.96) 100%);
    --waldo-shadow: 0 18px 44px rgba(220, 38, 38, .12);
    --waldo-overlay-image: none;
    --waldo-overlay-opacity: 0;
    --waldo-overlay-size: 440px auto;
}

body.waldo-theme-christmas,
.waldo-theme-christmas {
    --waldo-bg: #143225;
    --waldo-card: #1f4635;
    --waldo-card-2: #173527;
    --waldo-text: #fff4df;
    --waldo-muted: #ead5b2;
    --waldo-soft: rgba(240, 206, 126, .18);
    --waldo-border: rgba(232, 193, 111, .46);
    --waldo-accent: #bd3037;
    --waldo-accent-2: #1f754c;
    --waldo-accent-3: #e8c56f;
    --waldo-accent-dark: #8c1f26;
    --waldo-accent-soft: rgba(232, 197, 111, .18);
    --waldo-accent-3-dark: #c09a49;
    --waldo-header: linear-gradient(135deg, #bf3038 0%, #8c1f26 52%, #1e7048 100%);
    --waldo-panel: radial-gradient(circle at 12% 16%, rgba(255, 228, 147, .16) 0, transparent 22%), linear-gradient(180deg, rgba(28, 69, 47, .98) 0%, rgba(17, 43, 30, .99) 100%);
    --waldo-row: linear-gradient(180deg, rgba(35, 78, 57, .96) 0%, rgba(24, 55, 39, .98) 100%);
    --waldo-shadow: 0 18px 46px rgba(15, 32, 22, .36);
    --waldo-overlay-image: url("./images/christmas/overlay.png");
    --waldo-overlay-opacity: .24;
}

body.waldo-theme-halloween,
.waldo-theme-halloween {
    --waldo-bg: #fff0dc;
    --waldo-card: #fff8ef;
    --waldo-card-2: #ffe7cb;
    --waldo-text: #45210f;
    --waldo-muted: #7a4324;
    --waldo-soft: rgba(255, 139, 31, .18);
    --waldo-border: rgba(216, 104, 18, .42);
    --waldo-accent: #f47b16;
    --waldo-accent-2: #69306d;
    --waldo-accent-3: #ffd267;
    --waldo-accent-dark: #c3560d;
    --waldo-accent-soft: rgba(244, 123, 22, .16);
    --waldo-accent-3-dark: #dda841;
    --waldo-header: linear-gradient(135deg, #ff941f 0%, #e26914 52%, #6a2f75 100%);
    --waldo-panel: radial-gradient(circle at 14% 14%, rgba(255, 178, 72, .26) 0, transparent 24%), radial-gradient(circle at 88% 10%, rgba(106, 48, 109, .16) 0, transparent 22%), linear-gradient(180deg, rgba(255, 244, 229, .98) 0%, rgba(255, 223, 188, .98) 100%);
    --waldo-row: linear-gradient(180deg, rgba(255, 249, 239, .97) 0%, rgba(255, 232, 203, .98) 100%);
    --waldo-shadow: 0 18px 44px rgba(104, 48, 13, .18);
    --waldo-overlay-image: url("./images/halloween/overlay.png");
    --waldo-overlay-opacity: .18;
}

body.waldo-theme-easter,
.waldo-theme-easter {
    --waldo-bg: #fff8fc;
    --waldo-card: #ffffff;
    --waldo-card-2: #f8fbff;
    --waldo-text: #544164;
    --waldo-muted: #7b6989;
    --waldo-soft: rgba(239, 159, 194, .18);
    --waldo-border: #e9c7d8;
    --waldo-accent: #e979ae;
    --waldo-accent-2: #87c7aa;
    --waldo-accent-3: #f2be62;
    --waldo-accent-dark: #c95f91;
    --waldo-accent-soft: rgba(233, 121, 174, .15);
    --waldo-accent-3-dark: #d99b38;
    --waldo-header: linear-gradient(135deg, #ec88b5 0%, #f1bf65 48%, #8dceb0 100%);
    --waldo-panel: radial-gradient(circle at 12% 18%, rgba(240, 164, 196, .20) 0, transparent 24%), radial-gradient(circle at 86% 14%, rgba(145, 206, 177, .22) 0, transparent 22%), linear-gradient(180deg, rgba(255, 250, 253, .99) 0%, rgba(248, 253, 250, .99) 100%);
    --waldo-row: linear-gradient(180deg, rgba(255, 253, 255, .97) 0%, rgba(248, 253, 250, .97) 100%);
    --waldo-shadow: 0 18px 44px rgba(111, 82, 124, .12);
    --waldo-overlay-image: url("./images/easter/overlay.png");
    --waldo-overlay-opacity: .20;
}

.waldo-page.waldo-theme-page {
    background-image: radial-gradient(circle at top right, var(--waldo-soft), transparent 34%);
    background-attachment: scroll;
}

/* Automatic dark mode for the standard theme and dark phpBB styles. */
@media (prefers-color-scheme: dark) {
    body.waldo-theme-standard,
    .waldo-theme-standard {
        --waldo-bg: #1c1010;
        --waldo-card: #271717;
        --waldo-card-2: #331f1f;
        --waldo-text: #fff5f5;
        --waldo-muted: #d8b5b5;
        --waldo-soft: rgba(220, 38, 38, .16);
        --waldo-border: rgba(239, 68, 68, .28);
        --waldo-accent: #ef4444;
        --waldo-accent-2: #f87171;
        --waldo-accent-3: #f1c56c;
        --waldo-accent-dark: #991b1b;
        --waldo-accent-soft: rgba(239, 68, 68, .14);
        --waldo-accent-3-dark: #c99a3f;
        --waldo-header: linear-gradient(135deg, #991b1b 0%, #7f1d1d 54%, #450a0a 100%);
        --waldo-panel: radial-gradient(circle at 12% 12%, rgba(239, 68, 68, .12) 0, transparent 28%), linear-gradient(180deg, rgba(39, 23, 23, .98) 0%, rgba(23, 13, 13, .99) 100%);
        --waldo-row: linear-gradient(180deg, rgba(51, 31, 31, .97) 0%, rgba(33, 18, 18, .98) 100%);
        --waldo-shadow: 0 18px 46px rgba(0, 0, 0, .4);
    }
}

body.darkmode .waldo-theme-standard,
body.dark-mode .waldo-theme-standard,
body[data-theme="dark"] .waldo-theme-standard,
html[data-theme="dark"] .waldo-theme-standard,
body.waldo-theme-standard.darkmode,
body.waldo-theme-standard.dark-mode,
body[data-theme="dark"].waldo-theme-standard,
html[data-theme="dark"] body.waldo-theme-standard {
    --waldo-bg: #1c1010;
    --waldo-card: #271717;
    --waldo-card-2: #331f1f;
    --waldo-text: #fff5f5;
    --waldo-muted: #d8b5b5;
    --waldo-soft: rgba(220, 38, 38, .16);
    --waldo-border: rgba(239, 68, 68, .28);
    --waldo-accent: #ef4444;
    --waldo-accent-2: #f87171;
    --waldo-accent-3: #f1c56c;
    --waldo-accent-dark: #991b1b;
    --waldo-accent-soft: rgba(239, 68, 68, .14);
    --waldo-accent-3-dark: #c99a3f;
    --waldo-header: linear-gradient(135deg, #991b1b 0%, #7f1d1d 54%, #450a0a 100%);
    --waldo-panel: radial-gradient(circle at 12% 12%, rgba(239, 68, 68, .12) 0, transparent 28%), linear-gradient(180deg, rgba(39, 23, 23, .98) 0%, rgba(23, 13, 13, .99) 100%);
    --waldo-row: linear-gradient(180deg, rgba(51, 31, 31, .97) 0%, rgba(33, 18, 18, .98) 100%);
    --waldo-shadow: 0 18px 46px rgba(0, 0, 0, .4);
}

.waldo-hunt {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 99999;
    width: 140px !important;
    text-align: center;
}

.waldo-image-link {
    display: block;
    position: relative;
    width: 140px;
    height: 180px;
    padding: 0;
    overflow: hidden;
    text-decoration: none;
}

.waldo-hunt img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain;
    object-position: center bottom;
    cursor: pointer;
    filter: drop-shadow(0 14px 18px rgba(0, 0, 0, .24));
    transition: transform .16s ease-in-out, filter .16s ease-in-out;
}

.waldo-hunt img:hover {
    transform: translateY(-2px) scale(1.04) rotate(-2deg);
    filter: drop-shadow(0 18px 24px rgba(0, 0, 0, .30));
}

.waldo-click-hint,
.waldo-score-badge,
.waldo-score-button {
    display: inline-block;
    max-width: 140px;
    margin: 7px auto 0;
    padding: 5px 10px;
    border-radius: 999px;
    background: var(--waldo-header);
    color: #fff !important;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    box-shadow: 0 8px 18px rgba(0, 0, 0, .18);
    box-sizing: border-box;
}

.waldo-score-button {
    font-size: 12px;
    padding: 8px 13px;
}

.waldo-score-button:hover,
.waldo-score-button:focus {
    color: #fff !important;
    text-decoration: none;
    filter: brightness(1.06);
}

.waldo-overlay {
    position: fixed;
    inset: 0;
    z-index: 100100;
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.waldo-overlay-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .58);
}

.waldo-overlay-box {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    width: min(1040px, calc(100vw - 36px));
    max-height: calc(100dvh - 48px);
    margin: 24px auto;
    overflow: hidden;
    border: 1px solid var(--waldo-border);
    border-radius: 22px;
    background: var(--waldo-panel);
    color: var(--waldo-text);
    box-shadow: var(--waldo-shadow);
}

.waldo-overlay-box::before,
.waldo-page-hero::before,
.waldo-toplist-shell::before,
.waldo-board-wrap-modern::before,
.waldo-chart::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: var(--waldo-overlay-image);
    background-position: center;
    background-repeat: repeat;
    background-size: var(--waldo-overlay-size);
    opacity: var(--waldo-overlay-opacity);
}

.waldo-overlay-box > *,
.waldo-page-hero > *,
.waldo-toplist-shell > *,
.waldo-board-wrap-modern > *,
.waldo-chart > * {
    position: relative;
    z-index: 1;
}

.waldo-overlay-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex: 0 0 auto;
    padding: 14px 18px;
    border-bottom: 1px solid var(--waldo-border);
    background: var(--waldo-header);
    color: #fff;
}

.waldo-overlay-close {
    min-width: 38px;
    min-height: 38px;
    border: 0;
    border-radius: 999px;
    background: rgba(255,255,255,.14);
    color: #fff;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}

.waldo-overlay-close:hover,
.waldo-overlay-close:focus {
    background: rgba(255,255,255,.24);
    color: #fff;
}

.waldo-overlay-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: 16px;
    background: transparent;
}

.waldo-overlay-content {
    min-width: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.waldo-overlay-footer-link {
    position: sticky;
    bottom: -16px;
    z-index: 3;
    margin: 14px -16px -16px;
    padding: 14px 16px 16px;
    background: linear-gradient(to bottom, rgba(255,255,255,0), var(--waldo-card) 42%);
    text-align: center;
}

.waldo-overlay-footer-link a {
    display: inline-block;
    padding: 9px 16px;
    border: 1px solid var(--waldo-border);
    border-radius: 999px;
    background: var(--waldo-header);
    color: #fff !important;
    font-weight: 700;
    text-decoration: none;
}

.waldo-overlay-footer-link a:hover,
.waldo-overlay-footer-link a:focus {
    color: #fff !important;
    text-decoration: none;
    filter: brightness(1.06);
}

body.waldo-overlay-open {
    overflow: hidden;
}

body.waldo-overlay-open .waldo-hunt {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.waldo-toast,
.waldo-loading {
    color: var(--waldo-text);
}

.waldo-toast {
    position: fixed;
    left: 50%;
    bottom: 28px;
    transform: translateX(-50%);
    z-index: 100102;
    max-width: min(90vw, 420px);
    padding: 12px 18px;
    border-radius: 14px;
    background: var(--waldo-header);
    color: #fff;
    box-shadow: var(--waldo-shadow);
    text-align: center;
}

.waldo-page {
    margin-top: 8px;
    color: var(--waldo-text);
}

.waldo-page-panel,
.waldo-page-panel-modern {
    overflow: visible;
}

.waldo-page-title,
.waldo-chart-title {
    margin: 0 0 8px;
    color: var(--waldo-text);
}

.waldo-page-intro,
.waldo-chart-note,
.waldo-page-toolbar-note,
.waldo-toplist-help,
.waldo-toplist-meta,
.waldo-last-wrap {
    color: var(--waldo-muted);
}

.waldo-page-hero,
.waldo-toplist-shell,
.waldo-board-wrap-modern,
.waldo-chart {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--waldo-border);
    border-radius: 22px;
    background: var(--waldo-panel);
    color: var(--waldo-text);
    box-shadow: var(--waldo-shadow);
}

.waldo-page-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(280px, .95fr);
    gap: 18px;
    align-items: start;
    margin-bottom: 18px;
    padding: 18px;
}

.waldo-page-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.waldo-page-summary-card,
.waldo-page-info-item,
.waldo-toplist-info-item,
.waldo-toplist-row,
.waldo-toplist-tab,
.waldo-toplist-stat,
.waldo-chart-row {
    border: 1px solid var(--waldo-border);
    border-radius: 17px;
    background: var(--waldo-row);
    color: var(--waldo-text);
    box-sizing: border-box;
}

.waldo-page-summary-card {
    padding: 14px 16px;
}

.waldo-page-summary-label,
.waldo-page-info-label,
.waldo-toplist-info-label,
.waldo-toplist-stat-label {
    display: block;
    margin-bottom: 6px;
    color: var(--waldo-muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.waldo-page-summary-value,
.waldo-page-info-value,
.waldo-toplist-info-value,
.waldo-toplist-stat-value {
    display: block;
    color: var(--waldo-text);
    font-weight: 700;
    line-height: 1.25;
}

.waldo-page-summary-value {
    font-size: 20px;
}

.waldo-page-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
    margin: 0 0 14px;
}

.waldo-page-info,
.waldo-toplist-info {
    display: grid;
    gap: 12px;
    margin: 0 0 16px;
}

.waldo-page-info {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.waldo-toplist-info {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.waldo-page-info-item,
.waldo-toplist-info-item {
    padding: 11px 13px;
}

.waldo-page-info-item-status,
.waldo-toplist-info-item-status {
    grid-column: 1 / -1;
}

.waldo-toplist-shell {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-width: 0;
    padding: 18px;
}

.waldo-toplist-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.waldo-toplist-tab {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 70px;
    padding: 12px 16px;
    border-radius: 999px;
}

.waldo-toplist-tab strong,
.waldo-toplist-tab small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.waldo-toplist-tab small {
    color: var(--waldo-muted);
}

.waldo-toplist-tab.is-active,
.waldo-pagination-link.is-current,
.waldo-rank-pill,
.waldo-chart-rank,
.waldo-toplist-rank,
.waldo-stat-pill-score,
.waldo-score-badge {
    border-color: var(--waldo-accent-dark);
    background: linear-gradient(180deg, var(--waldo-accent) 0%, var(--waldo-accent-dark) 100%);
    color: #fff !important;
}

.waldo-toplist-tab.is-active small {
    color: rgba(255,255,255,.92);
}

.waldo-toplist-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.waldo-toplist-row {
    padding: 14px;
}

.waldo-toplist-main {
    display: grid;
    grid-template-columns: 116px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    min-width: 0;
    margin-bottom: 12px;
}

.waldo-toplist-rank,
.waldo-rank-pill,
.waldo-stat-pill,
.waldo-chart-rank {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 92px;
    padding: 6px 12px;
    border-radius: 999px;
    font-weight: 700;
    box-sizing: border-box;
    white-space: nowrap;
}

.waldo-toplist-user,
.waldo-user-wrap,
.waldo-chart-user {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--waldo-text);
    font-weight: 700;
}

.waldo-toplist-user a,
.waldo-user-wrap a,
.waldo-toplist-user .username-coloured,
.waldo-user-wrap .username-coloured {
    font-weight: 700;
    text-decoration: none;
}

.waldo-toplist-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.waldo-toplist-stat {
    min-width: 0;
    padding: 12px;
}

.waldo-toplist-stat-value {
    overflow-wrap: anywhere;
}

.waldo-toplist-stat-score,
.waldo-stat-pill-score {
    background: linear-gradient(180deg, var(--waldo-accent-3) 0%, var(--waldo-accent-3-dark) 100%);
    color: #3c260c !important;
}

.waldo-board-wrap {
    margin-top: 14px;
}

.waldo-board-wrap-modern {
    margin-top: 0;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

.waldo-board-wrap .inner,
.waldo-board-wrap-modern .inner {
    min-width: 760px;
    padding: 0;
}

.waldo-board-table,
.waldo-board-table-modern {
    width: 100%;
    min-width: 760px;
    margin: 0;
    border-collapse: separate;
    border-spacing: 0;
}

.waldo-board-wrap-modern .waldo-board-table-modern thead th,
.waldo-board-wrap .waldo-board-table thead th,
table.waldo-board-table-modern thead th,
table.waldo-board-table thead th {
    padding: 10px 12px !important;
    border: 0 !important;
    background: var(--waldo-header) !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
}

.waldo-board-table td,
.waldo-board-table-modern td {
    padding: 11px 12px;
    border-top: 1px solid var(--waldo-border);
    background: var(--waldo-row) !important;
    color: var(--waldo-text);
    vertical-align: middle;
}

.waldo-board-table tbody tr:nth-child(even) td,
.waldo-board-table-modern tbody tr:nth-child(even) td {
    filter: brightness(.985);
}

.waldo-board-table tbody tr:hover td,
.waldo-board-table-modern tbody tr:hover td {
    filter: brightness(1.035);
}

.waldo-cell-rank,
.waldo-cell-score,
.waldo-cell-total {
    text-align: center;
    white-space: nowrap;
}

.waldo-cell-user,
.waldo-cell-last {
    min-width: 0;
}

.waldo-cell-last,
.waldo-last-wrap {
    white-space: nowrap;
}

.waldo-board-table-modern .waldo-cell-user a,
.waldo-board-table-modern .waldo-cell-user .username-coloured,
.waldo-board-table-modern .waldo-cell-user .username,
.waldo-board-table .waldo-cell-user a,
.waldo-board-table .waldo-cell-user .username-coloured,
.waldo-board-table .waldo-cell-user .username {
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
    font-weight: 700;
}

.waldo-stat-pill {
    background: var(--waldo-accent-soft);
    color: var(--waldo-text);
}

.waldo-rank-1 td:first-child,
.waldo-toplist-rank-1 {
    box-shadow: inset 4px 0 0 var(--waldo-accent-3);
}

.waldo-rank-2 td:first-child,
.waldo-toplist-rank-2 {
    box-shadow: inset 4px 0 0 var(--waldo-accent-2);
}

.waldo-rank-3 td:first-child,
.waldo-toplist-rank-3 {
    box-shadow: inset 4px 0 0 var(--waldo-accent);
}

.waldo-pagination {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.waldo-pagination-bottom {
    justify-content: center;
    margin-top: 16px;
}

.waldo-pagination-link,
.waldo-pagination-ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    min-height: 40px;
    padding: 0 12px;
    border: 1px solid var(--waldo-border);
    border-radius: 999px;
    background: var(--waldo-row);
    color: var(--waldo-text) !important;
    font-weight: 700;
    text-decoration: none;
    box-sizing: border-box;
}

.waldo-pagination-link:hover,
.waldo-pagination-link:focus {
    color: var(--waldo-text) !important;
    text-decoration: none;
    filter: brightness(1.04);
}

.waldo-pagination-link.is-current {
    color: #fff !important;
}

.waldo-pagination-ellipsis {
    border-color: transparent;
    background: transparent;
}

.waldo-chart {
    margin: 0 0 18px;
    padding: 18px;
}

.waldo-chart-head {
    margin-bottom: 14px;
}

.waldo-chart-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.waldo-chart-row {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px;
}

.waldo-chart-labels {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    min-width: 0;
}

.waldo-chart-total {
    color: var(--waldo-text);
    font-weight: 700;
    white-space: nowrap;
}

.waldo-chart-track {
    height: 14px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--waldo-accent-soft);
}

.waldo-chart-bar {
    display: block;
    height: 100%;
    min-width: 8px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--waldo-accent-2) 0%, var(--waldo-accent) 52%, var(--waldo-accent-3) 100%);
}

.waldo-ucp-current-note {
    margin-top: 8px;
    color: var(--waldo-muted);
}

.waldo-ucp-preview {
    display: block;
    width: 140px;
    height: 180px;
    max-width: 140px;
    max-height: 180px;
    object-fit: contain;
    object-position: center center;
}

.waldo-toplist-stat-value,
.waldo-stat-pill,
.waldo-rank-pill,
.waldo-page-summary-value,
.waldo-chart-total,
.waldo-chart-rank {
    font-variant-numeric: tabular-nums;
}

/* Seasonal text contrast helpers */
.waldo-theme-christmas .waldo-toplist-tab small,
.waldo-theme-christmas .waldo-page-summary-label,
.waldo-theme-christmas .waldo-page-info-label,
.waldo-theme-christmas .waldo-toplist-info-label,
.waldo-theme-christmas .waldo-toplist-stat-label,
.waldo-theme-christmas .waldo-chart-note,
.waldo-theme-christmas .waldo-page-intro,
.waldo-theme-christmas .waldo-last-wrap {
    color: var(--waldo-muted) !important;
}

.waldo-theme-halloween .waldo-toplist-tab small,
.waldo-theme-halloween .waldo-page-summary-label,
.waldo-theme-halloween .waldo-page-info-label,
.waldo-theme-halloween .waldo-toplist-info-label,
.waldo-theme-halloween .waldo-toplist-stat-label,
.waldo-theme-halloween .waldo-chart-note,
.waldo-theme-halloween .waldo-page-intro,
.waldo-theme-halloween .waldo-last-wrap {
    color: var(--waldo-muted) !important;
}

.waldo-theme-halloween .waldo-rank-pill,
.waldo-theme-halloween .waldo-chart-rank,
.waldo-theme-halloween .waldo-toplist-rank,
.waldo-theme-halloween .waldo-pagination-link.is-current {
    background: linear-gradient(180deg, #ff8d1f 0%, #d96510 100%) !important;
    border-color: #a64d09 !important;
    color: #fff !important;
}

.waldo-theme-halloween .waldo-stat-pill-score,
.waldo-theme-halloween .waldo-score-badge,
.waldo-theme-halloween .waldo-toplist-stat-score {
    background: linear-gradient(180deg, #6f3473 0%, #4e2455 100%) !important;
    border-color: #3b193f !important;
    color: #fff5ff !important;
}

.waldo-theme-halloween .waldo-board-wrap-modern .waldo-board-table-modern thead th,
.waldo-theme-halloween table.waldo-board-table-modern thead th {
    background: linear-gradient(180deg, #ff8d1f 0%, #c3560d 62%, #6b2f70 100%) !important;
}

.waldo-theme-easter .waldo-rank-pill,
.waldo-theme-easter .waldo-chart-rank,
.waldo-theme-easter .waldo-toplist-rank,
.waldo-theme-easter .waldo-pagination-link.is-current {
    background: linear-gradient(180deg, #87c7aa 0%, #66aa8a 100%) !important;
    border-color: #5b9278 !important;
    color: #fff !important;
}

.waldo-theme-easter .waldo-stat-pill-score,
.waldo-theme-easter .waldo-score-badge,
.waldo-theme-easter .waldo-toplist-stat-score {
    background: linear-gradient(180deg, #f2be62 0%, #e3a43f 100%) !important;
    border-color: #c88d32 !important;
    color: #5d3a10 !important;
}

@media (max-width: 900px) {
    .waldo-hunt {
        width: 124px !important;
        right: max(12px, env(safe-area-inset-right));
        bottom: max(12px, env(safe-area-inset-bottom));
    }

    .waldo-image-link {
        width: 124px;
        height: 160px;
    }

    .waldo-overlay-box {
        width: calc(100vw - 18px);
        max-height: calc(100dvh - 18px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
        margin: max(9px, env(safe-area-inset-top)) auto max(9px, env(safe-area-inset-bottom));
        border-radius: 18px;
    }

    .waldo-overlay-header {
        position: sticky;
        top: 0;
        z-index: 4;
        padding: 12px 14px;
    }

    .waldo-overlay-body {
        padding: 12px;
    }

    .waldo-overlay-footer-link {
        margin: 12px -12px -12px;
        padding: 12px;
    }

    .waldo-page-hero {
        grid-template-columns: 1fr;
        padding: 15px;
    }

    .waldo-page-info {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .waldo-toplist-tabs,
    .waldo-toplist-stats {
        grid-template-columns: 1fr;
    }

    .waldo-ucp-preview {
        width: 110px;
        height: 140px;
        max-width: 110px;
        max-height: 140px;
    }
}

@media (max-width: 700px) {
    .waldo-hunt {
        width: 110px !important;
    }

    .waldo-image-link {
        width: 110px;
        height: 145px;
    }

    .waldo-click-hint {
        max-width: 110px;
        padding: 4px 7px;
        font-size: 8px;
    }

    .waldo-page-summary,
    .waldo-page-info,
    .waldo-toplist-info {
        grid-template-columns: 1fr;
    }

    .waldo-toplist-shell,
    .waldo-chart,
    .waldo-page-hero {
        padding: 13px;
        border-radius: 17px;
    }

    .waldo-page-summary-value {
        font-size: 21px;
    }

    .waldo-toplist-main {
        grid-template-columns: 96px minmax(0, 1fr);
        gap: 10px;
    }

    .waldo-toplist-rank,
    .waldo-rank-pill,
    .waldo-chart-rank {
        min-width: 86px;
        padding: 6px 9px;
    }

    .waldo-chart-labels {
        grid-template-columns: 86px minmax(0, 1fr);
        gap: 8px 10px;
    }

    .waldo-chart-total {
        grid-column: 1 / -1;
        justify-self: end;
    }

    .waldo-pagination {
        gap: 6px;
    }

    .waldo-pagination-link,
    .waldo-pagination-ellipsis {
        min-width: 36px;
        min-height: 36px;
        padding: 0 10px;
        font-size: 12px;
    }

    .waldo-board-wrap-modern {
        border-radius: 16px;
    }

    .waldo-board-wrap .inner,
    .waldo-board-wrap-modern .inner,
    .waldo-board-table,
    .waldo-board-table-modern {
        min-width: 720px;
    }
}

@media (max-width: 900px) and (orientation: landscape), (max-height: 520px) {
    .waldo-hunt {
        width: 96px !important;
        right: 8px;
        bottom: 8px;
    }

    .waldo-image-link {
        width: 96px;
        height: 124px;
    }

    .waldo-overlay-box {
        width: min(96vw, 780px);
        max-height: calc(100dvh - 10px);
        margin: 5px auto;
    }

    .waldo-overlay-header,
    .waldo-overlay-body {
        padding: 10px 12px;
    }
}

/* ==========================================================
   Contrast + readability hotfix
   ========================================================== */

:root {
    --waldo-score-bg: linear-gradient(180deg, #dc2626 0%, #991b1b 100%);
    --waldo-score-text: #ffffff;
    --waldo-name-color: var(--waldo-text);
    --waldo-label-color: var(--waldo-muted);
}

body.waldo-theme-christmas,
.waldo-theme-christmas {
    --waldo-score-bg: linear-gradient(180deg, #f4d47e 0%, #c89a3b 100%);
    --waldo-score-text: #1b2b1f;
    --waldo-name-color: #fff6df;
    --waldo-label-color: #f7e2b8;
}

body.waldo-theme-halloween,
.waldo-theme-halloween {
    --waldo-score-bg: linear-gradient(180deg, #ff8d1f 0%, #df5f08 100%);
    --waldo-score-text: #ffffff;
    --waldo-name-color: #3f1807;
    --waldo-label-color: #6b3217;
}

body.waldo-theme-easter,
.waldo-theme-easter {
    --waldo-score-bg: linear-gradient(180deg, #f2be62 0%, #d99b38 100%);
    --waldo-score-text: #3d2507;
    --waldo-name-color: #513360;
    --waldo-label-color: #715781;
}

@media (prefers-color-scheme: dark) {
    body.waldo-theme-standard,
    .waldo-theme-standard {
        --waldo-score-bg: linear-gradient(180deg, #ef4444 0%, #991b1b 100%);
        --waldo-score-text: #ffffff;
        --waldo-name-color: #fff5f5;
        --waldo-label-color: #f5d4d4;
    }
}

body.darkmode .waldo-theme-standard,
body.dark-mode .waldo-theme-standard,
body[data-theme="dark"] .waldo-theme-standard,
html[data-theme="dark"] .waldo-theme-standard,
body.waldo-theme-standard.darkmode,
body.waldo-theme-standard.dark-mode,
body[data-theme="dark"].waldo-theme-standard,
html[data-theme="dark"] body.waldo-theme-standard {
    --waldo-score-bg: linear-gradient(180deg, #ef4444 0%, #991b1b 100%);
    --waldo-score-text: #ffffff;
    --waldo-name-color: #fff5f5;
    --waldo-label-color: #f5d4d4;
}

.waldo-page-title,
.waldo-page-title a,
.waldo-chart-title,
.waldo-chart-title a,
.waldo-toplist-help,
.waldo-toplist-meta,
.waldo-page-intro,
.waldo-page-toolbar-note,
.waldo-last-wrap {
    color: var(--waldo-text) !important;
}

.waldo-page-summary-label,
.waldo-page-info-label,
.waldo-toplist-info-label,
.waldo-toplist-stat-label,
.waldo-chart-note,
.waldo-toplist-tab small {
    color: var(--waldo-label-color) !important;
}

.waldo-toplist-user,
.waldo-user-wrap,
.waldo-chart-user {
    color: var(--waldo-name-color);
}

.waldo-toplist-user a,
.waldo-user-wrap a,
.waldo-chart-user a,
.waldo-toplist-user .username,
.waldo-toplist-user .username-coloured,
.waldo-user-wrap .username,
.waldo-user-wrap .username-coloured,
.waldo-chart-user .username,
.waldo-chart-user .username-coloured,
.waldo-cell-user a,
.waldo-cell-user .username,
.waldo-cell-user .username-coloured {
    text-shadow: 0 1px 2px rgba(0, 0, 0, .24);
}

.waldo-toplist-stat-value,
.waldo-stat-pill,
.waldo-page-summary-value,
.waldo-chart-total,
.waldo-toplist-tab small {
    font-size: 14px;
    line-height: 1.25;
}

.waldo-toplist-stat-value small {
    font-size: 14px;
    font-weight: 700;
}

.waldo-stat-pill,
.waldo-rank-pill,
.waldo-chart-rank,
.waldo-toplist-rank {
    font-size: 14px;
    min-height: 42px;
}

.waldo-page-summary-value {
    font-size: 28px;
}

.waldo-stat-pill-score,
.waldo-score-badge,
.waldo-toplist-stat-score {
    background: var(--waldo-score-bg) !important;
    border-color: rgba(0, 0, 0, .16) !important;
    color: var(--waldo-score-text) !important;
}

.waldo-stat-pill-score *,
.waldo-score-badge *,
.waldo-toplist-stat-score *,
.waldo-toplist-stat-score .waldo-toplist-stat-label,
.waldo-toplist-stat-score .waldo-toplist-stat-value,
.waldo-toplist-stat-score small {
    color: var(--waldo-score-text) !important;
}

.waldo-theme-christmas .waldo-page-title,
.waldo-theme-christmas .waldo-chart-title,
.waldo-theme-christmas .waldo-page-title a,
.waldo-theme-christmas .waldo-chart-title a {
    color: #fff6df !important;
}

.waldo-theme-christmas .waldo-board-table td,
.waldo-theme-christmas .waldo-board-table-modern td,
.waldo-theme-christmas .waldo-toplist-row,
.waldo-theme-christmas .waldo-chart-row,
.waldo-theme-christmas .waldo-page-info-item,
.waldo-theme-christmas .waldo-toplist-info-item,
.waldo-theme-christmas .waldo-page-summary-card {
    color: #fff6df !important;
}