.logo{flex-shrink:0;display:inline-block}.logo__image{object-fit:contain;max-width:100%;height:auto;image-rendering:high-quality;image-rendering:-webkit-optimize-contrast;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;image-rendering:pixelated;image-rendering:-webkit-optimize-contrast;image-rendering:optimizeQuality;-ms-interpolation-mode:bicubic;image-rendering:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:block}.logo--sm{width:32px;height:32px}.logo--sm .logo__image{image-rendering:-webkit-optimize-contrast;image-rendering:optimizeQuality}.logo--md{width:64px;height:64px}.logo--lg{width:128px;height:128px}.logo__image{will-change:auto;transform:translateZ(0)}@media (prefers-reduced-motion:reduce){.logo__image{will-change:auto;transform:none}}@media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:1.5dppx){.logo__image{image-rendering:-webkit-optimize-contrast;image-rendering:optimizeQuality;image-rendering:smooth}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:2dppx){.logo__image{image-rendering:-webkit-optimize-contrast;image-rendering:optimizeQuality;image-rendering:auto}}.badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:var(--border-radius-sm);text-transform:uppercase;letter-spacing:var(--letter-spacing-tight);border:var(--border-width) solid;white-space:nowrap;justify-content:center;align-items:center;gap:6px;min-height:26px;padding:4px 10px;display:inline-flex}.badge-type{text-align:center;width:80px}.badge-type-public{background:var(--color-type-public-bg);color:var(--color-type-public);border-color:var(--color-type-public-border)}.badge-type-race{background:var(--color-type-race-bg);color:var(--color-type-race);border-color:var(--color-type-race-border)}.badge-type-mission{background:var(--color-type-mission-bg);color:var(--color-type-mission);border-color:var(--color-type-mission-border)}.badge-type-property{background:var(--color-type-property-bg);color:var(--color-type-property);border-color:var(--color-type-property-border)}.badge-type-private{background:var(--color-type-private-bg);color:var(--color-type-private);border-color:var(--color-type-private-border)}.badge-type-custom{background:var(--color-type-custom-bg);color:var(--color-type-custom);border-color:var(--color-type-custom-border)}.badge-traffic{text-align:center;width:90px}.badge-traffic-true{background:var(--color-type-mission-bg);color:var(--color-success);border-color:var(--color-type-mission-border)}.badge-traffic-false{background:var(--color-type-race-bg);color:var(--color-error);border-color:var(--color-type-race-border)}.badge-ping{padding:6px 12px;font-size:12px}.badge-ping svg{flex-shrink:0}.badge-ping-good{background:var(--color-type-mission-bg);color:var(--color-success);border-color:var(--color-type-mission-border)}.badge-ping-medium{background:var(--color-type-property-bg);color:var(--color-warning);border-color:var(--color-type-property-border)}.badge-ping-high{background:var(--color-type-race-bg);color:var(--color-error);border-color:var(--color-type-race-border)}.badge-id{font-size:var(--font-size-sm);color:var(--color-text-muted);background:var(--color-primary-muted);font-family:var(--font-mono);border-color:#0000;padding:6px 10px}.badge-dimension-id{font-size:var(--font-size-2xs);color:var(--color-text-muted);background:var(--color-primary-muted);text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);border-color:#0000;padding:3px 8px}.badge-count{font-size:clamp(18px,3vw,24px);font-weight:var(--font-weight-bold);color:var(--color-primary);text-shadow:var(--shadow-text-primary);padding:var(--space-sm) var(--space-md);background:var(--color-primary-muted);border-color:var(--color-type-public-border);border-radius:var(--border-radius-lg);font-variant-numeric:tabular-nums;letter-spacing:0;justify-content:center;align-items:center;display:flex}.badge-count-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);margin-right:var(--space-sm)}.badge-dev{font-size:var(--font-size-2xs);color:var(--color-warning);background:rgba(var(--color-warning-rgb), .12);border-color:rgba(var(--color-warning-rgb), .35);letter-spacing:var(--letter-spacing-normal);vertical-align:middle;margin-left:6px;padding:1px 6px;display:none}body.dev-mode .badge-dev{display:inline}.banner{justify-content:center;align-items:center;gap:var(--space-md);min-height:44px;padding:var(--space-sm) max(var(--space-2xl), env(safe-area-inset-left,0px));padding-right:max(var(--space-2xl), env(safe-area-inset-right,0px));background:var(--color-bg-dark);border-bottom:var(--border-width-thick) solid var(--banner-accent,var(--color-primary));color:var(--color-text);font-size:var(--font-size-md);text-align:center;display:flex;position:relative}.banner--info{--banner-accent:var(--color-primary)}.banner--warning{--banner-accent:var(--color-warning)}.banner--critical{--banner-accent:#ff4757}.banner__text{line-height:1.35}.banner__text strong{color:var(--banner-accent);font-weight:var(--font-weight-semibold)}.banner__close{top:50%;right:max(var(--space-sm), env(safe-area-inset-right,0px));border-radius:var(--border-radius-lg);width:32px;height:32px;color:var(--color-text-light);font-size:var(--font-size-2xl);cursor:pointer;transition:color var(--transition-normal);background:0 0;border:none;justify-content:center;align-items:center;line-height:1;display:flex;position:absolute;transform:translateY(-50%)}.banner__close:hover{color:var(--color-text)}.btn{justify-content:center;align-items:center;gap:var(--space-sm);font-family:inherit;font-weight:var(--font-weight-semibold);cursor:pointer;border:var(--border-width) solid transparent;border-radius:var(--border-radius-md);transition:all var(--transition-fast);padding:var(--space-sm) var(--space-md);display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary-muted);border-color:var(--color-type-public-border);color:var(--color-primary);font-size:var(--font-size-base)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:rgba(var(--color-primary-rgb), .5)}.btn-ghost{border-color:var(--color-primary-border);color:var(--color-text-secondary);font-size:var(--font-size-md);background:0 0}.btn-ghost:hover:not(:disabled){background:rgba(var(--color-primary-rgb), .05);border-color:var(--color-primary-border-hover);color:var(--color-text)}.btn-icon{background:rgba(var(--color-primary-rgb), .08);border-color:rgba(var(--color-primary-rgb), .2);border-radius:var(--border-radius-lg);width:36px;height:36px;padding:0}.btn-icon svg{opacity:.7;transition:opacity var(--transition-fast)}.btn-icon:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-border-hover)}.btn-icon:hover:not(:disabled) svg{opacity:1}.btn-sort{padding:var(--space-sm) var(--space-md);background:var(--color-bg-card);border-color:var(--color-primary-border);border-radius:var(--border-radius-md);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-tight);padding-right:28px;font-size:12px;position:relative}.btn-sort:after{content:"";opacity:0;width:0;height:0;transition:opacity var(--transition-normal), border-color var(--transition-normal);border-top:5px solid #0000;border-left:4px solid #0000;border-right:4px solid #0000;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.btn-sort:hover:not(:disabled){border-color:rgba(var(--color-primary-rgb), .3);color:var(--color-primary)}.btn-sort.active{background:var(--color-primary-muted);border-color:var(--color-primary-border-hover);color:var(--color-primary)}.btn-sort.active:after{opacity:1;border-bottom:5px solid var(--color-primary);border-top:none}.btn-sort.active.desc:after{border-bottom:none;border-top:5px solid var(--color-primary)}.btn-nav{border-radius:var(--border-radius-lg);color:var(--color-text-secondary);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);text-align:left;background:0 0;border-color:#0000;align-items:center;gap:12px;width:100%;padding:14px 16px;display:flex}.btn-nav:hover:not(:disabled){background:rgba(var(--color-primary-rgb), .05);color:var(--color-text)}.btn-nav.active{background:var(--color-primary-muted);border-color:var(--color-type-public-border);color:var(--color-primary)}.btn-nav svg{flex-shrink:0}.btn-nav.disabled{opacity:.5;cursor:not-allowed}.btn-close{color:var(--color-text-muted);padding:var(--space-xs);border-radius:var(--border-radius-sm);background:0 0;border:none;font-size:20px;line-height:1}.btn-close:hover:not(:disabled){color:var(--color-primary)}.btn-menu{left:var(--space-md);background:var(--color-bg-card);border-color:rgba(var(--color-primary-rgb), .2);border-radius:var(--border-radius-lg);color:var(--color-primary);z-index:10;padding:10px;position:absolute;top:50%;transform:translateY(-50%)}.btn-menu:hover:not(:disabled){background:var(--color-primary-muted);border-color:var(--color-primary-border-hover)}.btn-back{align-items:center;gap:var(--space-sm);background:var(--color-bg-card);border-color:rgba(var(--color-primary-rgb), .2);border-radius:var(--border-radius-md);color:var(--color-primary);font-size:var(--font-size-md);padding:10px 16px;display:flex}.btn-back:hover:not(:disabled){background:var(--color-primary-muted);border-color:var(--color-primary-border-hover);transform:translate(-2px)}.btn-back svg{flex-shrink:0}.btn-action{width:100%;margin-top:var(--space-md);background:var(--color-primary-muted);border-color:var(--color-type-public-border);border-radius:var(--border-radius-lg);color:var(--color-primary);font-size:var(--font-size-base);letter-spacing:var(--letter-spacing-tight);padding:12px}.btn-action:hover:not(:disabled){background:var(--color-primary-hover);border-color:rgba(var(--color-primary-rgb), .5)}@media (min-width:900px){.btn-menu{display:none}}.card{background:var(--color-bg-card);border:var(--border-width) solid var(--color-primary-border);border-radius:var(--border-radius-lg);padding:var(--clamp-card-padding);transition:all var(--transition-normal), transform var(--transition-normal), opacity var(--transition-normal)}.card-hover:hover{border-color:var(--color-primary-border-hover);box-shadow:var(--shadow-glow)}.card-dimension{padding:clamp(14px,2.5vw,20px)}.card-player{grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:clamp(8px,1.5vw,12px);display:grid}.card-player:hover{background:var(--color-bg-card-hover)}.card-vip-dev{background:linear-gradient(135deg,#0d1f35e6 0%,#28230f4d 100%);border-color:#ffd70040}.card-vip-dev:hover{border-color:#ffd70066}.card-vip-nz{background:linear-gradient(135deg,#0d1f35e6 0%,#3214144d 100%);border-color:#ff323240}.card-vip-nz:hover{border-color:#ff323266}.card-vip-casino{background:linear-gradient(135deg,#0d1f35e6 0%,#2814324d 100%);border-color:#a855f740}.card-vip-casino:hover{border-color:#a855f766}.card-info{padding:clamp(16px,3vw,24px)}.card-info:hover{border-color:rgba(var(--color-primary-rgb), .3)}.card-stat,.card-total{text-align:center;cursor:pointer;max-width:100%;margin-left:auto;margin-right:auto;padding:clamp(16px,3vw,28px);position:relative;overflow:hidden}.card-total{margin-bottom:var(--space-md)}.card-total:hover{background:var(--color-bg-card-hover);box-shadow:var(--shadow-glow-strong);transform:translateY(-2px)}.card-accent-line{background:linear-gradient(90deg, transparent, var(--color-primary), transparent);height:2px;position:absolute;top:0;left:0;right:0}.card-highlight{border-color:rgba(var(--color-primary-rgb), .3)}.card-full-width{grid-column:span 2}@media (min-width:1100px){.card-full-width{grid-column:span 3}}@media (min-width:1500px){.card-full-width{grid-column:span 4}}.card-header{justify-content:space-between;align-items:flex-start;gap:var(--space-sm);min-width:0;margin-bottom:12px;display:flex}.card-title{font-size:clamp(13px,2vw,15px);font-weight:var(--font-weight-semibold);color:var(--color-text);word-break:break-word;flex:1;min-width:0}.card-stats{gap:var(--space-sm);grid-template-columns:80px 90px 1fr;align-items:center;display:grid}.info-card-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);margin-bottom:var(--space-sm)}.info-card-value{font-size:clamp(16px,3vw,20px);font-weight:var(--font-weight-semibold);color:var(--color-text);word-break:break-word}.info-card-value a{color:var(--color-primary);transition:opacity var(--transition-fast);text-decoration:none}.info-card-value a:hover{opacity:.8;text-decoration:underline}.info-card-highlight{color:var(--color-primary)}.info-card-list{gap:var(--space-sm);flex-wrap:wrap;display:flex}.info-card-tag{background:var(--color-primary-muted);border:var(--border-width) solid rgba(var(--color-primary-rgb), .2);border-radius:var(--border-radius-sm);color:var(--color-text-secondary);padding:6px 12px;font-size:12px}@media (min-width:700px){.card-total{max-width:520px}.card-dimension{padding:20px}}.modal-overlay{z-index:var(--z-modal);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000a6;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;top:0;bottom:0;left:0;right:0}.modal-overlay.open{display:flex}.modal-panel{background:var(--color-bg-dark);border:var(--border-width) solid rgba(var(--color-primary-rgb), .25);border-radius:var(--border-radius-xl);padding:var(--space-lg);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;width:100%;max-height:85vh;box-shadow:var(--shadow-modal);overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-title{font-size:12px;font-weight:var(--font-weight-semibold);color:var(--color-text);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.modal-section-title{font-size:var(--font-size-2xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);padding-bottom:var(--space-sm);border-bottom:var(--border-width) solid rgba(var(--color-primary-rgb), .1);margin-bottom:12px}.modal-row{border-bottom:var(--border-width) solid rgba(var(--color-primary-rgb), .06);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.modal-row:last-child{border-bottom:none}.modal-row-info{margin-right:var(--space-md);flex:1}.modal-row-label{font-size:var(--font-size-base);color:var(--color-text-dim);margin-bottom:2px}.modal-row-desc{font-size:var(--font-size-xs);color:var(--color-text-muted)}.settings-sort{padding:10px 0}.settings-sort-desc{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--space-sm)}.settings-sort-controls{gap:var(--space-sm);flex-wrap:wrap;display:flex}.info-intro{font-size:var(--font-size-base);color:var(--color-text-light);line-height:var(--line-height-relaxed);margin-bottom:20px}.info-intro strong{color:var(--color-primary)}.info-section{margin-bottom:var(--space-md);padding-bottom:var(--space-md);border-bottom:var(--border-width) solid rgba(var(--color-primary-rgb), .08)}.info-section:last-of-type{border-bottom:none}.info-section-title{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);margin-bottom:10px}.info-text{color:var(--color-text-secondary);font-size:12px;line-height:var(--line-height-relaxed)}.info-type-row{margin-bottom:var(--space-sm);align-items:center;gap:12px;display:flex}.info-type-row:last-child{margin-bottom:0}.info-type-row .badge-type{flex-shrink:0}.info-type-desc{color:var(--color-text-secondary);font-size:12px}.search-input{min-width:150px;max-width:300px;font-size:var(--font-size-md);background:var(--color-bg-card);border:var(--border-width) solid var(--color-primary-border);border-radius:var(--border-radius-lg);color:var(--color-text-dim);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;flex:1;padding:10px 14px;font-family:inherit}.search-input:focus{border-color:rgba(var(--color-primary-rgb), .5);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb), .1)}.search-input::placeholder{color:var(--color-text-muted)}.spinner{border:2px solid rgba(var(--color-primary-rgb), .2);border-top-color:var(--color-primary);border-radius:var(--border-radius-full);animation:.8s linear infinite spin}.spinner-sm{width:16px;height:16px}.spinner-md{width:24px;height:24px}.spinner-lg{width:32px;height:32px}.loading-state{text-align:center;color:var(--color-text-muted);padding:60px 20px}.loading-state .spinner{margin:0 auto 12px}.loading-state p{margin:0}.debug-info{font-size:var(--font-size-2xs);color:var(--color-text-muted);margin-top:var(--space-sm);font-family:var(--font-mono)}.error-state{text-align:center;color:var(--color-error);padding:60px 20px}.error-state p{margin:0 0 var(--space-md)}.empty-state{text-align:center;color:var(--color-text-muted);padding:60px 20px}.empty-state svg{width:48px;height:48px;margin:0 auto var(--space-md);opacity:.5}.empty-state p{margin:0}.toggle{flex-shrink:0;width:44px;height:24px;position:relative}.toggle input{opacity:0;width:0;height:0;position:absolute}.toggle-track{border:var(--border-width) solid #ffffff26;cursor:pointer;transition:all var(--transition-fast);background:#ffffff14;border-radius:12px;position:absolute;top:0;bottom:0;left:0;right:0}.toggle-track:after{content:"";background:var(--color-text-muted);border-radius:var(--border-radius-full);width:16px;height:16px;transition:all var(--transition-fast);position:absolute;top:3px;left:3px}.toggle input:checked+.toggle-track{background:rgba(var(--color-primary-rgb), .2);border-color:rgba(var(--color-primary-rgb), .5)}.toggle input:checked+.toggle-track:after{background:var(--color-primary);transform:translate(20px)}.toggle input:disabled+.toggle-track{opacity:.5;cursor:not-allowed}.pull-refresh-indicator{top:max(20px, calc(env(safe-area-inset-top,0px) + 8px));background:var(--color-bg-dark);z-index:50;flex-direction:column;justify-content:center;align-items:center;height:0;transition:height .3s;display:flex;position:fixed;left:0;right:0;overflow:hidden}.pull-refresh-indicator.pulling{transition:none}.pull-refresh-indicator.releasing{transition:height .3s}.pull-arrow{color:var(--color-primary);font-size:24px;transition:transform .3s}.pull-arrow.ready{transform:rotate(180deg)}.pull-arrow.hidden{display:none}.pull-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-xs)}
