/* Superhero City theme */
:root{--sh-text:#12224c;--sh-dim:#4f6397}
html,body{background:radial-gradient(circle at 20% 18%, rgba(255,228,84,.28), transparent 18%),radial-gradient(circle at 82% 22%, rgba(88,179,255,.24), transparent 18%),linear-gradient(180deg,#83ccff 0%,#f2f7ff 100%);color:var(--sh-text)}
body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.14;background:linear-gradient(180deg, rgba(255,255,255,.2), transparent 28%),repeating-linear-gradient(90deg, rgba(18,34,76,.04) 0 1px, transparent 1px 40px);z-index:0} body>*{position:relative;z-index:1}
h1,h2,h3{color:#0f1f49;text-transform:uppercase;letter-spacing:.05em;text-shadow:0 2px 0 rgba(255,255,255,.45)}
.muted,.admin-status-label,#profileUserInfo,#joinQrText,#mapHelp{color:var(--sh-dim)!important}
.card,.admin-section,.profile-modal,.join-qr-card,.join-player-card,.admin-status-card,.admin-panel,.modal-backdrop .card{background:linear-gradient(180deg, rgba(255,255,255,.88), rgba(236,244,255,.92));border:2px solid rgba(18,34,76,.14);box-shadow:0 16px 28px rgba(52,87,145,.16)}
.admin-status-card{background:radial-gradient(circle at top left, rgba(255,228,84,.28), transparent 32%),linear-gradient(180deg, rgba(255,255,255,.95), rgba(236,244,255,.96))}
.admin-tab-button,.sub-tab-button,.button-link,button{border:2px solid #11224c;color:#fff;background:linear-gradient(180deg, #ff5a4f, #d91d43);box-shadow:0 6px 12px rgba(17,34,76,.16)}
.admin-tab-button:hover,.sub-tab-button:hover,.button-link:hover,button:hover{background:linear-gradient(180deg, #ff7264, #e52c52)}
.admin-tab-button.active,.sub-tab-button.active{background:linear-gradient(180deg, #57b8ff, #1b66e4);border-color:#11224c;color:#fff}
button.secondary,.secondary-link{background:linear-gradient(180deg, #ffd84f, #ffaf22);color:#3c2200}
button.danger-button{background:linear-gradient(180deg, #ff8a8a, #ff5369);color:#400814}
.ready-button{background:linear-gradient(180deg, #79ff6b, #23ce68)!important;border-color:#11224c!important;color:#13320d!important}
.status-pill{color:#142652;border:2px solid rgba(17,34,76,.18);background:#fff} .status-pill-good{background:#d5ffd0}.status-pill-waiting{background:#fff0b1}.status-pill-paused{background:#d7e0ff}.status-pill-ended{background:#ffd5e0}
input,select,textarea{color:#142652;background:#fff;border:2px solid rgba(17,34,76,.22)} input:focus,select:focus,textarea:focus{outline:none;box-shadow:0 0 0 4px rgba(87,184,255,.28)}
.readonly-input{background:#eef3ff;color:#6c79a7}
.admin-list>*,.join-player-row{background:rgba(255,255,255,.8);border:2px solid rgba(17,34,76,.12)}
.join-player-avatar,.profile-avatar-preview,.profile-icon-button{border:2px solid #11224c}.profile-icon-button{background:linear-gradient(180deg,#57b8ff,#1b66e4)}
.fallback-avatar,.profile-icon-fallback{color:#fff}.fallback-avatar{background:#ff5a4f;border:2px solid #11224c}
.join-qr-placeholder{background:linear-gradient(180deg,#ffffff,#eef5ff);border:2px dashed rgba(17,34,76,.24)}
.join-qr-image{background:#fff}
#adminMap,.admin-map,.map,.leaflet-container{border:2px solid rgba(17,34,76,.16);box-shadow:0 10px 22px rgba(52,87,145,.12)}
.map-status{color:#142652;background:#fff;border:2px solid rgba(17,34,76,.16)} .map-status.success{background:#d5ffd0} .map-status.error{background:#ffd5e0}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#13224a}
a,a:visited{color:#1457cc} a:hover{color:#d91d43}
.status.success{background:#d5ffd0;border:2px solid rgba(17,34,76,.16);color:#14370d}.status.error{background:#ffd5e0;border:2px solid rgba(17,34,76,.16);color:#490c24}
.login-card{background:linear-gradient(180deg, rgba(255,255,255,.94), rgba(236,244,255,.96))}
