@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap";
:root{--bg-primary:#000;--bg-secondary:#000;--bg-card:#141414;--bg-card-hover:#1f1f1f;--bg-glass:#0a0a0ad9;--accent:#fc5200;--accent-light:#ff7033;--accent-dark:#cc4200;--accent-glow:#fc520040;--accent-subtle:#fc520026;--accent-dim:#fc520066;--hex-visited:#fc5200;--hex-visited-glow:#fc520066;--hex-unvisited:#ffffff0a;--fog-color:#000;--hex-city-visited:#22c55e;--hex-city-grid:#ffffff15;--map-dark-bg:#00000029;--hex-boundary:var(--accent-dark);--hex-pending:#06b6d4;--hex-selected:#f59e0b;--hex-admin:#f97316;--share-deep-bg:#0e1016;--share-text-bright:#f8fafc;--share-watermark:#ffffff8c;--dev-page-bg:#0a0b0f;--dev-page-surface:#12141a;--dev-page-card:#1a1c24;--dev-page-card-hover:#22242e;--dev-page-text:#f0f0f5;--dev-page-text-subtle:#9096a4;--color-success:#22c55e;--color-success-subtle:#22c55e1a;--color-success-border:#22c55e4d;--color-warning:#fbbf24;--color-warning-subtle:#f59e0b0d;--color-warning-badge:#f59e0b1a;--color-warning-border:#f59e0b33;--color-warning-border-badge:#f59e0b4d;--color-info:#60a5fa;--color-info-subtle:#3b82f61a;--color-info-border:#3b82f64d;--color-error-light:#f87171;--color-error-subtle:#ef44441a;--color-error-border:#ef44444d;--color-success-green:#4ade80;--bg-code:#ffffff12;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--border:#ffffff14;--border-accent:#fc52004d;--gradient-accent:linear-gradient(135deg,#fc5200,#ff7033);--gradient-card:linear-gradient(135deg,#fc520014,#ff703308);--gradient-dark:linear-gradient(180deg,#0f1117,#141720);--sidebar-width:320px;--stats-height:80px;--header-height:64px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s cubic-bezier(.16,1,.3,1);--ease-out-expo:cubic-bezier(.16,1,.3,1);--ease-out-back:cubic-bezier(.34,1.56,.64,1);--ease-spring:cubic-bezier(.175,.885,.32,1.275)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{background:var(--bg-primary);height:100%;color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#00000008;border-radius:3px}::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00000040}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px;transition:outline-offset .15s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.landing{background:var(--gradient-dark);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.landing:before{content:"";background:radial-gradient(circle at 50% 50%,var(--accent-glow),transparent 50%);width:200%;height:200%;animation:8s ease-in-out infinite pulse;position:absolute;top:-50%;left:-50%}.landing:after{content:"";background:radial-gradient(circle,#fc52000f,#0000 50%);width:100%;height:100%;animation:12s ease-in-out 4s infinite pulse;position:absolute;bottom:-30%;right:-30%}@keyframes pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.1)}}.landing-content{z-index:1;text-align:center;padding:2rem;position:relative}.landing-logo{letter-spacing:-.02em;background:var(--gradient-accent);-webkit-text-fill-color:transparent;animation:fadeInUp .8s var(--ease-out-expo)both;-webkit-background-clip:text;background-clip:text;justify-content:center;align-items:center;gap:.6rem;margin-bottom:.5rem;font-size:4rem;font-weight:900;display:flex}.landing-logo img{-webkit-text-fill-color:initial;filter:drop-shadow(0 0 8px #ffffff26);flex-shrink:0;animation:6s ease-in-out infinite logoFloat}@keyframes logoFloat{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-4px)rotate(2deg)}}.landing-subtitle{color:var(--text-secondary);animation:fadeInUp .8s var(--ease-out-expo).15s both;margin-bottom:3rem;font-size:1.25rem;font-weight:300}.strava-btn{background:var(--gradient-accent);color:#fff;cursor:pointer;transition:all .3s var(--ease-out-expo);box-shadow:0 4px 24px var(--accent-glow);animation:fadeInUp .8s var(--ease-out-expo).3s both;border:none;border-radius:12px;align-items:center;gap:.75rem;padding:1rem 2.5rem;font-size:1.1rem;font-weight:600;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.strava-btn:after{content:"";background:linear-gradient(90deg,#0000,#ffffff26,#0000);width:40%;height:200%;animation:4s ease-in-out infinite btnShimmer;position:absolute;top:-50%;left:-60%;transform:skew(-20deg)}@keyframes btnShimmer{0%,to{left:-60%}50%{left:120%}}.strava-btn:hover{transform:translateY(-3px)scale(1.02);box-shadow:0 12px 40px #fc520080,0 0 0 1px #fc520033}.strava-btn:active{transition-duration:.1s;transform:translateY(0)scale(.98)}.strava-btn svg{width:24px;height:24px;transition:transform .3s var(--ease-spring)}.strava-btn:hover svg{transform:scale(1.15)rotate(-5deg)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.dev-mode-panel{text-align:center;max-width:400px;animation:fadeInUp .8s var(--ease-out-expo).45s both;background:#22c55e0d;border:1px solid #22c55e33;border-radius:12px;margin:2rem auto 0;padding:1.5rem}.dev-banner{margin-bottom:1rem}.dev-banner span{color:#22c55e;background:#22c55e1a;border:1px solid #22c55e4d;border-radius:6px;padding:.25rem .75rem;font-size:.875rem;font-weight:600;display:inline-block}.dev-btn{color:#fff;cursor:pointer;transition:all var(--transition-base);background:linear-gradient(135deg,#22c55e,#16a34a);border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 4px 16px #22c55e40}.dev-users-page{background:var(--bg-primary);min-height:100vh;color:var(--text-primary);padding:2rem 0}.dev-users-container{max-width:1200px;margin:0 auto;padding:0 1.5rem}.dev-users-header{margin-bottom:2rem}.dev-users-title{background:var(--gradient-accent);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:.5rem;font-size:2rem;font-weight:700}.dev-users-subtitle{color:var(--text-secondary);font-size:1.1rem;line-height:1.5}.dev-users-grid{gap:1rem;margin-bottom:2rem;display:grid}.dev-user-card{background:var(--bg-card);border:1px solid var(--border);transition:var(--transition-base),transform .3s var(--ease-out-expo);border-radius:12px;padding:1.5rem}.dev-user-card:hover{background:var(--bg-card-hover);border-color:var(--border-accent);transform:translateY(-2px);box-shadow:0 8px 24px #00000026}.dev-user-content{justify-content:space-between;align-items:center;gap:1rem;display:flex}.dev-user-info{flex:1;align-items:center;gap:1rem;display:flex}.dev-user-avatar{border:2px solid var(--border);border-radius:50%;width:48px;height:48px}.dev-user-details h3{color:var(--text-primary);margin-bottom:.5rem;font-size:1.125rem;font-weight:600}.dev-user-meta{color:var(--text-secondary);flex-direction:column;gap:.25rem;font-size:.875rem;display:flex}.dev-user-stats{margin-top:.5rem}.dev-status-badge{border-radius:20px;margin-top:.5rem;padding:.25rem .75rem;font-size:.75rem;font-weight:500;display:inline-block}.dev-status-badge.syncing{color:#60a5fa;background:#3b82f61a;border:1px solid #3b82f64d}.dev-status-badge.error{color:#f87171;background:#ef44441a;border:1px solid #ef44444d}.dev-status-badge.pending{color:#fbbf24;background:#f59e0b1a;border:1px solid #f59e0b4d}.dev-status-badge.complete{color:#4ade80;background:#22c55e1a;border:1px solid #22c55e4d}.dev-login-btn{background:var(--gradient-accent);color:#fff;cursor:pointer;transition:var(--transition-base);border:none;border-radius:8px;min-width:140px;padding:.75rem 1.5rem;font-weight:500}.dev-login-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 25px #fc52004d}.dev-login-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.dev-no-users{background:var(--bg-card);border:1px solid var(--border);text-align:center;border-radius:12px;padding:3rem}.dev-no-users h2{color:var(--text-primary);margin-bottom:.5rem;font-size:1.25rem;font-weight:600}.dev-no-users p{color:var(--text-secondary);line-height:1.5}.dev-warning-box{background:#f59e0b0d;border:1px solid #f59e0b33;border-radius:12px;margin-top:2rem;padding:1.5rem}.dev-warning-box h3{color:#fbbf24;align-items:center;gap:.5rem;margin-bottom:.5rem;font-weight:600;display:flex}.dev-warning-box p{color:var(--text-secondary);font-size:.875rem;line-height:1.5}.dev-loading{background:var(--bg-primary);min-height:100vh;color:var(--text-primary);justify-content:center;align-items:center;font-size:1.25rem;display:flex}@media (max-width:768px){.dev-user-content{flex-direction:column;align-items:stretch}.dev-user-info{margin-bottom:1rem}.dev-users-container{padding:0 1rem}.dev-users-page{padding:1rem 0}}.dev-note{color:var(--text-muted);margin-top:.75rem;font-size:.8rem;font-style:italic}.landing-features{grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:700px;margin-top:4rem;display:grid}.feature-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);text-align:center;transition:all .4s var(--ease-out-expo);animation:featureCardIn .7s var(--ease-out-expo)both;border-radius:16px;padding:1.5rem;position:relative;overflow:hidden}.feature-card:before{content:"";opacity:0;background:radial-gradient(circle at 50% 0,#fc520014,#0000 70%);border-radius:16px;transition:opacity .4s;position:absolute;inset:0}.feature-card:hover{border-color:#fc520040;transform:translateY(-6px)scale(1.02);box-shadow:0 12px 40px #0003,0 0 0 1px #fc52001a}.feature-card:hover:before{opacity:1}.feature-card:first-child{animation-delay:.5s}.feature-card:nth-child(2){animation-delay:.65s}.feature-card:nth-child(3){animation-delay:.8s}@keyframes featureCardIn{0%{opacity:0;transform:translateY(30px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.feature-card .icon{transition:transform .4s var(--ease-spring);margin-bottom:.75rem;font-size:2rem}.feature-card:hover .icon{transform:scale(1.2)translateY(-2px)}.feature-card h3{margin-bottom:.25rem;font-size:.9rem;font-weight:600}.feature-card p{color:var(--text-secondary);font-size:.75rem}.dashboard{height:100dvh;padding:1rem 1.25rem;padding-top:max(1rem,env(safe-area-inset-top));background:var(--bg-primary);grid-template-columns:2fr 1fr;gap:1rem;padding-right:.5rem;transition:grid-template-columns 1.1s cubic-bezier(.34,1.2,.64,1),gap 1.1s cubic-bezier(.34,1.2,.64,1);display:grid;overflow:hidden}.dashboard.grid-expanded{grid-template-columns:1fr 0;gap:0}.dashboard-left{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.map-block{min-height:0;animation:mapFadeIn .8s var(--ease-out-expo)both;border-radius:20px;flex:1;transition:border-radius .35s,box-shadow .4s;position:relative;overflow:hidden;box-shadow:0 2px 20px #00000012}@keyframes mapFadeIn{0%{opacity:0;transform:scale(.99)}to{opacity:1;transform:scale(1)}}.dashboard.grid-expanded .map-block{border-radius:12px}.map-logo-overlay{z-index:600;opacity:.75;pointer-events:none;align-items:center;display:flex;position:absolute;top:1rem;left:1rem}.map-block .leaflet-container{background:#0a0a0a;width:100%;height:100%}.dashboard-right{transform-origin:100%;flex-direction:column;gap:.75rem;min-width:0;min-height:0;transition:opacity .3s,transform .3s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden scroll}.dashboard-right.right-hidden{opacity:0;pointer-events:none;transform:translate(32px)scale(.97)}.right-user-header{flex-shrink:0;justify-content:flex-end;align-items:center;gap:.75rem;height:44px;padding:0 .25rem;display:flex}.user-card{background:var(--bg-card);animation:cardSlideIn .5s var(--ease-out-expo)both;border-radius:18px;flex-shrink:0;padding:1.1rem 1.15rem 1rem;transition:box-shadow .3s;box-shadow:0 2px 12px #0000000d}.user-card:hover{box-shadow:0 4px 20px #0000001a}@keyframes cardSlideIn{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.user-card-top{align-items:flex-start;gap:.75rem;display:flex}.user-card-avatar-wrap{flex-shrink:0;position:relative}.user-card-avatar-img{object-fit:cover;border-radius:50%;width:50px;height:50px;display:block}.user-card-avatar-placeholder{background:var(--accent-glow,#fc52001f);width:50px;height:50px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:flex}.user-card-sync-dot{border:2px solid var(--bg-card);border-radius:50%;width:11px;height:11px;position:absolute;bottom:2px;right:2px}.user-card-sync-dot.idle{background:#22c55e}.user-card-sync-dot.syncing{background:var(--accent);animation:1.2s ease-in-out infinite syncPulse}@keyframes syncPulse{0%{opacity:1;box-shadow:0 0 #fc520099}50%{opacity:.7;box-shadow:0 0 0 5px #fc520000}to{opacity:1;box-shadow:0 0 #fc520099}}.user-card-info{flex-direction:column;flex:1;gap:.1rem;min-width:0;padding-top:.15rem;display:flex}.user-card-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:700;line-height:1.2;overflow:hidden}.user-card-sub{color:var(--text-secondary);font-size:.75rem;line-height:1.3}.user-card-strava-link{color:#fc5200;align-items:center;gap:.3rem;font-size:.73rem;font-weight:600;line-height:1.3;text-decoration:none;transition:opacity .15s;display:inline-flex}.user-card-strava-link:hover{opacity:.75}.user-card-sync-time{color:var(--text-muted,#9ca3af);font-size:.68rem;line-height:1.3}.user-card-btns{flex-shrink:0;align-items:flex-start;gap:.35rem;padding-top:.1rem;display:flex}.user-card-action-wrap{position:relative}.user-card-icon-btn{color:#fff;cursor:pointer;width:34px;height:34px;transition:background var(--transition-fast,.15s ease),transform .2s var(--ease-spring);background:#1a1a1a;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.user-card-icon-btn:hover{background:#333;transform:scale(1.1)}.user-card-icon-btn:active{transition-duration:.1s;transform:scale(.92)}.user-card-icon-btn:disabled{opacity:.55;cursor:not-allowed}.user-card-icon-btn.active{background:var(--accent)}.user-card-icon-btn.spinning svg{animation:1s linear infinite spinIcon}@keyframes spinIcon{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.user-card-dropdown{background:var(--bg-card);border:1px solid var(--border);z-index:1000;min-width:185px;animation:dropdownSlideIn .18s var(--ease-out-expo);transform-origin:100% 0;border-radius:12px;padding:.35rem;position:absolute;top:calc(100% + .45rem);right:0;box-shadow:0 12px 40px #00000029}.user-card-dropdown-item{text-align:left;width:100%;color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast,.15s ease),transform .15s ease;background:0 0;border:none;border-radius:8px;padding:.5rem .7rem;font-family:inherit;font-size:.83rem;display:block}.user-card-dropdown-item:hover{background:var(--bg-card-hover);transform:translate(2px)}.user-card-dropdown-item.danger{color:#ef4444}.user-card-dropdown-item:disabled{opacity:.5;cursor:not-allowed}.user-card-stats{border-top:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:1rem;padding-top:.9rem;transition:opacity .2s;display:grid}.user-card-stats .user-card-stat{animation:statFadeIn .5s var(--ease-out-expo)both}.user-card-stats .user-card-stat:first-child{animation-delay:.1s}.user-card-stats .user-card-stat:nth-child(2){animation-delay:.2s}.user-card-stats .user-card-stat:nth-child(3){animation-delay:.3s}@keyframes statFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.user-card-stats.loading{opacity:.45}.user-card-stat{align-items:center;gap:.45rem;display:flex}.user-card-stat-icon{background:var(--bg-card-hover,#f5f7fb);width:32px;height:32px;color:var(--text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.user-card-stat-body{flex-direction:column;gap:.05rem;min-width:0;display:flex}.user-card-stat-value{color:var(--text-primary);font-size:1rem;font-weight:800;line-height:1}.user-card-stat-label{color:var(--text-muted,#9ca3af);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;font-size:.58rem}.user-card-stat--tappable{cursor:pointer;transition:background var(--transition-fast);border-radius:8px;margin:-.2rem -.35rem;padding:.2rem .35rem}.user-card-stat--tappable:hover{background:var(--bg-card-hover)}.user-card-stat--tappable:active{background:var(--accent-subtle)}.user-card-stat-chevron{color:var(--text-muted);flex-shrink:0;margin-left:auto;font-size:.9rem;line-height:1}.activity-row{transition:background var(--transition-fast),transform .2s var(--ease-out-expo);border-radius:6px;align-items:center;gap:.5rem;padding:.38rem .5rem;display:flex}.activity-row:hover{background:var(--bg-card-hover);transform:translate(3px)}.activity-row-emoji{text-align:center;flex-shrink:0;width:20px;font-size:.95rem}.activity-row-body{flex-direction:column;flex:1;gap:.05rem;min-width:0;display:flex}.activity-row-type{color:var(--text-primary);font-size:.8rem;font-weight:600;line-height:1.2}.activity-row-date{color:var(--text-muted);font-size:.67rem;line-height:1}.activity-row-location{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.65rem;line-height:1;overflow:hidden}.activity-row-dist{color:var(--accent);background:var(--accent-subtle);border-radius:4px;flex-shrink:0;padding:.1rem .35rem;font-size:.72rem;font-weight:600}.activities-load-more{background:var(--bg-card-hover);border:1px solid var(--border);width:100%;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),transform .2s var(--ease-out-expo),box-shadow .2s ease;text-align:center;border-radius:8px;margin-top:.5rem;padding:.5rem;font-size:.75rem;font-weight:500;display:block}.activities-load-more:hover:not(:disabled){background:var(--accent-subtle);border-color:var(--border-accent);color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 12px #fc52001f}.activities-load-more:disabled{opacity:.5;cursor:not-allowed}.profile-menu-wrapper{position:relative}.profile-avatar-btn{border:2px solid var(--border-accent);background:var(--bg-card);cursor:pointer;width:36px;height:36px;transition:border-color var(--transition-fast),box-shadow .3s var(--ease-out-expo),transform .2s var(--ease-spring);border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;overflow:hidden}.profile-avatar-btn:hover{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow);transform:scale(1.08)}.profile-avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.profile-avatar-initials{color:var(--accent);-webkit-user-select:none;user-select:none;font-size:.75rem;font-weight:700;line-height:1}.profile-avatar-initials.large{font-size:1.1rem}.profile-dropdown{background:var(--bg-card);border:1px solid var(--border);z-index:1000;width:260px;animation:dropdownSlideIn .2s var(--ease-out-expo);transform-origin:100% 0;border-radius:14px;position:absolute;top:calc(100% + .6rem);right:0;overflow:hidden;box-shadow:0 12px 48px #0003}@keyframes dropdownSlideIn{0%{opacity:0;transform:translateY(-8px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.profile-dropdown-header{border-bottom:1px solid var(--border);align-items:center;gap:.75rem;padding:1rem;display:flex}.profile-dropdown-avatar{border:2px solid var(--border-accent);background:var(--bg-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex;overflow:hidden}.profile-dropdown-info{flex-direction:column;gap:.2rem;min-width:0;display:flex}.profile-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;overflow:hidden}.profile-sync-time{color:var(--text-muted);font-size:.73rem}.profile-sync-result{border:1px solid var(--border-accent);color:var(--accent-light);text-align:center;background:#fc52001a;border-radius:8px;margin:.5rem 1rem 0;padding:.4rem .75rem;font-size:.78rem}.profile-dropdown-actions{flex-direction:column;gap:.5rem;padding:.75rem 1rem 1rem;display:flex}.btn.full-width{justify-content:center;width:100%}.btn.logout{border:1px solid var(--border);color:var(--text-secondary);background:0 0;font-size:.82rem}.btn.logout:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:#0000001f}.activity-filters{background:var(--bg-card);border:1px solid var(--border);border-radius:24px;align-items:center;gap:.25rem;margin-left:auto;margin-right:2rem;padding:.35rem .5rem;display:flex}.custom-checkbox{cursor:pointer;transition:all var(--transition-fast);border-radius:16px;align-items:center;gap:.5rem;padding:.25rem .75rem;display:flex}.custom-checkbox:hover{background:var(--bg-card-hover)}.custom-checkbox input{opacity:0;cursor:pointer;width:0;height:0;position:absolute}.custom-checkbox .checkmark{background:var(--bg-card);border:1px solid var(--border);width:16px;height:16px;transition:all var(--transition-fast);border-radius:4px;display:inline-block;position:relative}.custom-checkbox:hover input~.checkmark{border-color:var(--border-accent)}.custom-checkbox input:checked~.checkmark{background:var(--gradient-accent);border-color:#0000}.custom-checkbox .checkmark:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:4px;height:8px;display:none;position:absolute;top:2px;left:5px;transform:rotate(45deg)}.custom-checkbox input:checked~.checkmark:after{display:block}.custom-checkbox .label-text{color:var(--text-secondary);transition:color var(--transition-fast);font-size:.75rem;font-weight:600}.custom-checkbox input:checked~.label-text{color:var(--text-primary)}.btn.debug-reset{color:#ff6b6b;background:#ff3b301a;border-color:#ff3b3033}.btn.debug-reset:hover{background:#ff3b3033;border-color:#ff3b3066}.sidebar-stats{transition:opacity var(--transition-base);background:var(--bg-card);animation:cardSlideIn .5s var(--ease-out-expo)50ms both;border-bottom:none;border-radius:16px;flex-shrink:0;align-items:center;gap:0;padding:1rem 1.25rem;display:flex;box-shadow:0 2px 12px #0000000d}.sidebar-stats--updating{opacity:.45}.sidebar-stat{flex-direction:column;flex:1;align-items:center;gap:.15rem;display:flex}.sidebar-stat-value{color:var(--text-primary);font-size:1.05rem;font-weight:800;line-height:1}.sidebar-stat-value.accent{color:var(--accent)}.sidebar-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.6rem;font-weight:500}.sidebar-stat-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}.dashboard-main{flex:1;display:flex;position:relative;overflow:hidden}.map-container{flex:1;position:relative}.map-container .leaflet-container{background:#0a0a0a;width:100%;height:100%}.sidebar-drag-pill,.sidebar-handle{display:none}.sidebar{background:0 0;border:none;flex-direction:column;flex:none;gap:.75rem;width:100%;transition:none;display:flex;position:static;overflow:visible}.sidebar-sections{flex-direction:column;flex:none;gap:.75rem;width:100%;min-width:0;display:flex;overflow:visible}.sidebar.collapsed{border-color:#0000;width:100%}.sidebar-section{background:var(--bg-card);box-sizing:border-box;width:100%;min-width:0;animation:sidebarSectionIn .5s var(--ease-out-expo)both;transition:box-shadow .3s ease,transform .2s var(--ease-out-expo);border-bottom:none;border-radius:16px;flex-shrink:0;padding:1.25rem 1.25rem .5rem;box-shadow:0 2px 12px #0000000d}.sidebar-section:first-child{animation-delay:.1s}.sidebar-section:nth-child(2){animation-delay:.2s}.sidebar-section:nth-child(3){animation-delay:.3s}.sidebar-section:nth-child(4){animation-delay:.4s}@keyframes sidebarSectionIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.sidebar-section-header{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;margin-bottom:0;padding-bottom:.75rem;display:flex}.sidebar-section h2.sidebar-section-header{margin-bottom:0;padding-bottom:.75rem}.sidebar-section-header:hover{color:var(--text-primary)}.section-chevron{color:var(--text-muted);transition:transform .3s var(--ease-out-expo),color var(--transition-base);font-size:1rem;line-height:1;display:inline-block;transform:rotate(0)}.section-chevron.open{transform:rotate(90deg)}.sidebar-section-body{transition:grid-template-rows .4s var(--ease-out-expo);grid-template-rows:0fr;min-width:0;display:grid;overflow:hidden}.sidebar-section-body.expanded{grid-template-rows:1fr;padding-bottom:1rem}.sidebar-section-body>div{min-height:0;overflow:hidden}.sidebar-section-body.expanded>div{scrollbar-width:thin;scrollbar-color:#ffffff1f transparent;max-height:55vh;overflow-y:auto}.sidebar-section-body.expanded>div::-webkit-scrollbar{width:4px}.sidebar-section-body.expanded>div::-webkit-scrollbar-track{background:0 0}.sidebar-section-body.expanded>div::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.sidebar-section-body-inner{padding-top:.75rem}.sidebar.sidebar-full-expanded,.sidebar.sidebar-full-expanded .sidebar-sections{flex-direction:column;flex:1;min-height:0;display:flex}.sidebar-section.section-card-fullexpanded{border-radius:16px;flex-direction:column;flex:1;min-height:0;animation:.2s cubic-bezier(.22,1,.36,1) both card-expand-in;display:flex}.sidebar-section.section-card-fullexpanded .sidebar-section-body.full-expand-body{grid-template-rows:unset;flex-direction:column;flex:1;min-height:0;padding-bottom:1rem;transition:none;display:flex;overflow:visible}.sidebar-section.section-card-fullexpanded .sidebar-section-body.full-expand-body>div{scrollbar-width:thin;scrollbar-color:#ffffff1f transparent;flex:1;max-height:none;overflow-y:auto}.sidebar-section.section-card-fullexpanded .sidebar-section-body.full-expand-body>div::-webkit-scrollbar{width:4px}.sidebar-section.section-card-fullexpanded .sidebar-section-body.full-expand-body>div::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.section-close-btn{width:28px;height:28px;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),transform .2s var(--ease-spring);background:#ffffff14;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;display:flex}.section-close-btn:hover{color:var(--text-primary);background:#ffffff29;transform:rotate(90deg)scale(1.1)}@keyframes card-expand-in{0%{opacity:.6;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.dashboard-right.has-full-expanded{flex-direction:column;display:flex}.user-card-slot{display:contents}.user-card-slot-hidden,.sidebar-mobile-top{display:none}.sidebar-mobile-top .user-card{box-shadow:none;border-bottom:1px solid var(--border);background:0 0;border-radius:0;margin:0}.sidebar-section h2{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem;font-size:.75rem;font-weight:600}.sidebar-filters{flex-direction:column;gap:0;display:flex}.activity-type-item{cursor:pointer;transition:all var(--transition-fast);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:.375rem;padding:.625rem .75rem;display:flex}.activity-type-item:hover{background:var(--bg-card-hover)}.activity-type-item.inactive{opacity:.55}.activity-type-item .name{color:var(--text-primary);font-size:.85rem;font-weight:500}.activity-badge{color:var(--accent);font-size:.75rem;font-weight:600}.activity-type-item.inactive .activity-badge{color:var(--text-muted)}.sidebar-replay-test-row{padding:.5rem 1rem 1rem}.sidebar-replay-test-btn{border:1px solid var(--border);width:100%;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:.4rem;padding:.45rem .75rem;font-size:.78rem;font-weight:500;transition:background .15s,color .15s,border-color .15s;display:flex}.sidebar-replay-test-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}.sidebar-replay-test-btn:active{opacity:.85}.hex-ping-ring{pointer-events:none;border:2px solid;border-radius:50%;animation:.75s ease-out forwards hexPingAnim;position:absolute;inset:0}@keyframes hexPingAnim{0%{opacity:1;transform:scale(.2)}to{opacity:0;transform:scale(2.8)}}.city-group{margin-bottom:.25rem}.city-group-header{cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--bg-card-hover);transition:background var(--transition-fast);border-radius:8px;justify-content:space-between;align-items:center;padding:.375rem .75rem;display:flex}.city-group-header:hover{background:var(--bg-card-hover)}.city-group-label{color:var(--text-secondary);letter-spacing:.02em;text-transform:uppercase;font-size:.78rem;font-weight:600}.city-group .city-item{padding-left:1.25rem}.countries-cities-summary{background:var(--bg-card-hover);color:var(--text-secondary);letter-spacing:.01em;border-radius:8px;align-items:center;gap:.5rem;margin-bottom:.75rem;padding:.5rem .75rem;font-size:.8rem;font-weight:600;display:flex}.summary-dot{color:var(--text-muted);font-size:1rem;line-height:1}.selected-city-row{align-items:center;gap:.5rem;padding:0 1.25rem .6rem;font-size:.8rem;display:flex}.selected-city-row-name{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.selected-city-row-reset{cursor:pointer;color:var(--accent);opacity:.85;background:0 0;border:none;flex-shrink:0;padding:0;font-size:.75rem;font-weight:600;transition:opacity .15s}.selected-city-row-reset:hover{opacity:1}.city-group-right{align-items:center;gap:.4rem;display:flex}.country-pct{color:var(--accent);font-size:.75rem;font-weight:700}.city-group-progress{width:calc(100% - 1.5rem);margin:.1rem .75rem .25rem}.country-item,.city-item{cursor:pointer;transition:all .2s var(--ease-out-expo);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:.375rem;padding:.625rem .75rem;display:flex}.country-item:hover,.city-item:hover{background:var(--bg-card-hover);transform:translate(3px)}.city-item.selected{background:#fc52001f;border:1px solid #fc520059}.city-item.selected .name{color:var(--accent-light)}.country-item .name,.city-item .name{font-size:.85rem;font-weight:500}.country-item .percentage,.city-item .count{color:var(--accent);font-size:.75rem;font-weight:600}.progress-bar{background:#00000014;border-radius:2px;width:100%;height:3px;margin-top:.375rem;overflow:hidden}.progress-bar .fill{background:var(--gradient-accent);height:100%;transition:width .6s var(--ease-out-expo);border-radius:2px;position:relative}.progress-bar .fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff26);border-radius:0 2px 2px 0;width:30px;position:absolute;top:0;bottom:0;right:0}.sidebar-toggle{display:none}.btn{border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:all .2s var(--ease-out-expo);border-radius:8px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.8rem;font-weight:500;display:inline-flex}.btn:hover{background:var(--bg-card-hover);border-color:var(--border-accent);transform:translateY(-1px)}.btn:active{transition-duration:80ms;transform:translateY(0)scale(.98)}.btn.primary{background:var(--gradient-accent);color:#fff;border:none}.btn.primary:hover{box-shadow:0 6px 20px var(--accent-glow);transform:translateY(-2px)}.btn.primary:active{box-shadow:0 2px 8px var(--accent-glow);transform:translateY(0)scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-page{flex-direction:column;justify-content:center;align-items:center;gap:1rem;height:100vh;display:flex}.loading-page .spinner{border-width:3px;width:40px;height:40px}.loading-page p{color:var(--text-secondary);font-size:.9rem}.reset-overlay{z-index:10000;-webkit-backdrop-filter:blur(4px);background:#000000bf;flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex;position:fixed;inset:0}.reset-overlay .spinner{border-width:3px;width:48px;height:48px}.reset-overlay p{color:#fff;font-size:1rem;font-weight:500}.error-message{color:#ff6b6b;background:#ff3b301a;border:1px solid #ff3b3033;border-radius:8px;padding:1rem;font-size:.85rem}.sync-badge{border-radius:20px;align-items:center;gap:.375rem;padding:.25rem .625rem;font-size:.7rem;font-weight:500;display:inline-flex}.sync-badge.syncing{color:var(--accent-light);background:#fc520026}.sync-badge.synced{color:#34c759;background:#34c75926}.sync-indicator-wrapper{position:relative}.sync-indicator-btn{border:1px solid var(--border-accent);cursor:pointer;color:var(--accent-light);transition:background var(--transition-fast),box-shadow var(--transition-fast);background:#fc52001f;border-radius:20px;align-items:center;gap:.4rem;padding:.3rem .65rem .3rem .5rem;font-size:.78rem;font-weight:500;line-height:1;display:flex}.sync-indicator-btn:hover{box-shadow:0 0 0 3px var(--accent-glow);background:#fc520033}.sync-indicator-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:1.4s ease-in-out infinite syncPulse}.sync-indicator-btn.synced{color:#4ade80;background:#22c55e1f;border-color:#22c55e66}.sync-indicator-btn.synced:hover{background:#22c55e33;box-shadow:0 0 0 3px #22c55e26}.sync-indicator-dot.synced{background:#22c55e;animation:none}.sync-indicator-chevron{opacity:.6;margin-left:.1rem;font-size:.55rem}.sync-progress-popup{background:var(--bg-card);border:1px solid var(--border);z-index:1000;border-radius:14px;width:230px;padding:.875rem 1rem;animation:.15s dropdownFadeIn;position:absolute;top:calc(100% + .6rem);right:0;box-shadow:0 8px 32px #0000001a}.sync-progress-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.72rem;font-weight:600;display:flex}.sync-phase-list{flex-direction:column;gap:.55rem;list-style:none;display:flex}.sync-phase-item{transition:color var(--transition-fast);align-items:center;gap:.6rem;font-size:.82rem;display:flex}.sync-phase-item.pending{color:var(--text-muted)}.sync-phase-item.active{color:var(--text-primary);font-weight:500}.sync-phase-item.done{color:var(--text-muted)}.sync-phase-icon{flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;font-size:.7rem;display:flex}.sync-phase-item.done .sync-phase-icon{color:#34c759;font-size:.78rem}.sync-phase-item.pending .sync-phase-icon{color:var(--text-muted)}@media (max-width:768px){.landing{justify-content:flex-start;padding:4rem 1.5rem 1.5rem}.landing-content{width:100%;padding:1rem}.landing-logo{flex-wrap:wrap;gap:.5rem;font-size:2rem;line-height:1.2}.landing-logo img{width:36px;height:36px}.landing-subtitle{margin-bottom:2rem;font-size:1rem}.strava-btn{border-radius:10px;justify-content:center;width:100%;padding:.9rem 1.5rem;font-size:1rem}.landing-features{grid-template-columns:1fr;gap:1rem;max-width:100%;margin-top:2.5rem}.feature-card{padding:1.25rem}.dashboard{grid-template-rows:1fr;grid-template-columns:1fr;gap:0;padding:0;position:relative}.dashboard-left{height:100dvh}.map-block,.dashboard.grid-expanded .map-block{box-shadow:none;border-radius:0}.dashboard-right{z-index:1001;height:auto;box-shadow:none;background:0 0;border:none;border-radius:0;gap:0;position:fixed;bottom:0;left:0;right:0;overflow:visible}.dashboard-right.right-hidden{transform:translateY(calc(100% + env(safe-area-inset-bottom)))!important;opacity:1!important}.dashboard{transition:none}.right-user-header,.btn.debug-reset{display:none}.sidebar{background:var(--bg-card);border-top:1px solid var(--border);width:100%;height:calc(44vh + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;flex-direction:column;flex:none;gap:0;transition:height .38s cubic-bezier(.32,.72,0,1),transform .32s cubic-bezier(.32,.72,0,1);display:flex;position:relative;overflow:hidden;box-shadow:0 -4px 24px #0000001a}.sidebar[data-snap=peek]{height:calc(200px + env(safe-area-inset-bottom))}.sidebar[data-snap=full]{height:calc(75vh + env(safe-area-inset-bottom))}.sidebar.sidebar-sheet-hidden{pointer-events:none;transition:transform .32s cubic-bezier(.32,.72,0,1),height .38s cubic-bezier(.32,.72,0,1);transform:translateY(110%)}.sidebar-stats{box-shadow:none;border-bottom:1px solid var(--border);border-radius:0}.sidebar-sections{overscroll-behavior-y:contain;flex:1;gap:0;min-height:0;overflow-y:auto}.sidebar-section{box-shadow:none;border-bottom:1px solid var(--border);border-radius:0}.sidebar:before{display:none}.sidebar-handle{cursor:grab;height:44px;cursor:-webkit-grab;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-handle:active{cursor:grabbing;cursor:-webkit-grabbing}.sidebar-drag-pill{pointer-events:none;background:#ffffff47;border-radius:3px;flex-shrink:0;width:48px;height:5px;display:block}.sidebar-toggle,.user-card-slot{display:none}.sidebar-mobile-top{flex-shrink:0;display:block}.sidebar-mobile-top .user-card{box-shadow:none;border-bottom:1px solid var(--border);background:0 0;border-radius:0;margin:0}.mobile-section-sheet{z-index:1010;height:calc(75vh + env(safe-area-inset-bottom));background:var(--bg-card);border-top:1px solid var(--border);border-radius:16px 16px 0 0;flex-direction:column;transition:transform .32s cubic-bezier(.32,.72,0,1),height .38s cubic-bezier(.32,.72,0,1);display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden;transform:translateY(0);box-shadow:0 -4px 32px #0000002e}.mobile-section-sheet[data-snap=mid]{height:calc(50vh + env(safe-area-inset-bottom))}.mobile-section-sheet[data-snap=full]{height:calc(75vh + env(safe-area-inset-bottom))}.mobile-section-sheet[data-snap=fit]{height:auto;max-height:calc(60vh + env(safe-area-inset-bottom))}.mobile-section-sheet.sheet-offscreen{transform:translateY(110%)}.mobile-section-sheet-handle{cursor:grab;height:44px;cursor:-webkit-grab;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.mobile-section-sheet-handle:active{cursor:grabbing;cursor:-webkit-grabbing}.mobile-section-sheet-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:.5rem;padding:0 1rem .75rem;display:flex}.mobile-section-close-btn{width:28px;height:28px;color:var(--text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--transition-fast);background:#ffffff14;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;display:flex}.mobile-section-close-btn:active{background:#ffffff24}.mobile-section-sheet-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.85rem;font-weight:600;overflow:hidden}.mobile-section-sheet-body{padding:0 0 env(safe-area-inset-bottom);scrollbar-width:thin;scrollbar-color:#ffffff1a transparent;flex:1;overflow-y:auto}.mobile-section-sheet-body .sidebar-section-body-inner{padding:.75rem 1.25rem 1rem}}@media (max-width:400px){.landing-logo{font-size:1.6rem}.landing-logo img{width:28px;height:28px}}.leaflet-container{font-family:Inter,sans-serif!important}.leaflet-control-zoom{box-shadow:none!important;border:none!important;flex-direction:column!important;gap:6px!important;display:flex!important}.leaflet-control-zoom a{-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important;color:var(--text-primary)!important;width:36px!important;height:36px!important;transition:background var(--transition-fast),box-shadow var(--transition-fast)!important;background:#0f0f0feb!important;border:1px solid #ffffff1f!important;border-radius:50%!important;justify-content:center!important;align-items:center!important;font-size:18px!important;line-height:36px!important;display:flex!important;box-shadow:0 2px 8px #0006!important}.leaflet-control-zoom a:hover{background:#232323!important;box-shadow:0 4px 12px #00000080!important}.leaflet-control-zoom-in,.leaflet-control-zoom-out{border-radius:50%!important}.map-zoom-btns{z-index:600;flex-direction:column;gap:6px;display:flex;position:absolute;top:1rem;right:1rem}.map-zoom-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;width:36px;height:36px;color:var(--text-primary);transition:background var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);background:#0f0f0feb;border:1px solid #ffffff1f;border-radius:50%;justify-content:center;align-items:center;display:flex;box-shadow:0 2px 8px #0006}.map-zoom-btn:hover{background:#232323;transform:scale(1.05);box-shadow:0 4px 12px #00000080}.map-zoom-btn svg{flex-shrink:0;width:14px;height:14px}.map-expand-btn{z-index:600;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;width:36px;height:36px;color:var(--text-primary);transition:background var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);background:#0f0f0feb;border:1px solid #ffffff1f;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:calc(1rem + 86px);right:1rem;box-shadow:0 2px 8px #0006}.map-expand-btn:hover{background:#232323;transform:scale(1.05);box-shadow:0 4px 12px #00000080}.map-expand-btn svg{flex-shrink:0;width:16px;height:16px}.map-hex-select-btn{z-index:600;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;width:36px;height:36px;color:var(--text-primary);white-space:nowrap;transition:background var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),width .2s ease,border-radius .2s ease,padding .2s ease;background:#0f0f0feb;border:1px solid #ffffff1f;border-radius:50%;justify-content:center;align-items:center;gap:6px;padding:0;display:flex;position:absolute;top:calc(1rem + 130px);right:1rem;overflow:hidden;box-shadow:0 2px 8px #0006}.map-hex-select-btn:hover{background:#232323;transform:scale(1.05);box-shadow:0 4px 12px #00000080}.map-hex-select-btn.active{background:var(--accent);border-color:var(--accent-light);color:#fff;box-shadow:0 2px 12px var(--accent-glow);border-radius:18px;width:auto;padding:0 12px 0 10px}.map-hex-select-btn.active:hover{background:var(--accent-light);box-shadow:0 4px 16px var(--accent-glow);transform:none}.map-hex-select-btn svg{flex-shrink:0;width:15px;height:15px}.map-hex-select-label{letter-spacing:.01em;font-size:12px;font-weight:600;line-height:1}.map-replay-skip-btn{z-index:600;background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;letter-spacing:.03em;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);animation:replaySkipIn .3s var(--ease-out-expo)both;border-radius:20px;padding:.45rem 1.1rem;font-size:.78rem;font-weight:600;position:absolute;bottom:1.25rem;left:50%;transform:translate(-50%)}.map-replay-skip-btn:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border-accent)}@keyframes replaySkipIn{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.leaflet-tile-pane{filter:none}.zoom-info{z-index:1000;background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);color:var(--text-secondary);pointer-events:none;opacity:0;transition:opacity var(--transition-base);border-radius:20px;padding:.5rem 1rem;font-size:.75rem;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}.zoom-info.visible{opacity:1}@media (max-width:768px){.zoom-info{bottom:calc(68px + env(safe-area-inset-bottom) + .75rem)}}.country-flag{margin-right:.5rem;font-size:1.1rem}.hex-badge{background:var(--bg-card-hover);color:var(--text-muted);border-radius:10px;padding:.125rem .5rem;font-size:.65rem}.unavail-hex-marker{color:#9ca3af;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;background:#00000023;border-radius:50%;justify-content:center;align-items:center;transition:background .15s,border-color .15s;display:flex}.unavail-hex-marker:hover{background:#0000001f;border-color:#9ca3af}.unavail-popup-wrapper .leaflet-popup-content-wrapper{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:0;box-shadow:0 4px 20px #0000001a}.unavail-popup-wrapper .leaflet-popup-content{margin:0;padding:0}.unavail-popup-wrapper .leaflet-popup-tip-container{display:none}.unavail-popup{text-align:center;justify-content:center;align-items:center;gap:.4rem;padding:.65rem .85rem;display:flex}.unavail-popup-icon{flex-shrink:0;font-size:1.1rem;line-height:1.4}.unavail-popup-text{color:var(--text-secondary);text-align:center;font-size:.8rem;line-height:1.45}.unavail-popup-text strong{color:var(--text-primary);margin-bottom:0;font-weight:600;display:block}.pending-popup-wrapper .leaflet-popup-content-wrapper{border-color:#06b6d459}.pending-review-title{color:#06b6d4!important}.city-flag-marker{-webkit-user-select:none;user-select:none;flex-direction:column;align-items:flex-start;gap:0;display:flex;transform:translate(-100%,-100%)}.city-flag-pin{pointer-events:auto;background:var(--bg-card);-webkit-backdrop-filter:none;backdrop-filter:none;border:1px solid #ef444480;border-radius:10px 10px 10px 0;min-width:160px;padding:.55rem .75rem;box-shadow:0 4px 20px #0000001f,0 0 0 1px #ef44441a}.city-flag-pin.collapsed{opacity:.5;width:fit-content;min-width:0;padding:.25rem;transition:opacity .2s}.city-flag-pin.collapsed:hover{opacity:1}.city-flag-toprow{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.45rem;display:flex}.city-flag-pin.collapsed .city-flag-toprow{margin-bottom:0}.city-flag-name{color:var(--text-primary);letter-spacing:.02em;white-space:nowrap;font-size:.8rem;font-weight:700}.city-flag-body{flex-direction:column;display:flex}.city-flag-toggle{border:1px solid var(--border);background:var(--bg-card-hover);width:18px;height:18px;color:var(--text-muted);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:.8rem;line-height:1;transition:background .15s,color .15s;display:flex}.city-flag-toggle:hover{color:var(--text-primary);background:#00000014}.city-flag-stats{flex-direction:column;gap:.2rem;display:flex}.city-flag-row{white-space:nowrap;align-items:center;gap:.35rem;font-size:.72rem;display:flex}.city-flag-row.explored{color:var(--accent)}.city-flag-row.remaining{color:var(--text-secondary)}.city-flag-row.blocked{color:#f59e0b}.city-flag-row.total{color:var(--text-secondary)}.city-flag-divider{background:var(--border);height:1px;margin:.2rem 0}.city-flag-pct{color:var(--accent);font-weight:700}.city-flag-footer{border-top:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:.55rem;margin-top:9px;padding-top:7px;display:flex}.city-flag-share-btn{color:var(--accent,#fc5200);cursor:pointer;letter-spacing:.03em;white-space:nowrap;background:#fc52001f;border:1px solid #fc520073;border-radius:4px;padding:2px 7px;font-size:.68rem;font-weight:600;line-height:1.5;transition:background .14s,border-color .14s,color .14s}.city-flag-share-btn:hover{color:#ff6a1f;background:#fc520040;border-color:#fc5200b3}.city-flag-boundary-btn{color:#94a3b8b3;cursor:pointer;text-align:right;letter-spacing:.02em;background:0 0;border:none;padding:0;font-size:.68rem;transition:color .14s}.city-flag-boundary-btn:hover{color:var(--accent,#fc5200)}.city-flag-stem{pointer-events:none;background:#ef4444b3;width:1px;height:12px;margin-right:0;line-height:0;display:block}.city-flag-body:has(.city-flag-picker-header){min-width:200px}.city-flag-picker-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.3rem;padding-bottom:.4rem;display:flex}.city-flag-picker-title{text-transform:uppercase;letter-spacing:.06em;color:var(--accent,#fc5200);font-size:.68rem;font-weight:700}.city-flag-picker-back{color:var(--text-muted,#64748b);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;padding:1px 4px;font-size:.65rem;line-height:1;transition:color .12s,background .12s}.city-flag-picker-back:hover{color:var(--text-primary);background:#0000000f}.city-flag-picker-list{flex-direction:column;gap:2px;max-height:200px;display:flex;overflow-y:auto}.city-flag-picker-loading,.city-flag-picker-empty{color:var(--text-muted,#64748b);text-align:center;padding:6px 2px;font-size:.7rem}.city-flag-picker-item{cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;flex-direction:column;align-items:flex-start;gap:1px;width:100%;padding:5px 6px;transition:background .12s,border-color .12s;display:flex}.city-flag-picker-item:hover{background:#0000000a;border-color:#00000014}.city-flag-picker-item .bp-rank-label{font-size:.58rem}.city-flag-picker-item .bp-display-name{white-space:normal;font-size:.7rem}.city-loading-chip{z-index:800;background:var(--bg-card);color:var(--text-secondary);letter-spacing:.02em;pointer-events:none;white-space:nowrap;border:1px solid #fc520047;border-radius:20px;align-items:center;gap:9px;padding:7px 16px 7px 12px;font-size:12px;font-weight:500;animation:.25s forwards chipFadeIn;display:flex;position:absolute;bottom:36px;left:50%;transform:translate(-50%);box-shadow:0 2px 12px #00000014}@keyframes chipFadeIn{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.city-loading-dots{align-items:center;gap:4px;display:inline-flex}.city-loading-dots span{background:var(--accent);border-radius:1px;width:6px;height:6px;animation:1s ease-in-out infinite hexDotPulse;display:block;transform:rotate(30deg)}.city-loading-dots span:nth-child(2){animation-delay:.18s}.city-loading-dots span:nth-child(3){animation-delay:.36s}@keyframes hexDotPulse{0%,80%,to{opacity:.25;transform:rotate(30deg)scale(.75)}40%{opacity:1;transform:rotate(30deg)scale(1.25)}}.city-announce-overlay{z-index:850;pointer-events:none;background:#000000b8;justify-content:center;align-items:center;animation:.5s forwards cityAnnounceIn,.5s 2s forwards cityAnnounceOut;display:flex;position:absolute;inset:0}.city-announce-text{flex-direction:column;align-items:center;gap:4px;display:flex;overflow:hidden}.city-announce-name{color:#fc5200;letter-spacing:.02em;white-space:nowrap;font-size:36px;font-weight:700;animation:.7s cubic-bezier(.16,1,.3,1) .2s both cityTextSlideIn;display:block}.city-announce-country{color:#fc5200;opacity:.75;letter-spacing:.04em;white-space:nowrap;font-size:18px;font-weight:500;animation:.7s cubic-bezier(.16,1,.3,1) .4s both cityTextSlideIn;display:block}@keyframes cityAnnounceIn{0%{opacity:0}to{opacity:1}}@keyframes cityAnnounceOut{0%{opacity:1}60%{opacity:.6}to{opacity:0}}@keyframes cityTextSlideIn{0%{opacity:0;transform:translate(120px)}to{opacity:1;transform:translate(0)}}.boundary-picker-overlay{z-index:9000;-webkit-backdrop-filter:blur(6px);background:#00000073;justify-content:center;align-items:center;animation:.22s forwards overlayFadeIn;display:flex;position:fixed;inset:0}.boundary-picker-modal{background:var(--bg-card);border:1px solid var(--border);width:min(400px,100% - 32px);max-height:min(70vh,520px);animation:modalFadeIn .2s var(--ease-out-expo)forwards;border-radius:16px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 12px 48px #00000029}.boundary-picker-header{border-bottom:1px solid var(--border,#ffffff14);color:var(--text-secondary);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:10px;padding:1rem 1.25rem .875rem;font-size:.8rem;display:flex}.boundary-picker-header-text{flex-direction:column;gap:4px;display:flex}.bp-auto-label{text-transform:uppercase;letter-spacing:.07em;color:var(--accent,#fc5200);font-size:.65rem;font-weight:700}.bp-auto-hint{color:var(--text-muted,#666);margin-top:1px;font-size:.7rem}.boundary-picker-header strong{color:var(--text-primary,#e0e0e0);font-size:.9rem}.boundary-picker-close{color:var(--text-muted,#666);cursor:pointer;background:0 0;border:none;border-radius:6px;margin-top:2px;padding:3px 7px;font-size:14px;line-height:1;transition:background .12s,color .12s}.boundary-picker-close:hover{color:var(--text-primary,#111);background:#0000000f}.boundary-picker-body{flex-direction:column;gap:3px;padding:.5rem;display:flex;overflow-y:auto}.boundary-picker-loading,.boundary-picker-empty{text-align:center;color:var(--text-muted,#666);padding:1.5rem;font-size:.75rem}.boundary-picker-item{cursor:pointer;text-align:left;transition:background .15s,border-color .15s,transform .2s var(--ease-out-expo);background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:.6rem .875rem;display:flex}.boundary-picker-item:hover{background:#0000000a;border-color:#00000014;transform:translate(3px)}.boundary-picker-item:hover .bp-rank-label{color:var(--accent,#fc5200)}.bp-rank-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted,#666);font-size:.62rem;font-weight:700;transition:color .12s}.bp-display-name{color:var(--text-primary,#e0e0e0);word-break:break-word;font-size:.8rem;line-height:1.4}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.share-modal-overlay{z-index:9100;-webkit-backdrop-filter:blur(8px);background:#0000008c;justify-content:center;align-items:center;padding:1rem;animation:.25s forwards overlayFadeIn;display:flex;position:fixed;inset:0}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.share-modal{background:var(--bg-card);border:1px solid var(--border);width:min(420px,92vw);max-height:min(92vh,820px);animation:modalFadeIn .25s var(--ease-out-expo)forwards;border-radius:16px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 16px 64px #0003}.share-modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem 1.25rem .875rem;display:flex}.share-modal-title{color:var(--text-primary);font-size:.9rem;font-weight:700}.share-modal-close{color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:.9rem;line-height:1}.share-modal-close:hover{color:var(--text-primary);background:#0000000f}.share-modal-preview{background:var(--bg-primary);flex:1;justify-content:center;align-items:flex-start;min-height:0;padding:.5rem;display:flex;overflow:auto}.share-preview-img{object-fit:contain;border-radius:8px;width:100%;max-height:100%;display:block}.share-modal-status{color:var(--text-secondary);flex-direction:column;align-items:center;gap:.75rem;padding:2rem;font-size:.85rem;display:flex}.share-modal-actions{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;align-items:center;gap:.75rem;padding:.875rem 1.25rem;display:flex}@media (max-width:768px){.share-modal{max-height:85vh}}.hex-select-tabs{background:var(--bg-secondary);border-radius:10px;gap:.375rem;margin-bottom:.875rem;padding:.25rem;display:flex}.hex-select-tab{color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);white-space:nowrap;background:0 0;border:none;border-radius:7px;flex:1;padding:.45rem .5rem;font-size:.8rem;font-weight:500}.hex-select-tab.active{background:var(--bg-card);color:var(--text-primary);box-shadow:0 1px 3px #00000026}.hex-select-tab:hover:not(.active){color:var(--text-primary)}.hex-select-panel-count-row{align-items:center;margin-bottom:.875rem;display:flex}.hex-select-panel-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.hex-select-panel-title{color:var(--text-primary);margin:0;font-size:.95rem;font-weight:600}.hex-select-panel-count{color:var(--accent-light);border:1px solid var(--border-accent);white-space:nowrap;background:#fc52001a;border-radius:999px;padding:.15rem .6rem;font-size:.78rem}.hex-select-panel-actions{gap:.5rem;margin-top:1rem;display:flex}.hex-select-panel-actions .hex-report-btn{text-align:center;flex:1}.hex-report-label{color:var(--text-secondary);flex-direction:column;gap:.5rem;margin-bottom:.75rem;font-size:.85rem;display:flex}.hex-report-select,.hex-report-input,.hex-report-textarea{background:var(--bg-secondary);border:1px solid var(--border);width:100%;color:var(--text-primary);resize:vertical;border-radius:8px;outline:none;padding:.5rem .75rem;font-family:inherit;font-size:.85rem}.hex-report-select:focus,.hex-report-input:focus,.hex-report-textarea:focus{border-color:var(--accent)}.hex-report-btn{cursor:pointer;transition:background var(--transition-fast);border:none;border-radius:8px;padding:.5rem 1rem;font-size:.85rem;font-weight:500}.hex-report-btn.cancel{background:var(--bg-secondary);color:var(--text-secondary)}.hex-report-btn.cancel:hover{background:var(--bg-card-hover)}.hex-report-btn.submit{background:var(--accent);color:#fff}.hex-report-btn.submit:hover:not(:disabled){background:var(--accent-light)}.hex-report-btn.submit:disabled{opacity:.5;cursor:not-allowed}.hex-report-success{text-align:center;padding:1.5rem 0}.hex-report-success-icon{color:#22c55e;background:#22c55e26;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:.75rem;font-size:1.5rem;display:inline-flex}.hex-report-success p{color:var(--text-secondary);font-size:.9rem}.admin-page{background:var(--bg-primary);min-height:100vh;color:var(--text-primary);max-width:800px;margin:0 auto;padding:1.5rem}.admin-header{align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.admin-header h1{font-size:1.25rem;font-weight:600}.admin-back-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:8px;padding:.4rem .75rem;font-size:.85rem}.admin-back-btn:hover{background:var(--bg-card-hover)}.admin-filters{gap:.5rem;margin-bottom:1.5rem;display:flex}.admin-filter-btn{border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);border-radius:8px;padding:.4rem .75rem;font-size:.8rem}.admin-filter-btn.active{border-color:var(--accent);color:var(--accent);background:#fc52001a}.admin-error{color:#ef4444;margin-bottom:1rem;font-size:.9rem}.admin-loading,.admin-empty{color:var(--text-muted);text-align:center;padding:2rem 0;font-size:.9rem}.admin-report-list{flex-direction:column;gap:.75rem;display:flex}.admin-report-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:1rem}.admin-report-card--batch{background:linear-gradient(135deg,var(--bg-card)0%,#63b3ed0a 100%);border-color:#63b3ed66}.admin-report-batch-label{font-weight:600;color:#63b3ed!important;font-family:inherit!important;font-size:.85rem!important}.admin-report-batch-hexes{color:var(--text-muted);margin-top:.5rem;font-size:.78rem}.admin-report-batch-hexes summary{cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none;padding:.15rem 0;font-weight:500}.admin-report-batch-hexes ul{flex-direction:column;gap:.15rem;max-height:10rem;margin:.35rem 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.admin-report-batch-hexes li{color:var(--text-muted);word-break:break-all;padding:.1rem 0;font-family:monospace;font-size:.75rem}.admin-report-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.admin-report-hex{color:var(--text-muted);font-family:monospace;font-size:.8rem}.admin-report-status{text-transform:uppercase;border-radius:6px;padding:.15rem .5rem;font-size:.75rem;font-weight:600}.status-pending{color:#facc15;background:#facc1526}.status-approved{color:#22c55e;background:#22c55e26}.status-rejected{color:#ef4444;background:#ef444426}.admin-report-body p{color:var(--text-secondary);margin-bottom:.25rem;font-size:.85rem}.admin-report-meta{margin-top:.25rem;color:var(--text-muted)!important;font-size:.75rem!important}.admin-report-note{color:var(--text-muted);font-size:.8rem;font-style:italic}.admin-report-actions{justify-content:flex-end;gap:.5rem;margin-top:.75rem;display:flex}.admin-btn{cursor:pointer;transition:background var(--transition-fast);border:none;border-radius:8px;padding:.4rem .75rem;font-size:.8rem;font-weight:500}.admin-btn.approve{color:#22c55e;background:#22c55e26}.admin-btn.approve:hover{background:#22c55e40}.admin-btn.reject{color:#ef4444;background:#ef444426}.admin-btn.reject:hover{background:#ef444440}.admin-btn:disabled{opacity:.5;cursor:not-allowed}.admin-btn-map{color:#63b3ed;background:#63b3ed1f;border:1px solid #63b3ed40;margin-top:.6rem}.admin-btn-map:hover{background:#63b3ed38}.admin-hex-map-overlay{z-index:9000;background:#000000a6;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.admin-hex-map-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;flex-direction:column;width:min(860px,100%);height:min(580px,90vh);display:flex;overflow:hidden;box-shadow:0 8px 40px #0000001f}.admin-hex-map-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.admin-hex-map-title{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 2.5rem);font-size:.85rem;font-weight:600;overflow:hidden}.admin-hex-map-close{color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:.2rem .4rem;font-size:1rem}.admin-hex-map-close:hover{color:var(--text-primary);background:#ffffff12}.admin-hex-map-container{flex:1;width:100%;min-height:0}.admin-hex-map-footer{color:var(--text-muted);border-top:1px solid var(--border);text-align:center;flex-shrink:0;padding:.4rem 1rem;font-size:.72rem}.admin-nav{border-bottom:1px solid var(--border);gap:.25rem;margin-bottom:1.5rem;padding-bottom:0;display:flex}.admin-nav-btn{color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.5rem 1rem;font-family:inherit;font-size:.85rem;font-weight:500}.admin-nav-btn:hover{color:var(--text-primary);border-bottom-color:var(--border-accent)}.admin-nav-btn.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.bb-page{background:var(--bg-primary);min-height:100vh;color:var(--text-primary);max-width:1200px;margin:0 auto;padding:1.5rem}.bb-layout{grid-template-columns:340px 1fr;align-items:start;gap:1.5rem;display:grid}@media (max-width:900px){.bb-layout{grid-template-columns:1fr}}.bb-controls{flex-direction:column;gap:1rem;display:flex}.bb-section{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1rem 1.25rem}.bb-section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.875rem;font-size:.7rem;font-weight:700}.bb-shape-grid{grid-template-columns:repeat(4,1fr);gap:.4rem;display:grid}.bb-shape-btn{background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;transition:all var(--transition-fast);color:var(--text-muted);border-radius:8px;flex-direction:column;align-items:center;gap:.3rem;padding:.5rem .25rem;font-family:inherit;font-size:.7rem;line-height:1;display:flex}.bb-shape-btn:hover{background:var(--bg-card-hover);border-color:var(--border-accent);color:var(--text-secondary)}.bb-shape-btn.active{border-color:var(--accent);color:var(--accent);background:#fc52001a}.bb-color-presets{flex-wrap:wrap;gap:.4rem;margin-bottom:.875rem;display:flex}.bb-color-swatch{cursor:pointer;width:28px;height:28px;transition:transform var(--transition-fast),box-shadow var(--transition-fast);border:1px solid #ffffff1a;border-radius:6px;padding:0}.bb-color-swatch:hover{transform:scale(1.15);box-shadow:0 2px 10px #0006}.bb-color-inputs{flex-direction:column;gap:.6rem;display:flex}.bb-color-row{align-items:center;gap:.5rem;margin-top:.25rem;display:flex}.bb-color-picker{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;width:32px;height:32px;padding:2px}.bb-color-hex{flex:1;font-family:monospace;font-size:.78rem!important}.bb-label{color:var(--text-secondary);flex-direction:column;gap:.25rem;font-size:.78rem;display:flex}.bb-text-input{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);width:100%;transition:border-color var(--transition-fast);border-radius:8px;outline:none;padding:.45rem .75rem;font-family:inherit;font-size:.85rem}.bb-text-input:focus{border-color:var(--accent)}.bb-select{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;width:100%;transition:border-color var(--transition-fast);border-radius:8px;outline:none;padding:.45rem .75rem;font-family:inherit;font-size:.85rem}.bb-select:focus{border-color:var(--accent)}.bb-fields{flex-direction:column;gap:.65rem;display:flex}.bb-icon-group{margin-bottom:.75rem}.bb-icon-group:last-child{margin-bottom:0}.bb-icon-group-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.4rem;font-size:.65rem;font-weight:700}.bb-icon-grid{grid-template-columns:repeat(4,1fr);gap:.35rem;display:grid}.bb-icon-btn{background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;transition:all var(--transition-fast);color:var(--text-secondary);border-radius:8px;flex-direction:column;align-items:center;gap:.2rem;padding:.5rem .25rem;font-family:inherit;font-size:.6rem;line-height:1;display:flex;overflow:hidden}.bb-icon-btn:hover{background:var(--bg-card-hover);border-color:var(--border-accent);color:var(--text-primary)}.bb-icon-btn.active{border-color:var(--accent);color:var(--accent);background:#fc52001a}.bb-icon-btn span{text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.bb-preview{flex-direction:column;gap:1.25rem;display:flex;position:sticky;top:1.5rem}.bb-preview-card,.bb-examples-card,.bb-size-previews{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem}.bb-preview-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:1rem;font-size:.7rem;font-weight:700}.bb-preview-main{border:1px solid var(--border);background:linear-gradient(135deg,#ffffff08,#ffffff03);border-radius:10px;justify-content:center;align-items:center;margin-bottom:1rem;padding:1.5rem;display:flex}.bb-preview-actions{gap:.5rem;display:flex}.bb-export-btn{border:1px solid var(--border);background:var(--gradient-accent);color:#fff;cursor:pointer;transition:all var(--transition-fast);border-radius:8px;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-family:inherit;font-size:.8rem;font-weight:600;display:inline-flex}.bb-export-btn:hover{box-shadow:0 4px 16px var(--accent-glow)}.bb-export-btn.secondary{background:var(--bg-secondary);color:var(--text-secondary)}.bb-export-btn.secondary:hover{background:var(--bg-card-hover);color:var(--text-primary);box-shadow:none}.bb-sizes{flex-wrap:wrap;align-items:flex-end;gap:1.5rem;display:flex}.bb-size-item{color:var(--text-muted);flex-direction:column;align-items:center;gap:.4rem;font-size:.65rem;display:flex}.bb-examples-grid{grid-template-columns:repeat(3,1fr);gap:.75rem;display:grid}@media (max-width:600px){.bb-examples-grid{grid-template-columns:repeat(2,1fr)}}.bb-example-btn{background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;transition:all var(--transition-fast);color:var(--text-secondary);border-radius:10px;flex-direction:column;align-items:center;gap:.4rem;padding:.75rem .5rem;font-family:inherit;font-size:.72rem;display:flex}.bb-example-btn:hover{background:var(--bg-card-hover);border-color:var(--border-accent);color:var(--text-primary);transform:translateY(-2px);box-shadow:0 4px 16px #0000004d}.snackbar{z-index:9999;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:10px;align-items:center;gap:.625rem;min-width:260px;max-width:min(480px,100vw - 2rem);padding:.75rem 1rem;font-size:.875rem;font-weight:500;animation:.25s forwards snackbar-in;display:flex;position:fixed;top:1rem;left:50%;transform:translate(-50%);box-shadow:0 4px 24px #0006}.snackbar-error{border:1px solid var(--color-error-border);color:var(--color-error-light);background:#110a0aeb}.snackbar-icon{flex-shrink:0;font-size:.9rem}.snackbar-message{flex:1;line-height:1.4}.snackbar-close{color:inherit;cursor:pointer;opacity:.6;background:0 0;border:none;flex-shrink:0;padding:0 0 0 .25rem;font-family:inherit;font-size:1.25rem;line-height:1}.snackbar-close:hover{opacity:1}@keyframes snackbar-in{0%{opacity:0;transform:translate(-50%)translateY(-20px)scale(.95)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}.admin-inline-badge-picker{border-top:1px solid var(--border);flex-direction:column;gap:1rem;padding:1.25rem 0 .5rem;display:flex}.admin-inline-badge-picker-title{color:var(--text-primary);margin:0;font-size:.85rem;line-height:1.5}.admin-inline-badge-picker-title span{color:var(--text-muted);font-size:.78rem}.admin-badge-picker-options{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.admin-badge-option{background:var(--bg-primary);border:2px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:.5rem;min-width:140px;padding:1rem .75rem;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.admin-badge-option:hover{border-color:var(--border-accent);transform:translateY(-2px);box-shadow:0 6px 20px #00000040}.admin-badge-option.selected{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 0 0 3px #fc520038,0 6px 20px #0000004d}.admin-badge-option-title{color:var(--text-primary);text-align:center;font-size:.8rem;font-weight:600;line-height:1.3}.admin-badge-option-meta{color:var(--text-muted);text-align:center;font-size:.7rem}.admin-badge-picker-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:.75rem;padding-top:.5rem;display:flex}.admin-report-type-badge{letter-spacing:.04em;color:#c084fc;vertical-align:middle;background:#a855f72e;border:1px solid #a855f759;border-radius:999px;margin-left:.5rem;padding:.15rem .5rem;font-size:.68rem;font-weight:700;display:inline-block}.badges-grid{flex-wrap:wrap;gap:.75rem;padding:.25rem .25rem .5rem;display:flex}.badge-item{cursor:default;flex-direction:column;align-items:center;gap:.25rem;display:flex}.badge-item--clickable{cursor:pointer;border-radius:.5rem;padding:.35rem;transition:background .15s,transform .12s}.badge-item--clickable:hover{background:#ffffff12;transform:scale(1.05)}.badge-item--selected{background:#f59e0b26;box-shadow:0 0 0 2px #f59e0b8c}.badge-item-name{color:var(--text-primary);text-align:center;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:68px;font-size:.68rem;font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}.badge-item-location{color:var(--text-muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:68px;font-size:.62rem;overflow:hidden}@keyframes marchingAnts{to{stroke-dashoffset:-12px}}.selected-badge-hex{animation:.45s linear infinite marchingAnts}
