

/* v1.3.20 BADGES + ADMIN ANNOUNCEMENT + CHAT CHIME + MOBILE GEAR */
.adminAnnouncement{margin:0 0 8px;padding:10px 11px;border:1px solid rgba(255,204,67,.62);border-left:4px solid #ffd33f;border-radius:8px;background:linear-gradient(180deg,rgba(65,45,2,.78),rgba(22,14,1,.76));box-shadow:0 0 20px rgba(255,196,52,.10);color:#fff6cf}
.adminAnnouncement[hidden]{display:none!important}.adminAnnouncementHead{display:flex;align-items:center;justify-content:space-between;gap:8px}.adminAnnouncementHead b{color:#ffd33f;font:1000 10px/1 ui-monospace,Consolas,monospace;letter-spacing:.08em}.adminAnnouncementHead span{color:#a99254;font:800 7px/1 ui-monospace,Consolas,monospace}.adminAnnouncementText{margin-top:7px;color:#fff7db;font:850 10px/1.48 ui-monospace,Consolas,monospace;white-space:pre-wrap;word-break:break-word}
#badgesOverlay{position:fixed;inset:0;z-index:100250;display:none;align-items:center;justify-content:center;padding:14px;box-sizing:border-box;background:rgba(0,0,0,.92);backdrop-filter:blur(6px)}
#badgesOverlay.show{display:flex}.badgesPanel{width:min(980px,96vw);max-height:94dvh;overflow:auto;padding:16px;border:1px solid rgba(98,225,255,.42);border-radius:14px;background:linear-gradient(180deg,#081820,#020709);box-shadow:0 25px 90px rgba(0,0,0,.86),0 0 45px rgba(64,213,246,.12)}
.badgesHead{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:-16px;z-index:2;padding:14px 0 10px;background:#081820;border-bottom:1px solid rgba(98,225,255,.16)}.badgesHead strong{display:block;color:#f5fdff;font:1000 25px/1 "Arial Black","Yu Gothic UI",sans-serif;letter-spacing:.07em}.badgesHead span{display:block;margin-top:5px;color:#72dff4;font:900 8px/1 ui-monospace,Consolas,monospace;letter-spacing:.08em}.badgesHead button{width:auto;margin:0;padding:9px 14px;background:#142127;color:#dce9ed;border:1px solid rgba(255,255,255,.18);box-shadow:none;font-size:10px}
.badgesSummary{margin:11px 0;padding:9px 10px;border:1px solid rgba(116,247,174,.22);border-radius:8px;background:rgba(33,130,91,.08);color:#bff8d8;font:900 10px/1.4 ui-monospace,Consolas,monospace}
.badgesGrid{display:grid;gap:8px}.badgeRow{display:grid;grid-template-columns:minmax(140px,.8fr) repeat(3,minmax(0,1fr));gap:7px;align-items:stretch}.badgeFamily{display:flex;flex-direction:column;justify-content:center;padding:10px;border:1px solid rgba(255,255,255,.09);border-radius:9px;background:rgba(255,255,255,.025)}.badgeFamily b{color:#fff;font:1000 13px/1.1 "Arial Black","Yu Gothic UI",sans-serif}.badgeFamily small{margin-top:5px;color:#7f9ba4;font:800 8px/1.3 ui-monospace,Consolas,monospace}
.badgeCell{position:relative;min-height:104px;padding:9px 9px 8px;border:1px solid rgba(255,255,255,.10);border-radius:10px;background:linear-gradient(180deg,rgba(24,31,34,.94),rgba(6,9,10,.96));overflow:hidden;opacity:.48;filter:saturate(.35)}.badgeCell.unlocked{opacity:1;filter:none;box-shadow:0 0 17px rgba(255,255,255,.05)}.badgeCell.bronze.unlocked{border-color:rgba(214,145,78,.72);background:linear-gradient(180deg,rgba(93,48,21,.58),rgba(18,10,5,.95))}.badgeCell.silver.unlocked{border-color:rgba(214,230,238,.76);background:linear-gradient(180deg,rgba(74,93,104,.54),rgba(10,15,18,.95))}.badgeCell.gold.unlocked{border-color:rgba(255,213,58,.88);background:linear-gradient(180deg,rgba(109,77,4,.63),rgba(23,15,1,.96));box-shadow:0 0 25px rgba(255,204,39,.12)}
.badgeTier{display:flex;align-items:center;justify-content:space-between;gap:6px;font:1000 9px/1 ui-monospace,Consolas,monospace;letter-spacing:.07em}.badgeTier span{color:#d0d8da}.badgeTier em{font-style:normal;color:#6d777a;font-size:7px}.badgeCell.unlocked .badgeTier em{color:#8ef1b0}.badgeMedalMini{width:34px;height:34px;margin:8px auto 7px;display:grid;place-items:center;border-radius:50%;border:3px double rgba(255,255,255,.24);background:#15191b;color:#697276;font:1000 15px/1 "Arial Black",sans-serif;box-shadow:inset 0 0 0 3px rgba(0,0,0,.25)}.badgeCell.bronze.unlocked .badgeMedalMini{background:radial-gradient(circle at 35% 28%,#f0b375,#a95b27 52%,#5b2d13);color:#2b1207}.badgeCell.silver.unlocked .badgeMedalMini{background:radial-gradient(circle at 35% 28%,#fff,#bccbd2 50%,#647985);color:#28363c}.badgeCell.gold.unlocked .badgeMedalMini{background:radial-gradient(circle at 35% 28%,#fff8b6,#ffd32e 48%,#b77800);color:#5b3a00;box-shadow:0 0 15px rgba(255,212,46,.4)}
.badgeCondition{color:#c6d2d5;font:800 8px/1.35 ui-monospace,Consolas,monospace;text-align:center}.badgeState{margin-top:10px;color:#6f858c;font:800 8px/1.4 ui-monospace,Consolas,monospace;text-align:center}
#onlineAdminAnnouncementBtn[hidden]{display:none!important}
#adminManageOverlay{position:fixed;inset:0;z-index:100300;display:none;align-items:center;justify-content:center;padding:14px;box-sizing:border-box;background:rgba(0,0,0,.91);backdrop-filter:blur(5px)}#adminManageOverlay.show{display:flex}.adminManagePanel{width:min(680px,94vw);padding:16px;border:1px solid rgba(255,204,67,.58);border-radius:13px;background:linear-gradient(180deg,#1d1605,#070704);box-shadow:0 24px 80px rgba(0,0,0,.86),0 0 34px rgba(255,199,55,.09)}.adminManageHead{display:flex;align-items:center;justify-content:space-between;gap:10px}.adminManageHead strong{color:#ffd33f;font:1000 19px/1 "Arial Black",sans-serif;letter-spacing:.06em}.adminManageHead span{color:#9f8b55;font:800 8px/1.3 ui-monospace,Consolas,monospace}.adminManagePanel textarea{display:block;width:100%;min-height:130px;margin-top:12px;padding:11px;resize:vertical;box-sizing:border-box;border:1px solid rgba(255,214,90,.28);border-radius:8px;background:#050504;color:#fff8dc;font:800 11px/1.55 ui-monospace,Consolas,monospace;outline:none}.adminManagePanel textarea:focus{border-color:#ffd33f}.adminManageState{min-height:18px;margin-top:8px;color:#b9a66e;font:800 8px/1.4 ui-monospace,Consolas,monospace}.adminManageActions{display:grid;grid-template-columns:1fr auto auto;gap:8px;margin-top:10px}.adminManageActions button{margin:0;padding:11px 12px;font-size:10px}.adminManageActions #adminPublishBtn{background:#ffd33f;color:#171000}.adminManageActions #adminClearBtn{background:#3a1a13;color:#ffb49c;border:1px solid rgba(255,112,82,.35);box-shadow:none}.adminManageActions #adminBackBtn{background:#17242a;color:#dbe9ed;border:1px solid rgba(255,255,255,.13);box-shadow:none}@media(max-width:560px){.adminManageActions{grid-template-columns:1fr 1fr}.adminManageActions #adminPublishBtn{grid-column:1/-1}}
.adminMiniStats{margin-top:10px;padding:7px 8px;border:1px solid rgba(255,214,90,.15);border-radius:7px;background:rgba(0,0,0,.28)}.adminFpsDiag{margin-top:9px;padding:9px;border:1px solid rgba(86,220,255,.22);border-radius:7px;background:rgba(4,18,22,.56)}.adminFpsDiagHead{display:flex;align-items:center;justify-content:space-between;gap:8px}.adminFpsDiagHead strong{color:#a8f5ff;font:1000 10px/1 ui-monospace,Consolas,monospace;letter-spacing:.08em}.adminFpsDiagHead span{color:#668f97;font:800 7px/1.2 ui-monospace,Consolas,monospace;text-align:right}.adminFpsDiagActions{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:8px}.adminFpsDiagActions button{margin:0!important;padding:9px 10px!important;border-radius:5px!important;font:1000 8px/1 ui-monospace,Consolas,monospace!important;box-shadow:none!important}.adminFpsDiagActions #adminFpsDiagToggle{background:#14262b!important;color:#9bdbe4!important;border:1px solid rgba(105,225,245,.25)!important}.adminFpsDiagActions #adminFpsDiagToggle.on{background:#0d3b31!important;color:#9dffd4!important;border-color:rgba(105,255,191,.50)!important}.adminFpsDiagActions #adminFpsDiagCsv{background:#182126!important;color:#c7d8dd!important;border:1px solid rgba(255,255,255,.12)!important}.adminFpsDiagActions #adminFpsDiagCsv:disabled{opacity:.34!important}.adminFpsDiagState{margin-top:6px;color:#6e8990;font:800 7px/1.3 ui-monospace,Consolas,monospace;letter-spacing:.03em}.adminMiniStatsGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.adminMiniStat{min-width:0;padding:5px 6px;border-radius:5px;background:rgba(255,255,255,.025);text-align:center}.adminMiniStat small{display:block;color:#7f7558;font:800 7px/1.2 ui-monospace,Consolas,monospace;letter-spacing:.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.adminMiniStat b{display:block;margin-top:3px;color:#f7e7a6;font:1000 14px/1 ui-monospace,Consolas,monospace}.adminMiniStatsNote{margin-top:5px;color:#665f4c;font:700 6px/1.2 ui-monospace,Consolas,monospace;text-align:right;letter-spacing:.04em}@media(max-width:430px){.adminMiniStatsGrid{gap:3px}.adminMiniStat{padding:4px 2px}.adminMiniStat small{font-size:6px}.adminMiniStat b{font-size:12px}}
#mobileGearHud{display:none;position:fixed;z-index:100020;left:7px;top:max(7px,env(safe-area-inset-top));min-width:64px;padding:4px 6px 5px;border:1px solid rgba(255,255,255,.34);border-radius:7px;background:rgba(3,6,8,.82);box-shadow:0 3px 13px rgba(0,0,0,.58);pointer-events:none;text-align:center}
#mobileGearHud span{display:block;color:#9eb1b7;font:900 6px/1 ui-monospace,Consolas,monospace;letter-spacing:.12em}#mobileGearHud b{display:block;margin-top:1px;color:#fff;font:1000 24px/.92 "Arial Black",ui-monospace,monospace;text-shadow:0 0 9px rgba(255,255,255,.18)}#mobileGearHud small{display:block;margin-top:3px;padding-top:2px;border-top:1px solid rgba(255,255,255,.10);color:#72dff4;font:1000 5.5px/1 ui-monospace,Consolas,monospace;letter-spacing:.06em}#mobileGearHud.controller{border-color:rgba(116,247,174,.56);box-shadow:0 0 15px rgba(76,238,146,.14),0 3px 13px rgba(0,0,0,.58)}#mobileGearHud.controller small{color:#83f6b3}
@media (hover:none) and (pointer:coarse){body.mobile-racing #mobileGearHud,body.mobile-gamepad-racing #mobileGearHud{display:block}}
@media (hover:none) and (pointer:coarse) and (orientation:portrait){body.mobile-racing #mobileGearHud{top:max(6px,env(safe-area-inset-top));left:6px}}
@media (hover:none) and (pointer:coarse) and (orientation:landscape){body.mobile-gamepad-racing #mobileGearHud{top:max(6px,env(safe-area-inset-top));left:6px}}
#badgeUnlockOverlay{position:fixed;inset:0;z-index:100700;display:none;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(circle at center,rgba(255,255,255,.10),rgba(0,0,0,.92) 63%);pointer-events:none}#badgeUnlockOverlay.show{display:flex;animation:badgeScreenFlash .32s ease-out}.badgeUnlockCard{position:relative;z-index:2;width:min(620px,88vw);text-align:center;animation:badgeCardPop .72s cubic-bezier(.12,.74,.17,1.18)}.badgeUnlockKicker{color:#fff;font:1000 clamp(24px,5vw,54px)/1 "Arial Black","Yu Gothic UI",sans-serif;letter-spacing:.08em;text-shadow:0 3px 0 #000,0 0 25px currentColor}.badgeUnlockMedal{width:clamp(140px,28vw,260px);aspect-ratio:1;margin:22px auto 14px;display:grid;place-items:center;border-radius:50%;border:10px double rgba(255,255,255,.68);background:radial-gradient(circle at 35% 28%,#f2bb7a,#a95b27 50%,#5a2810);box-shadow:0 0 60px rgba(221,137,63,.48),inset 0 0 0 9px rgba(0,0,0,.22);animation:badgeMedalSpin 1.05s cubic-bezier(.14,.7,.2,1.15)}.badgeUnlockMedal span{font:1000 clamp(62px,13vw,128px)/1 "Arial Black",sans-serif;color:rgba(30,12,3,.82);text-shadow:0 2px 1px rgba(255,255,255,.34)}.badgeUnlockTier{font:1000 clamp(19px,4vw,36px)/1 "Arial Black",sans-serif;letter-spacing:.17em}.badgeUnlockName{margin-top:7px;color:#fff;font:1000 clamp(22px,4.5vw,46px)/1.05 "Arial Black","Yu Gothic UI",sans-serif;text-shadow:0 2px 0 #000}.badgeUnlockCondition{margin:9px auto 0;max-width:620px;color:#cbd7da;font:900 clamp(9px,1.8vw,14px)/1.45 ui-monospace,Consolas,monospace}.badgeUnlockParticles{position:absolute;inset:0;z-index:1}.badgeUnlockParticles i{position:absolute;left:50%;top:50%;width:8px;height:22px;border-radius:2px;background:#fff;transform:translate(-50%,-50%) rotate(var(--r));animation:badgeParticle var(--d) ease-out forwards;box-shadow:0 0 8px rgba(255,255,255,.8)}#badgeUnlockOverlay.silver .badgeUnlockMedal{background:radial-gradient(circle at 35% 28%,#fff,#c7d4db 50%,#637782);box-shadow:0 0 75px rgba(205,232,245,.58),inset 0 0 0 9px rgba(0,0,0,.18)}#badgeUnlockOverlay.silver .badgeUnlockTier{color:#e5f3f8}#badgeUnlockOverlay.gold{background:radial-gradient(circle at center,rgba(255,213,52,.22),rgba(0,0,0,.94) 67%)}#badgeUnlockOverlay.gold .badgeUnlockMedal{border-width:12px;background:radial-gradient(circle at 35% 28%,#fff9ae,#ffd423 46%,#b77500);box-shadow:0 0 110px rgba(255,206,38,.82),0 0 190px rgba(255,168,0,.33),inset 0 0 0 10px rgba(112,68,0,.22);animation-duration:1.35s}#badgeUnlockOverlay.gold .badgeUnlockTier{color:#ffd52d;text-shadow:0 0 26px rgba(255,213,45,.8)}#badgeUnlockOverlay.gold .badgeUnlockKicker{color:#fff3a4}
@keyframes badgeScreenFlash{0%{background:#fff}28%{background:rgba(255,236,155,.72)}100%{background:radial-gradient(circle at center,rgba(255,255,255,.10),rgba(0,0,0,.92) 63%)}}@keyframes badgeCardPop{0%{opacity:0;transform:scale(.25) rotate(-9deg)}55%{opacity:1;transform:scale(1.13) rotate(2deg)}100%{transform:scale(1)}}@keyframes badgeMedalSpin{0%{transform:scale(.2) rotateY(720deg) rotateZ(-22deg)}65%{transform:scale(1.12) rotateY(40deg) rotateZ(3deg)}100%{transform:scale(1) rotateY(0) rotateZ(0)}}@keyframes badgeParticle{0%{opacity:1;transform:translate(-50%,-50%) rotate(var(--r)) scale(.5)}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(calc(var(--r) + 420deg)) scale(1.2)}}
@media(max-width:720px){.badgeRow{grid-template-columns:1fr;gap:5px}.badgeFamily{min-height:46px}.badgesHead strong{font-size:19px}.badgeCell{min-height:88px}.badgesPanel{padding:10px}.badgesHead{top:-10px;padding-top:10px}}

