#dialog-backdrop{z-index:30}
.dialog.challenges-dialog{width:min(1420px,96vw);max-width:none;padding:25px;overflow:hidden;max-height:94vh;display:flex;flex-direction:column;background:#0c202b}
.challenges-dialog.hidden{display:none}.challenges-dialog .dialog-close{position:absolute;top:20px;right:22px}
.challenge-heading{padding-right:50px}.challenge-heading h2{font-size:clamp(28px,4vw,48px);margin:8px 0}.challenge-summary{font:12px monospace;color:#b7caca;margin:0 0 12px}
.challenge-groups{display:flex;gap:6px;overflow-x:auto;flex-shrink:0;padding:5px 0 12px}.challenge-groups button{white-space:nowrap;border:1px solid #38515c;background:#112b36;color:#b7caca;padding:8px 11px;font-size:11px;border-radius:5px}.challenge-groups button span{color:var(--branch);margin-right:4px}.challenge-groups button[aria-pressed=true]{border-color:#e5be7f;color:#fff0c7;background:#30413b}
.challenge-layout{display:grid;grid-template-columns:minmax(0,1fr) 295px;min-height:0;flex:1;border:1px solid #38515c;border-radius:6px;overflow:hidden}
.challenge-map{min-width:0;display:flex;flex-direction:column}.challenge-tools{display:flex;gap:8px;align-items:center;padding:10px 14px;background:#132e39;border-bottom:1px solid #38515c;flex-shrink:0;font-size:10px;color:#a1b8c2}.challenge-tools button{background:#24424b;color:#eae6d1;border:1px solid #47616b;border-radius:4px;padding:5px 10px}.challenge-tools span{margin-left:auto}
.challenge-scroll{height:52vh;min-height:260px;overflow:auto;overscroll-behavior:contain;background:radial-gradient(circle,#39515b44 1px,transparent 1px) 0 0/18px 18px,#081923;scrollbar-color:#617e86 #0b1b25;scrollbar-width:thin}.challenge-scroll:focus-visible{outline:2px solid #e5be7f;outline-offset:-3px}.challenge-tree{position:relative;isolation:isolate}.challenge-links{position:absolute;inset:0;pointer-events:none;overflow:visible}.challenge-links path{fill:none;stroke:#45606b;stroke-width:2;opacity:.7}.challenge-links .cross-link{stroke:#9c8cbc;stroke-dasharray:5 5;opacity:.5}.challenge-links .earned{stroke:#83dcc7;opacity:.9}.challenge-links .highlight{stroke:#f0d6a0;opacity:1;stroke-width:3}
.challenge-node{position:absolute;display:flex;align-items:center;gap:8px;width:154px;height:76px;border:1px solid #54747d;border-left:3px solid var(--branch);border-radius:8px;background:#17343f;color:#ecedda;text-align:left;padding:10px;box-shadow:0 4px 12px #0005;cursor:pointer}.challenge-node .node-icon{font-size:23px;color:var(--branch);width:29px;text-align:center;flex-shrink:0}.node-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.node-copy small{font:8px monospace;text-transform:uppercase;letter-spacing:.6px;color:var(--branch)}.node-copy strong{font-size:11px;line-height:1.2}.node-copy>span{font:9px monospace;color:#b5c9ce}.challenge-node.locked{opacity:.48;border-color:#3b4d59;background:#10222d;cursor:default}.challenge-node.locked .node-icon,.challenge-node.locked small{color:#8ca2ac}.challenge-node.complete{border-color:#eac884;box-shadow:0 0 18px #eac88422}.challenge-node.complete .node-copy>span{color:#ffe0a4}.challenge-node.claimed{background:#163932;border-color:#487f6c}.challenge-node.selected,.challenge-node:focus-visible{outline:2px solid #fff0c9;outline-offset:3px}.challenge-node.open:hover{background:#244653}
.challenge-detail{padding:22px;background:#132c36;border-left:1px solid #38515c;overflow-y:auto;max-height:calc(52vh + 48px);scrollbar-width:thin;scrollbar-color:#617e86 #132c36}.challenge-detail h3{font-size:28px;margin:10px 0;text-transform:uppercase;line-height:1.05}.challenge-detail p{font-size:13px;line-height:1.6;color:#d2dcdc}.challenge-detail .eyebrow{font-size:9px}.challenge-emblem{width:54px;height:58px;display:grid;place-items:center;font-size:32px;color:var(--branch);border:1px solid var(--branch);border-radius:9px 9px 22px 22px;margin-bottom:18px;background:#081f29;box-shadow:0 0 20px color-mix(in srgb,var(--branch) 12%,transparent)}.challenge-scope{font:9px/1.7 monospace;color:#aac4c9;display:block}.challenge-meter{padding:15px 0;border-top:1px solid #36525b;border-bottom:1px solid #36525b;margin:16px 0}.challenge-meter>div{display:flex;justify-content:space-between;align-items:center}.challenge-meter strong{font:22px monospace;color:#f0d6a0}.challenge-meter span{font:9px monospace;color:#a3bbc4}.challenge-meter progress{width:100%;height:7px;accent-color:#86d7bb;margin:12px 0}.challenge-meter small{font-size:11px;color:#a3bbc4}.challenge-detail .challenge-note{font-size:11px;color:#9db7c2}.challenge-prize{display:flex;align-items:center;justify-content:space-between;margin:20px 0;font:10px monospace;color:#a3bbc4}.challenge-prize strong{font-size:15px;color:#efd09a}.challenge-detail .button{width:100%;font-size:12px;min-height:44px;padding:12px}.challenge-detail .button:disabled{opacity:.5;cursor:default}.challenge-legend{margin:10px 0 0;font:10px monospace;color:#92adb8}
@media(max-width:760px){.dialog.challenges-dialog{padding:16px}.challenge-layout{grid-template-columns:1fr;overflow-y:auto}.challenge-scroll{height:35vh;min-height:220px}.challenge-detail{max-height:260px;border-left:0;border-top:1px solid #38515c}.challenge-tools span{display:none}.challenge-heading h2{font-size:32px}.challenge-legend{line-height:1.5}}
.challenge-attempt{border-top:1px solid #38515c;margin-top:16px;padding-top:12px}.challenge-attempt h4{font:11px monospace;color:#eed39d;margin:0}.challenge-attempt p{font-size:11px}.challenge-attempt ul{list-style:none;padding:0;margin:8px 0}.challenge-attempt li{font-size:11px;line-height:1.6;color:#d7b0a3;margin:8px 0}.challenge-attempt li.passed{color:#9cd6bd}.challenge-attempt li b{display:block;padding-left:17px;font:10px monospace}.challenge-attempt details,.challenge-best{font-size:11px;line-height:1.5;color:#b7caca;margin-top:14px}.challenge-window{display:flex;gap:5px;flex-wrap:wrap;margin:12px 0}.challenge-window span{display:grid;place-items:center;width:23px;height:25px;border:1px solid #59717c;border-radius:4px;font:12px monospace}.challenge-window .passed{color:#9cd6bd;background:#284d43}.challenge-window .failed{color:#e6ad9d;background:#472f30}.challenge-window .empty{color:#7f959c}.challenge-mode-counts{font:12px/2 monospace;color:#e7cea0}
