/* Sector Assault in-game leaderboard overlay. Extracted by build_live.py from lb_v3.html (Astra). */
@keyframes lb-live{50%{opacity:.35;box-shadow:0 0 2px #57ffb9}}
.lb-tabs button{font-family:var(--display);font-size:21px;line-height:1.1;letter-spacing:.3px;text-transform:uppercase;color:#a0b6cc;border:1px solid transparent;background:transparent;min-height:54px;padding:8px 10px;cursor:pointer;border-radius:2px;position:relative}
.lb-tabs button:hover{background:#192b40;color:#fff}
.lb-tabs button[aria-selected=true]{background:linear-gradient(130deg,#364663,#182c45);color:#ffe2a0;border-color:#bfa770;box-shadow:inset 0 -3px #ffcf73}
.lb-tabs button:focus-visible{outline:2px solid #8ae9ff;outline-offset:2px}
.lb-live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#75ffc5;box-shadow:0 0 8px #57ffb9;margin:0 0 3px 6px;animation:lb-live 2s ease-in-out infinite}
.lb-board-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:24px 0 20px}
.lb-board-heading h3{font-family:var(--display);font-size:34px;letter-spacing:.5px;text-transform:uppercase;margin:0 0 6px}
.lb-board-heading p{margin:0;font-size:13px;line-height:1.6;color:#a6bbce}
.lb-live-label{display:flex;align-items:center;gap:8px;color:#7ee9c1;font:700 10px Arial,sans-serif;letter-spacing:1.4px;white-space:nowrap}
.lb-rows{list-style:none;padding:0;margin:0;display:grid;gap:7px}
.lb-row{--medal:#718aa4;display:grid;grid-template-columns:48px minmax(0,1fr) 160px;gap:18px;align-items:center;padding:17px 21px;background:#0c192a;border:1px solid #22374e;border-radius:4px;position:relative;min-height:108px}
.lb-row:nth-child(even){background:#0f1d30}
.lb-row.lb-podium{border-color:color-mix(in srgb,var(--medal),#101b2c 66%);background:linear-gradient(105deg,color-mix(in srgb,var(--medal),#0e192b 90%),#0b182a 75%)}
.lb-podium-1{--medal:#ffce75}
.lb-podium-2{--medal:#b8d0e8}
.lb-podium-3{--medal:#d99c7e}
.lb-rank{font:35px/1 var(--display);color:var(--medal);align-self:center;text-align:center;letter-spacing:1px}
.lb-podium .lb-rank{background:color-mix(in srgb,var(--medal),transparent 91%);clip-path:polygon(20% 0,80% 0,100% 20%,100% 78%,50% 100%,0 78%,0 20%);padding:11px 0 17px;filter:drop-shadow(0 0 9px #000)}
.lb-player{min-width:0}
.lb-player>strong{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:16px;color:#f0f5ff;letter-spacing:.15px;overflow-wrap:anywhere}
.lb-detail{display:block;color:#9cafc6;font-size:11px;line-height:1.5;margin:5px 0 9px}
.lb-squad{display:inline-flex;gap:5px;vertical-align:middle}
.lb-badge{--badge:#93d7ed;display:grid;place-items:center;width:31px;height:33px;background:linear-gradient(150deg,color-mix(in srgb,var(--badge),#0c1528 75%),#0a1425);color:var(--badge);border:1px solid color-mix(in srgb,var(--badge),#20334a 60%);clip-path:polygon(18% 0,82% 0,100% 18%,100% 82%,82% 100%,18% 100%,0 82%,0 18%);font:19px/1 var(--display);letter-spacing:.3px;flex-shrink:0}
.lb-empty{opacity:.5}
.lb-badge-large{width:86px;height:94px;font-size:50px;border-width:2px}
.lb-stat{text-align:right;min-width:0}
.lb-stat>strong{font:34px/1.1 var(--display);color:#eaf4ff;display:block;white-space:nowrap}
.lb-stat strong small{font:700 8px/1.3 Arial,sans-serif;letter-spacing:1.1px;display:block;color:#a7bbcd;margin-top:5px}
.lb-stat>span{display:block;font-size:10px;line-height:1.4;color:#9fb5cb;margin-top:9px}
.lb-you{border-color:#58e6be!important;box-shadow:inset 3px 0 #6effce,0 0 20px #39e8b70c;background:linear-gradient(95deg,#113a39,#102337 80%)!important;scroll-margin-block:20px}
.lb-you-tag{font:700 8px Arial,sans-serif;color:#7fffd6;letter-spacing:1px;border:1px solid #4b9e87;padding:3px 5px;white-space:nowrap}
.lb-pending{grid-template-columns:48px minmax(0,1fr);margin-top:12px}
.lb-guest{display:flex;align-items:center;gap:16px;margin-top:16px;padding:22px;background:linear-gradient(120deg,#172e47,#151b37);border:1px solid #6782a6;border-radius:4px;scroll-margin-block:20px}
.lb-guest strong{display:block;font-family:var(--display);font-size:27px;color:#e4efff;letter-spacing:.3px}
.lb-guest div>span{display:block;color:#a7bcd0;font-size:12px;margin-top:5px}
.lb-guest-icon{font:40px var(--display);color:#a1deff}
.lb-area-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.lb-area{--district:#ffbd55;padding:22px;border:1px solid #2a3e57;border-top:3px solid var(--district);border-radius:3px;background:radial-gradient(ellipse at 100% 0,color-mix(in srgb,var(--district),transparent 90%),transparent 75%),#0d192a;min-width:0}
.lb-area-head{display:flex;gap:12px;align-items:center;margin-bottom:23px}
.lb-area-no{font:26px var(--display);color:var(--district);opacity:.7}
.lb-area h3{font:27px/1 var(--display);text-transform:uppercase;margin:0;color:var(--district);letter-spacing:.5px}
.lb-holder{display:block;font-size:15px;margin-bottom:14px;overflow-wrap:anywhere}
.lb-area-stats{display:flex;gap:24px;margin-bottom:15px}
.lb-area-stats b{font:34px var(--display);color:#eef7ff}
.lb-area-stats small{font:9px Arial,sans-serif;display:block;margin-top:4px;color:#9eb3c9;letter-spacing:1px}
.lb-your-best{border-top:1px solid #2b4359;margin-top:20px;padding-top:16px}
.lb-your-best>span{font-size:10px;color:#a6c5cb;display:block;margin-bottom:6px}
.lb-your-best>strong{font-size:13px;color:#9debd1}
.lb-your-best .lb-squad{display:flex;margin-top:10px}
.lb-unclaimed{position:relative;min-height:133px;padding:10px 30px 0 0}
.lb-unclaimed b{font:28px var(--display);color:#8e9eb3}
.lb-unclaimed span{display:block;color:#8fa2b8;font-size:12px;line-height:1.6;margin-top:12px;max-width:160px}
.lb-unclaimed>strong{position:absolute;right:0;top:20px;font:70px var(--display);color:#5e6077}
.lb-upset{border:1px solid #937b43;border-radius:4px;padding:25px;background:radial-gradient(ellipse at 50% 45%,#51382566,transparent 65%),linear-gradient(135deg,#1a2337,#10172a)}
.lb-upset-label{display:flex;justify-content:space-between;gap:15px;color:#ffd382;font:700 10px Arial,sans-serif;letter-spacing:1.6px}
.lb-upset-label span{color:#e5ebf5;letter-spacing:.2px}
.lb-versus{display:flex;justify-content:center;align-items:center;gap:40px;padding:28px 0}
.lb-versus>div{width:175px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}
.lb-versus>div>strong{font:30px/1.05 var(--display);text-transform:uppercase;color:#edf3ff}
.lb-versus small{font-size:9px;letter-spacing:1.5px;color:#a6b5c9}
.lb-versus>b{font:44px var(--display);font-style:italic;color:#c6a474}
.lb-upset-bottom{border-top:1px solid #5c523b;padding-top:18px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.lb-upset-bottom>div{display:flex;align-items:center;gap:12px}
.lb-upset-bottom strong{font:48px var(--display);color:#ffd37b}
.lb-upset-bottom div>span{font-size:9px;line-height:1.8;color:#d9c79e;letter-spacing:.5px}
.lb-runners{font:22px var(--display);letter-spacing:1px;margin:26px 0 16px;color:#a4bdd0}
.dialog.leaders-overlay[open]{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;border:0;border-radius:0;background:radial-gradient(ellipse at 80% 0,#183350,#060f1c 55%);display:flex;flex-direction:column;padding:0}
.leaders-overlay .dialog-head{flex-shrink:0;padding:24px max(25px,calc((100vw - 1100px)/2));border-bottom:1px solid #2f4961}
.leaders-overlay .dialog-head h2{font-size:42px}
.leaders-overlay .dialog-body{padding:0;flex:1;overflow:hidden;display:flex;flex-direction:column}
.lb-overlay-top{width:min(1100px,100%);margin:auto;padding:16px 25px 0;box-sizing:border-box;flex-shrink:0}
.lb-mode{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:13px;font-size:11px;color:#9cbbcf}
.lb-mode label{display:flex;gap:8px;align-items:center}
.lb-mode select{font:inherit;background:#172a3d;color:#e2efff;border:1px solid #466781;padding:7px;border-radius:3px}
.lb-scroll{flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#476b84 #0b1726;padding:0 max(25px,calc((100vw - 1050px)/2)) 45px}
.lb-overlay-foot{color:#92b2c8;font-size:11px;line-height:1.6;padding-top:18px}
.lb-overlay-foot a{color:#b4e5ff;text-underline-offset:4px}
.lb-personal-note{border-left:2px solid #68d4bd;padding-left:12px;color:#9fbfcb;font-size:12px;margin:18px 0}
@media(max-width:720px){.lb-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;padding:4px}.lb-tabs button{font-size:18px;min-height:49px;padding:7px 4px}.lb-board-heading{margin:22px 0 15px;align-items:flex-start;gap:12px}.lb-board-heading h3{font-size:29px}.lb-board-heading p{font-size:12px;max-width:280px}.lb-live-label{font-size:8px;margin-top:7px;gap:4px}.lb-row{grid-template-columns:29px minmax(0,1fr) 88px;gap:10px;padding:14px 11px;min-height:112px}.lb-rank{font-size:27px}.lb-podium .lb-rank{padding:8px 0 13px}.lb-player>strong{font-size:13px;gap:5px}.lb-detail{font-size:10px;margin:5px 0 9px;max-width:200px}.lb-badge{width:25px;height:29px;font-size:17px}.lb-squad{gap:4px}.lb-stat>strong{font-size:28px}.lb-stat strong small{font-size:7px;letter-spacing:.5px}.lb-stat>span{font-size:9px;margin-top:8px}.lb-you-tag{font-size:7px;letter-spacing:.2px;padding:2px 3px}.lb-area-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.lb-area{padding:15px 12px}.lb-area h3{font-size:25px;line-height:1.05}.lb-area-head{gap:8px;align-items:flex-start;margin-bottom:20px}.lb-area-no{font-size:22px}.lb-holder{font-size:12px}.lb-area-stats{gap:20px}.lb-area-stats b{font-size:30px}.lb-area-stats small{font-size:8px}.lb-your-best>strong{font-size:11px}.lb-unclaimed>strong{font-size:50px;right:0;opacity:.5}.lb-unclaimed{padding-right:8px;min-height:130px}.lb-unclaimed span{font-size:11px}.lb-upset{padding:18px 14px}.lb-upset-label{font-size:8px;letter-spacing:1px;gap:8px}.lb-versus{gap:17px;padding:26px 0}.lb-versus>div{width:115px;gap:10px}.lb-versus>div>strong{font-size:25px}.lb-versus>b{font-size:32px}.lb-versus small{font-size:8px;letter-spacing:1px}.lb-badge-large{width:65px;height:73px;font-size:39px}.lb-upset-bottom{gap:10px}.lb-upset-bottom strong{font-size:39px}.lb-upset-bottom>div{gap:8px}.lb-upset-bottom div>span{font-size:7px;letter-spacing:0}.lb-upset-bottom .lb-badge{width:22px;height:26px;font-size:16px}.lb-guest{padding:18px 15px;gap:12px}.lb-guest strong{font-size:24px}.lb-guest div>span{font-size:11px}.leaders-overlay .dialog-head{padding:16px 16px 14px;padding-top:max(16px,env(safe-area-inset-top))}.leaders-overlay .dialog-head h2{font-size:33px}.lb-overlay-top{padding:12px 12px 0}.lb-scroll{padding:0 12px 35px}.lb-mode{font-size:10px;gap:10px}.lb-mode label{gap:5px}.lb-mode select{max-width:90px}.lb-pending{grid-template-columns:29px minmax(0,1fr)}}
@media(max-width:359px){.lb-row{grid-template-columns:24px minmax(0,1fr) 72px;gap:7px;padding:12px 8px}.lb-player>strong{font-size:12px}.lb-badge{width:23px;height:27px}.lb-stat>strong{font-size:25px}.lb-tabs button{font-size:17px}.lb-area-grid{grid-template-columns:1fr}.lb-area-head{margin-bottom:15px}}
@media(prefers-reduced-motion:reduce){.lb-live-dot{animation:none}}
/* live build */
.lb-you-gap{text-align:center;color:#6f8ea8;letter-spacing:6px;margin:6px 0 2px}
.lb-rows-you{margin-top:0}
.lb-empty-board{padding:22px;border:1px dashed #2c4b63;color:#a5bbcc;font-size:13px;text-align:center}
.lb-area h3{overflow-wrap:anywhere}
/* long player names (up to the forum's 50 characters, unbroken) */
.lb-upset-label span{min-width:0;overflow-wrap:anywhere;text-align:right}
.lb-player strong,.lb-holder{overflow-wrap:anywhere}
@media(min-width:360px) and (max-width:440px){.lb-area h3{font-size:21px}}
