:root{--bg:#090b12;--surface:#121622;--surface-raised:#191f2e;--border:#2a3245;--text:#f5f7ff;--text-muted:#aab3c8;--beginner-color:#39d98a;--intermediate-color:#ffb84d;--advanced-color:#d270ff;--total-color:#7c8cff;--radius:14px}*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:radial-gradient(circle at 15% 0,#1a2040 0,transparent 34rem),var(--bg);color:var(--text);font:15px/1.5 ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;overflow-x:hidden}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #fff;outline-offset:2px}.skip{position:fixed;left:1rem;top:-5rem;z-index:20;background:#fff;color:#000;padding:.7rem 1rem;border-radius:8px}.skip:focus{top:1rem}nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem max(1rem,calc((100% - 1180px)/2));background:#090b12ed;border-bottom:1px solid var(--border);backdrop-filter:blur(12px)}nav a{text-decoration:none;color:var(--text-muted);padding:.55rem .65rem;border-radius:8px;white-space:nowrap}nav a:hover{color:#fff;background:var(--surface-raised)}nav>div{display:flex;gap:.15rem;overflow-x:auto;max-width:100%}.brand{color:#fff;font-weight:850;letter-spacing:-.02em}.brand span{color:var(--text-muted)}nav a.active{color:#fff;background:var(--surface-raised);box-shadow:inset 0 -2px var(--total-color)}nav a.active.beginner{box-shadow:inset 0 -2px var(--beginner-color)}nav a.active.intermediate{box-shadow:inset 0 -2px var(--intermediate-color)}nav a.active.advanced{box-shadow:inset 0 -2px var(--advanced-color)}main{width:min(1180px,calc(100% - 2rem));margin:auto;padding:2.2rem 0 4rem}.hero,.player-hero{padding:clamp(1.25rem,3vw,2.1rem);border:1px solid var(--border);border-radius:22px;background:linear-gradient(135deg,#171c2c,#10131e);box-shadow:0 20px 65px #0005}.hero h1,.player-hero h1{font-size:clamp(2rem,5vw,4.2rem);line-height:1;margin:.15rem 0 .55rem;letter-spacing:-.05em}.hero p,.player-hero p{max-width:760px;color:var(--text-muted);font-size:1.04rem;margin:.35rem 0}.room-hero{padding-block:1.25rem}.hero.beginner{border-top:4px solid var(--beginner-color)}.hero.intermediate{border-top:4px solid var(--intermediate-color)}.hero.advanced{border-top:4px solid var(--advanced-color)}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-weight:800;font-size:.72rem;color:var(--total-color);margin:0}.stats,.player-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:.7rem;margin:1rem 0 2rem}.stat{padding:.9rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0}.stat span{display:block;color:var(--text-muted);font-size:.78rem}.stat strong{display:block;margin-top:.2rem;font-size:1.15rem;overflow-wrap:anywhere}.stat time{display:block;color:var(--text-muted);margin-top:.25rem}.featured{grid-column:span 2}.live-status{display:flex;align-items:center;gap:.75rem;padding:.8rem 1rem;margin-bottom:2.5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.live-status .dot{width:.7rem;height:.7rem;border-radius:50%;background:#7c879d;flex:0 0 auto}.live-status.active .dot{background:var(--beginner-color)}.live-status.delayed .dot{background:var(--intermediate-color)}.live-status strong,.live-status small{display:block}.live-status small{color:var(--text-muted)}section+section{margin-top:2.6rem}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:.85rem}.section-heading h2{font-size:1.65rem;margin:.1rem 0}.section-heading h2 small{font-size:.8rem;color:var(--text-muted);font-weight:500;margin-left:.45rem}.section-heading label{color:var(--text-muted);font-weight:700}.players-heading label{display:grid;gap:.25rem}input,select,.filters button,.button{background:var(--surface-raised);color:#fff;border:1px solid var(--border);border-radius:9px;padding:.6rem .75rem;font:inherit}.table-wrap,.matrix-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}table{width:100%;border-collapse:collapse;min-width:780px}th,td{text-align:left;padding:.72rem .8rem;border-bottom:1px solid var(--border);vertical-align:middle}thead th{color:var(--text-muted);font-size:.73rem;text-transform:uppercase;letter-spacing:.06em;background:#151a28}tbody tr:last-child>*{border-bottom:0}tbody tr:hover,.click-row:focus{background:#ffffff08}.click-row{cursor:pointer}.click-row a{position:relative;z-index:1}.row-arrow{float:right;font-size:1.3rem;color:var(--text-muted)}th a{font-weight:800;text-decoration:none}th a:hover{text-decoration:underline}td>span{display:block;color:var(--text-muted);font-size:.77rem}thead button{appearance:none;border:0;background:transparent;color:inherit;text-transform:inherit;letter-spacing:inherit;font:inherit;cursor:pointer;padding:.2rem}.progress{height:7px;min-width:85px;margin-top:.4rem;background:#2b3242;border-radius:99px;overflow:hidden}.progress i{display:block;width:var(--progress,0%);height:100%;border-radius:inherit;background:var(--total-color)}.progress.beginner i{background:var(--beginner-color)}.progress.intermediate i{background:var(--intermediate-color)}.progress.advanced i{background:var(--advanced-color)}.progress.large{width:min(340px,100%);height:13px}.activity{list-style:none;padding:0;margin:0;display:grid;gap:.55rem}.activity li,.empty-inline{background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:.75rem .9rem}.activity span,.activity time{color:var(--text-muted);margin-left:.45rem}.back{display:inline-block;margin-bottom:.8rem;color:var(--text-muted)}.player-hero{display:flex;align-items:end;justify-content:space-between;gap:2rem}.player-hero h1{font-size:clamp(2.1rem,5vw,3.7rem)}.filters{display:flex;align-items:end;gap:.7rem;flex-wrap:wrap;background:var(--surface);padding:.85rem;border:1px solid var(--border);border-radius:var(--radius);margin:1.7rem 0}.filters label{display:grid;gap:.25rem;color:var(--text-muted);font-weight:700}.room-section{border-top:3px solid var(--total-color);padding-top:.9rem}.room-section.beginner{border-color:var(--beginner-color)}.room-section.intermediate{border-color:var(--intermediate-color)}.room-section.advanced{border-color:var(--advanced-color)}.room-summary{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:.8rem}.room-summary h2{margin:.15rem 0}.status{display:inline-flex;padding:.22rem .5rem;border-radius:99px;font-weight:800}.status.done{color:#7af0b5;background:#143b2b}.status.missing{color:#ffc1c8;background:#421d24}.map-title{display:flex;align-items:center;gap:.65rem;text-decoration:none}.map-title span{min-width:0;overflow-wrap:anywhere}.map-title small{display:block;color:var(--text-muted);font-weight:400}.map-thumb{width:64px;aspect-ratio:16/9;object-fit:cover;border-radius:6px;background:#080a10;flex:0 0 auto}.insights{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-bottom:1.5rem}.insight{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1rem}.insight span,.insight small{display:block;color:var(--text-muted)}.insight strong{display:block;font-size:1.1rem}.map-tools{display:flex;gap:.5rem}.rank{width:4rem;text-align:center;font-size:1.1rem}.matrix-help{color:var(--text-muted)}.matrix{width:max-content;min-width:100%}.matrix thead th{position:sticky;top:0;z-index:2}.matrix th:first-child{position:sticky;left:0;z-index:3;min-width:220px;max-width:300px;background:#151a28}.matrix thead th:first-child{z-index:4}.matrix thead th:not(:first-child){min-width:90px;max-width:110px;writing-mode:vertical-rl;transform:rotate(180deg);height:135px}.matrix-cell{text-align:center;font-weight:900}.matrix-cell.done{color:var(--beginner-color);background:#123528}.matrix-cell.missing{color:#7c879d}.matrix-cell span{display:block;font-size:.67rem;color:#cbd4e8;white-space:nowrap}.empty{text-align:center;padding:6rem 1rem}.button{display:inline-block;text-decoration:none;margin-top:1rem}footer{text-align:center;color:var(--text-muted);padding:1.7rem;border-top:1px solid var(--border)}[hidden]{display:none!important}@media(max-width:700px){nav{align-items:flex-start;flex-direction:column;gap:.25rem;padding-bottom:.45rem}nav>div{width:100%}main{padding-top:1.25rem}.stats{grid-template-columns:repeat(2,1fr)}.featured{grid-column:span 2}.player-hero,.room-summary,.section-heading{align-items:flex-start;flex-direction:column}.players-heading label,.players-heading input,.map-tools{width:100%}.map-tools input{min-width:0;flex:1}.activity span,.activity time{display:block;margin:.2rem 0 0}.matrix th:first-child{min-width:175px;max-width:210px}.player-meta,.insights{grid-template-columns:1fr}.map-thumb{width:52px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.progress.p0 i{width:0%}
.progress.p1 i{width:1%}
.progress.p2 i{width:2%}
.progress.p3 i{width:3%}
.progress.p4 i{width:4%}
.progress.p5 i{width:5%}
.progress.p6 i{width:6%}
.progress.p7 i{width:7%}
.progress.p8 i{width:8%}
.progress.p9 i{width:9%}
.progress.p10 i{width:10%}
.progress.p11 i{width:11%}
.progress.p12 i{width:12%}
.progress.p13 i{width:13%}
.progress.p14 i{width:14%}
.progress.p15 i{width:15%}
.progress.p16 i{width:16%}
.progress.p17 i{width:17%}
.progress.p18 i{width:18%}
.progress.p19 i{width:19%}
.progress.p20 i{width:20%}
.progress.p21 i{width:21%}
.progress.p22 i{width:22%}
.progress.p23 i{width:23%}
.progress.p24 i{width:24%}
.progress.p25 i{width:25%}
.progress.p26 i{width:26%}
.progress.p27 i{width:27%}
.progress.p28 i{width:28%}
.progress.p29 i{width:29%}
.progress.p30 i{width:30%}
.progress.p31 i{width:31%}
.progress.p32 i{width:32%}
.progress.p33 i{width:33%}
.progress.p34 i{width:34%}
.progress.p35 i{width:35%}
.progress.p36 i{width:36%}
.progress.p37 i{width:37%}
.progress.p38 i{width:38%}
.progress.p39 i{width:39%}
.progress.p40 i{width:40%}
.progress.p41 i{width:41%}
.progress.p42 i{width:42%}
.progress.p43 i{width:43%}
.progress.p44 i{width:44%}
.progress.p45 i{width:45%}
.progress.p46 i{width:46%}
.progress.p47 i{width:47%}
.progress.p48 i{width:48%}
.progress.p49 i{width:49%}
.progress.p50 i{width:50%}
.progress.p51 i{width:51%}
.progress.p52 i{width:52%}
.progress.p53 i{width:53%}
.progress.p54 i{width:54%}
.progress.p55 i{width:55%}
.progress.p56 i{width:56%}
.progress.p57 i{width:57%}
.progress.p58 i{width:58%}
.progress.p59 i{width:59%}
.progress.p60 i{width:60%}
.progress.p61 i{width:61%}
.progress.p62 i{width:62%}
.progress.p63 i{width:63%}
.progress.p64 i{width:64%}
.progress.p65 i{width:65%}
.progress.p66 i{width:66%}
.progress.p67 i{width:67%}
.progress.p68 i{width:68%}
.progress.p69 i{width:69%}
.progress.p70 i{width:70%}
.progress.p71 i{width:71%}
.progress.p72 i{width:72%}
.progress.p73 i{width:73%}
.progress.p74 i{width:74%}
.progress.p75 i{width:75%}
.progress.p76 i{width:76%}
.progress.p77 i{width:77%}
.progress.p78 i{width:78%}
.progress.p79 i{width:79%}
.progress.p80 i{width:80%}
.progress.p81 i{width:81%}
.progress.p82 i{width:82%}
.progress.p83 i{width:83%}
.progress.p84 i{width:84%}
.progress.p85 i{width:85%}
.progress.p86 i{width:86%}
.progress.p87 i{width:87%}
.progress.p88 i{width:88%}
.progress.p89 i{width:89%}
.progress.p90 i{width:90%}
.progress.p91 i{width:91%}
.progress.p92 i{width:92%}
.progress.p93 i{width:93%}
.progress.p94 i{width:94%}
.progress.p95 i{width:95%}
.progress.p96 i{width:96%}
.progress.p97 i{width:97%}
.progress.p98 i{width:98%}
.progress.p99 i{width:99%}
.progress.p100 i{width:100%}

.page-hero{margin-bottom:1.5rem}.page-hero h1{font-size:clamp(2.2rem,5vw,4rem);line-height:1;margin:.2rem 0}.page-hero p{color:var(--text-muted)}
.stat-link{position:relative;text-decoration:none;transition:transform .16s ease,border-color .16s ease,background .16s ease}.stat-link:hover{transform:translateY(-2px);border-color:#66728e;background:var(--surface-raised)}
.room-buttons{display:inline-flex;flex-wrap:wrap;gap:.25rem;margin:0 0 1rem;padding:.25rem;background:var(--surface-raised);border:1px solid var(--border);border-radius:12px;max-width:100%}.room-button{display:inline-flex;align-items:center;justify-content:center;padding:.45rem .95rem;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-muted);font-weight:800;text-decoration:none}.room-button:hover,.room-button:focus-visible{background:var(--surface);color:var(--text);border-color:transparent}.room-button.active{color:#0e1116}.room-button.active.beginner{background:var(--beginner-color);border-color:var(--beginner-color)}.room-button.active.intermediate{background:var(--intermediate-color);border-color:var(--intermediate-color)}.room-button.active.advanced{background:var(--advanced-color);border-color:var(--advanced-color);color:#fff}.no-time{color:var(--text-muted);font-style:italic;white-space:normal}.section-heading small{display:block;color:var(--text-muted);margin-top:.25rem}
.section-loading{display:inline-block;margin:.75rem 0;color:var(--text-muted);font-weight:750}[data-dashboard-section][aria-busy="true"]>.matrix-wrap,[data-dashboard-section][aria-busy="true"]>.table-wrap{opacity:.55;transition:opacity .15s}.section-error{margin:.75rem 0 0;padding:.7rem .85rem;border:1px solid #9a4651;border-radius:9px;background:#421d24;color:#ffd9dd}.section-error a{font-weight:850}
.player-event-card{display:flex;flex-direction:column;align-items:flex-start}.player-event-card strong a{text-decoration:none}.player-event-card strong a:hover{text-decoration:underline}.player-event-card small{display:block;color:var(--text-muted);margin-top:.25rem}.player-event-card small time{display:inline}.event-badge{display:inline-flex;margin-top:.45rem;padding:.18rem .5rem;border-radius:999px;font-size:.7rem;line-height:1.2}.event-badge.new-map{color:#8cf2bd;background:#143b2b;border:1px solid var(--beginner-color)}.event-badge.pb{color:#d9dcff;background:#262957;border:1px solid var(--total-color)}
.room-cards,.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:.8rem}.room-card,.map-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;text-decoration:none;min-width:0}.room-card{display:grid;gap:.25rem;border-top:3px solid var(--total-color)}.room-card.beginner{border-top-color:var(--beginner-color)}.room-card.intermediate{border-top-color:var(--intermediate-color)}.room-card.advanced{border-top-color:var(--advanced-color)}.room-card span,.room-card strong,.room-card small,.room-card em{display:block}.room-card span{font-size:1.3rem;font-weight:850}.room-card small,.room-card em{color:var(--text-muted);font-style:normal}.room-card:hover,.map-card:hover{border-color:#65718d;background:var(--surface-raised)}
.map-card{display:grid;gap:.8rem}.map-card-main{display:flex;gap:.8rem;text-decoration:none;min-width:0}.map-card-main>span{min-width:0}.map-card-main small,.map-card-main strong,.map-card-main em{display:block}.map-card-main strong{font-size:1.05rem;overflow-wrap:anywhere}.map-card-main small,.map-card-main em,.map-card p,.map-card p span{color:var(--text-muted);font-style:normal}.map-card p{margin:0}.map-card p a{font-weight:750}.map-card .map-thumb{width:96px}
.map-hero{display:flex;align-items:center;gap:1.2rem;padding:1.2rem;border:1px solid var(--border);border-left:4px solid var(--total-color);border-radius:20px;background:var(--surface);margin-bottom:1.3rem}.map-hero.beginner{border-left-color:var(--beginner-color)}.map-hero.intermediate{border-left-color:var(--intermediate-color)}.map-hero.advanced{border-left-color:var(--advanced-color)}.map-hero .map-thumb{width:min(280px,35vw)}.map-hero h1{margin:.15rem 0;font-size:clamp(1.8rem,4vw,3.4rem);overflow-wrap:anywhere}.map-hero code{color:var(--text-muted);overflow-wrap:anywhere}
.name-list{display:flex;flex-wrap:wrap;gap:.55rem;list-style:none;padding:0}.name-list a,.period-links a,.pagination a{display:inline-block;padding:.55rem .75rem;border:1px solid var(--border);border-radius:9px;background:var(--surface);text-decoration:none}.period-links{display:flex;gap:.5rem;margin-bottom:1rem}.period-links [aria-current],.pagination [aria-current]{border-color:var(--total-color);background:var(--surface-raised);font-weight:850}.pagination{position:static;justify-content:center;margin-top:1rem;background:none;border:0;backdrop-filter:none;padding:.5rem;flex-direction:row}.pagination a{color:var(--text)}
.section-link{display:inline-block;margin-top:.8rem;color:var(--text-muted)}.action-links{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.5rem}.action-links .button{margin:0}.filters.compact{margin:.8rem 0 1rem}.room-dot{display:inline-block;width:.55rem;height:.55rem;border-radius:50%;margin-right:.4rem;background:var(--total-color)}.room-dot.beginner{background:var(--beginner-color)}.room-dot.intermediate{background:var(--intermediate-color)}.room-dot.advanced{background:var(--advanced-color)}
#rankings-table th small{display:block;color:var(--text-muted);font-weight:400}#rankings-table td span{display:block}.activity li small{display:block;color:var(--text-muted);margin-top:.2rem}.activity li>a{font-weight:800}.matrix-wrap{max-height:min(72vh,850px)}.matrix-cell{min-width:92px}
@media(max-width:700px){.site-nav .brand{position:sticky;left:0}.map-hero{align-items:flex-start;flex-direction:column}.map-hero .map-thumb{width:100%;max-width:none}.room-cards,.card-grid{grid-template-columns:1fr}.stat-link{min-height:84px}.pagination{flex-wrap:wrap}.matrix-wrap{max-height:68vh}.room-button{flex:1 1 120px;min-width:0}}

/* Brede, rustige dashboardpresentatie */
main{width:min(1440px,calc(100% - 32px))}.site-nav{padding-inline:max(1rem,calc((100% - 1440px)/2))}.home-hero,.home-stats,.live-status{width:min(1180px,100%);margin-left:auto;margin-right:auto}.home-hero{box-shadow:0 16px 48px #0004}.home-data-section,.home-finishes{margin-top:2.25rem}.section-actions{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;flex-wrap:wrap}.section-actions a{color:var(--text-muted)}.density-toggle{appearance:none;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);padding:.5rem .72rem;font:inherit;font-weight:750;cursor:pointer}.density-toggle:hover{background:var(--surface-raised);border-color:#66728e}
.matrix thead th:not(:first-child){min-width:124px;max-width:150px;height:auto;writing-mode:horizontal-tb;transform:none;white-space:normal;line-height:1.2;vertical-align:bottom}.matrix thead th:not(:first-child) a{display:block;overflow-wrap:anywhere;text-transform:none;letter-spacing:0;font-size:.76rem}.matrix-cell{min-width:124px}.home-data-section[data-density-section="progress"].compact-view .matrix-wrap{max-height:440px}.home-data-section[data-density-section="progress"].expanded-view .matrix-wrap{max-height:min(78vh,920px)}
.rankings-wrap thead th{position:sticky;top:0;z-index:2}.rankings-wrap table{min-width:880px}.rankings-wrap th:first-child{width:36%}.rankings-wrap .finisher-count{color:var(--text-muted);font-variant-numeric:tabular-nums}.ranking-winner{background:#7c8cff0c}.ranking-winner a{font-weight:850}.ranking-winner span{color:var(--text)}.ranking-secondary{color:var(--text-muted);font-size:.9rem}.ranking-secondary a{font-weight:650}.home-data-section[data-density-section="rankings"].compact-view #rankings-table tbody tr:nth-child(n+9){display:none}.home-data-section[data-density-section="rankings"].expanded-view .rankings-wrap{max-height:720px;overflow:auto}
.home-finishes .activity{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.home-finishes .activity li{min-width:0;padding:.65rem .8rem}.home-finishes .activity li>a{overflow-wrap:anywhere}.home-finishes.compact-view .activity li:nth-child(n+7){display:none}.home-finishes .empty-inline{grid-column:1/-1}
@media(max-width:900px){main{width:min(100% - 24px,1440px)}.matrix thead th:not(:first-child),.matrix-cell{min-width:108px}.home-finishes .activity{grid-template-columns:1fr}.home-finishes.compact-view .activity li:nth-child(n+5){display:none}}
@media(max-width:700px){main{width:min(100% - 20px,1440px)}.section-actions{width:100%;justify-content:space-between}.matrix thead th:not(:first-child),.matrix-cell{min-width:104px}.matrix thead th:not(:first-child) a{font-size:.72rem}.home-data-section[data-density-section="progress"].compact-view .matrix-wrap{max-height:58vh}}

/* Clubdashboard shell */
.dashboard-layout{min-height:100vh}.dashboard-content{min-width:0}.dashboard-main{width:min(1600px,calc(100% - 48px));max-width:1600px;margin-inline:auto;padding:2rem 0 4rem}.site-sidebar{position:relative;z-index:12}.site-nav{background:#0d1018;border-color:var(--border)}.site-nav .brand{display:flex;flex-direction:column;color:#fff;font-size:1.15rem;line-height:1.15}.site-nav .brand span{margin-top:.22rem;color:var(--text-muted);font-size:.72rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase}.site-nav .nav-links{display:flex}.site-nav .nav-links a{position:relative}.site-nav .nav-links a::before{content:"";width:.42rem;height:.42rem;border-radius:50%;background:#515b70;flex:0 0 auto}.site-nav .nav-links a.active::before{background:var(--total-color);box-shadow:0 0 0 4px #7c8cff20}.sidebar-status{display:flex;align-items:flex-start;gap:.65rem;padding:.8rem;border:1px solid var(--border);border-radius:12px;background:#151a26}.sidebar-status .dot{width:.62rem;height:.62rem;margin-top:.3rem;border-radius:50%;background:#7c879d;flex:0 0 auto}.sidebar-status.active .dot{background:var(--beginner-color);box-shadow:0 0 0 4px #39d98a17}.sidebar-status.delayed .dot{background:var(--intermediate-color)}.sidebar-status.off .dot{background:#d66572}.sidebar-status strong,.sidebar-status small{display:block}.sidebar-status strong{font-size:.8rem}.sidebar-status small{margin-top:.2rem;color:var(--text-muted);font-size:.68rem;line-height:1.35}

/* Compact overview */
.home-header{display:flex;align-items:end;justify-content:space-between;gap:2rem;padding:1.5rem 1.6rem;border:1px solid var(--border);border-radius:20px;background:linear-gradient(135deg,#181d2d,#10131e);box-shadow:0 18px 55px #0004}.home-header h1{margin:.15rem 0 .35rem;font-size:clamp(2rem,4vw,3.5rem);line-height:1;letter-spacing:-.045em}.home-header p:last-child{margin:0;color:var(--text-muted)}.header-action{flex:0 0 auto;padding:.7rem 1rem;border:1px solid #6674a4;border-radius:10px;background:#7c8cff16;text-decoration:none;font-weight:800}.home-stats{width:100%;grid-template-columns:repeat(5,minmax(105px,.72fr)) minmax(260px,1.55fr);margin:1rem 0 1.2rem}.home-stats .stat{min-width:0;min-height:88px;padding:.8rem .9rem}.home-stats .stat strong{font-size:1.3rem}.home-stats .featured{grid-column:auto}.home-stats .featured strong{display:-webkit-box;overflow:hidden;font-size:.9rem;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}.home-grid{display:grid;gap:1rem;margin-top:1rem}.home-grid-primary{grid-template-columns:minmax(0,1.35fr) minmax(350px,.8fr)}.home-grid-secondary{grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr)}.dashboard-panel{min-width:0;margin:0;padding:1rem;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.8rem}.panel-heading h2{margin:.1rem 0;font-size:1.35rem}.panel-heading>a{color:var(--text-muted);font-size:.8rem;font-weight:750;text-decoration:none}.panel-heading>a:hover{text-decoration:underline}
.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:.55rem;list-style:none;padding:0;margin:0 0 .8rem}.podium-place{position:relative;display:flex;min-width:0;min-height:128px;flex-direction:column;justify-content:flex-end;align-items:center;padding:.8rem .55rem;border:1px solid var(--border);border-radius:14px 14px 8px 8px;background:linear-gradient(180deg,#21283b,#151925);text-align:center}.podium-place.place-1{order:2;min-height:158px;transform:translateY(-3px);border-color:#d2aa4f88;background:linear-gradient(180deg,#293256,#171b2b)}.podium-place.place-2{order:1;border-color:#8f9bae66}.podium-place.place-3{order:3;border-color:#aa744f66}.podium-place>a{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;font-weight:850}.podium-place strong{margin-top:.18rem;font-size:1.12rem}.podium-place small{color:var(--text-muted);font-size:.7rem}.podium-place .progress{width:100%;min-width:0}.leader-list,.activity-feed,.ranking-preview ol{list-style:none;padding:0;margin:0}.leader-list{display:grid;grid-template-columns:1fr 1fr;gap:.35rem}.leader-list li{display:grid;grid-template-columns:1.4rem minmax(0,1fr) auto auto;align-items:center;gap:.55rem;padding:.48rem .58rem;border-radius:9px;background:#ffffff04}.leader-list li>span{color:var(--text-muted);font-size:.75rem;text-align:center}.leader-list a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;font-weight:750}.leader-list small{color:var(--text-muted)}
.activity-feed{display:grid;gap:.4rem}.activity-feed li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.62rem .65rem;border-bottom:1px solid var(--border)}.activity-feed li:last-child{border-bottom:0}.activity-type{min-width:4.5rem;padding:.18rem .4rem;border:1px solid var(--beginner-color);border-radius:99px;color:#8cf2bd;background:#143b2b;font-size:.65rem;font-weight:850;text-align:center}.activity-type.pb{border-color:var(--total-color);color:#d9dcff;background:#262957}.activity-feed div{min-width:0}.activity-feed div>a{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800;text-decoration:none}.activity-feed small{display:block;min-width:0;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-feed small a{font-weight:600}.activity-time{color:var(--text-muted);font-variant-numeric:tabular-nums}.activity-feed time{color:var(--text-muted);font-size:.7rem;white-space:nowrap}
.room-progress-list{display:grid;gap:.45rem}.room-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.16rem .8rem;padding:.58rem .8rem;border:1px solid var(--border);border-left:3px solid var(--total-color);border-radius:11px;background:#ffffff03;text-decoration:none}.room-progress.beginner{border-left-color:var(--beginner-color)}.room-progress.intermediate{border-left-color:var(--intermediate-color)}.room-progress.advanced{border-left-color:var(--advanced-color)}.room-progress span,.room-progress small{display:block;min-width:0}.room-progress small{overflow:hidden;color:var(--text-muted);font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.room-progress .room-leader{color:var(--text);font-weight:700}.room-progress strong{font-size:1.1rem}.room-progress .progress{grid-column:1/-1;width:100%;min-width:0}.ranking-preview .room-buttons{gap:.4rem;margin:-.2rem 0 .45rem}.ranking-preview .room-button{min-width:0;padding:.32rem .62rem;border-radius:8px;font-size:.72rem}.ranking-preview ol{display:grid;gap:.18rem}.ranking-preview li{display:grid;grid-template-columns:1.5rem minmax(0,1fr) auto minmax(85px,.35fr);align-items:center;gap:.65rem;padding:.5rem .62rem;border-bottom:1px solid var(--border)}.ranking-preview li:last-child{border-bottom:0}.ranking-preview li>span{color:var(--text-muted);text-align:center}.ranking-preview div>a,.preview-player{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;font-weight:800}.ranking-preview small{display:block;color:var(--text-muted);font-size:.68rem}.ranking-preview strong{font-variant-numeric:tabular-nums}.preview-player{color:var(--text-muted);font-size:.74rem}

@media(min-width:1051px){.dashboard-layout{display:grid;grid-template-columns:230px minmax(0,1fr)}.site-sidebar{border-right:1px solid var(--border)}.site-nav{position:sticky;top:0;display:flex;height:100vh;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:1.45rem 1rem;border:0;backdrop-filter:none}.site-nav .brand{padding:.35rem .55rem 1.5rem}.site-nav .nav-links{flex-direction:column;gap:.28rem;overflow:visible}.site-nav .nav-links a{display:flex;align-items:center;gap:.7rem;padding:.72rem .75rem}.site-nav .nav-links a.active{background:#202638;box-shadow:inset 3px 0 var(--total-color)}.site-nav .sidebar-status{margin-top:auto}.dashboard-content footer{margin-left:0}}
@media(max-width:1200px){.home-grid-primary,.home-grid-secondary{grid-template-columns:1fr}.home-stats{grid-template-columns:repeat(3,minmax(120px,1fr))}.home-stats .featured{grid-column:auto}}
@media(max-width:1050px){.dashboard-layout{display:block}.site-sidebar{position:sticky;top:0}.site-nav{position:relative;display:flex;align-items:center;gap:.8rem;padding:.7rem 1rem}.site-nav .brand{flex:0 0 auto;padding:.35rem}.site-nav .nav-links{display:flex;min-width:0;overflow-x:auto}.site-nav .nav-links a{display:flex;align-items:center;gap:.42rem}.site-nav .sidebar-status{display:none}.dashboard-main{width:min(100% - 28px,1600px);padding-top:1.25rem}}
@media(max-width:700px){.site-nav{align-items:flex-start;flex-direction:column}.site-nav .nav-links{width:100%}.site-nav .nav-links a::before{display:none}.dashboard-main{width:min(100% - 20px,1600px)}.home-header{align-items:flex-start;flex-direction:column;padding:1.2rem}.home-header h1{font-size:2.25rem}.header-action{width:100%;text-align:center}.home-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.home-stats .featured{grid-column:1/-1}.leader-list{grid-template-columns:1fr}.activity-feed li{grid-template-columns:auto minmax(0,1fr)}.activity-feed time{grid-column:2}.ranking-preview li{grid-template-columns:1.3rem minmax(0,1fr) auto}.preview-player{display:none}}

/* Gerichte dashboardpolish */
html,body{min-height:100%;margin:0}.dashboard-layout{min-height:100dvh}.dashboard-content{display:grid;min-height:100dvh;grid-template-rows:minmax(0,1fr) auto}.dashboard-main{align-self:start;padding-bottom:2rem}.dashboard-content footer{padding:1rem 1.7rem}
.site-nav .nav-links a::before{display:none}.site-nav .nav-links a{transition:color .16s ease,background-color .16s ease,transform .16s ease}.site-nav .nav-links a:hover{transform:translateX(2px)}.mdi{display:inline-block;width:1.12rem;height:1.12rem;flex:0 0 auto;background:currentColor;mask-position:center;mask-repeat:no-repeat;mask-size:contain;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;-webkit-mask-size:contain}.mdi-view-dashboard-outline{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 3h8v8H3V3m10 0h8v5h-8V3M3 13h8v8H3v-8m10-3h8v11h-8V10z'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 3h8v8H3V3m10 0h8v5h-8V3M3 13h8v8H3v-8m10-3h8v11h-8V10z'/%3E%3C/svg%3E")}.mdi-door-open{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 19h2v2H3v-2h2V3h14v16m-6-7v2h2v-2h-2z'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 19h2v2H3v-2h2V3h14v16m-6-7v2h2v-2h-2z'/%3E%3C/svg%3E")}.mdi-map-outline{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m15 5-6-2-6 2v16l6-2 6 2 6-2V3l-6 2m-5 .44 4 1.33v13.79l-4-1.33V5.44m-5 1 3-1v11.12l-3 1V6.44m14 11.12-3 1V6.44l3-1v12.12z'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m15 5-6-2-6 2v16l6-2 6 2 6-2V3l-6 2m-5 .44 4 1.33v13.79l-4-1.33V5.44m-5 1 3-1v11.12l-3 1V6.44m14 11.12-3 1V6.44l3-1v12.12z'/%3E%3C/svg%3E")}.mdi-account-group-outline{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M16 13c-1.2 0-3.6.6-4 1.8-.8-.5-1.8-.8-3-.8-2.7 0-8 1.3-8 4v2h15v-2c0-.7-.3-1.3-.8-1.8.3-.1.6-.2.8-.2 1.5 0 4 .7 4 2v2h3v-2c0-3.3-4.7-5-7-5M9 12c2.2 0 4-1.8 4-4s-1.8-4-4-4-4 1.8-4 4 1.8 4 4 4m7 0c1.7 0 3-1.3 3-3s-1.3-3-3-3c-.4 0-.8.1-1.1.2.1.6.1 1.2 0 1.8.7.4 1.1 1.1 1.1 2 0 .8-.4 1.6-1.1 2 .3 0 .7 0 1 0z'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M16 13c-1.2 0-3.6.6-4 1.8-.8-.5-1.8-.8-3-.8-2.7 0-8 1.3-8 4v2h15v-2c0-.7-.3-1.3-.8-1.8.3-.1.6-.2.8-.2 1.5 0 4 .7 4 2v2h3v-2c0-3.3-4.7-5-7-5M9 12c2.2 0 4-1.8 4-4s-1.8-4-4-4-4 1.8-4 4 1.8 4 4 4m7 0c1.7 0 3-1.3 3-3s-1.3-3-3-3c-.4 0-.8.1-1.1.2.1.6.1 1.2 0 1.8.7.4 1.1 1.1 1.1 2 0 .8-.4 1.6-1.1 2 .3 0 .7 0 1 0z'/%3E%3C/svg%3E")}.mdi-chart-box-outline{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2m0 2v14h14V5H5m2 10h2v2H7v-2m4-4h2v6h-2v-6m4-4h2v10h-2V7z'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2m0 2v14h14V5H5m2 10h2v2H7v-2m4-4h2v6h-2v-6m4-4h2v10h-2V7z'/%3E%3C/svg%3E")}.mdi-trophy-outline{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 2v2h3v5c0 2.2-1.8 4-4 4h-.5c-.7 1.2-2 2.1-3.5 2.4V18h4v2H7v-2h4v-2.6A6 6 0 0 1 6.5 13H6c-2.2 0-4-1.8-4-4V4h3V2h13m-1 4v5c1.1 0 2-.9 2-2V6h-2M4 6v3c0 1.1.9 2 2 2V6H4m4-2v6a4 4 0 0 0 8 0V4H8z'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 2v2h3v5c0 2.2-1.8 4-4 4h-.5c-.7 1.2-2 2.1-3.5 2.4V18h4v2H7v-2h4v-2.6A6 6 0 0 1 6.5 13H6c-2.2 0-4-1.8-4-4V4h3V2h13m-1 4v5c1.1 0 2-.9 2-2V6h-2M4 6v3c0 1.1.9 2 2 2V6H4m4-2v6a4 4 0 0 0 8 0V4H8z'/%3E%3C/svg%3E")}.mdi-flag-checkered{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3h10l1 2h4v10h-6l-1-2H7v8H5V3m2 2v6h7l1 2h3V7h-3l-1-2H7z'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3h10l1 2h4v10h-6l-1-2H7v8H5V3m2 2v6h7l1 2h3V7h-3l-1-2H7z'/%3E%3C/svg%3E")}.mdi-weather-sunny{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 7a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0-5h1v3h-2V2h1m0 17h1v3h-2v-3h1M4.2 5.6 6.3 7.7 4.9 9.1 2.8 7l1.4-1.4m13.5 10.7 2.1 2.1-1.4 1.4-2.1-2.1 1.4-1.4M2 11h3v2H2v-2m17 0h3v2h-3v-2M4.9 14.9l1.4 1.4-2.1 2.1L2.8 17l2.1-2.1m14.1-12 1.4 1.4-2.1 2.1-1.4-1.4L19 2.9z'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 7a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0-5h1v3h-2V2h1m0 17h1v3h-2v-3h1M4.2 5.6 6.3 7.7 4.9 9.1 2.8 7l1.4-1.4m13.5 10.7 2.1 2.1-1.4 1.4-2.1-2.1 1.4-1.4M2 11h3v2H2v-2m17 0h3v2h-3v-2M4.9 14.9l1.4 1.4-2.1 2.1L2.8 17l2.1-2.1m14.1-12 1.4 1.4-2.1 2.1-1.4-1.4L19 2.9z'/%3E%3C/svg%3E")}.mdi-weather-night{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.8 19.2A8.5 8.5 0 0 1 8.3 5a7 7 0 1 0 9.5 14.2z'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.8 19.2A8.5 8.5 0 0 1 8.3 5a7 7 0 1 0 9.5 14.2z'/%3E%3C/svg%3E")}
.theme-switch{display:grid;grid-template-columns:1fr 1fr;gap:.2rem;width:100%;box-sizing:border-box;margin-top:auto;padding:.25rem;border:1px solid var(--border);border-radius:10px;background:var(--surface-raised)}.theme-seg{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.55rem .5rem;border:0;border-radius:8px;background:transparent;color:var(--text-muted);font:inherit;font-size:.9rem;font-weight:800;cursor:pointer;transition:background-color .16s ease,color .16s ease}.theme-seg .mdi{width:1rem;height:1rem}.theme-seg:hover{color:var(--text)}.theme-seg[aria-pressed="true"]{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0003}.theme-seg:focus-visible{outline:3px solid var(--total-color);outline-offset:1px}.theme-switch:hover{color:var(--text);background:var(--surface-raised);border-color:#66728e}.site-nav .theme-switch+.sidebar-status{margin-top:.65rem}
.dashboard-panel,.home-stats .stat,.room-progress,.leader-list li,.ranking-preview li,.activity-feed li{transition:transform .16s ease,border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.dashboard-panel:hover{border-color:#3a4660;box-shadow:0 14px 34px #0002}.room-progress:hover,.leader-list li:hover,.ranking-preview li:hover,.activity-feed li:hover{background:var(--surface-raised);transform:translateY(-1px)}.podium-place{overflow:hidden;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.podium-place::after{content:"";position:absolute;inset:auto 12% -45% 12%;height:60%;border-radius:50%;background:currentColor;filter:blur(30px);opacity:.08;pointer-events:none}.podium-place:hover{transform:translateY(-3px)}.podium-place.place-1{color:#dfe2ff;box-shadow:0 12px 30px #7c8cff18}.podium-place.place-2{color:#dbe2ec;border-color:#71809766}.podium-place.place-3{color:#ffd6b0;border-color:#b97a4b66}.podium-place>a,.podium-place strong{color:var(--text)}.podium-place>a,.podium-place strong,.podium-place small,.podium-place .progress{position:relative;z-index:1}.sidebar-status.active .dot{animation:status-pulse 2.4s ease-out infinite}@keyframes status-pulse{0%,55%,100%{box-shadow:0 0 0 4px #39d98a17}25%{box-shadow:0 0 0 8px #39d98a05}}
html[data-theme="light"]{color-scheme:light;--bg:#f4f6fb;--surface:#fff;--surface-raised:#eef2f8;--border:#d5dcea;--text:#172033;--text-muted:#667085;--total-color:#5969db}html[data-theme="light"] body{background:radial-gradient(circle at 15% 0,#e5e9ff 0,transparent 34rem),var(--bg)}html[data-theme="light"] .site-nav{background:#fff}html[data-theme="light"] .site-nav .brand,html[data-theme="light"] nav a:hover,html[data-theme="light"] nav a.active{color:var(--text)}html[data-theme="light"] .site-nav .nav-links a.active{background:#e9edfb}html[data-theme="light"] .home-header,html[data-theme="light"] .hero,html[data-theme="light"] .player-hero{background:linear-gradient(135deg,#fff,#f0f3fa);box-shadow:0 18px 50px #33415512}html[data-theme="light"] .sidebar-status{background:#f5f7fb}html[data-theme="light"] .podium-place{background:linear-gradient(180deg,#f5f7fd,#e9edf7)}html[data-theme="light"] .podium-place.place-1{background:linear-gradient(180deg,#e9edff,#f5f6ff)}html[data-theme="light"] thead th,html[data-theme="light"] .matrix th:first-child{background:#edf1f7}html[data-theme="light"] input,html[data-theme="light"] select,html[data-theme="light"] .filters button,html[data-theme="light"] .button{color:var(--text)}html[data-theme="light"] tbody tr:hover,html[data-theme="light"] .click-row:focus{background:#1f293708}html[data-theme="light"] .progress{background:#dfe4ed}html[data-theme="light"] .dashboard-panel:hover{box-shadow:0 14px 34px #33415512}
@media(min-width:1051px){.site-nav .sidebar-status{margin-top:.65rem}.dashboard-content footer{align-self:end;padding:.55rem 1.7rem}}
@media(max-width:1050px){.theme-switch{width:auto;flex:0 0 auto;margin:0}.site-nav .theme-switch+.sidebar-status{margin-top:0}}
@media(max-width:700px){.site-nav{flex-direction:row;align-items:center;flex-wrap:wrap}.site-nav .nav-links{order:3}.theme-switch{margin-left:auto}.dashboard-main{padding-bottom:1.25rem}.dashboard-content footer{padding:.8rem 1rem}}
@media(prefers-reduced-motion:reduce){.site-nav .nav-links a,.theme-switch,.dashboard-panel,.home-stats .stat,.room-progress,.leader-list li,.ranking-preview li,.activity-feed li,.podium-place{transition:none!important}.sidebar-status.active .dot{animation:none!important}}

/* Player avatars */
.player-avatar{display:inline-grid;place-items:center;overflow:hidden;border:1px solid #ffffff2b;border-radius:50%;color:#fff;box-shadow:0 1px 4px #0003;vertical-align:middle}.player-avatar--podium-first{width:58px;height:58px;min-width:58px}.player-avatar--podium{width:48px;height:48px;min-width:48px}.player-avatar--list{width:28px;height:28px;min-width:28px}.player-avatar--activity{width:30px;height:30px;min-width:30px}.player-avatar--profile{width:88px;height:88px;min-width:88px;border-width:2px}.player-avatar--color-0{background:#4467a8}.player-avatar--color-1{background:#397a69}.player-avatar--color-2{background:#7b5797}.player-avatar--color-3{background:#9a5d53}.player-avatar--color-4{background:#56758d}.player-avatar--color-5{background:#7b6a3d}.player-avatar--color-6{background:#4f739f}.player-avatar--color-7{background:#71629b}.player-avatar[data-avatar-state="image"]{background:transparent}.player-avatar__image,.player-avatar__initials{grid-area:1/1;width:100%;height:100%;border-radius:inherit}.player-avatar__image{z-index:2;display:block;object-fit:cover;object-position:center}.player-avatar__initials{z-index:1;display:grid;place-items:center;font-size:38%;font-weight:900;line-height:1;letter-spacing:.01em;text-shadow:0 1px 2px #0006}.player-avatar__image[hidden],.player-avatar__initials[hidden]{display:none}.player-avatar[data-avatar-state="loading"]>.player-avatar__image,.player-avatar[data-avatar-state="loading"]>.player-avatar__initials{display:none}.player-avatar[data-avatar-state="image"]>.player-avatar__initials{display:none}.player-avatar[data-avatar-state="fallback"]>.player-avatar__image{display:none}.player-link{display:inline-flex;min-width:0;align-items:center;gap:.55rem}.podium-player{display:flex;max-width:100%;min-width:0;flex-direction:column;align-items:center;gap:.4rem;overflow:visible!important;white-space:normal!important}.podium-player .player-avatar{flex:none}.place-1 .player-avatar{border:2px solid #e6bd54;box-shadow:0 0 0 2px #e6bd5428}.place-2 .player-avatar{border:2px solid #aab4c8}.place-3 .player-avatar{border:2px solid #b9825d}.leader-list .player-link{overflow:hidden;text-overflow:ellipsis}.leader-list .player-link .player-avatar{flex:none}.activity-feed li{grid-template-columns:auto auto minmax(0,1fr) auto}.player-profile-heading{display:flex;min-width:0;align-items:center;gap:1rem}.player-profile-heading>div{min-width:0}.player-profile-heading h1{overflow-wrap:anywhere}html[data-theme="light"] .player-avatar{border-color:#17203330;box-shadow:0 1px 4px #17203322}
@media(max-width:700px){.player-avatar--podium-first{width:50px;height:50px;min-width:50px}.player-avatar--podium{width:42px;height:42px;min-width:42px}.player-avatar--profile{width:76px;height:76px;min-width:76px}.podium{gap:.35rem}.podium-place{padding-inline:.35rem}.activity-feed li{grid-template-columns:auto minmax(0,1fr) auto}.activity-feed .player-avatar{grid-row:1/3}.activity-feed .activity-type{display:none}.player-hero{align-items:flex-start}.player-profile-heading{align-items:center}}
@media(max-width:480px){.player-profile-heading{width:100%;flex-direction:column;text-align:center}.player-hero{align-items:center}.leader-list{grid-template-columns:1fr}}
.player-avatar__initials{font-size:.72rem}.player-avatar--podium-first .player-avatar__initials{font-size:1.15rem}.player-avatar--podium .player-avatar__initials{font-size:.95rem}.player-avatar--profile .player-avatar__initials{font-size:1.8rem}
.milestone-badges{display:flex;flex-wrap:wrap;gap:.45rem;margin:.8rem 0 1rem}.milestone-badge{display:inline-flex;align-items:center;justify-content:center;padding:.2rem .5rem;border:1px solid var(--border);border-radius:999px;background:var(--surface-raised);font-size:.68rem;font-weight:850;line-height:1.25;white-space:nowrap}.milestone-badge--beginner{border-color:var(--beginner-color);color:#8cf2bd}.milestone-badge--intermediate{border-color:var(--intermediate-color);color:#ffd28d}.milestone-badge--advanced{border-color:var(--advanced-color);color:#e8b5ff}.milestone-badge--grandmaster{border-color:#e6bd54;color:#ffe29a;background:#4a3818}.milestone-badge--legend{border-color:#e6bd54;color:#fff0aa;background:linear-gradient(110deg,#5a4014,#4b2866)}.podium-player .milestone-badge{position:absolute;right:.45rem;top:.45rem;min-width:1.45rem;padding:.15rem}.leader-list .milestone-badge,.player-link .milestone-badge{margin-left:.25rem}.player-link>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}html[data-theme="light"] .milestone-badge--beginner{color:#176b47}html[data-theme="light"] .milestone-badge--intermediate{color:#875100}html[data-theme="light"] .milestone-badge--advanced{color:#71348c}html[data-theme="light"] .milestone-badge--grandmaster{color:#6d4b00;background:#fff6d5}html[data-theme="light"] .milestone-badge--legend{color:#fff;background:linear-gradient(110deg,#8c6415,#734392)}
.home-stats .featured .stat-sub{display:block;margin-top:.35rem;color:var(--text-muted);font-size:.8rem;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-stats .featured .stat-sub time{display:inline;color:inherit}
.room-cards--rich{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;margin-top:1rem;align-items:start}
.room-overview-card{display:flex;flex-direction:column;gap:.85rem;padding:1.15rem 1.15rem 1.05rem;background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--total-color);border-radius:var(--radius);min-width:0;transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}
.room-overview-card:hover{border-color:#3a4660;box-shadow:0 14px 34px #0002}
.room-overview-card.beginner{border-top-color:var(--beginner-color)}.room-overview-card.intermediate{border-top-color:var(--intermediate-color)}.room-overview-card.advanced{border-top-color:var(--advanced-color)}
.room-overview-card__top{display:flex;align-items:center;gap:.8rem;min-width:0}
.room-badge{display:inline-grid;place-items:center;width:2.5rem;height:2.5rem;flex:0 0 auto;border-radius:12px;background:#ffffff08;border:1px solid var(--border);color:var(--total-color)}.room-badge .mdi{width:1.35rem;height:1.35rem}
.room-badge.beginner{color:var(--beginner-color)}.room-badge.intermediate{color:var(--intermediate-color)}.room-badge.advanced{color:var(--advanced-color)}
.room-overview-card__title{min-width:0}.room-overview-card__title h2{margin:.05rem 0;font-size:1.5rem;line-height:1.05;letter-spacing:-.02em;overflow-wrap:anywhere}.room-overview-card__title h2 a{text-decoration:none}.room-overview-card__title h2 a:hover{text-decoration:underline}.room-overview-card__title small{color:var(--text-muted)}
.room-overview-card__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin:0}
.room-overview-card__stats div{min-width:0;padding:.55rem .6rem;border:1px solid var(--border);border-radius:10px;background:#ffffff03}
.room-overview-card__stats dt{color:var(--text-muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}
.room-overview-card__stats dd{margin:.2rem 0 0;font-size:1.02rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.room-overview-card__stats dd span{display:block;margin-top:.1rem;color:var(--text-muted);font-size:.72rem;font-weight:600}
.room-overview-card>.progress{width:100%;min-width:0;height:9px;margin:0}
.room-overview-card__last{min-width:0;padding-top:.1rem}
.room-overview-card__last-label{display:block;color:var(--text-muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.2rem}
.room-overview-card__last-line{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}.room-overview-card__last-line.muted{color:var(--text-muted);font-style:italic}.room-overview-card__last-map{color:var(--text)}.room-overview-card__last-time{font-variant-numeric:tabular-nums;color:var(--text)}.room-overview-card__last small{color:var(--text-muted);font-size:.72rem}.room-overview-card__last small time{color:inherit}
.room-overview-card__actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto;padding-top:.2rem}
.room-action{display:inline-flex;align-items:center;gap:.35rem;flex:1 1 auto;justify-content:center;padding:.5rem .55rem;border:1px solid var(--border);border-radius:9px;background:var(--surface-raised);color:var(--text);text-decoration:none;font-size:.8rem;font-weight:750;white-space:nowrap}.room-action .mdi{width:1rem;height:1rem;color:var(--text-muted)}.room-action:hover,.room-action:focus-visible{background:#ffffff0d;border-color:#66728e}
.room-overview-card.beginner .room-action:hover .mdi{color:var(--beginner-color)}.room-overview-card.intermediate .room-action:hover .mdi{color:var(--intermediate-color)}.room-overview-card.advanced .room-action:hover .mdi{color:var(--advanced-color)}
.room-compare{margin-top:2.25rem}.room-compare__list{display:grid;gap:.5rem}
.room-compare__row{display:grid;grid-template-columns:minmax(120px,1fr) auto;align-items:center;gap:.15rem .9rem;padding:.7rem .85rem;border:1px solid var(--border);border-left:3px solid var(--total-color);border-radius:11px;background:#ffffff03}
.room-compare__row.beginner{border-left-color:var(--beginner-color)}.room-compare__row.intermediate{border-left-color:var(--intermediate-color)}.room-compare__row.advanced{border-left-color:var(--advanced-color)}
.room-compare__name{font-weight:850;font-size:1.05rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-compare__name a{text-decoration:none}.room-compare__name a:hover{text-decoration:underline}
.room-compare__pct{font-size:1.15rem;font-weight:850;text-align:right;font-variant-numeric:tabular-nums}
.room-compare__meta{grid-column:1/-1;color:var(--text-muted);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.room-compare__bar{grid-column:1/-1;width:100%;min-width:0;height:9px;margin-top:.25rem}
@media(max-width:1050px){.room-overview-card__stats{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.room-cards--rich{grid-template-columns:1fr}.room-overview-card__stats{grid-template-columns:1fr 1fr}.room-action{flex-basis:100%}.room-compare__row{grid-template-columns:1fr auto}}
html[data-theme="light"] .room-overview-card__stats div,html[data-theme="light"] .room-compare__row{background:#0000000a}html[data-theme="light"] .room-badge{background:#0000000a}
.tm-profile{margin-top:2.5rem;border-top:1px solid var(--border);padding-top:1.6rem}
.tm-profile .section-heading small{display:block;color:var(--text-muted);margin-top:.25rem}
.tm-coverage{margin:.2rem 0 .1rem;font-weight:750}
.tm-coverage-note{margin:.1rem 0 1rem;color:var(--text-muted);font-size:.85rem}
.tm-stats .stat small,.tm-compare-stats .stat small{display:block;margin-top:.25rem;color:var(--text-muted);font-size:.72rem;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-stats .stat small time{display:inline;color:inherit}
.tm-subhead{margin:1.4rem 0 .6rem;font-size:1.05rem}
.tm-collections{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.6rem}
.tm-collection{padding:.7rem .8rem;border:1px solid var(--border);border-radius:11px;background:var(--surface)}
.tm-collection__head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}
.tm-collection__head strong{font-size:.95rem}
.tm-collection__head span{color:var(--text-muted);font-variant-numeric:tabular-nums;font-weight:750}
.tm-compare{margin-top:1.8rem;padding:1rem;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.tm-compare .section-heading h3{margin:.1rem 0;font-size:1.3rem}
.tm-compare-switch{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:.2rem 0 1rem;color:var(--text-muted);font-size:.85rem}
.tm-compare-switch a{padding:.3rem .6rem;border:1px solid var(--border);border-radius:8px;background:var(--surface-raised);text-decoration:none;font-weight:700}
.tm-compare-switch a.active{border-color:var(--total-color);color:#fff}
.tm-compare-collections,.tm-compare-highlights{list-style:none;padding:0;margin:.4rem 0 0;display:grid;gap:.4rem}
.tm-compare-collections li{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;padding:.5rem .7rem;border:1px solid var(--border);border-radius:10px;background:#ffffff03}
.tm-compare-collections li span{color:var(--text-muted);font-size:.8rem}
.tm-compare-highlights li{display:grid;gap:.15rem;padding:.55rem .7rem;border-left:3px solid var(--total-color);border-radius:8px;background:#ffffff03}
.tm-compare-highlights li b{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}
.tm-compare-highlights li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-firstfinish{margin-top:1rem;color:var(--text-muted);font-size:.85rem}
@media(max-width:700px){.tm-compare-collections li{flex-direction:column;gap:.15rem}}
.player-hero-sub{margin:.35rem 0 0;color:var(--text-muted);font-size:.9rem}
.player-tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin:1.4rem 0 1rem;border-bottom:1px solid var(--border);padding-bottom:.2rem}
.player-tab{padding:.55rem .95rem;border:1px solid transparent;border-bottom:none;border-radius:10px 10px 0 0;color:var(--text-muted);text-decoration:none;font-weight:800;font-size:.95rem}
.player-tab:hover{color:var(--text);background:var(--surface-raised)}
.player-tab.active{color:var(--text);background:var(--surface);border-color:var(--border);box-shadow:inset 0 -2px var(--total-color)}
.player-panel-container{position:relative;min-height:6rem}
.player-panel.is-loading{opacity:.55;transition:opacity .12s ease}
.player-panel-loading{position:absolute;top:.4rem;right:.2rem;padding:.35rem .7rem;border:1px solid var(--border);border-radius:999px;background:var(--surface-raised);color:var(--text-muted);font-size:.8rem;font-weight:750}
.player-panel-error{margin:.8rem 0;padding:.7rem .9rem;border:1px solid #d66572;border-radius:10px;background:#3a1c22;color:#ffc1c8;font-weight:700}
.tm-lists{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-top:.6rem}
.tm-highlight-list{list-style:none;padding:0;margin:.3rem 0 0;display:grid;gap:.35rem}
.tm-highlight-list li{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;padding:.5rem .7rem;border:1px solid var(--border);border-radius:10px;background:#ffffff03}
.tm-highlight-list li a{font-weight:750;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-highlight-list li span{color:var(--text-muted);font-size:.82rem;white-space:nowrap}
.tm-map-filters{display:flex;flex-wrap:wrap;align-items:end;gap:.6rem;background:var(--surface);padding:.8rem;border:1px solid var(--border);border-radius:var(--radius);margin:.6rem 0 1rem}
.tm-map-filters label{display:grid;gap:.25rem;color:var(--text-muted);font-weight:700;font-size:.85rem}
.tm-map-filters input,.tm-map-filters select{min-width:9rem}
.tm-compare-form{background:var(--surface);padding:.7rem .8rem;border:1px solid var(--border);border-radius:var(--radius);margin:.4rem 0 1rem}
.tm-compare-form label{color:var(--text-muted);font-weight:700}
.tm-map-wrap{max-height:none}
.tm-map-table{min-width:900px}
.tm-map-table thead th{position:sticky;top:0;z-index:2;background:#151a28;font-size:.75rem}
.tm-map-table th a{font-weight:750}
.tm-map-table td{font-size:.92rem;white-space:nowrap}
.tm-map-table th[data-label="Map"]{max-width:22rem;overflow:hidden;text-overflow:ellipsis}
.tm-status{display:inline-flex;padding:.18rem .5rem;border-radius:999px;font-size:.78rem;font-weight:800}
.tm-status.done{color:#7af0b5;background:#143b2b}
.tm-status.missing{color:#ffc1c8;background:#421d24}
.tm-badge{display:inline-flex;padding:.18rem .5rem;border-radius:999px;font-size:.75rem;font-weight:800}
.tm-badge.clubrecord{color:#ffe29a;background:#4a3818;border:1px solid #e6bd54}
.tm-badge.sole{color:#d9dcff;background:#262957;border:1px solid var(--total-color)}
.tm-collection-badge{display:inline-block;margin:.1rem .2rem .1rem 0;padding:.12rem .45rem;border:1px solid var(--border);border-radius:7px;font-size:.72rem;color:var(--text-muted)}
.tm-collection-badge--rpg_room{border-color:#3a4660}
.tm-pagination{justify-content:center;gap:.35rem;margin-top:1rem}
.tm-collection-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.8rem}
.tm-collection-card{display:block;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-decoration:none}
.tm-collection-card:hover{border-color:#65718d;background:var(--surface-raised)}
.tm-collection-card__head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.3rem}
.tm-collection-card__head strong{font-size:1.05rem}
.tm-collection-type{color:var(--text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}
.tm-collection-card__meta{margin:.3rem 0 0;color:var(--text-muted);font-size:.82rem}
.tm-collection-card .progress{margin:.4rem 0}
@media(max-width:820px){.tm-map-table{min-width:0;width:100%}.tm-map-table thead{display:none}.tm-map-table tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:.2rem .8rem;padding:.6rem .2rem;border-bottom:1px solid var(--border)}.tm-map-table td,.tm-map-table th{white-space:normal;border:none;padding:.15rem 0}.tm-map-table th[data-label="Map"]{grid-column:1/-1;max-width:none;font-size:1rem}.tm-map-table td::before{content:attr(data-label) ": ";color:var(--text-muted);font-size:.72rem}}
.player-avatar-wrap{position:relative;display:inline-grid;place-items:center;flex:none;line-height:0;overflow:visible}
.avatar-crowns{position:absolute;top:-14%;right:-12%;display:flex;flex-direction:row;align-items:flex-end;z-index:8;pointer-events:none}
.avatar-crown{position:relative;display:block;width:20px;height:15px;transform-origin:bottom center;transform:rotate(11deg)}
.avatar-crown:not(:first-child){margin-left:-52%}
.avatar-crown__icon{width:100%;height:100%;display:block;overflow:visible;filter:drop-shadow(0 1.5px 1.4px rgba(0,0,0,.5))}
.avatar-crown .crown-body,.avatar-crown .crown-tip{stroke-linejoin:round;paint-order:stroke}
.avatar-crown .crown-body{stroke-width:.9}
.avatar-crown .crown-tip{stroke-width:.7}
.avatar-crown .crown-shine{fill:#fff;opacity:.5}
.avatar-crown .crown-gem{stroke:rgba(0,0,0,.28);stroke-width:.5}
.avatar-crown--gold .crown-body,.avatar-crown--gold .crown-tip{fill:#f4c64f;stroke:#966619}
.avatar-crown--silver .crown-body,.avatar-crown--silver .crown-tip{fill:#dbe0e8;stroke:#79828f}
.avatar-crown--bronze .crown-body,.avatar-crown--bronze .crown-tip{fill:#d68a50;stroke:#7a4620}
.avatar-crown--beginner .crown-gem{fill:var(--beginner-color)}
.avatar-crown--intermediate .crown-gem{fill:var(--intermediate-color)}
.avatar-crown--advanced .crown-gem{fill:var(--advanced-color)}
.avatar-crowns--count-2 .avatar-crown:nth-child(1){transform:rotate(-9deg) translateY(-12%);z-index:1}
.avatar-crowns--count-2 .avatar-crown:nth-child(2){transform:rotate(12deg)}
.avatar-crowns--count-3 .avatar-crown:nth-child(1){transform:rotate(-15deg) translateY(-4%)}
.avatar-crowns--count-3 .avatar-crown:nth-child(2){transform:rotate(0deg) translateY(-26%);z-index:2}
.avatar-crowns--count-3 .avatar-crown:nth-child(3){transform:rotate(15deg) translateY(-4%)}
.avatar-crowns--podium-first .avatar-crown{width:24px;height:18px}
.avatar-crowns--podium .avatar-crown{width:20px;height:15px}
.avatar-crowns--profile{top:-16%;right:-8%}
.avatar-crowns--profile .avatar-crown{width:34px;height:26px}
.avatar-crown:hover{filter:drop-shadow(0 2px 2px rgba(0,0,0,.55))}
@media(max-width:700px){.avatar-crowns--podium-first .avatar-crown{width:20px;height:15px}.avatar-crowns--podium .avatar-crown{width:17px;height:13px}.avatar-crowns--profile .avatar-crown{width:28px;height:21px}}
.leader-list{grid-template-columns:1fr 1fr;column-gap:1.9rem;row-gap:.35rem}
.leader-list li{grid-template-columns:1.4rem minmax(0,1fr) auto auto;column-gap:.6rem}
.leader-list li>strong,.leader-list li>small{justify-self:end;text-align:right}
.leader-list li:nth-child(even){border-left:1px solid var(--border);padding-left:1.1rem}
.activity-feed small a{text-decoration:none}
.activity-feed small a:hover,.activity-feed small a:focus-visible{text-decoration:underline}
.room-progress{cursor:pointer}
html[data-theme="light"] a:focus-visible,html[data-theme="light"] button:focus-visible,html[data-theme="light"] input:focus-visible,html[data-theme="light"] select:focus-visible,html[data-theme="light"] [tabindex]:focus-visible{outline-color:#172033}
@media(max-width:700px){.leader-list{grid-template-columns:1fr;column-gap:0}.leader-list li:nth-child(even){border-left:0;padding-left:.58rem}}

/* Compact map metadata and five evenly distributed club statistics. */
.map-metadata{display:flex;flex-wrap:wrap;gap:.35rem 1rem;margin:.55rem 0;color:var(--text-muted);font-size:.86rem}
.map-metadata b{color:var(--text);font-weight:750}
.map-external-links{display:flex;flex-wrap:wrap;gap:.45rem;margin:.55rem 0}
.map-external-links a{display:inline-flex;align-items:center;gap:.25rem;padding:.34rem .58rem;border:1px solid var(--border);border-radius:8px;background:var(--surface-raised);text-decoration:none;font-size:.8rem;font-weight:750}
.map-external-links a:hover{border-color:var(--total-color)}
.map-uid{display:block;font-size:.72rem}.map-hero+.stats{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1050px){.map-hero+.stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.map-metadata{display:grid;gap:.25rem}.map-hero+.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.map-hero+.stats{grid-template-columns:1fr}}
/* Map detail 3-column hero. */
.map-breadcrumb{display:flex;align-items:center;gap:.45rem;margin:0 0 .85rem;color:var(--text-muted);font-size:.84rem}.map-breadcrumb a{text-decoration:none}.map-breadcrumb a:hover{text-decoration:underline}.map-breadcrumb [aria-current="page"]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.map-hero--detail{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr) minmax(210px,280px);align-items:stretch;gap:1.35rem}.map-hero--detail .map-hero__image{min-width:0}.map-hero--detail .map-thumb{width:100%;height:100%;min-height:180px;object-fit:cover;border-radius:12px}.map-hero__primary{min-width:0;align-self:center}.map-hero__primary h1{max-width:100%;overflow-wrap:anywhere}.map-badges{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.65rem}.map-room-badge,.map-position-badge{display:inline-flex;align-items:center;padding:.28rem .55rem;border-radius:999px;font-size:.7rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--border)}.map-room-badge.beginner{border-color:var(--beginner-color);color:var(--beginner-color)}.map-room-badge.intermediate{border-color:var(--intermediate-color);color:var(--intermediate-color)}.map-room-badge.advanced{border-color:var(--advanced-color);color:var(--advanced-color)}
.map-hero__discovery{display:flex;flex-direction:column;justify-content:center;padding:1rem 1.1rem;border-left:1px solid var(--border);min-width:0}.map-discovery-label{color:var(--text-muted);font-size:.78rem;font-weight:750}.map-discovery-time{display:block;margin:.12rem 0;font-size:clamp(1.35rem,2.4vw,2rem);line-height:1.15}.map-discovery-source{color:var(--text-muted);font-size:.78rem;text-decoration:none}.map-discovery-source:hover{text-decoration:underline}
.map-uid-control{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;margin-top:.75rem;color:var(--text-muted)}.map-uid-control code{font-size:.72rem}.uid-copy{display:inline-grid;place-items:center;width:2rem;height:2rem;padding:0;border:1px solid var(--border);border-radius:7px;background:var(--surface-raised);color:var(--text);cursor:pointer}.uid-copy:hover{border-color:var(--total-color)}.uid-copy-feedback{font-size:.72rem;color:var(--text-muted);min-height:1em}
.map-detail-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.map-detail-stats .stat{min-height:112px;display:flex;flex-direction:column;justify-content:center}.club-progress-stat small{color:var(--text-muted);font-weight:750;margin-top:.15rem}.club-progress-stat .progress{width:100%}.finish-table .track-time{font-variant-numeric:tabular-nums;font-family:ui-monospace,"SFMono-Regular",Consolas,monospace}.map-missing-list a{overflow-wrap:anywhere}
@media(max-width:1100px){.map-hero--detail{grid-template-columns:minmax(210px,280px) minmax(0,1fr)}.map-hero__discovery{grid-column:2;border-left:0;border-top:1px solid var(--border);padding:.8rem 0 0}.map-detail-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.map-breadcrumb span[aria-current="page"],.map-breadcrumb span[aria-hidden="true"]:last-of-type{display:none}.map-hero--detail{display:flex;flex-direction:column}.map-hero--detail .map-thumb{min-height:0;max-height:none}.map-hero__discovery{order:3;border-top:1px solid var(--border);padding:.9rem 0 0}.map-external-links a{min-height:42px}.map-detail-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.map-detail-stats .stat{min-height:100px}}
@media(max-width:430px){.map-detail-stats{grid-template-columns:1fr}}
/* Dashboard suite: planner, comparison, insights and goals */
.planner-controls,.compare-picker{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}
.planner-controls label,.compare-picker label{display:grid;gap:.3rem;color:var(--text-muted);font-weight:750}.planner-controls .check{display:flex;align-items:center;min-height:42px}.planner-controls .button,.compare-picker .button{margin:0}.planner-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.planner-actions a{padding:.45rem .7rem;border:1px solid var(--border);border-radius:999px;text-decoration:none;background:var(--surface-raised)}
.planner-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.planner-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-width:0;padding:1rem;border:1px solid var(--border);border-left:3px solid var(--total-color);border-radius:var(--radius);background:var(--surface)}.planner-card.beginner{border-left-color:var(--beginner-color)}.planner-card.intermediate{border-left-color:var(--intermediate-color)}.planner-card.advanced{border-left-color:var(--advanced-color)}.planner-card h3{margin:.5rem 0 .2rem;overflow-wrap:anywhere}.planner-card p,.planner-card small{display:block;margin:.15rem 0;color:var(--text-muted)}.planner-card .button{flex:none;margin:0}.unknown-discovery,.map-information{margin-top:1.5rem;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.unknown-discovery summary,.map-information summary{cursor:pointer;font-weight:850}.unknown-discovery .planner-grid{margin-top:1rem}
.next-drive{margin:1rem 0;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(135deg,var(--surface),var(--surface-raised))}.next-drive h2,.next-drive p{margin:.15rem 0}.next-drive .button{margin-top:.65rem}
.compare-table td{font-variant-numeric:tabular-nums}.profile-insights{margin-top:1.4rem}.insight-list,.milestone-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.insight-list li,.milestone-list li{display:grid;gap:.2rem;padding:.75rem;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.insight-list small,.milestone-list time{color:var(--text-muted)}
.club-goals{margin-bottom:1rem}.club-goals-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.club-goals-grid article{padding:.8rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.club-goals-grid strong,.club-goals-grid span,.club-goals-grid small{display:block}.club-goals-grid span,.club-goals-grid small{color:var(--text-muted)}
.map-information dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin:1rem 0}.map-information dl div{min-width:0}.map-information dt{color:var(--text-muted);font-size:.75rem}.map-information dd{margin:0;overflow-wrap:anywhere}.map-tags{display:flex;flex-wrap:wrap;gap:.4rem}.map-tags span{padding:.25rem .55rem;border-radius:999px;background:var(--surface-raised);border:1px solid var(--border);font-size:.76rem}.club-progress-line{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.club-progress-line small{flex:none}.uid-copy svg{display:block}.map-breadcrumb{padding:.2rem 0;background:transparent!important;border:0!important}
@media(max-width:700px){.planner-controls,.compare-picker{align-items:stretch;flex-direction:column}.planner-controls label,.planner-controls select,.compare-picker label,.compare-picker select,.planner-controls .button,.compare-picker .button{width:100%}.planner-grid,.insight-list,.milestone-list,.club-goals-grid{grid-template-columns:1fr}.planner-card{align-items:flex-start;flex-direction:column}.map-information dl{grid-template-columns:1fr 1fr}.map-breadcrumb a:first-child,.map-breadcrumb span[aria-hidden="true"]:first-of-type{display:none}.map-breadcrumb a:nth-of-type(2)::before{content:"← "}}
@media(max-width:420px){.map-information dl{grid-template-columns:1fr}}
.skip{position:fixed;left:max(246px,calc((100vw - 1600px)/2 + 246px));top:1rem;z-index:1000;max-width:calc(100vw - 2rem);transform:translateY(-180%);opacity:0;pointer-events:none;background:var(--text);color:var(--bg);box-shadow:0 8px 24px #0005}.skip:focus,.skip:focus-visible{transform:translateY(0);opacity:1;pointer-events:auto}.nav-icon{display:block;width:1.12rem;height:1.12rem;flex:0 0 auto;fill:currentColor}.uid-copy-icon{display:block;width:1rem;height:1rem;fill:currentColor}.planner-controls[aria-busy="true"]{opacity:.7}.planner-quick[aria-pressed="true"]{color:var(--text);font-weight:850}.planner-quick-list{position:static;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:.45rem;padding:0;margin:1rem 0;background:transparent;border:0;backdrop-filter:none}.planner-quick{display:inline-flex;align-items:center;min-height:40px;padding:.45rem .75rem!important;border:1px solid var(--border);border-radius:999px!important;background:var(--surface-raised);text-decoration:none}.planner-quick.active{border-color:var(--total-color);box-shadow:0 0 0 1px var(--total-color)}.planner-card-links{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.65rem}.planner-card-links a{display:inline-flex;align-items:center;min-height:38px;padding:.35rem .6rem;border:1px solid var(--border);border-radius:8px;text-decoration:none;background:var(--surface-raised)}.planner-controls input[type="number"]{width:10rem}.planner-card{overflow:hidden}.planner-card>div{min-width:0;width:100%}@media(max-width:1050px){.skip{left:1rem}}@media(max-width:700px){.planner-quick-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.planner-quick{justify-content:center;white-space:normal!important}.planner-controls input[type="number"]{width:100%}.planner-card-links a{flex:1 1 auto;justify-content:center}}@media(max-width:380px){.planner-quick-list{grid-template-columns:1fr}}
.club-inspector{width:min(1200px,calc(100% - 2rem));max-width:1200px;margin:0 auto;padding:2rem 0 4rem;color:var(--text)}.club-inspector .page-hero,.club-inspector .card{padding:1.25rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.club-inspector .card{margin:1rem 0}.club-tree>.club-folder{margin:.8rem 0;padding:.8rem;border:1px solid var(--border);border-left:4px solid var(--total-color);border-radius:var(--radius);background:var(--surface)}.club-folder>.club-folder{margin:.65rem 0 .65rem 1rem;padding:.65rem;border-left:3px solid var(--border)}.club-tree summary{cursor:pointer}.club-folder>summary{font-weight:800}.club-folder code,.club-activity code{color:var(--text-muted)}.club-activity{margin:.75rem 0;border:1px solid var(--border);border-radius:.75rem;background:var(--surface-raised);color:var(--text);overflow:hidden}.club-activity>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;list-style-position:inside}.club-activity>summary b,.club-activity>summary small{display:block}.club-activity>summary small,.club-activity__ids{color:var(--text-muted);font-size:.78rem}.club-activity__body{padding:0 1rem 1rem;border-top:1px solid var(--border)}.club-activity dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.65rem}.club-activity dl>div{padding:.65rem;border-radius:.5rem;background:var(--surface)}.club-activity dt{color:var(--text-muted);font-size:.7rem;text-transform:uppercase}.club-activity dd{margin:0;overflow-wrap:anywhere}.club-activity li{margin:.35rem 0;overflow-wrap:anywhere}.club-activity pre,.club-inspector pre{max-height:32rem;padding:.8rem;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid var(--border);border-radius:.5rem;background:var(--bg);color:var(--text)}.club-activity .error{color:#ff8d9b}@media(max-width:700px){.club-inspector{width:min(100% - 1rem,1200px);padding-top:1rem}.club-activity>summary{align-items:flex-start;flex-direction:column}.club-activity__ids{padding-left:1.2rem}.club-folder>.club-folder{margin-left:.35rem}}

/* ===== Publieke trackerpagina's (UX-fix, gebruikt bestaande design tokens) ===== */
.trk-shell{width:min(1280px,calc(100% - 40px));max-width:1280px;margin-inline:auto;padding:1.6rem 0 3rem;color:var(--text)}
.trk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.6rem}
.trk-nav{position:static;display:flex;gap:.4rem;flex-wrap:wrap;padding:0;background:transparent;border:0;backdrop-filter:none}
.club-inspector>nav:first-child{position:static;z-index:auto;justify-content:flex-start;flex-wrap:wrap;padding:0;margin:0 0 .8rem;background:transparent;border:0;backdrop-filter:none}
.admin-nav{position:static;z-index:auto;display:flex;align-items:center;justify-content:flex-start;gap:.45rem;flex-wrap:wrap;padding:.65rem;margin:0 0 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);backdrop-filter:none}
.admin-nav .admin-brand{font-weight:900;color:var(--text)}.admin-nav .admin-brand span{color:var(--text-muted);font-weight:700}.admin-nav-links{display:flex;flex:1 1 auto;gap:.25rem;flex-wrap:wrap}.admin-nav a[aria-current="page"]{color:var(--text);background:var(--surface-raised);box-shadow:inset 0 -2px var(--total-color)}.admin-nav form{margin:0}.admin-nav button{padding:.55rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--surface-raised);color:var(--text);font:inherit;cursor:pointer}.admin-login{display:grid;min-height:100vh;place-items:center;width:min(100% - 2rem,440px);margin:auto;padding:2rem 0}.admin-login .card{width:100%;padding:1.5rem}.admin-login h1{margin:.15rem 0}.admin-login form,.admin-login label{display:grid;gap:.45rem}.admin-login form{gap:1rem}.admin-login input{width:100%}.admin-login .button{margin:0}.admin-login-error{padding:.65rem;border:1px solid #d66572;border-radius:8px;background:#d6657215}.admin-overview-card{display:block;text-decoration:none}.admin-overview-card h2{margin:.1rem 0}.admin-overview-card p{color:var(--text-muted)}
html[data-admin-shell]{color-scheme:light}html[data-admin-shell] body{overflow-x:hidden}.admin-breadcrumb{display:inline-flex;margin:0 0 1rem;color:var(--text-muted)}
.config-hours{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:.4rem}.config-hours label{padding:.35rem;border:1px solid var(--border);border-radius:7px;background:var(--surface-raised)}
.config-subnav,.config-pagination{position:static;z-index:auto;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:1rem 0;padding:0;background:transparent;border:0;backdrop-filter:none}.config-subnav a,.config-pagination a{padding:.55rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);text-decoration:none}.config-subnav a[aria-current="page"]{border-color:var(--total-color);box-shadow:inset 0 -2px var(--total-color);font-weight:850}.config-history-change{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.config-history-change>div{min-width:0;padding:.8rem;border-radius:8px;background:var(--surface-raised)}.config-history-change strong,.config-history-change span{display:block}.config-history-change span{color:var(--text-muted);font-size:.82rem}.config-history-change p{overflow-wrap:anywhere}.config-pagination{justify-content:space-between}.config-pagination span{padding:.55rem .75rem}
@media(max-width:700px){.admin-nav{align-items:stretch;flex-direction:column}.admin-nav-links{width:100%;flex-direction:column}.admin-nav a,.admin-nav button{width:100%;text-align:left}.admin-nav form{width:100%}.config-subnav a{flex:1 1 auto;text-align:center}.config-history-change{grid-template-columns:1fr}.config-pagination{align-items:stretch;flex-direction:column;text-align:center}.config-pagination a{width:100%}}
.trk-nav a{padding:.55rem .85rem;border-radius:10px;background:var(--surface);border:1px solid var(--border);color:var(--text);text-decoration:none;font-weight:750;white-space:nowrap}
.trk-nav a:hover{background:var(--surface-raised);border-color:#66728e}
.trk-nav a[aria-current]{border-color:var(--total-color);box-shadow:inset 0 -2px var(--total-color)}
.trk-toolbar .theme-switch{width:auto;flex:0 0 auto;margin:0}
.trk-hero{margin-bottom:1.4rem}
.trk-section{margin-top:2rem}
.trk-section>h2{font-size:1.5rem;margin:.2rem 0 .9rem}
.trk-muted{color:var(--text-muted)}
.trk-time{font-variant-numeric:tabular-nums;white-space:nowrap}
.trk-medals{display:inline-flex;gap:.55rem;flex-wrap:wrap;font-variant-numeric:tabular-nums;white-space:nowrap}
.trk-medals-line{margin:.6rem 0 0}
.trk-frac{display:inline-block;min-width:2.6rem;font-weight:800;font-variant-numeric:tabular-nums}
.trk-progress{display:inline-flex;align-items:center;gap:.5rem;min-width:0}
.trk-progress .progress{margin-top:0;min-width:70px;flex:0 0 auto}
.trk-progress__label{font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:.85rem}
.trk-rank{width:3rem;text-align:center;font-weight:800;font-variant-numeric:tabular-nums}
.trk-table td,.trk-table th{vertical-align:middle}
.trk-medaltimes{font-variant-numeric:tabular-nums}
.trk-badge{display:inline-flex;align-items:center;padding:.15rem .55rem;border-radius:999px;font-size:.72rem;font-weight:800;border:1px solid var(--border);background:var(--surface-raised);color:var(--text-muted);white-space:nowrap}
.trk-badge--official{border-color:var(--total-color);color:var(--total-color);background:transparent}
.trk-badge--medal{border-color:#e6bd54;color:#e6bd54;background:transparent}
.trk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}
.trk-grid--players{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.trk-card{display:flex;flex-direction:column;gap:.75rem;padding:1.1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0;transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}
.trk-card:hover{border-color:#66728e;box-shadow:0 12px 30px #0002}
.trk-card__head{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem}
.trk-card__head h2,.trk-card__head h3{margin:0;font-size:1.2rem;line-height:1.15;overflow-wrap:anywhere}
.trk-card__head a{text-decoration:none}.trk-card__head a:hover{text-decoration:underline}
.trk-card__stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:0}
.trk-card__stats--wide{grid-template-columns:repeat(3,minmax(0,1fr))}
.trk-stat{min-width:0;padding:.5rem .6rem;border:1px solid var(--border);border-radius:10px;background:var(--surface-raised)}
.trk-stat dt{color:var(--text-muted);font-size:.66rem;text-transform:uppercase;letter-spacing:.05em}
.trk-stat dd{margin:.2rem 0 0;font-size:1.02rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trk-stat dd span{display:block;margin-top:.1rem;color:var(--text-muted);font-size:.72rem;font-weight:600}
.trk-card__progress{display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.trk-card__foot,.trk-feature__foot{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;margin-top:auto}
.trk-card__foot a,.trk-feature__foot a:not(.button){color:var(--text-muted);text-decoration:none;font-weight:750}
.trk-card__foot a:hover,.trk-feature__foot a:not(.button):hover{color:var(--text)}
.trk-feature{display:flex;flex-direction:column;gap:1rem;padding:1.3rem;border:1px solid var(--border);border-top:3px solid var(--total-color);border-radius:18px;background:linear-gradient(135deg,var(--surface),var(--surface-raised))}
.trk-feature__head{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.trk-feature__head h3{margin:.1rem 0;font-size:1.7rem;line-height:1;letter-spacing:-.02em}
.trk-feature__head .progress{width:min(220px,40%);flex:0 0 auto;height:10px;margin:0}
.trk-button{margin:0}
.trk-stats{margin:1rem 0}
.trk-notstarted{margin-top:.8rem;border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden}
.trk-notstarted>summary{cursor:pointer;padding:.8rem 1rem;font-weight:800;color:var(--text-muted)}
.trk-notstarted[open]>summary{border-bottom:1px solid var(--border)}
.trk-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;padding:0 .4rem;margin-left:.4rem;border-radius:999px;background:var(--surface-raised);border:1px solid var(--border);font-size:.75rem}
.trk-notstarted__list{list-style:none;margin:0;padding:.4rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.3rem}
.trk-notstarted__list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:.6rem;padding:.5rem .7rem;border-radius:9px;background:var(--surface-raised)}
.trk-notstarted__list a{text-decoration:none;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trk-weeks{display:grid;gap:.6rem}
.trk-week{border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden}
.trk-week>summary{cursor:pointer;padding:.85rem 1rem;display:flex;flex-direction:column;gap:.2rem}
.trk-week__name{font-weight:850;font-size:1.05rem}
.trk-week__meta{color:var(--text-muted);font-size:.82rem}
.trk-week[open]>summary{border-bottom:1px solid var(--border)}
.trk-week__body{padding:1rem}
.trk-week__body h4{margin:1.1rem 0 .5rem}
.trk-activity{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.trk-activity__item{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.75rem .9rem;border:1px solid var(--border);border-radius:11px;background:var(--surface)}
.trk-activity__line{min-width:0}
.trk-activity__player{font-weight:800;text-decoration:none}
.trk-activity__player:hover,.trk-activity__map:hover{text-decoration:underline}
.trk-activity__map{font-weight:750;text-decoration:none;color:var(--text)}
.trk-activity__meta{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.trk-medaltimes-card{padding:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-variant-numeric:tabular-nums}
.trk-accountid{margin-top:.6rem}.trk-accountid code{color:var(--text-muted)}
.trk-footer{margin-top:3rem;padding-top:1.2rem;border-top:1px solid var(--border);color:var(--text-muted);text-align:center;font-size:.85rem}
@media(max-width:900px){.trk-card__stats--wide{grid-template-columns:repeat(2,minmax(0,1fr))}.trk-feature__head{flex-direction:column;align-items:flex-start}.trk-feature__head .progress{width:100%}}
@media(max-width:700px){.trk-shell{width:min(100% - 24px,1280px)}.trk-toolbar{flex-direction:column;align-items:stretch}.trk-toolbar .theme-switch{width:100%}.trk-card__stats,.trk-card__stats--wide{grid-template-columns:1fr 1fr}.trk-activity__item{flex-direction:column;align-items:flex-start;gap:.4rem}.trk-notstarted__list li{grid-template-columns:minmax(0,1fr) auto}}

/* ===== IA redesign: gegroepeerde, collapsible sidebar ===== */
.nav-heading{margin:.9rem .75rem .3rem;font-size:.64rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}
.nav-links>.nav-heading:first-child{margin-top:.2rem}
.nav-module{margin:0}
.nav-module__toggle{display:flex;align-items:center;gap:.7rem;padding:.72rem .75rem;border-radius:9px;cursor:pointer;color:var(--text-muted);font-weight:800;list-style:none;user-select:none;transition:color .16s ease,background-color .16s ease}
.nav-module__toggle::-webkit-details-marker{display:none}
.nav-module__toggle:hover{color:var(--text);background:var(--surface-raised)}
.nav-module__toggle:focus-visible{outline:3px solid var(--total-color);outline-offset:1px}
.nav-module__label{flex:1 1 auto;min-width:0}
.nav-module__chevron{width:.5rem;height:.5rem;flex:0 0 auto;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .16s ease}
.nav-module[open]>.nav-module__toggle{color:var(--text)}
.nav-module[open]>.nav-module__toggle .nav-module__chevron{transform:rotate(45deg)}
.nav-sub{display:flex;flex-direction:column;gap:.1rem;margin:.1rem 0 .35rem}
.site-nav .nav-links .nav-sub a{padding-left:2.15rem;font-size:.92rem;font-weight:700}
.nav-badge{margin-left:auto;padding:.05rem .42rem;border:1px solid var(--border);border-radius:999px;background:var(--surface-raised);color:var(--text-muted);font-size:.6rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}
.site-nav .nav-links a.nav-leaf-flat{display:flex;align-items:center;gap:.7rem}
.nav-drawer-toggle{display:none}
/* ===== Home: KPI-focuscards ===== */
.club-focus{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin:1.5rem 0}
.focus-card{display:flex;flex-direction:column;gap:.55rem;padding:1.25rem;border:1px solid var(--border);border-radius:16px;background:var(--surface);min-width:0}
.focus-card--totd{border-top:3px solid var(--total-color)}
.focus-card--weekly{border-top:3px solid var(--beginner-color)}
.focus-card__eyebrow{font-size:.7rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:var(--total-color);margin:0}
.focus-card h3{margin:.1rem 0;font-size:1.4rem;line-height:1.1;overflow-wrap:anywhere}
.focus-card__stats{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin:.2rem 0}
.focus-card__stats span{color:var(--text-muted)}.focus-card__stats strong{color:var(--text)}
.focus-card__foot{margin-top:auto;padding-top:.4rem}
@media(max-width:900px){.club-focus{grid-template-columns:1fr}}
@media(max-width:1050px){
  .nav-drawer-toggle{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .8rem;border:1px solid var(--border);border-radius:9px;background:var(--surface-raised);color:var(--text);font:inherit;font-weight:800;cursor:pointer}
  .site-nav .nav-links{display:none;width:100%;flex-direction:column;overflow:visible}
  .site-nav .nav-links.is-open{display:flex}
  .site-nav .nav-links .nav-sub a{padding-left:1.7rem}
}
html[data-theme="light"] .nav-module__toggle:hover{background:#0000000a}

/* ===== Herbruikbare visual-laag (TOTD/Weekly/Campaign/RPG/WR/RMT) ===== */
.tv{position:relative;width:100%;overflow:hidden;border-radius:12px;background:var(--surface-raised);border:1px solid var(--border);line-height:0}
.tv--16x9{aspect-ratio:16/9}
.tv--21x9{aspect-ratio:21/9}
.tv--badge{aspect-ratio:1/1;width:44px;height:44px;flex:0 0 auto;border-radius:11px}
.tv__img,.tv__tile{width:100%;height:100%;object-fit:cover;display:block}
.tv--cover{background:#0b0e16}
.tv__collage{display:grid;width:100%;height:100%;gap:2px}
.tv__collage--2{grid-template-columns:1fr 1fr}
.tv__collage--3{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.tv__collage--3 .tv__tile:first-child{grid-row:1/3}
.tv__collage--4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.tv--fallback{display:grid;place-items:center;background:linear-gradient(135deg,var(--surface),var(--surface-raised))}
.tv__fallback{display:grid;place-items:center;width:100%;height:100%;color:var(--total-color)}
.tv__fallback svg{width:36%;height:36%;max-width:92px;max-height:92px}
.tv--badge .tv__fallback svg{width:66%;height:66%}
.tv__fallback--totd{color:var(--intermediate-color)}
.tv__fallback--weekly{color:var(--beginner-color)}
.tv__fallback--campaign{color:var(--total-color)}
.tv__fallback--rpg{color:var(--total-color)}
.tv__fallback--beginner{color:var(--beginner-color)}
.tv__fallback--intermediate{color:var(--intermediate-color)}
.tv__fallback--advanced{color:var(--advanced-color)}
.tv__fallback--wr{color:#e6bd54}
.tv__fallback--rmt{color:var(--advanced-color)}
/* visual bovenaan een card */
.trk-card__cover{margin:-1.1rem -1.1rem .2rem;border-radius:var(--radius) var(--radius) 0 0;border:0;border-bottom:1px solid var(--border)}
.trk-card__cover.tv--16x9{border-radius:var(--radius) var(--radius) 0 0}
.focus-card__cover{margin:-1.25rem -1.25rem .2rem;border-radius:16px 16px 0 0;border:0;border-bottom:1px solid var(--border)}
.trk-hero__visual{max-width:520px;margin:.6rem 0 0}
.room-progress__visual{margin-right:.2rem}
html[data-theme="light"] .tv--cover{background:#eef2f8}
.room-progress--iconed{grid-template-columns:auto minmax(0,1fr) auto}
.room-progress--iconed .room-progress__visual{grid-row:1/2;align-self:center}

/* ===== Polish: clubbrede KPI-balk ===== */
.kpi-bar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;margin:1.4rem 0}
.kpi{display:flex;flex-direction:column;gap:.28rem;padding:1rem;border:1px solid var(--border);border-radius:14px;background:var(--surface);min-width:0}
.kpi__label{font-size:.68rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
.kpi__value{font-size:1.3rem;font-weight:850;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kpi__value a{text-decoration:none}.kpi__value a:hover{text-decoration:underline}
.kpi__sub{color:var(--text-muted);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1050px){.kpi-bar{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.kpi-bar{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* ===== Polish: generieke clubactiviteit ===== */
.club-activity-section{margin-top:2rem}
.club-act{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.club-act__item{display:flex;align-items:flex-start;gap:.7rem;padding:.7rem .85rem;border:1px solid var(--border);border-radius:11px;background:var(--surface)}
.club-act__badge{flex:0 0 auto;margin-top:.05rem;padding:.14rem .5rem;border-radius:999px;font-size:.62rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--border);color:var(--text-muted);background:var(--surface-raised)}
.club-act__badge--rpg{border-color:var(--total-color);color:var(--total-color)}
.club-act__badge--weekly{border-color:var(--beginner-color);color:var(--beginner-color)}
.club-act__badge--campaign{border-color:var(--intermediate-color);color:var(--intermediate-color)}
.club-act__body{min-width:0}
.club-act__line{overflow-wrap:anywhere}
.club-act__player{font-weight:800;text-decoration:none}.club-act__player:hover{text-decoration:underline}
.club-act__map{font-weight:700;text-decoration:none;color:var(--text)}.club-act__map:hover{text-decoration:underline}
.club-act__verb{color:var(--text-muted)}
.club-act__time{color:var(--text-muted);font-variant-numeric:tabular-nums}
.club-act__meta{margin-top:.15rem;color:var(--text-muted);font-size:.8rem}
.club-act__medal{color:#e6bd54;font-weight:750}
.focus-card__medals{margin:.1rem 0 0;color:var(--text-muted);font-size:.85rem;font-variant-numeric:tabular-nums}
/* ===== Polish: TOTD-detail ===== */
.totd-current h2{margin:.2rem 0}
.totd-history{list-style:none;margin:.4rem 0 0;padding:0;display:grid;gap:.3rem}
.totd-history li{display:flex;gap:.9rem;align-items:baseline;padding:.5rem .7rem;border:1px solid var(--border);border-radius:9px;background:var(--surface)}
.totd-history__date{color:var(--text-muted);font-variant-numeric:tabular-nums;flex:0 0 auto}
.totd-history__map{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
/* ===== Polish: compactere Weekly-visual + 5-tile collage + campaign consistentie ===== */
.tv--weekly{aspect-ratio:11/4}
.tv__collage--5{grid-template-columns:1.6fr 1fr 1fr;grid-template-rows:1fr 1fr}
.tv__collage--5 .tv__tile:first-child{grid-row:1/3}
/* subtiele gradient zodat de visual aansluit bij de card (licht + donker) */
.tv--cover::after,.tv--collage::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 60%,#00000012)}
html[data-theme="light"] .tv--cover::after,html[data-theme="light"] .tv--collage::after{background:linear-gradient(180deg,transparent 62%,#0000000a)}
/* ===== Polish: sidebar-groepslabels iets leesbaarder ===== */
.nav-heading{margin:1.05rem .75rem .35rem;font-size:.68rem;font-weight:850;letter-spacing:.14em;color:var(--text-muted)}

/* ===== Admin notification preview ===== */
.ntf-item{margin:.8rem 0}
.ntf-item__head{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem;flex-wrap:wrap}
.ntf-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem;margin:.4rem 0}
.ntf-meta dt{color:var(--text-muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}
.ntf-meta dd{margin:.1rem 0 0;overflow-wrap:anywhere}
.ntf-embed{display:flex;gap:.8rem;padding:.8rem;border-left:3px solid var(--total-color);border-radius:8px;background:var(--surface);margin:.5rem 0}
.ntf-embed__img{width:96px;height:54px;object-fit:cover;border-radius:6px;flex:0 0 auto}
.ntf-embed__body{min-width:0}
.ntf-embed__title{display:block;font-size:1.02rem}
.ntf-embed__desc{margin:.2rem 0;white-space:normal}
.ntf-fields{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin:.3rem 0}
.ntf-field dt{color:var(--text-muted);font-size:.66rem;text-transform:uppercase}
.ntf-field dd{margin:0;font-weight:700}
.ntf-reasons{margin:.3rem 0 0;padding-left:1.1rem;color:var(--text-muted)}
.ntf-gate{margin:.5rem 0}
.ntf-raw pre{max-height:16rem;overflow:auto;padding:.6rem;border:1px solid var(--border);border-radius:6px;background:var(--bg)}
.ntf-testfire{display:flex;flex-wrap:wrap;align-items:end;gap:.6rem;margin-top:.6rem}
.ntf-testfire label{display:grid;gap:.25rem;color:var(--text-muted)}

/* ===== Admin player management ===== */
.player-admin-filters{display:flex;align-items:end;gap:.75rem;flex-wrap:wrap;margin:1rem 0}
.player-admin-filters label{display:grid;gap:.25rem;min-width:150px}
.player-admin-filters input{min-width:min(280px,70vw)}
.player-admin-table th small{display:block;margin-top:.2rem;color:var(--text-muted);font-weight:400}
@media(max-width:700px){
  .player-admin-filters,.player-admin-filters label,.player-admin-filters input,.player-admin-filters select,.player-admin-filters button{width:100%}
  .player-admin-table{border:0;background:transparent;overflow:visible}
  .player-admin-table table,.player-admin-table tbody,.player-admin-table tr,.player-admin-table th,.player-admin-table td{display:block;min-width:0}
  .player-admin-table thead{display:none}
  .player-admin-table tr{margin-bottom:.75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}
  .player-admin-table td{padding:.45rem .8rem}
  .player-admin-table td:before{display:block;color:var(--text-muted);font-size:.7rem;text-transform:uppercase}
  .player-admin-table td:nth-child(2):before{content:"Discord"}.player-admin-table td:nth-child(3):before{content:"Status"}.player-admin-table td:nth-child(4):before{content:"Trackers"}.player-admin-table td:nth-child(5):before{content:"Laatste sync"}.player-admin-table td:nth-child(6):before{content:"Problemen"}
}

/* ============================================================
   UX-1 shared foundation — reference primitives (Admin Players + Player Profile).
   Namespaced with .ux- to coexist with the existing stylesheet.
   Light is primary; dark is a full parallel theme via [data-theme="dark"].
   ============================================================ */
:root {
  --ux-bg: #f4f5f7;
  --ux-surface: #ffffff;
  --ux-surface-2: #f0f1f4;
  --ux-surface-hover: #e9ebef;
  --ux-border: #d9dce2;
  --ux-border-strong: #c2c7d0;
  --ux-text: #1a1d23;
  --ux-text-dim: #5b626e;
  --ux-text-faint: #868d99;
  --ux-accent: #1f9d57;            /* Gas d'r Op green, restrained */
  --ux-accent-strong: #16743f;
  --ux-accent-soft: #e4f4ea;
  --ux-on-accent: #ffffff;
  --ux-ok: #1f9d57;
  --ux-warn: #b9770a;
  --ux-warn-soft: #fbf0d8;
  --ux-danger: #c23b3b;
  --ux-danger-soft: #f8e4e4;
  --ux-focus: #2f6df0;
  --ux-beginner: #2f8f4e;
  --ux-intermediate: #c9902a;
  --ux-advanced: #b5493f;
  --ux-radius: 10px;
  --ux-radius-sm: 7px;
  --ux-radius-pill: 999px;
  --ux-gap: 12px;
  --ux-pad: 16px;
  --ux-shadow: 0 1px 2px rgba(20,25,35,.06), 0 1px 3px rgba(20,25,35,.05);
  --ux-mono: ui-monospace, "SFMono-Regular", "Menlo", monospace;
  --ux-t: 140ms;
}
[data-theme="dark"] {
  --ux-bg: #12151b;
  --ux-surface: #1a1e26;
  --ux-surface-2: #21262f;
  --ux-surface-hover: #272d38;
  --ux-border: #2c333e;
  --ux-border-strong: #3a4250;
  --ux-text: #e8ebf0;
  --ux-text-dim: #a3abb8;
  --ux-text-faint: #78808d;
  --ux-accent: #2fbd6b;
  --ux-accent-strong: #35d179;
  --ux-accent-soft: #17311f;
  --ux-on-accent: #06110a;
  --ux-ok: #2fbd6b;
  --ux-warn: #e0a53a;
  --ux-warn-soft: #33280f;
  --ux-danger: #e26565;
  --ux-danger-soft: #331c1c;
  --ux-focus: #5b8bf5;
  --ux-beginner: #46b06a;
  --ux-intermediate: #e0b04a;
  --ux-advanced: #e07067;
  --ux-shadow: 0 1px 2px rgba(0,0,0,.4);
}

/* ---- shell ------------------------------------------------ */
.ux-page { color: var(--ux-text); }
.ux-page-header { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 16px; margin: 4px 0 18px; }
.ux-page-header__titles { flex: 1 1 auto; min-width: 0; }
.ux-eyebrow { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ux-text-faint); font-weight: 600; margin: 0 0 2px; }
.ux-page-header h1 { font-size: 1.5rem; line-height: 1.15; margin: 0; letter-spacing: -.01em; }
.ux-page-header__sub { color: var(--ux-text-dim); margin: 4px 0 0; font-size: .92rem; }
.ux-header-actions { display: flex; gap: 8px; flex: 0 0 auto; }

/* ---- stat strip ------------------------------------------ */
.ux-stat-strip { display: flex; flex-wrap: wrap; gap: 8px 22px; align-items: baseline; padding: 12px 14px; background: var(--ux-surface); border: 1px solid var(--ux-border); border-radius: var(--ux-radius); margin: 0 0 16px; }
.ux-stat { display: inline-flex; align-items: baseline; gap: 7px; }
.ux-stat__value { font-size: 1.18rem; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.ux-stat__label { color: var(--ux-text-dim); font-size: .82rem; }
.ux-stat + .ux-stat { border-left: 1px solid var(--ux-border); padding-left: 22px; }

/* ---- buttons --------------------------------------------- */
.ux-btn { --b: var(--ux-surface-2); appearance: none; font: inherit; font-weight: 600; font-size: .86rem; line-height: 1; display: inline-flex; align-items: center; gap: 7px; padding: 8px 13px; border-radius: var(--ux-radius-sm); border: 1px solid var(--ux-border-strong); background: var(--b); color: var(--ux-text); cursor: pointer; transition: background var(--ux-t) ease, border-color var(--ux-t) ease, transform var(--ux-t) ease; }
.ux-btn:hover { background: var(--ux-surface-hover); }
.ux-btn:active { transform: translateY(1px); }
.ux-btn:focus-visible { outline: 2px solid var(--ux-focus); outline-offset: 2px; }
.ux-btn--primary { background: var(--ux-accent); border-color: var(--ux-accent); color: var(--ux-on-accent); }
.ux-btn--primary:hover { background: var(--ux-accent-strong); border-color: var(--ux-accent-strong); }
.ux-btn--ghost { background: transparent; border-color: transparent; color: var(--ux-text-dim); padding: 6px 9px; }
.ux-btn--ghost:hover { background: var(--ux-surface-2); color: var(--ux-text); }
.ux-btn--danger { color: var(--ux-danger); border-color: var(--ux-border-strong); background: transparent; }
.ux-btn--danger:hover { background: var(--ux-danger-soft); border-color: var(--ux-danger); }
.ux-btn--sm { padding: 5px 10px; font-size: .8rem; }
.ux-btn[disabled], .ux-btn[aria-busy="true"] { opacity: .62; cursor: default; pointer-events: none; }
.ux-btn[aria-busy="true"] .ux-spin { display: inline-block; }
.ux-spin { display: none; width: 12px; height: 12px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: ux-spin .6s linear infinite; }
@keyframes ux-spin { to { transform: rotate(360deg); } }

/* ---- status pills ---------------------------------------- */
.ux-status { display: inline-flex; align-items: center; gap: 5px; font-size: .75rem; font-weight: 600; padding: 2px 9px; border-radius: var(--ux-radius-pill); background: var(--ux-surface-2); color: var(--ux-text-dim); border: 1px solid var(--ux-border); white-space: nowrap; }
.ux-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.ux-status--ok { color: var(--ux-ok); background: var(--ux-accent-soft); border-color: transparent; }
.ux-status--warn { color: var(--ux-warn); background: var(--ux-warn-soft); border-color: transparent; }
.ux-status--danger { color: var(--ux-danger); background: var(--ux-danger-soft); border-color: transparent; }
.ux-status--muted { color: var(--ux-text-faint); }
.ux-status--muted::before { background: var(--ux-border-strong); }

/* ---- filter / action bar --------------------------------- */
.ux-bar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 14px; }
.ux-bar__search { flex: 1 1 220px; min-width: 160px; }
.ux-input, .ux-select { font: inherit; font-size: .88rem; padding: 8px 11px; border-radius: var(--ux-radius-sm); border: 1px solid var(--ux-border-strong); background: var(--ux-surface); color: var(--ux-text); width: 100%; }
.ux-input:focus-visible, .ux-select:focus-visible { outline: 2px solid var(--ux-focus); outline-offset: 1px; border-color: var(--ux-focus); }
.ux-field { display: flex; flex-direction: column; gap: 4px; }
.ux-field__label { font-size: .78rem; color: var(--ux-text-dim); font-weight: 600; }

/* ---- player rows (admin) --------------------------------- */
.ux-rows { display: flex; flex-direction: column; border: 1px solid var(--ux-border); border-radius: var(--ux-radius); overflow: hidden; background: var(--ux-surface); }
.ux-prow { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(0,1.5fr) auto; align-items: center; gap: 12px; padding: 11px 14px; border-top: 1px solid var(--ux-border); transition: background var(--ux-t) ease; }
.ux-prow:first-child { border-top: 0; }
.ux-prow:hover { background: var(--ux-surface-2); }
.ux-prow.ux-flash { animation: ux-flash 1.1s ease; }
@keyframes ux-flash { 0% { background: var(--ux-accent-soft); } 100% { background: transparent; } }
.ux-prow__id { min-width: 0; }
.ux-prow__name { font-weight: 650; font-size: .96rem; }
.ux-prow__name a { color: inherit; text-decoration: none; }
.ux-prow__name a:hover { text-decoration: underline; }
.ux-prow__meta { color: var(--ux-text-faint); font-size: .76rem; margin-top: 2px; }
.ux-prow__discord { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
.ux-prow__discord-name { color: var(--ux-text-dim); font-size: .84rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ux-prow__actions { display: flex; gap: 6px; justify-content: flex-end; }
.ux-prow__editor { grid-column: 1 / -1; }
.ux-prow__editor[hidden] { display: none; }

/* ---- inline editor --------------------------------------- */
.ux-editor { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; padding: 12px; margin-top: 4px; background: var(--ux-surface-2); border: 1px solid var(--ux-border); border-radius: var(--ux-radius-sm); }
.ux-editor .ux-field { flex: 1 1 200px; }
.ux-editor__actions { display: flex; gap: 8px; }
.ux-error { color: var(--ux-danger); font-size: .82rem; margin: 2px 0 0; min-height: 1em; }
.ux-error:empty { display: none; }
.ux-hint { color: var(--ux-text-faint); font-size: .76rem; }

/* ---- disclosure (Advanced) ------------------------------- */
.ux-disclosure { border: 1px solid var(--ux-border); border-radius: var(--ux-radius); background: var(--ux-surface); margin-top: 18px; }
.ux-disclosure > summary { cursor: pointer; list-style: none; padding: 12px 14px; font-weight: 600; font-size: .9rem; color: var(--ux-text-dim); display: flex; align-items: center; gap: 8px; }
.ux-disclosure > summary::-webkit-details-marker { display: none; }
.ux-disclosure > summary::before { content: "▸"; color: var(--ux-text-faint); transition: transform var(--ux-t) ease; }
.ux-disclosure[open] > summary::before { transform: rotate(90deg); }
.ux-disclosure > summary:focus-visible { outline: 2px solid var(--ux-focus); outline-offset: -2px; border-radius: var(--ux-radius); }
.ux-disclosure__body { padding: 0 14px 14px; color: var(--ux-text-dim); font-size: .88rem; }

/* ---- empty / loading ------------------------------------- */
.ux-empty { padding: 28px 16px; text-align: center; color: var(--ux-text-dim); border: 1px dashed var(--ux-border-strong); border-radius: var(--ux-radius); background: var(--ux-surface); }
.ux-skeleton { background: linear-gradient(90deg, var(--ux-surface-2) 25%, var(--ux-surface-hover) 37%, var(--ux-surface-2) 63%); background-size: 400% 100%; animation: ux-shimmer 1.3s ease infinite; border-radius: var(--ux-radius-sm); }
@keyframes ux-shimmer { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } }

/* ---- toast ----------------------------------------------- */
.ux-toast-host { position: fixed; right: 16px; bottom: 16px; z-index: 60; display: flex; flex-direction: column; gap: 8px; max-width: min(92vw, 380px); }
.ux-toast { display: flex; align-items: flex-start; gap: 9px; padding: 11px 13px; border-radius: var(--ux-radius); background: var(--ux-surface); color: var(--ux-text); border: 1px solid var(--ux-border-strong); box-shadow: var(--ux-shadow); font-size: .88rem; animation: ux-toast-in var(--ux-t) ease; }
.ux-toast.ux-out { animation: ux-toast-out var(--ux-t) ease forwards; }
.ux-toast::before { content: ""; width: 4px; align-self: stretch; border-radius: 3px; background: var(--ux-text-faint); }
.ux-toast--ok::before { background: var(--ux-ok); }
.ux-toast--error::before { background: var(--ux-danger); }
@keyframes ux-toast-in { from { opacity: 0; transform: translateY(8px); } }
@keyframes ux-toast-out { to { opacity: 0; transform: translateY(8px); } }

/* ---- profile: identity + progress + tabs + activity ------ */
.ux-profile-head { display: flex; align-items: center; gap: 16px; padding: 16px; background: var(--ux-surface); border: 1px solid var(--ux-border); border-radius: var(--ux-radius); margin-bottom: 14px; }
.ux-avatar { width: 60px; height: 60px; border-radius: 50%; object-fit: cover; background: var(--ux-surface-2); border: 1px solid var(--ux-border); flex: 0 0 auto; display: grid; place-items: center; font-weight: 700; color: var(--ux-text-dim); font-size: 1.2rem; }
.ux-profile-head__id { min-width: 0; flex: 1 1 auto; }
.ux-profile-head h1 { margin: 0; font-size: 1.55rem; letter-spacing: -.01em; line-height: 1.1; }
.ux-profile-head__meta { color: var(--ux-text-dim); font-size: .88rem; margin-top: 3px; }
.ux-profile-head__actions { display: flex; gap: 8px; flex: 0 0 auto; }

.ux-progress-list { display: flex; flex-direction: column; gap: 10px; }
.ux-progress-row { display: grid; grid-template-columns: 120px 1fr auto; align-items: center; gap: 12px; }
.ux-progress-row__label { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: .9rem; }
.ux-progress-row__label::before { content: ""; width: 9px; height: 9px; border-radius: 2px; background: var(--ux-border-strong); }
.ux-progress-row[data-room="beginner"] .ux-progress-row__label::before { background: var(--ux-beginner); }
.ux-progress-row[data-room="intermediate"] .ux-progress-row__label::before { background: var(--ux-intermediate); }
.ux-progress-row[data-room="advanced"] .ux-progress-row__label::before { background: var(--ux-advanced); }
.ux-track { height: 8px; border-radius: var(--ux-radius-pill); background: var(--ux-surface-2); overflow: hidden; }
.ux-track__fill { height: 100%; border-radius: inherit; background: var(--ux-accent); transition: width var(--ux-t) ease; }
.ux-progress-row[data-room="beginner"] .ux-track__fill { background: var(--ux-beginner); }
.ux-progress-row[data-room="intermediate"] .ux-track__fill { background: var(--ux-intermediate); }
.ux-progress-row[data-room="advanced"] .ux-track__fill { background: var(--ux-advanced); }
.ux-progress-row__value { font-variant-numeric: tabular-nums; font-weight: 650; font-size: .88rem; min-width: 92px; text-align: right; color: var(--ux-text-dim); }

.ux-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 20px 0 10px; }
.ux-section-head h2 { font-size: 1.05rem; margin: 0; letter-spacing: -.01em; }
.ux-section-head__hint { color: var(--ux-text-faint); font-size: .8rem; }

.ux-activity { display: flex; flex-direction: column; border: 1px solid var(--ux-border); border-radius: var(--ux-radius); overflow: hidden; background: var(--ux-surface); }
.ux-arow { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; padding: 10px 14px; border-top: 1px solid var(--ux-border); }
.ux-arow:first-child { border-top: 0; }
.ux-arow__badge { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--ux-text-faint); }
.ux-arow__main { min-width: 0; font-size: .9rem; }
.ux-arow__main a { color: inherit; }
.ux-arow__time { color: var(--ux-text-faint); font-size: .8rem; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ---- responsive ------------------------------------------ */
@media (max-width: 640px) {
  .ux-prow { grid-template-columns: 1fr; gap: 8px; }
  .ux-prow__actions { justify-content: flex-start; }
  .ux-stat-strip { gap: 6px 16px; }
  .ux-stat + .ux-stat { border-left: 0; padding-left: 0; }
  .ux-progress-row { grid-template-columns: 96px 1fr; grid-template-areas: "label value" "track track"; row-gap: 5px; }
  .ux-progress-row__label { grid-area: label; }
  .ux-progress-row__value { grid-area: value; }
  .ux-track { grid-area: track; }
  .ux-profile-head { flex-wrap: wrap; }
  .ux-toast-host { left: 12px; right: 12px; max-width: none; }
}

.ux-hide { display: none !important; }

/* ---- reduced motion -------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .ux-btn, .ux-track__fill, .ux-disclosure > summary::before { transition: none; }
  .ux-spin, .ux-prow.ux-flash, .ux-toast, .ux-toast.ux-out, .ux-skeleton { animation: none; }
}

/* ---- admin-nav theme switch (reuse public .theme-switch, compact inline) -- */
.admin-nav .theme-switch { width: auto; margin: 0; flex: 0 0 auto; grid-template-columns: auto auto; }
.admin-nav .theme-seg { padding: .45rem .7rem; }

/* ---- diagnostics: preformatted status + grouped technical blocks --------- */
.ux-pre { max-height: 28rem; overflow: auto; margin: 0; padding: 10px 12px; border: 1px solid var(--ux-border); border-radius: var(--ux-radius-sm); background: var(--ux-surface-2); color: var(--ux-text-dim); font: 12px/1.5 var(--ux-mono); white-space: pre-wrap; overflow-wrap: anywhere; }
.ux-tech-block { margin: 0 0 14px; }
.ux-tech-block h4 { margin: .3rem 0; font-size: .92rem; }

/* ---- admin record/detail surfaces ---------------------------------------- */
.ux-card { margin: 14px 0; padding: 14px 16px; border: 1px solid var(--ux-border); border-radius: var(--ux-radius); background: var(--ux-surface); }
.ux-card > h2 { margin: 0 0 10px; font-size: 1.02rem; letter-spacing: -.01em; }
.ux-dl { display: grid; grid-template-columns: minmax(160px, auto) 1fr; gap: 4px 16px; margin: 0; font-size: .88rem; }
.ux-dl dt { color: var(--ux-text-dim); }
.ux-dl dd { margin: 0; font-variant-numeric: tabular-nums; }
.ux-stack { display: flex; flex-direction: column; gap: 10px; margin: 12px 0; }
.ux-stack form { display: flex; flex-wrap: wrap; align-items: end; gap: 8px; margin: 0; }
.ux-stack label { display: grid; gap: 4px; font-size: .85rem; color: var(--ux-text-dim); }
.ux-stack p { margin: 0; font-size: .85rem; color: var(--ux-text-dim); }

/* ---- UX-2C public home: compact header, grouped hierarchy, quick nav ------ */
.home-header { padding: 1.05rem 1.3rem; }
.home-header h1 { font-size: clamp(1.6rem, 3vw, 2.6rem); }
.home-section { margin-top: 1.7rem; }
.home-section > .ux-section-head { margin: 0 0 .7rem; padding-bottom: .4rem; border-bottom: 1px solid var(--border); }
.home-section > .ux-section-head h2 { font-size: 1.15rem; }
a.ux-section-head__hint { text-decoration: none; font-weight: 650; }
a.ux-section-head__hint:hover { text-decoration: underline; }
.home-quicknav { display: flex; flex-wrap: wrap; gap: .5rem; }
.home-quicknav__link { display: inline-flex; align-items: center; padding: .5rem .85rem; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); color: var(--text); text-decoration: none; font-weight: 650; font-size: .85rem; transition: background-color .16s ease, border-color .16s ease, transform .16s ease; }
.home-quicknav__link:hover { background: var(--surface-raised); border-color: #66728e; transform: translateY(-1px); }
@media (prefers-reduced-motion: reduce) { .home-quicknav__link { transition: none; } }

/* ---- utilities ----------------------------------------------------------- */
.ux-visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---- UX-3A players: dense, responsive ranking table ---------------------- */
.players-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.players-table thead th { text-align: left; font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--text-dim); font-weight: 700; padding: 7px 10px; border-bottom: 1px solid var(--border); }
.players-table tbody td, .players-table tbody th { padding: 8px 10px; border-bottom: 1px solid var(--border); vertical-align: middle; text-align: left; font-weight: 400; }
.players-table tbody tr:hover { background: var(--surface-raised); }
.players-table .pl-rank { color: var(--text-faint); font-variant-numeric: tabular-nums; width: 2.4rem; }
.players-table .pl-name a { display: inline-flex; align-items: center; gap: .55rem; color: inherit; text-decoration: none; font-weight: 650; }
.players-table .pl-name a:hover span { text-decoration: underline; }
.players-table .pl-total strong, .players-table .pl-room strong { font-variant-numeric: tabular-nums; }
.players-table .pl-room span, .players-table .pl-total span { color: var(--text-dim); font-size: .8rem; }
.players-table .pl-room .progress, .players-table .pl-total .progress { margin-top: 3px; }
.players-table .pl-last { color: var(--text-dim); font-size: .82rem; white-space: nowrap; }
.players-table .pl-act { text-align: right; }
@media (max-width: 760px) {
  .players-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .players-table, .players-table tbody, .players-table tr, .players-table td, .players-table th { display: block; }
  .players-table tbody tr { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 12px; margin-bottom: 10px; background: var(--surface); }
  .players-table tbody td, .players-table tbody th { border: 0; padding: 0; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
  .players-table tbody td::before { content: attr(data-label); color: var(--text-dim); font-size: .72rem; text-transform: uppercase; letter-spacing: .03em; font-weight: 700; }
  .players-table .pl-name { order: -3; font-size: 1.02rem; padding-bottom: 6px !important; margin-bottom: 2px; border-bottom: 1px solid var(--border) !important; }
  .players-table .pl-total { order: -2; }
  .players-table .pl-rank { order: -1; width: auto; }
  .players-table .pl-act { order: 10; padding-top: 6px !important; }
  .players-table .pl-room .progress, .players-table .pl-total .progress { flex: 0 0 90px; margin: 0; }
}

/* ---- UX-3B rankings + progress: page chrome + dense-data responsiveness --- */
.ux-page .ux-page-header, main.dashboard-main > .ux-page-header { margin-top: 2px; }
.matrix-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (max-width: 760px) {
  /* keep the map name readable while the dense matrix scrolls horizontally
     (bewuste transformatie i.p.v. een onbruikbaar 25-koloms mini-spreadsheet) */
  .matrix th:first-child, .matrix td:first-child { position: sticky; left: 0; z-index: 2; background: var(--surface); box-shadow: 1px 0 0 var(--border); }
  .matrix thead th:first-child { z-index: 3; }
  .rankings-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  #rankings-table { min-width: 34rem; }
}

/* ---- UX-3C rooms: room detail difficulty identity + compact map rows ------ */
.room-detail-head { border-left: 3px solid var(--border); padding-left: 12px; }
.room-detail-head.beginner { border-left-color: var(--beginner-color); }
.room-detail-head.intermediate { border-left-color: var(--intermediate-color); }
.room-detail-head.advanced { border-left-color: var(--advanced-color); }
.room-detail-head .ux-eyebrow { display: inline-flex; align-items: center; gap: 7px; }
.room-ranking { width: 100%; border-collapse: collapse; }
.room-ranking th, .room-ranking td { text-align: left; padding: 7px 10px; border-bottom: 1px solid var(--border); }
.room-ranking .rank { color: var(--text-faint); font-variant-numeric: tabular-nums; width: 3rem; }
.map-rows { margin-top: 4px; }
.map-rows .map-row { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(120px,.9fr) minmax(0,1.3fr) auto; align-items: center; gap: 12px; padding: 9px 14px; border-top: 1px solid var(--border); }
.map-rows .map-row:first-child { border-top: 0; }
.map-rows .map-row:hover { background: var(--surface-raised); }
.map-row__name { display: flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; min-width: 0; }
.map-row__pos { color: var(--text-faint); font-variant-numeric: tabular-nums; white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; }
.map-row__title { display: flex; flex-direction: column; min-width: 0; font-weight: 650; }
.map-row__title small { color: var(--text-dim); font-weight: 400; font-size: .78rem; }
.map-row__name:hover .map-row__title { text-decoration: underline; }
.map-row__prog { font-size: .82rem; color: var(--text-dim); display: flex; flex-direction: column; gap: 3px; }
.map-row__prog b { color: var(--text); }
.map-row__by { font-size: .8rem; color: var(--text-dim); overflow: hidden; text-overflow: ellipsis; }
.map-row__by a { color: var(--text-dim); }
.map-row__act { justify-self: end; }
@media (max-width: 760px) {
  .map-rows .map-row { grid-template-columns: 1fr auto; gap: 6px 12px; }
  .map-row__name { grid-column: 1; grid-row: 1; }
  .map-row__act { grid-column: 2; grid-row: 1; }
  .map-row__prog { grid-column: 1 / -1; grid-row: 2; flex-direction: row; align-items: center; gap: 8px; }
  .map-row__by { grid-column: 1 / -1; grid-row: 3; }
}

/* ---- UX-3D finishes: full-page activity feed (same language as the home feed) */
.finishes-feed { border: 1px solid var(--border); border-radius: var(--ux-radius, 12px); background: var(--surface); overflow: hidden; }
.finishes-feed > li { padding: 10px 14px; border-top: 1px solid var(--border); }
.finishes-feed > li:first-child { border-top: 0; }
.finishes-feed > li:hover { background: var(--surface-raised); }

/* ---- UX-4B map detail: discovery provenance moved to an Advanced disclosure */
.map-discovery-adv { margin: 2px 0; }
.map-discovery-adv > summary { cursor: pointer; list-style: none; color: var(--text-dim); font-size: .74rem; }
.map-discovery-adv > summary::-webkit-details-marker { display: none; }
.map-discovery-adv > summary::before { content: "▸ "; color: var(--text-faint); }
.map-discovery-adv[open] > summary::before { content: "▾ "; }

/* ---- UX-4C planner: compact recommendation rows + duration hint ----------- */
.planner-hint { margin: 6px 0 0; font-size: .82rem; color: var(--text-dim); }
.planner-rows .planner-row { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(0,1.4fr) auto; gap: 12px; align-items: center; padding: 9px 14px; border-top: 1px solid var(--border); }
.planner-rows .planner-row:first-child { border-top: 0; }
.planner-rows .planner-row:hover { background: var(--surface-raised); }
.planner-row__reason { font-size: .82rem; color: var(--text-dim); }
.planner-row__act { display: flex; gap: 6px; justify-self: end; flex-wrap: wrap; }
@media (max-width: 760px) { .planner-rows .planner-row { grid-template-columns: 1fr; gap: 6px; } .planner-row__act { justify-self: start; } }

/* ---- UX-4D TOTD: compact current-map identity + history rows -------------- */
.totd-current { display: grid; grid-template-columns: minmax(0,300px) 1fr; gap: 16px; align-items: center; padding: 14px; border: 1px solid var(--border); border-radius: var(--ux-radius, 12px); background: var(--surface); }
.totd-current__cover { border-radius: 10px; overflow: hidden; }
.totd-current__body h3 { margin: 0 0 4px; font-size: 1.15rem; letter-spacing: -.01em; }
.totd-history .totd-history__row { display: grid; grid-template-columns: minmax(110px,auto) 1fr; gap: 14px; padding: 8px 14px; border-top: 1px solid var(--border); align-items: baseline; }
.totd-history .totd-history__row:first-child { border-top: 0; }
.totd-history .totd-history__row:hover { background: var(--surface-raised); }
.totd-history__date { color: var(--text-dim); font-variant-numeric: tabular-nums; font-size: .85rem; }
.totd-history__map { font-weight: 550; }
@media (max-width: 640px) { .totd-current { grid-template-columns: 1fr; } }
