/* v19: shared account access and a compact, viewport-aware answer surface. */
.ui-icon{display:inline-block;width:21px;height:21px;vertical-align:middle;flex:none;pointer-events:none}
button:has(>.ui-icon){align-items:center;justify-content:center;gap:8px}
button>.ui-icon{margin-right:7px}button>.icon-label{vertical-align:middle}
.account-actions{display:flex;align-items:center;gap:8px;margin-left:0;flex:none}
.account-actions .account-launch{display:flex;align-items:center;gap:8px;white-space:nowrap;min-width:44px;max-width:180px;color:#eff6ff}
.account-launch>.ui-icon{margin:0}.account-launch .icon-label{overflow:hidden;text-overflow:ellipsis}
.leaderboard-launch{background:#e8bd5320;border-color:#e6c47755}.leaderboard-launch .ui-icon{color:#f0cd74}
.account-launch[data-signed-in=true]{border-color:#90c2f680;background:#82bafa1b}
.account-dialog .dialog-heading{display:flex;justify-content:space-between;gap:12px}.account-dialog .dialog-close{float:none;width:44px;min-height:44px;display:grid;place-items:center;border-radius:50%}
.account-dialog .dialog-close:hover{background:#ffffff12}.account-dialog .fine{font-size:14px}
#accountIdentity{display:flex;align-items:center;gap:13px;margin:20px 0}.profile-avatar{width:48px;height:48px;display:grid;place-items:center;border-radius:17px;font-size:23px;font-weight:650;background:linear-gradient(145deg,#579bff,#3867cf);box-shadow:inset 0 1px #ffffff70}#profileName{display:block;font-size:18px;overflow-wrap:anywhere}#profileState{display:block;font-size:14px;color:#bfd2e6;margin-top:4px}
.account-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:22px}.account-summary>div{padding:13px 6px;border:1px solid #c8e3ff21;border-radius:16px;background:#c8e3ff0a;text-align:center}.account-summary b{display:block;font-size:22px;font-variant-numeric:tabular-nums}.account-summary span{display:block;font-size:12px;color:#c0d2e5;margin-top:4px}
.ranked-summary{padding:16px;border:1px solid #eec76b4a;background:linear-gradient(125deg,#e7bd4820,#c4ddff08);border-radius:18px;margin:16px 0}.ranked-summary b{font-size:20px}.ranked-summary p{font-size:14px;color:#d9d3ba;margin:6px 0 0}.leaderboard-state{font-size:14px;line-height:1.5;color:#c4d7ea;margin:18px 0 8px}.leaderboard-row small{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#b8d6f516}.leaderboard-row[data-rank="1"] small{background:#eac05229;color:#f6d36e}.leaderboard-row[data-rank="2"] small{background:#bdcee729;color:#dfebfc}.leaderboard-row[data-rank="3"] small{background:#e5a36d26;color:#f5ba8b}.leaderboard-list{margin-top:0}.leaderboard-row b{font-variant-numeric:tabular-nums}
.answer-aliases{margin-top:10px;color:inherit}.answer-aliases summary{cursor:pointer;font-size:14px;min-height:32px}.answer-aliases p{margin:4px 0;font-size:14px;line-height:1.5}
#keyboardDone{display:none}#answer{scroll-margin:12px}#answer:focus-visible{outline:2px solid #94bdff;outline-offset:2px}
/* Leaflet's attribution parent sizes to its contents: use viewport width,
   not a percentage of that small parent, to prevent one-word columns. */
@media(min-width:701px) and (pointer:fine){.leaflet-control-attribution{max-width:calc(100vw - var(--panel-width) - 48px);white-space:normal}.sidebar-collapsed .leaflet-control-attribution{max-width:calc(100vw - 24px)}}
@media(min-width:701px){.topbar{gap:12px}.mode-nav{min-width:0}.account-actions .account-launch{padding:9px 12px}.sidebar-toggle{margin-left:auto}.mode-nav button{white-space:nowrap}#questionPanel .question-heading>div{min-width:0}#questionTitle{overflow-wrap:anywhere}#questionNumber{flex:none;letter-spacing:0}.account-dialog{width:min(460px,calc(100vw - 32px))}#answerForm input{width:100%;min-width:0}.sidebar #answerForm{min-width:0}}
@media(min-width:701px) and (max-width:1120px){.account-actions .icon-label{display:none}.account-actions .account-launch{width:44px;padding:0;justify-content:center}.topbar{padding:0 12px;gap:8px}.mode-nav button{padding:8px 10px}.sidebar-toggle{font-size:12px;padding:8px}.brand{font-size:19px}}
@media(min-width:701px) and (max-width:850px){.topbar .brand>.brand-title{display:none}.mode-nav button{padding:8px}.sidebar-toggle{max-width:90px;white-space:normal;line-height:1.1}}
@media(max-width:700px),(max-width:1000px) and (pointer:coarse){
 .topbar,.session-active .topbar{gap:6px;padding:5px 7px 5px 10px}.topbar .brand{font-size:19px;gap:7px}.topbar .brand-symbol{width:30px;height:30px}.account-actions{margin-left:auto;gap:3px;order:2}.topbar .account-actions .account-launch{display:flex;justify-content:center;min-width:40px;width:40px;height:42px;min-height:42px;padding:0;border-radius:22px;background:#c5ddff0e}.account-actions .icon-label{display:none}.account-actions .leaderboard-launch{border-color:#eac96b66!important;background:#eac96b14!important}.account-actions .ui-icon{width:21px;height:21px}
 #mobileMenu{order:3;margin-left:0;position:static}#mobileMenu>summary{width:40px;min-width:40px;height:42px;padding:0}#mobileMenu>summary .icon-label{display:none}#mobileMenu>summary .ui-icon{margin:0}#mobileMenu>div{right:0;top:62px;width:min(270px,calc(100vw - 28px));background:#16364df2}#mobileMenu button:has(.ui-icon){display:flex;justify-content:flex-start;gap:12px}#mobileMenu button>.ui-icon{margin:0;color:#a9c9eb}
 #mobileFold{position:absolute;top:67px;left:0;min-height:40px;padding:8px 14px;background:#15334bab;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
 #mobileMapSwitch button{display:flex;align-items:center;gap:6px;padding:8px 10px;min-width:58px}#mobileMapSwitch .ui-icon{width:18px;height:18px;margin:0}#mobileMapSwitch .icon-label{font-size:13px}
 .session-active #submitAnswer>.ui-icon{width:20px;height:20px}.session-active .question-actions button>.ui-icon{width:18px;height:18px;margin-right:6px}.session-active #nextQuestion{display:flex;align-items:center;justify-content:center}
 .mobile-keyboard .workspace,.session-active.mobile-keyboard .workspace{top:var(--mobile-top,0px);bottom:auto;height:var(--mobile-height,100dvh)}
 .mobile-keyboard .topbar,.mobile-keyboard #mobileMapSwitch,.mobile-keyboard .globe-tools,.mobile-keyboard .leaflet-control-zoom,.mobile-keyboard .satellite-notice,.mobile-keyboard .globe-status{display:none!important}
 .mobile-keyboard .map-stage #globe{top:6px;min-height:100px;height:var(--globe-height,180px)}
 .session-active.mobile-keyboard .sidebar{max-height:min(158px,calc(var(--mobile-height) - 116px));padding:10px 12px;border-radius:23px;bottom:calc(6px + var(--mobile-bottom));overflow-y:auto;background:rgba(13,35,53,.89)}
 .session-active.mobile-keyboard .question-heading{margin:0 38px 9px 0;gap:8px;min-height:30px}.session-active.mobile-keyboard #questionNumber{min-width:30px;min-height:30px;padding:5px;font-size:15px;border-radius:10px}.session-active.mobile-keyboard #questionTitle{font-size:16px;line-height:1.2;letter-spacing:-.2px}.mobile-keyboard #mobileQuestionCount{display:none}
 .session-active.mobile-keyboard #answerForm{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:8px}.session-active.mobile-keyboard #answerForm input{height:46px;min-height:46px;padding:10px 12px;border-radius:16px;font-size:16px}.session-active.mobile-keyboard #submitAnswer{display:grid;place-items:center;height:46px;min-height:46px;width:46px;padding:0;border-radius:16px}.mobile-keyboard #submitAnswer .icon-label{display:none}.mobile-keyboard #submitAnswer .ui-icon{margin:0!important;width:23px;height:23px}
 .mobile-keyboard #keyboardDone{position:absolute;top:0;right:-3px;display:grid;place-items:center;width:38px;height:36px;border:0;border-radius:12px;background:#d5e9ff12;color:#d5e9ff;padding:0}.mobile-keyboard #keyboardDone .icon-label{display:none}.mobile-keyboard #keyboardDone .ui-icon{margin:0;width:19px;height:19px}
 .session-active.mobile-keyboard .question-actions,.session-active.mobile-keyboard #mobileMore,.session-active.mobile-keyboard #droneStart,.session-active.mobile-keyboard #hint,.session-active.mobile-keyboard #examActions{display:none!important}
 .account-dialog{border-radius:26px!important;padding:20px!important}.account-dialog .dialog-heading{margin:0}.account-dialog #profileForm input{font-size:16px}.account-dialog .account-optin{font-size:14px}.account-dialog .primary{min-height:48px}
}
