:root{color-scheme:dark;--bg:#080808;--panel:#151515;--line:#303030;--muted:#a0a3a7;--gold:#d9b981;--text:#eee9df;--mage:#8788ee;--warrior:#ff7c0a;--priest:#f48cba;--rogue:#33937f}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px;overflow-y:scroll}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.6 system-ui,-apple-system,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,summary{font:inherit}button,a,summary{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button:disabled{opacity:.35;cursor:default}button{color:var(--text)}.masthead{height:100px;max-width:1260px;margin:auto;padding:0 40px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:16px;font-family:Georgia,serif;font-size:23px;letter-spacing:3px}.brand small{display:block;font:8px/2.5 system-ui;letter-spacing:3px;color:var(--muted)}.crest{display:grid;place-items:center;width:42px;height:48px;border:1px solid #947c51;color:var(--gold);font:30px Georgia;clip-path:polygon(0 0,100% 0,100% 80%,50% 100%,0 80%)}.nav-menu{position:relative;z-index:5}.nav-menu summary{cursor:pointer;list-style:none;color:var(--gold);padding:12px 4px;border-bottom:1px solid var(--gold)}.nav-menu summary::-webkit-details-marker{display:none}.nav-menu summary span{margin-left:35px}.nav-menu>div{position:absolute;right:0;top:54px;min-width:190px;background:var(--panel);border:1px solid var(--line);box-shadow:0 16px 40px #0009;padding:8px}.nav-menu a{display:block;padding:12px}.nav-menu a:hover{background:#24292f;color:var(--gold)}main{max-width:1260px;padding:0 40px;margin:auto}.hero{position:relative;min-height:365px;overflow:hidden;border:1px solid #65513c;background:linear-gradient(90deg,#151919f2 0%,#171a1b99 50%,#13171911 100%),url('/banner.svg') center/cover}.hero-content{position:relative;z-index:1;padding:42px 48px 65px;max-width:650px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:3px;color:var(--gold);margin:0 0 12px}.hero h1{font:46px/1.1 Georgia,serif;letter-spacing:-1px;margin:0 0 18px}.hero-content>p:not(.eyebrow){color:#c0beb8;font-size:13px;max-width:380px}.hero-link{display:inline-flex;gap:35px;font-size:12px;color:var(--gold);border-bottom:1px solid #806947;padding:12px 0 8px}.hero-mark{position:absolute;right:14%;top:15%;font:220px Georgia;color:#e5c98714;border:2px solid #d8b97f22;transform:rotate(-8deg);padding:0 28px;line-height:1.1}.hero-bottom{position:absolute;bottom:0;width:100%;padding:10px 22px;display:flex;justify-content:space-between;border-top:1px solid #bb9b6433;background:#10131570;letter-spacing:3px;font-size:8px;color:#c3b08c}.rankings{padding:48px 0 56px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:25px}.section-heading h2{font:34px Georgia;margin:0}.section-heading p:not(.eyebrow){font-size:13px;color:var(--muted);margin:10px 0 0}.mode-switch{display:flex;gap:5px;border:1px solid var(--line);padding:5px;flex-shrink:0}.mode-switch a{padding:10px 20px;font-size:12px;color:#aaa}.mode-switch a[aria-current=page]{color:var(--gold);background:#242424;border:1px solid #66573f;padding:9px 19px}.ranking-panel{border:1px solid var(--line);background:var(--panel)}.toolbar{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid var(--line);gap:20px}.kind-switch{display:flex;gap:22px}.kind-switch button{border:0;background:none;padding:8px 0;color:var(--muted);font-size:13px}.kind-switch button[aria-pressed=true]{color:var(--gold);box-shadow:0 2px var(--gold)}.search{display:flex;align-items:center;gap:10px;padding:7px 12px;border:1px solid #383838;background:#0d0d0d;color:var(--muted);width:280px}.search-icon{display:block;flex:0 0 20px;width:20px;height:20px;align-self:center;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.search input{width:100%;min-width:0;color:var(--text);border:0;background:transparent;font-size:12px;padding:3px}.table-wrap{overflow-x:auto;min-height:90px}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{font-weight:500;color:#8e949b;text-transform:uppercase;letter-spacing:1.6px;font-size:9px;padding:16px 24px;background:#111111}td{padding:14px 24px;border-top:1px solid #2b2b2b;font-size:13px}th:last-child,td:last-child{text-align:right}tbody tr:hover{background:#ffffff03}.rank{width:75px;color:#838b92;font:16px Georgia}tr:nth-child(-n+3) .rank{color:var(--gold)}.identity{display:flex;align-items:center;gap:12px}.avatar{width:34px;height:36px;border:1px solid currentColor;background:#ffffff04;display:grid;place-items:center;font:18px Georgia;flex-shrink:0;color:var(--gold)}.character-name{font-weight:500}.subtext{color:var(--muted);font-size:11px}.class-label{text-transform:capitalize}.mage{color:var(--mage)}.warrior{color:var(--warrior)}.priest{color:var(--priest)}.rogue{color:var(--rogue)}.score{font-weight:600;color:var(--gold);font-variant-numeric:tabular-nums;letter-spacing:.5px}.guild-name{color:#bdc2c7}.table-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.pagination{display:flex;gap:16px;align-items:center}.pagination button{background:#202020;border:1px solid #383838;width:30px;height:30px}.ranking-notes{display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:11px;color:var(--muted);margin-top:17px}.ranking-notes p{margin:0;max-width:740px}.ranking-notes button{background:none;border:0;font-size:11px;color:var(--gold);white-space:nowrap;padding:8px 0}.updated{font-size:10px;color:#7e878e;margin:6px 0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#status{text-align:center;color:var(--muted);font-size:13px;padding:40px 20px}#status:empty{display:none}footer{max-width:1180px;margin:auto;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:30px 0 38px;color:#7e858c;font-size:11px;gap:20px}.footer-brand{font:15px Georgia;letter-spacing:3px;color:#b5a17f}
@media(min-width:1500px){.hero{min-height:410px}.hero-content{padding-top:55px}.hero h1{font-size:54px}}
@media(max-width:760px){.masthead{height:84px;padding:0 20px}.brand{font-size:16px;gap:10px;letter-spacing:2px}.brand small{font-size:6px;letter-spacing:1.7px}.crest{width:30px;height:36px;font-size:23px}.nav-menu summary{font-size:12px}.nav-menu summary span{margin-left:10px}main{padding:0 16px}.hero-content{padding:32px 24px 65px}.hero h1{font-size:38px}.hero-mark{right:5%;opacity:.5}.hero-bottom span:last-child{display:none}.section-heading{align-items:flex-start;flex-direction:column;gap:20px}.rankings{padding-top:32px}.toolbar{padding:16px;flex-wrap:wrap}.search{width:100%}th,td{padding:14px 16px}.ranking-notes{align-items:flex-start}.table-footer{padding:14px 16px}footer{margin:0 16px;flex-wrap:wrap;padding:24px 0}footer p{display:none}.mode-switch{width:100%}.mode-switch a{flex:1;text-align:center}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.logo-banner{display:flex;align-items:center;justify-content:center;padding:12px 16px 0}.logo-banner img{display:block;width:clamp(220px,28vw,320px);max-width:100%;height:auto;object-fit:contain;object-position:center}.rankings{padding-top:16px;padding-bottom:12px}.ranking-notes{justify-content:flex-end}
.ranking-panel tbody .rank,.ranking-panel .score,.ranking-panel .stat-value,.ranking-panel .guild-name,.ranking-panel .guild-name a{color:#fff}
.character-name.mage{color:var(--mage)}.character-name.warrior{color:var(--warrior)}.character-name.priest{color:var(--priest)}.character-name.rogue{color:var(--rogue)}
.detail-link{color:var(--gold);text-decoration:underline;text-decoration-color:#d9b98155;text-underline-offset:4px}.detail-link:hover{text-decoration-color:var(--gold)}.back-link{display:inline-block;color:var(--gold);margin-bottom:18px;padding:8px 0}[hidden]{display:none!important}
.ranking-notes{flex-wrap:wrap}.ranking-notes .updated{margin:0;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.site-nav{display:flex;justify-content:center;gap:12px;padding:20px 16px 0}.site-nav a{display:block;text-align:center;min-width:120px;padding:11px 18px;border:1px solid #444;background:#191919;color:#eee;text-decoration:none}.site-nav a:hover,.site-nav a[aria-current=page]{border-color:var(--gold);color:var(--gold)}.site-nav a[aria-disabled=true]{color:#aaa}#nav-status{text-align:center;color:var(--gold);font-size:12px}#nav-status:empty{display:none}.content-panel{max-width:900px;margin:16px auto 48px;padding:28px;background:#151515;border:1px solid #333}.content-panel h2{margin-top:0}.content-panel p{line-height:1.7;white-space:pre-wrap;color:#ccc}.content-panel section+section{border-top:1px solid #333;margin-top:24px;padding-top:16px}#support-form{display:flex;flex-direction:column;gap:10px}#support-form label{margin-top:8px;font-size:13px}#support-form input,#support-form select,#support-form textarea{box-sizing:border-box;width:100%;padding:12px;color:#fff;background:#090909;border:1px solid #444;font:inherit;caret-color:#fff}#support-form textarea{resize:vertical;min-height:150px}#support-form button{padding:10px 18px;background:#252525;border:1px solid #555;color:#fff}#support-send{align-self:flex-start;min-width:130px}#support-images{display:flex;gap:12px;flex-wrap:wrap}#support-images>div{display:flex;flex-direction:column;gap:6px}#support-images img{width:160px;height:110px;object-fit:contain;background:#090909}#image-help{font-size:12px;margin:0}#support-status{min-height:24px;color:var(--gold)}@media(max-width:500px){.site-nav{gap:6px}.site-nav a{min-width:0;flex:1;padding:10px 7px;font-size:13px}.content-panel{padding:18px}}
#support-status.support-error{color:#ffaaaa}#support-status.support-success{color:#a6e8b0}
/* Keep navigation and support controls consistent across desktop and touch browsers. */
.site-nav{box-sizing:border-box;width:100%;max-width:640px;margin-inline:auto;align-items:stretch}
.site-nav a{box-sizing:border-box;display:flex;align-items:center;justify-content:center;flex:1;min-width:0;min-height:44px;border-radius:6px;background-color:#252525;border:1px solid #656565;box-shadow:0 2px 4px #0006;font-weight:600;line-height:1.25;white-space:nowrap;-webkit-tap-highlight-color:#ffffff22}
.site-nav a:focus-visible,#support-form :focus-visible{outline:2px solid #edce86;outline-offset:3px}
.content-panel{box-sizing:border-box;width:100%;min-width:0}
#support-form{min-width:0;max-width:100%}
#support-form input,#support-form select,#support-form textarea{min-width:0;max-width:100%;border-radius:5px;min-height:44px;font-size:16px;line-height:1.4;color-scheme:dark}
#support-form input:not([type=file]),#support-form textarea{-webkit-appearance:none;appearance:none}
#support-form label{display:block;line-height:1.4}
#support-form input[type=file]{font-size:13px;overflow:hidden;padding:8px}
#support-files::file-selector-button{background:#303030;border:1px solid #666;border-radius:4px;color:#fff;padding:8px 12px;margin-right:10px;cursor:pointer}
#support-form button{min-height:44px;border-radius:5px;font:inherit;cursor:pointer}
#support-images>div{max-width:100%}#support-images img{max-width:100%}
#support-status,#image-help,#information-content{overflow-wrap:anywhere}
@media(max-width:760px){
 .site-nav{gap:8px;padding:16px 16px 0}.site-nav a{padding:11px 6px;font-size:13px;min-height:44px}
 .content-panel{margin:12px auto 28px;padding:18px}.content-panel h2{font-size:22px}
 #support-form{gap:10px}#support-form label{font-size:14px}#support-form textarea{min-height:180px}
 #support-send{align-self:stretch;width:100%}#support-images{gap:8px}#support-images>div{width:calc(50% - 4px)}#support-images img{width:100%}
 .logo-banner img{width:220px;max-width:100%}
}
.guild-banner{display:inline-flex;width:48px;height:48px;min-width:48px;flex-shrink:0;align-items:center;justify-content:center;vertical-align:middle;border-radius:2px 2px 8px 8px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);overflow:hidden}
.guild-banner .guild-emblem{width:38px;height:38px;object-fit:contain;flex-shrink:0;background:transparent}
.rank-badge{display:block;width:40px;height:40px;object-fit:contain;flex-shrink:0;background:transparent}
#ranking-title .guild-banner{margin-right:12px}
#ranking-title .rank-badge{display:inline-block;vertical-align:middle;margin:0 8px 0 0}
.launcher-download{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.download-button{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;min-height:44px;border:1px solid #656565;border-radius:6px;background:#252525;color:#eee;text-align:center}
.download-button:hover{border-color:var(--gold);color:var(--gold)}
.download-button[aria-disabled=true]{opacity:.5;cursor:default}
@media(max-width:760px){.identity{gap:8px}.identity .guild-banner{display:inline-flex;width:40px;height:40px;min-width:40px}.guild-banner .guild-emblem{display:block;width:32px;height:32px}.identity .rank-badge{display:block;width:34px;height:34px;min-width:34px}.site-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.site-nav a{font-size:12px;padding:11px 4px}}
@media(max-width:359px){.site-nav{grid-template-columns:1fr}.site-nav a{font-size:14px}}

#language-selector{display:block;width:144px;max-width:calc(100% - 32px);min-height:35.2px;margin:8px auto calc(64px + env(safe-area-inset-bottom,0px));background:#20242b;color:#fff;border:1px solid #666;border-radius:4px;padding:6.4px 9.6px;font:12.8px/1.4 system-ui,-apple-system,Segoe UI,sans-serif;color-scheme:dark}#language-selector:focus-visible{outline:2px solid var(--gold);outline-offset:4px}

/* Fixed column geometry is shared by all locales; narrow screens scroll the table. */
.ranking-panel table{table-layout:fixed}.ranking-panel th{white-space:normal;overflow-wrap:anywhere;line-height:1.5}.ranking-panel td{overflow:hidden;text-overflow:ellipsis}.ranking-panel .identity{min-width:0}.ranking-panel .identity .character-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Control widths depend on the viewport, never on translated captions. */
.site-nav a{flex:1 1 0;overflow-wrap:anywhere}
.mode-switch{width:372px;max-width:100%}
.mode-switch a{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;min-height:44px;text-align:center;white-space:normal;line-height:1.3}
.kind-switch{display:grid;grid-template-columns:repeat(2,104px);gap:16px;flex-shrink:0}
.kind-switch button{width:104px;text-align:center;white-space:normal;line-height:1.4;min-height:40px}
#refresh{width:168px;flex:0 0 168px;text-align:center}
.back-link{width:104px;text-align:center}
.download-button{width:320px;max-width:100%;min-height:64px;line-height:1.4}
#support-send{width:144px;min-width:0}
#support-images button{width:128px;max-width:100%;align-self:center}
@media(max-width:760px){.mode-switch{width:100%}#support-send{width:100%}.kind-switch{grid-template-columns:repeat(2,96px);gap:12px}.kind-switch button{width:96px}}
/* Compact spacing; unusually wide Unicode names wrap without widening columns. */
.ranking-panel th,.ranking-panel td{padding-left:12px;padding-right:12px}.ranking-panel .identity{gap:8px}.ranking-panel .identity .character-name,.ranking-panel td.guild-name{white-space:normal;overflow-wrap:anywhere}

.support-file-picker{display:flex;align-items:center;gap:12px;min-width:0}.support-file-picker #support-choose-files{width:144px;flex:0 0 144px;padding:8px 12px}#support-file-status{min-width:0;overflow-wrap:anywhere;color:var(--muted);font-size:13px}

/* Keep timestamp left and refresh right at every viewport size. */
.ranking-notes{display:grid;grid-template-columns:minmax(0,1fr) 168px;gap:16px;align-items:center}.ranking-notes #updated{min-width:0;justify-self:start;text-align:left;overflow-wrap:anywhere}.ranking-notes #refresh{justify-self:end;text-align:right}.ranking-notes #scoring-note:not([hidden]){grid-column:1/-1}
@media(max-width:760px){
 .ranking-notes{display:grid;grid-template-columns:minmax(0,1fr) 116px;gap:8px;align-items:center}
 .ranking-notes #updated{min-width:0;justify-self:start;text-align:left;font-size:10px;line-height:1.35;overflow-wrap:anywhere}
 .ranking-notes #refresh{width:116px;min-width:0;justify-self:end;white-space:normal;font-size:10px;line-height:1.35;padding:8px 0;text-align:right}
 .ranking-notes #scoring-note:not([hidden]){grid-column:1/-1}
}
/* Match the navigation hover treatment on support actions. */
#support-choose-files:hover:not(:disabled),#support-send:hover:not(:disabled){border-color:var(--gold);color:var(--gold)}

/* Desktop content panels share the ranking panel's main-container width. */
@media(min-width:761px){main > .content-panel{max-width:100%;width:100%;margin-left:0;margin-right:0}}
