/* ASHRIFT LEADERBOARD 3.5 — responsive, reduced motion, strict CSP */
:root{--ash-night:#06111a;--ash-panel:#071b2a;--ash-edge:#224458;--ash-white:#ebf5ff;--ash-muted:#94afc4;--ash-red:#fc405b;--ash-green:#37e39c;--ash-gold:#f4bd66}
.ash-board-page{margin:0;background:radial-gradient(ellipse 70% 36% at 70% -10%,#2c1021 0%,transparent 80%),#051019;color:var(--ash-white);font-family:Inter,Arial,Helvetica,sans-serif;min-height:100vh}
.ash-board-page *,.ash-board-home *{box-sizing:border-box}
.ash-board-page button,.ash-board-home button{font:inherit;cursor:pointer;color:inherit}
.ash-board-page a{text-decoration:none;color:inherit}
.ash-leader-top{display:flex;align-items:center;gap:34px;justify-content:space-between;max-width:1500px;margin:0 auto;min-height:83px;padding:8px 24px;border-bottom:1px solid #253b4c}
.ash-leader-brand{display:flex;align-items:center;gap:13px;min-width:210px}.ash-leader-brand img{height:58px;width:58px;object-fit:contain}.ash-leader-brand strong{display:block;font-size:30px;letter-spacing:4px;line-height:1.15}.ash-leader-brand small{font-size:9px;letter-spacing:4px;color:#b6c8d4}.ash-leader-top nav{display:flex;align-items:center;gap:12px}.ash-leader-top nav a{padding:13px 12px;color:#a9bdcc;font-weight:800;font-size:11px}.ash-leader-top nav a:hover,.ash-leader-top nav a.active{color:#ff516c;border-bottom:2px solid var(--ash-red)}
.ash-dot{display:inline-block;background:#31dd88;height:8px;width:8px;border-radius:50%;box-shadow:0 0 0 4px #31dd8820;flex-shrink:0}.ash-leader-online{font-size:11px;display:flex;align-items:center;gap:10px;color:var(--ash-green);font-weight:800;white-space:nowrap}
.ash-leader-main{max-width:1500px;margin:0 auto;padding:25px 20px 42px}.ash-leader-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:19px}.ash-leader-intro h1{font-size:clamp(28px,3.6vw,45px);font-weight:900;margin:7px 0 5px;letter-spacing:.4px}.ash-leader-intro h1 span{color:#c4d0dc}.ash-leader-intro p{color:var(--ash-muted);font-size:13px;margin:0}.ash-overline{font-size:10px!important;color:#fe5670!important;letter-spacing:2px;font-weight:900}.ash-leader-interval{display:flex;gap:9px;align-items:center;flex-wrap:wrap;color:#ff647d;font-size:11px;font-weight:900}.ash-leader-interval small{display:block;width:100%;text-align:right;color:#90a7bd;font-weight:500}.ash-pulse-wave{font-size:30px;line-height:20px;animation:ash-flash 1.9s ease-in-out infinite}
.ash-leader-columns{display:grid;grid-template-columns:minmax(380px,.92fr) minmax(0,1.08fr);gap:17px;align-items:start}.ash-leader-list,.ash-profile-pane{background:linear-gradient(158deg,#061827,#081b2a 63%,#07141f);border:1px solid #2b5064;border-radius:11px;min-width:0;box-shadow:0 8px 28px #020a1033}.ash-leader-list{padding:16px}.ash-profile-pane{padding:14px;position:sticky;top:12px;min-height:490px}.ash-board-tabs,.ash-switch{display:flex;gap:7px;align-items:center}.ash-board-tabs{padding-bottom:14px;border-bottom:1px solid #26435a}.ash-board-tabs button,.ash-switch button{border:1px solid #284054;background:#0c2031;padding:10px 13px;font-size:11px;font-weight:800;border-radius:5px;color:#aebfd2}.ash-board-tabs button.active,.ash-switch button.selected{border-color:#ff3759;background:#52142888;color:#ff6d84;box-shadow:inset 0 -2px 0 var(--ash-red)}.ash-list-head{display:grid;grid-template-columns:24px minmax(0,1fr) 50px 110px 45px;gap:6px;font-size:10px;color:#829fb6;font-weight:900;padding:15px 7px 9px;border-bottom:1px solid #234053}.ash-right{text-align:right}
.ash-row{display:grid;grid-template-columns:24px minmax(0,1fr) 50px 110px 45px;gap:6px;align-items:center;width:100%;border:0;border-bottom:1px solid #1d3444;background:transparent;text-align:left;min-height:63px;padding:7px;color:#d7e8f3;transition:background .22s,border-color .22s,box-shadow .22s}.ash-row:hover,.ash-row:focus-visible{outline:0;background:#113348;border-color:#3f7684}.ash-row.ash-picked{background:linear-gradient(90deg,#123e35 0%,#092c34 85%);box-shadow:inset 3px 0 var(--ash-green)}.ash-row.ash-climb{animation:ash-rise .9s ease}.ash-row.ash-drop{animation:ash-fall .9s ease}.ash-row.ash-xp-up .ash-row-xp{color:var(--ash-green)}.ash-rank{font-weight:900;color:#bad2e0;text-align:center;font-size:13px}.ash-row:nth-child(-n+3) .ash-rank{color:var(--ash-gold)}.ash-player-cell{min-width:0;display:flex;align-items:center;gap:10px}.ash-player-cell strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800;font-size:13px}.ash-avatar{flex-shrink:0;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(140deg,#152b3c,#324d5d);border:2px solid #35586b;color:#d5e9f2;font-size:13px;font-weight:900;overflow:hidden}.ash-avatar img{width:100%;height:100%;object-fit:cover}.ash-row-level{font-weight:900;color:#e2eef6;white-space:nowrap;font-size:12px}.ash-row-xp{text-align:right;font-weight:900;white-space:nowrap;font-size:12px;font-variant-numeric:tabular-nums}.ash-row-delta{text-align:right;font-weight:900;font-size:12px;white-space:nowrap;color:#7591a0}.ash-row-delta.positive{color:var(--ash-green)}.ash-row-delta.negative{color:var(--ash-red)}.ash-empty{padding:26px 12px;color:#9bb2c3;font-size:13px;line-height:1.6;text-align:center}.ash-board-foot{display:flex;justify-content:space-between;gap:10px;color:#7e9caf;font-size:10px;padding:15px 5px 2px}.ash-leader-footer{text-align:center;color:#7893a6;font-size:11px;padding:26px 10px;border-top:1px solid #1c3748}
.ash-profile-placeholder{padding:80px 22px;text-align:center}.ash-profile-placeholder-icon{font-size:45px;color:#4b6b7c}.ash-profile-placeholder h2{font-size:21px}.ash-profile-placeholder p{font-size:13px;color:var(--ash-muted);line-height:1.6;max-width:380px;margin:0 auto}
.ash-player-profile{color:#e6f1fb}.ash-detail-head{position:relative;display:flex;align-items:center;gap:15px;background:linear-gradient(90deg,#091b2ae0 0%,#0c1920c0 56%,#17192389),url('/assets/hero-scene.webp') right center/cover;padding:18px 17px 20px;border:1px solid #385166;border-radius:8px}.ash-detail-head .ash-avatar{width:85px;height:85px;border-color:#35dc88;box-shadow:0 0 0 4px #0b3c3570;font-size:30px}.ash-detail-identity{min-width:0;flex:1}.ash-detail-identity h2{font-size:clamp(21px,2.4vw,31px);line-height:1.1;margin:4px 0 9px;white-space:normal;overflow-wrap:anywhere}.ash-detail-identity .ash-overline{margin:0}.ash-profile-tags{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ash-profile-tags span{font-size:10px;font-weight:900;border:1px solid #345569;border-radius:4px;padding:6px 8px}.ash-profile-tags span.ash-on{background:#093c30;color:#40e6a0;border-color:#2cb27d}.ash-profile-tags span.ash-rank-tag{background:#381622;color:#ff6484;border-color:#b93555}.ash-profile-tags span.ash-admin-tag{color:#ff647f;border-color:#9a2c45}
.ash-private-id{margin:12px 0;border:1px solid #a73e55;background:#2b111e;border-radius:5px;padding:9px 11px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;overflow-wrap:anywhere}.ash-private-id button{border:1px solid #a63b58;border-radius:3px;background:#431829;color:#fff;padding:7px;flex-shrink:0}.ash-mini-stats{margin-top:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.ash-mini-stat{border:1px solid #29495d;background:#0a2232;padding:13px 7px;border-radius:5px;min-width:0;text-align:center}.ash-mini-stat span{font-size:10px;color:#94aec3;display:block;margin-bottom:6px}.ash-mini-stat strong{display:block;font-size:clamp(15px,1.8vw,21px);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.ash-mini-stat strong.ash-green{color:var(--ash-green)}.ash-progress-card,.ash-skills-card,.ash-activity-card{margin-top:12px;background:#0a2232;border:1px solid #29495d;border-radius:6px;padding:15px}.ash-progress-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.ash-progress-heading h3{margin:0;font-size:14px}.ash-progress-heading strong{color:var(--ash-gold);font-size:22px}.ash-progress-metrics{font-size:12px;display:flex;gap:12px;flex-wrap:wrap;justify-content:space-between;margin:13px 0;color:#cfdee9}.ash-xp-track{height:11px;border:1px solid #284b5d;background:#091621;position:relative;border-radius:10px;overflow:hidden}.ash-xp-track .ash-xp-fill{height:100%;background:linear-gradient(90deg,#d1264a,#ff4963);transition:width .8s ease}.ash-xp-note{margin:9px 0 0;color:#92adc0;font-size:11px}.ash-section-heading{margin:0 0 13px;font-size:13px;letter-spacing:.6px}.ash-skills-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.ash-skill{background:#0c2a35;border:1px solid #315464;padding:10px;border-radius:7px}.ash-skill b{font-size:11px;display:block}.ash-skill small{color:#72deaf;font-size:10px}.ash-activity-card dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ash-activity-card dt{font-size:10px;color:#9eb2c4}.ash-activity-card dd{font-size:13px;font-weight:800;margin:5px 0 0}.ash-profile-hint{font-size:11px;color:#9bb0c3;line-height:1.5;margin:10px 0 0}.ash-profile-actions{display:flex;gap:8px;margin-top:13px;flex-wrap:wrap}.ash-profile-actions a,.ash-profile-actions button{color:#e9f2f9;border:1px solid #9f3650;padding:11px 12px;border-radius:5px;background:#2b1524;text-decoration:none;font-weight:800;font-size:11px}.ash-profile-actions a:hover{background:#602238}.ash-detail-overlay{position:fixed;inset:0;z-index:3000}.ash-detail-overlay[hidden]{display:none!important}.ash-overlay-backdrop{position:absolute;inset:0;background:#01090edb;backdrop-filter:blur(6px)}.ash-detail-sheet{position:relative;width:min(640px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;margin:12px auto;background:#071824;border:1px solid #d0435e;border-radius:12px;padding:16px}.ash-close{position:absolute;z-index:2;top:10px;right:10px;border:1px solid #45667a;background:#162635;border-radius:50%;color:#fff;font-size:24px;width:38px;height:38px;cursor:pointer}
/* Home panel */
.ash-board-home{padding:0 0 9px!important;min-width:0}.ash-home-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:13px 13px 9px}.ash-home-head h2{font-size:clamp(13px,1.2vw,17px);margin:5px 0 0;color:#f0f4fa}.ash-home-head h2 span{color:#acbac9}.ash-home-live{display:flex;align-items:center;gap:6px;color:#fb536b;font-size:10px;font-weight:900;white-space:nowrap}.ash-home-live i{background:#ff4c65;width:7px;height:7px;border-radius:50%;animation:ash-flash 2s infinite}.ash-home-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 11px 8px}.ash-home-toolbar .ash-switch button{font-size:10px;padding:8px 9px}.ash-home-refresh{font-size:9px;color:#849bad;text-align:right}.ash-home-body{padding:0 7px}.ash-home-body .ash-row{grid-template-columns:23px minmax(0,1fr) minmax(60px,auto) 41px;min-height:47px;padding:5px}.ash-home-body .ash-row-level{display:none}.ash-home-body .ash-avatar{width:26px;height:26px;font-size:10px}.ash-home-body .ash-player-cell{gap:6px}.ash-home-body .ash-player-cell strong{font-size:11px}.ash-home-body .ash-row-xp{font-size:10px}.ash-home-body .ash-row-delta{font-size:10px}.ash-board-more{display:block!important;width:calc(100% - 20px)!important;margin:10px!important;padding:11px 8px!important;text-align:center;text-decoration:none;color:#e6ecf3!important;font-size:10px!important;font-weight:900;border:1px solid #6f829c!important;border-radius:4px!important;background:#092031!important;height:auto!important}
@keyframes ash-flash{50%{opacity:.36}}@keyframes ash-rise{0%{background:#0e65477a}100%{background:transparent}}@keyframes ash-fall{0%{background:#a8253775}100%{background:transparent}}
@media(max-width:1050px){.ash-leader-top{gap:12px}.ash-leader-top nav{gap:2px}.ash-leader-brand{min-width:180px}.ash-leader-brand strong{font-size:22px}.ash-leader-columns{grid-template-columns:minmax(320px,1fr) minmax(0,1fr)}.ash-detail-head{gap:10px}.ash-detail-head .ash-avatar{width:65px;height:65px}.ash-mini-stat{padding:10px 5px}}
@media(max-width:800px){.ash-leader-top{flex-wrap:wrap;padding:9px 15px}.ash-leader-top nav{order:3;display:flex;overflow-x:auto;width:100%;flex-wrap:nowrap;white-space:nowrap}.ash-leader-top nav a{padding:10px 8px}.ash-leader-main{padding:20px 12px}.ash-leader-columns{grid-template-columns:1fr}.ash-profile-pane{display:none}.ash-leader-intro{align-items:start}.ash-detail-sheet{margin:8px auto;width:calc(100% - 12px);max-height:calc(100dvh - 16px);padding:13px}.ash-leader-intro h1{font-size:30px}}
@media(max-width:460px){.ash-leader-brand img{width:44px;height:44px}.ash-leader-brand strong{font-size:20px}.ash-leader-online{font-size:10px}.ash-leader-intro{display:block}.ash-leader-interval{margin-top:15px}.ash-leader-interval small{width:auto}.ash-leader-list{padding:10px}.ash-list-head,.ash-row{grid-template-columns:21px minmax(0,1fr) 35px 85px 29px;gap:3px}.ash-list-head{font-size:8px}.ash-row{min-height:55px}.ash-player-cell{gap:7px}.ash-player-cell strong{font-size:11px}.ash-avatar{width:30px;height:30px}.ash-row-level,.ash-row-xp,.ash-row-delta{font-size:10px}.ash-detail-head .ash-avatar{width:61px;height:61px}.ash-detail-identity h2{font-size:21px}.ash-mini-stats{grid-template-columns:repeat(2,1fr)}.ash-skills-grid{grid-template-columns:1fr 1fr}.ash-leader-intro h1{font-size:27px}}
@media(prefers-reduced-motion:reduce){.ash-row,.ash-xp-track .ash-xp-fill{transition:none!important}.ash-pulse-wave,.ash-home-live i,.ash-row.ash-climb,.ash-row.ash-drop{animation:none!important}}

/* Percentage class only (CSP compatible; source must be server-authoritative). */
.ash-xp-fill.ash-xp-pct-0{width:0%}
.ash-xp-fill.ash-xp-pct-5{width:5%}
.ash-xp-fill.ash-xp-pct-10{width:10%}
.ash-xp-fill.ash-xp-pct-15{width:15%}
.ash-xp-fill.ash-xp-pct-20{width:20%}
.ash-xp-fill.ash-xp-pct-25{width:25%}
.ash-xp-fill.ash-xp-pct-30{width:30%}
.ash-xp-fill.ash-xp-pct-35{width:35%}
.ash-xp-fill.ash-xp-pct-40{width:40%}
.ash-xp-fill.ash-xp-pct-45{width:45%}
.ash-xp-fill.ash-xp-pct-50{width:50%}
.ash-xp-fill.ash-xp-pct-55{width:55%}
.ash-xp-fill.ash-xp-pct-60{width:60%}
.ash-xp-fill.ash-xp-pct-65{width:65%}
.ash-xp-fill.ash-xp-pct-70{width:70%}
.ash-xp-fill.ash-xp-pct-75{width:75%}
.ash-xp-fill.ash-xp-pct-80{width:80%}
.ash-xp-fill.ash-xp-pct-85{width:85%}
.ash-xp-fill.ash-xp-pct-90{width:90%}
.ash-xp-fill.ash-xp-pct-95{width:95%}
.ash-xp-fill.ash-xp-pct-100{width:100%}
