:root{--bg:#050909;--panel:#0a1213;--panel-soft:#0e1717;--panel-lift:#101a1a;--surface:#0e1717;--green:#37e58f;--cyan:#38bdf8;--amber:#f5b84b;--red:#ff5b5b;--text:#f5fffa;--muted:#8ea5a0;--border:#263b3a}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}.cockpit-shell{background:radial-gradient(circle at 80% 12%,#37e58f1f,#0000 28%),linear-gradient(140deg,#050909 0%,#06100f 48%,#081515 100%);min-height:100vh;position:relative;overflow:hidden}.vehicle-status{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);z-index:5;background:#050909db;border-bottom:1px solid #263b3acc;justify-content:space-between;align-items:center;height:64px;padding:0 28px;display:flex;position:fixed;top:0;left:0;right:0}.status-left{flex-shrink:0;align-items:center;gap:16px;display:flex}.clock{color:var(--text);font-size:17px;font-weight:700}.brand{margin:0;font-size:15px;font-weight:800}.mode-subtitle{color:var(--muted);margin:0;font-size:12px}.wallet-pill{color:var(--green);white-space:nowrap;background:#37e58f1a;border:1px solid #37e58f4d;border-radius:999px;align-items:center;gap:6px;padding:6px 16px;font-size:13px;font-weight:700;display:flex}.status-right{flex-shrink:0;justify-content:flex-end;align-items:center;gap:12px;display:flex}.live-pill,.auto-eco-pill{color:var(--green);text-transform:uppercase;white-space:nowrap;border:1px solid #37e58f59;border-radius:999px;align-items:center;gap:6px;height:34px;padding:0 12px;font-size:12px;font-weight:700;display:flex}.live-pill--not_configured,.live-pill--disconnected{color:var(--cyan);border-color:#38bdf859}.live-pill--connecting{color:var(--amber);border-color:#f5b84b66}.live-pill--error{color:var(--red);border-color:#ff5b5b75}.auto-eco-pill--live{color:var(--green);border-color:#37e58f94}.cockpit-main{grid-template-rows:minmax(0,1fr);grid-template-columns:1fr;min-height:100vh;padding:88px 28px 100px;display:grid}.primary-panel,.metrics-panel,.secondary-panel{background:#0a1213d1;border:1px solid #263b3ac7;border-radius:8px}.primary-panel{flex-direction:column;gap:18px;min-height:0;padding:22px;display:flex}.panel-heading{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.eyebrow{color:var(--green);text-transform:uppercase;margin:0;font-size:12px;font-weight:800}h1{margin:6px 0 0;font-size:clamp(28px,4vw,48px);line-height:1}.metrics-panel{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;display:grid}.metric-card{background:var(--panel-lift);border:1px solid #263b3ab3;border-radius:6px;min-height:110px;padding:14px}.metric-card p{color:var(--muted);margin:0;font-size:12px}.metric-card strong{overflow-wrap:anywhere;margin:10px 0 6px;font-size:clamp(24px,3vw,38px);line-height:1.05;display:block}.metric-card span{color:var(--muted);font-size:12px}.secondary-panel{padding:18px}.secondary-panel p{color:var(--muted);margin:0;font-size:12px}.secondary-panel strong{margin-top:6px;font-size:15px;line-height:1.5;display:block}.action-message{color:var(--muted);margin:12px 0 0;font-size:12px}.vehicle-dock{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);z-index:5;background:#050909db;border-top:1px solid #263b3acc;justify-content:center;align-items:center;height:72px;padding:0 28px;display:flex;position:fixed;bottom:0;left:0;right:0}.mode-cluster{justify-content:center;gap:8px;display:flex}.mode-chip{color:var(--muted);border:1px solid #263b3ac7;border-radius:6px;align-items:center;gap:8px;height:42px;padding:0 14px;font-size:13px;transition:all .15s;display:flex}.mode-chip:hover{background:#ffffff0a}.mode-chip--active{color:var(--green);background:#37e58f24;border-color:#37e58f8c}.live-surface{background:linear-gradient(135deg,#0b1617eb,#060c0df5),radial-gradient(circle at 76% 18%,#38bdf826,#0000 28%);border:1px solid #263b3ac7;border-radius:8px;flex:1;min-height:480px;position:relative;overflow:hidden}.surface-grid{opacity:.45;background-image:linear-gradient(#38bdf817 1px,#0000 1px),linear-gradient(90deg,#38bdf817 1px,#0000 1px);background-size:56px 56px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#000 30%,#0000 78%);mask-image:radial-gradient(circle,#000 30%,#0000 78%)}.hardware-pod,.packet-panel,.empty-state{background:#070e0fe6;border:1px solid #263b3ad1;border-radius:8px;position:absolute}.hardware-pod{align-items:center;gap:6px;width:min(230px,38%);padding:16px;display:grid;top:24px;left:24px}.hardware-pod--green{color:var(--green)}.hardware-pod--amber{color:var(--amber)}.hardware-pod--red{color:var(--red)}.hardware-pod--blue{color:var(--cyan)}.hardware-pod span{color:var(--muted);font-size:12px}.drive-centerpiece{place-items:center;gap:26px;width:min(420px,72%);display:grid;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.speed-orb{aspect-ratio:1;background:radial-gradient(circle,#37e58f26,#0000 58%),conic-gradient(from 230deg,#37e58feb,#38bdf8b3,#263b3a33,#37e58feb);border:1px solid #37e58f59;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:min(260px,56vw);display:flex;box-shadow:0 0 46px #37e58f1f}.speed-orb span{font-size:clamp(48px,9vw,100px);font-weight:900;line-height:.9}.speed-orb small{color:var(--muted);text-transform:uppercase;font-size:13px;font-weight:800}.steering-arc{background:#38bdf81f;border:1px solid #38bdf847;border-radius:999px;width:min(240px,70vw);height:12px;position:relative;overflow:hidden}.steering-arc span{background:var(--cyan);border-radius:50%;width:12px;height:12px;display:block;position:absolute;top:0;left:calc(50% - 6px);box-shadow:0 0 24px #38bdf8bf}.packet-panel{gap:8px;width:min(300px,42%);padding:14px;display:grid;top:24px;right:24px}.packet-row{background:#0e1717c7;border:1px solid #263b3a94;border-radius:6px;justify-content:space-between;align-items:center;min-height:40px;margin:0;padding:0 12px;display:flex}.packet-row span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:800}.packet-row strong{color:var(--text);overflow-wrap:anywhere;text-align:right;max-width:58%;font-size:13px;font-weight:800}.empty-state{color:var(--cyan);align-items:center;gap:10px;width:min(300px,42%);padding:18px;display:grid;top:24px;left:24px}.empty-state strong{color:var(--text);font-size:16px}.empty-state span{color:var(--muted);font-size:12px}.future-surface-clean{place-items:center;display:grid}.module-shell{color:var(--cyan);text-align:center;background:#070e0fcc;border:1px solid #263b3ad1;border-radius:8px;place-items:center;gap:10px;padding:26px;display:grid}.module-shell strong{color:var(--text);font-size:22px}.module-shell span{color:var(--muted);max-width:300px;font-size:13px}.compact-feed{gap:8px;margin-top:14px;display:grid}.event-row{border-left:3px solid var(--cyan);color:var(--text);margin:0;padding-left:10px;font-size:12px;line-height:1.35}.event-row span{color:var(--muted);margin-right:8px;font-weight:800;display:inline-block}.event-row--good{border-color:var(--green)}.event-row--warning{border-color:var(--amber)}.event-row--danger{border-color:var(--red)}.event-row--neutral{border-color:var(--cyan)}.empty-feed{color:var(--muted);margin:0;font-size:12px}.cockpit-shell--cyan .eyebrow,.cockpit-shell--cyan .mode-chip--active,.cockpit-shell--cyan .auto-eco-pill{color:var(--cyan)}.cockpit-shell--amber .eyebrow,.cockpit-shell--amber .mode-chip--active,.cockpit-shell--amber .auto-eco-pill{color:var(--amber)}.cockpit-shell--red .eyebrow,.cockpit-shell--red .mode-chip--active,.cockpit-shell--red .auto-eco-pill{color:var(--red)}@media (max-width:1100px){.cockpit-main{grid-template-columns:1fr;padding-bottom:120px}.primary-panel{grid-row:auto}.vehicle-dock{height:auto;padding:12px}.hardware-pod,.packet-panel,.empty-state{width:auto;position:relative;top:auto;left:auto;right:auto}.live-surface{gap:14px;min-height:500px;padding:14px;display:grid}.drive-centerpiece{width:100%;position:relative;inset:auto;transform:none}}@media (max-width:720px){.vehicle-status{height:56px;padding:0 16px}.cockpit-main{padding:72px 12px 110px}.panel-heading{display:grid}.metrics-panel{grid-template-columns:1fr}.mode-chip span,.wallet-pill span{display:none}}.eco-route-planner{flex-direction:column;gap:16px;height:100%;padding:20px;display:flex}.route-search-section{z-index:1000;flex-direction:column;gap:0;display:flex;position:relative}.route-origin{color:var(--green);background:#37e58f14;border:1px solid #37e58f33;border-radius:8px 8px 0 0;align-items:center;gap:10px;padding:8px 14px;font-size:13px;font-weight:600;display:flex}.origin-dot{background:var(--green);border-radius:50%;flex-shrink:0;width:10px;height:10px;box-shadow:0 0 6px #37e58f80}.route-search-connector{background:linear-gradient(var(--green), var(--red));width:2px;height:12px;margin-left:18px}.route-search-bar{background:var(--panel-lift);border:1px solid var(--border);border-radius:0 0 8px 8px;align-items:center;gap:10px;height:48px;padding:0 14px;display:flex;position:relative}.dest-dot{background:var(--red);border-radius:50%;flex-shrink:0;width:10px;height:10px;box-shadow:0 0 6px #ff5b5b80}.route-search-bar input{color:var(--text);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:14px}.route-search-bar input::placeholder{color:var(--muted)}.search-spinner{border:2px solid var(--border);border-top-color:var(--green);border-radius:50%;width:18px;height:18px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.search-suggestions{background:var(--panel);border:1px solid var(--border);z-index:10;border-radius:0 0 8px 8px;max-height:240px;position:absolute;top:100%;left:0;right:0;overflow:hidden auto}.suggestion-item{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #263b3a66;flex-direction:column;gap:2px;padding:10px 14px;font-family:inherit;font-size:13px;transition:background .15s;display:flex}.suggestion-item:hover{background:#37e58f14}.suggestion-item:last-child{border-bottom:none}.suggestion-name{color:var(--text);font-weight:600}.suggestion-detail{color:var(--muted);font-size:11px}.route-error{color:var(--red);margin:0;padding:0 4px;font-size:13px}.map-container{border:1px solid var(--border);border-radius:8px;flex:1;min-height:200px;position:relative;overflow:hidden}.leaflet-container{background:#0f1115!important;font-family:inherit!important}.map-overlay{z-index:400;pointer-events:none;background:#05090999;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.map-overlay p{color:var(--muted);text-align:center;margin:0;font-size:14px}.route-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.route-card{background:var(--panel-lift);border:1px solid var(--border);text-align:left;cursor:pointer;color:var(--text);border-radius:8px;flex-direction:column;gap:12px;padding:14px;font-family:inherit;transition:all .2s;display:flex}.route-card:hover{background:#ffffff0a}.route-card--selected{background:#37e58f0f;border-color:#37e58f80}.route-card-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.route-card-title{align-items:center;gap:8px;display:flex}.route-card-header h3{margin:0;font-size:16px;font-weight:700}.eco-tag{color:var(--green);text-transform:uppercase;letter-spacing:.5px;background:#37e58f26;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:800}.eco-bonus{color:var(--green);white-space:nowrap;background:#37e58f1f;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:700}.route-stats{flex-wrap:wrap;gap:16px;display:flex}.route-stats .stat{flex-direction:column;gap:3px;display:flex}.route-stats .stat span{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:700}.route-stats .stat strong{color:var(--text);font-size:15px}.route-stats .stat--save strong{color:var(--green)}.route-cta{background:var(--green);color:#000;text-align:center;border-radius:6px;margin-top:4px;padding:10px;font-size:13px;font-weight:700;animation:2s ease-in-out infinite pulse-glow}@keyframes pulse-glow{0%,to{box-shadow:0 0 #37e58f66}50%{box-shadow:0 0 16px 4px #37e58f33}}.rewards-surface-clean{flex-direction:column;gap:24px;padding:24px;display:flex;overflow-y:auto}.rewards-header{text-align:left}.rewards-header h2{color:var(--text);margin:0 0 4px;font-size:24px}.rewards-header p{color:var(--muted);margin:0;font-size:14px}.rewards-header strong{color:var(--green);font-size:16px}.rewards-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.reward-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;padding:16px;transition:all .2s;display:flex}.reward-card:hover{background:#ffffff0d;border-color:#37e58f4d}.reward-icon{background:#0003;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:8px;font-size:32px;display:flex}.reward-card h3{color:var(--text);flex:1;margin:0;font-size:15px;line-height:1.4}.reward-action{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px;display:flex}.reward-cost{color:var(--green);font-size:13px;font-weight:700}.redeem-btn{background:var(--green);color:#000;cursor:pointer;border:none;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:700;transition:all .2s}.redeem-btn:disabled{background:var(--border);color:var(--muted);cursor:not-allowed}.redeem-btn:active:not(:disabled){transform:scale(.95)}.cockpit-main--city .primary-panel{padding:18px}.cockpit-main--city .panel-heading h1{font-size:clamp(28px,3.4vw,46px)}.city-surface{background:radial-gradient(circle at 34% 38%,#37e58f1c,#0000 34%),linear-gradient(145deg,#091413fa,#050b0cfa);flex-direction:column;min-height:590px;display:flex;overflow:hidden}.city-summary{background:#040a0bc2;border-bottom:1px solid #8ea5a02e;grid-template-columns:repeat(3,minmax(105px,.7fr)) minmax(190px,1.25fr);gap:9px;padding:12px;display:grid}.city-summary-stat,.city-stage-summary{background:#0e1918db;border:1px solid #8ea5a02b;border-radius:8px;min-width:0}.city-summary-stat{grid-template-columns:auto 1fr;align-items:center;gap:3px 8px;padding:9px 10px;display:grid}.city-summary-stat svg{grid-row:span 2}.city-summary-stat span,.city-stage-summary span,.city-kicker,.building-option-copy small,.building-detail p,.building-detail-stats small,.city-map-legend{color:var(--muted);font-size:10px}.city-summary-stat strong{font-size:19px;line-height:1}.city-summary-stat--amber svg,.city-summary-stat--amber strong{color:var(--amber)}.city-summary-stat--green svg,.city-summary-stat--green strong{color:var(--green)}.city-summary-stat--cyan svg,.city-summary-stat--cyan strong{color:var(--cyan)}.city-stage-summary{gap:6px;padding:8px 11px;display:grid}.city-stage-summary>div:first-child{justify-content:space-between;align-items:center;gap:10px;display:flex}.city-stage-summary strong{color:var(--green);font-size:13px}.city-stage-track{background:#8ea5a021;border-radius:999px;height:5px;overflow:hidden}.city-stage-track span{background:linear-gradient(90deg, var(--green), var(--cyan));border-radius:inherit;height:100%;display:block}.city-workspace{flex:1;grid-template-columns:minmax(0,1fr) minmax(210px,.38fr);gap:12px;min-height:0;padding:12px;display:grid}.city-map-panel,.building-panel{background:#070f0fd1;border:1px solid #8ea5a02e;border-radius:9px;min-width:0}.city-map-panel{flex-direction:column;min-height:0;display:flex;overflow:hidden}.city-map-heading,.building-panel-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.city-map-heading{min-height:58px;padding:10px 12px}.city-kicker{color:var(--green);letter-spacing:.08em;text-transform:uppercase;font-weight:900}.city-map-heading h2,.building-panel-heading h2{margin:3px 0 0;font-size:15px}.city-message{color:var(--green);background:#37e58f14;border:1px solid #37e58f38;border-radius:6px;align-items:center;gap:6px;max-width:48%;padding:7px 9px;font-size:10px;line-height:1.25;display:flex}.city-message--error{color:var(--red);background:#ff5b5b14;border-color:#ff5b5b47}.city-grid-wrap{background:linear-gradient(#38bdf809 1px,#0000 1px) 0 0/28px 28px,linear-gradient(90deg,#38bdf809 1px,#0000 1px) 0 0/28px 28px,radial-gradient(circle,#37e58f14,#0000 62%);flex:1;justify-content:center;align-items:center;min-height:390px;padding:14px;display:flex;position:relative;overflow:hidden}.city-grid-glow{filter:blur(38px);background:#37e58f1f;width:64%;height:64%;position:absolute}.city-grid{aspect-ratio:1;z-index:1;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;width:min(100%,48vh);max-width:410px;max-height:410px;display:grid;position:relative;transform:perspective(900px)rotateX(3deg)}.city-plot{aspect-ratio:1;color:#8ea5a07a;cursor:pointer;background:#0d1d1bf0;border:1px solid #4d786d61;border-radius:4px;justify-content:center;align-items:center;min-width:0;padding:0;transition:border-color .14s,background .14s,transform .14s;display:flex;position:relative;overflow:hidden}.city-plot:hover,.city-plot:focus-visible,.city-plot--preview{background:color-mix(in srgb, var(--building-color) 13%, #0d1d1b);border-color:var(--building-color);color:var(--building-color);z-index:3;outline:none;transform:translateY(-2px)}.city-plot--occupied{background:linear-gradient(145deg, color-mix(in srgb, var(--building-color) 12%, #0c1918), #081110);border-color:color-mix(in srgb, var(--building-color) 55%, #29433e);color:var(--building-color)}.city-plot--bonus{box-shadow:inset 0 0 0 1px #f5b84b80,0 0 12px #f5b84b1f}.city-plot-ground{border:1px solid color-mix(in srgb, var(--building-color) 20%, transparent);position:absolute;inset:9%;transform:rotate(45deg)scale(.7)}.city-plot-plus{font-size:16px;font-weight:300}.city-building{text-shadow:0 0 14px;z-index:2;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:relative}.city-building small{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:42px;font-size:7px;font-weight:800;overflow:hidden}.city-building--preview{opacity:.55}.city-bonus-mark{color:var(--amber);position:absolute;top:4px;right:4px}.city-map-legend{border-top:1px solid #8ea5a024;align-items:center;gap:15px;min-height:36px;padding:6px 12px;display:flex}.city-map-legend span{align-items:center;gap:5px;display:flex}.city-map-legend strong{color:var(--text);margin-left:auto}.legend-swatch{border-radius:2px;width:8px;height:8px;display:inline-block}.legend-swatch--bonus{background:var(--amber);box-shadow:0 0 8px #f5b84b80}.legend-swatch--open{border:1px solid var(--muted)}.building-panel{flex-direction:column;gap:9px;padding:11px;display:flex;overflow:hidden}.building-panel-heading svg{color:var(--green)}.building-list{gap:5px;display:grid}.building-option{color:var(--text);cursor:pointer;text-align:left;background:#0e1918cc;border:1px solid #8ea5a029;border-radius:6px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:45px;padding:5px 7px;transition:background .14s,border-color .14s;display:grid}.building-option:hover,.building-option:focus-visible,.building-option--selected{background:color-mix(in srgb, var(--building-color) 11%, #0e1918);border-color:color-mix(in srgb, var(--building-color) 60%, #263b3a);outline:none}.building-option-icon{background:color-mix(in srgb, var(--building-color) 12%, #0a1111);border:1px solid color-mix(in srgb, var(--building-color) 40%, #263b3a);color:var(--building-color);border-radius:5px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.building-option-copy{gap:2px;min-width:0;display:grid}.building-option-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.building-option-cost{color:var(--amber);align-items:center;gap:3px;font-size:11px;font-weight:900;display:flex}.building-option-cost--locked{color:var(--muted)}.building-detail{background:#f5b84b0f;border:1px solid #f5b84b2e;border-radius:7px;gap:8px;padding:9px;display:grid}.building-detail>div:first-child{color:var(--amber);align-items:center;gap:8px;display:flex}.building-detail>div:first-child strong{color:var(--text);font-size:12px}.building-detail p{margin:0;line-height:1.35}.building-detail-stats{grid-template-columns:1fr 1fr;gap:6px;display:grid}.building-detail-stats span{background:#0000002e;border-radius:5px;gap:2px;padding:6px;display:grid}.building-detail-stats strong{color:var(--green);font-size:12px}.city-adjacency-tip{border-left:2px solid var(--green);color:var(--green);background:#37e58f0f;align-items:flex-start;gap:7px;margin-top:auto;padding:8px;display:flex}.city-adjacency-tip p{color:var(--muted);margin:0;font-size:9px;line-height:1.35}.city-adjacency-tip strong{color:var(--green)}@media (max-width:1100px){.city-summary{grid-template-columns:repeat(3,1fr)}.city-stage-summary{grid-column:span 3}.city-workspace{grid-template-columns:1fr}.city-grid{width:min(100%,430px)}.building-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:620px){.city-summary{grid-template-columns:1fr 1fr}.city-summary-stat:nth-child(3),.city-stage-summary{grid-column:span 2}.city-map-heading{flex-direction:column;align-items:flex-start}.city-message{max-width:none}.city-grid-wrap{min-height:330px;padding:8px}.city-building small{display:none}.building-list{grid-template-columns:1fr}}body:has(.cockpit-shell--simulator-display){background:#050909;overflow:hidden}.cockpit-shell--simulator-display{min-height:100vh}.community-surface{flex-direction:column;justify-content:flex-start;align-items:center;gap:24px;padding:32px 24px;display:flex;overflow-y:auto}.leaderboard-header{text-align:center;margin-bottom:8px}.leaderboard-header h2{color:var(--text);letter-spacing:-.03em;background:linear-gradient(135deg,#f4fff9,#37e58f);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:6px;font-size:clamp(24px,3.5vw,36px);font-weight:900}.leaderboard-header p{color:var(--muted);text-transform:uppercase;letter-spacing:2px;font-size:13px;font-weight:700}.podium-section{justify-content:center;align-items:flex-end;gap:20px;width:100%;max-width:680px;margin:15px auto 10px;display:flex}.podium-card{background:linear-gradient(#101c1dbf,#070e0fe6);border:1px solid #263b3a99;border-radius:18px;flex-direction:column;flex:1;align-items:center;min-height:180px;padding:24px 16px 20px;transition:all .3s cubic-bezier(.25,.8,.25,1);display:flex;position:relative;box-shadow:0 10px 30px #0003}.podium-card:hover{border-color:#38bdf84d;transform:translateY(-5px);box-shadow:0 15px 35px #00000059}.podium-card--1st{z-index:2;background:linear-gradient(#1c261ccc,#09100bf2);border-color:#f5b84b8c;min-height:215px;animation:4s ease-in-out infinite goldGlowPulse}.podium-card--1st:hover{border-color:#f5b84be6;transform:translateY(-8px);box-shadow:0 0 35px #f5b84b38,inset 0 0 15px #f5b84b0d}.podium-card--2nd{border-color:#d1d5db40}.podium-card--3rd{border-color:#b4530940}.podium-crown-container{pointer-events:none;animation:2.5s ease-in-out infinite crownSway;position:absolute;top:-30px;left:50%;transform:translate(-50%)}@keyframes crownSway{0%{transform:translate(-50%)rotate(-6deg)}50%{transform:translate(-50%,-6px)rotate(6deg)}to{transform:translate(-50%)rotate(-6deg)}}@keyframes goldGlowPulse{0%{box-shadow:0 0 25px #f5b84b1a,inset 0 0 15px #f5b84b05}50%{box-shadow:0 0 35px #f5b84b38,inset 0 0 20px #f5b84b14}to{box-shadow:0 0 25px #f5b84b1a,inset 0 0 15px #f5b84b05}}.podium-crown-icon{color:#fcd34d;filter:drop-shadow(0 2px 10px #f5b84b99)}.podium-avatar-wrapper{background:#ffffff0d;border-radius:50%;justify-content:center;align-items:center;width:68px;height:68px;margin-bottom:12px;display:flex;position:relative}.podium-card--1st .podium-avatar-wrapper{background:linear-gradient(135deg,#f5b84b,#b45309);width:80px;height:80px;padding:2.5px}.podium-card--2nd .podium-avatar-wrapper{background:linear-gradient(135deg,#e5e7eb,#9ca3af);padding:2px}.podium-card--3rd .podium-avatar-wrapper{background:linear-gradient(135deg,#d97706,#78350f);padding:2px}.podium-avatar{object-fit:cover;border:2px solid #060c0d;border-radius:50%;width:100%;height:100%}.podium-rank-badge{border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:900;display:flex;position:absolute;bottom:-4px;right:-4px}.podium-rank-badge--1st{color:#060c0d;background:#f5b84b;box-shadow:0 3px 8px #f5b84b66}.podium-rank-badge--2nd{color:#060c0d;background:#d1d5db;box-shadow:0 3px 8px #d1d5db66}.podium-rank-badge--3rd{color:#fff;background:#b45309;box-shadow:0 3px 8px #b4530966}.podium-info{text-align:center;width:100%}.podium-name{color:#f4fff9;white-space:nowrap;text-overflow:ellipsis;margin:4px 0 2px;font-size:13.5px;font-weight:700;overflow:hidden}.podium-card--1st .podium-name{color:gold;text-shadow:0 0 10px #f5b84b40;font-size:15px;font-weight:800}.podium-score{color:var(--muted);font-size:11px}.podium-score span{color:#37e58f;font-size:13.5px;font-weight:800}.podium-card--1st .podium-score span{color:#f5b84b}.leaderboards-grid{grid-template-columns:1fr 1fr;gap:24px;width:100%;max-width:1000px;margin-top:10px;display:grid}.leaderboard-card{background:linear-gradient(#0e191aa6,#060c0dd9);border:1px solid #263b3aad;border-radius:18px;flex-direction:column;min-height:380px;padding:20px;display:flex;box-shadow:0 15px 45px #00000040}.leaderboard-card-header{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:14px;display:flex}.leaderboard-card-title{color:#f4fff9;letter-spacing:-.01em;align-items:center;gap:8px;margin:0;font-size:16px;font-weight:850;display:flex}.leaderboard-card-title svg{color:#37e58f}.state-select-container{align-items:center;display:flex;position:relative}.state-select-dropdown{appearance:none;color:#f4fff9;cursor:pointer;background:#0a1213d9;border:1px solid #37e58f40;border-radius:8px;outline:none;padding:6px 30px 6px 12px;font-size:11.5px;font-weight:750;transition:all .2s;box-shadow:inset 0 1px #ffffff05}.state-select-dropdown:hover,.state-select-dropdown:focus{background:#0e191af2;border-color:#37e58f99;box-shadow:0 0 10px #37e58f1a}.state-select-chevron{color:#37e58f;pointer-events:none;position:absolute;right:10px}.leaderboard-rows{flex-direction:column;flex:1;gap:8px;transition:opacity .22s cubic-bezier(.4,0,.2,1);display:flex}.leaderboard-rows--fade{opacity:.15}.leaderboard-row-v2{background:#ffffff05;border:1px solid #ffffff0a;border-radius:12px;align-items:center;gap:12px;padding:10px 14px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.leaderboard-row-v2:hover{background:#ffffff0d;border-color:#37e58f26;transform:translate(4px)}.leaderboard-row-v2--highlighted{background:linear-gradient(90deg,#f5b84b1f,#f5b84b05);border-color:#f5b84b73;box-shadow:0 4px 15px #f5b84b0d}.leaderboard-row-v2--highlighted:hover{background:linear-gradient(90deg,#f5b84b2e,#f5b84b0a);border-color:#f5b84bb3;box-shadow:0 6px 20px #f5b84b14}.rank-v2{text-align:center;width:24px;color:var(--muted);font-size:13px;font-weight:800}.leaderboard-row-v2--highlighted .rank-v2{color:#f5b84b;font-weight:900}.avatar-v2-wrapper{background:#ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;padding:1.5px;display:flex;position:relative}.leaderboard-row-v2--highlighted .avatar-v2-wrapper{background:linear-gradient(135deg,#f5b84b,#b45309)}.avatar-v2{object-fit:cover;border:1px solid #060c0d;border-radius:50%;width:100%;height:100%}.info-v2{flex-direction:row;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.name-v2{color:#f4fff9;white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;overflow:hidden}.leaderboard-row-v2--highlighted .name-v2{color:#ffcf78;font-weight:750}.state-v2{color:var(--muted);font-size:11px;font-weight:500}.me-badge{color:#37e58f;text-transform:uppercase;letter-spacing:.5px;background:#37e58f26;border:1px solid #37e58f66;border-radius:4px;padding:1px 5px;font-size:8px;font-weight:800}.score-group-v2{flex-shrink:0;align-items:center;gap:6px;display:flex}.score-v2{color:#37e58f;font-variant-numeric:tabular-nums;font-size:13.5px;font-weight:850}.leaderboard-row-v2--highlighted .score-v2{color:#f5b84b}.score-icon-v2{color:#38bdf8}.leaderboard-row-v2--highlighted .score-icon-v2{color:#f5b84b}@media (max-width:1024px){.leaderboards-grid{grid-template-columns:1fr;gap:18px}}@media (max-width:640px){.community-surface{gap:16px;padding:20px 12px}.podium-section{gap:8px}.podium-card{min-height:155px;padding:16px 8px 12px}.podium-card--1st{min-height:185px}.podium-avatar-wrapper{width:48px;height:48px}.podium-card--1st .podium-avatar-wrapper{width:62px;height:62px}.podium-name{font-size:11px}.podium-card--1st .podium-name{font-size:12.5px}.podium-score span{font-size:11.5px}.leaderboard-card{min-height:auto;padding:14px}}.city-surface--freeform{min-height:610px}.city-workspace--freeform{grid-template-columns:minmax(0,1fr) minmax(220px,.34fr)}.city-workspace--viewing{grid-template-columns:1fr}.city-map-panel--freeform{min-height:500px}.city-field{cursor:crosshair;perspective:900px;background:linear-gradient(#38bdf817,#0000 31%),radial-gradient(circle at 50% 30%,#37e58f17,#0000 54%),#061110;flex:1;min-height:430px;transition:box-shadow .16s,background .16s;position:relative;overflow:hidden}.city-field--viewing{cursor:grab;touch-action:none}.city-field--viewing:active{cursor:grabbing}.city-field--active{box-shadow:inset 0 0 0 2px #37e58fb8,inset 0 0 60px #37e58f1f}.city-world{aspect-ratio:1;transform:translate(-50%, -50%) rotateX(var(--terrain-pitch,55deg)) rotateZ(var(--terrain-yaw,0deg));transform-origin:50%;transform-style:preserve-3d;width:min(76%,540px);transition:transform 90ms linear;position:absolute;top:48%;left:50%}.city-field-terrain{pointer-events:none;background:linear-gradient(#5b966f29 1px,#0000 1px) 0 0/44px 44px,linear-gradient(90deg,#5b966f29 1px,#0000 1px) 0 0/44px 44px,linear-gradient(145deg,#153d2d,#0d2a22 52%,#143528);border:1px solid #60b28247;border-radius:22px;position:absolute;inset:0;overflow:hidden;box-shadow:0 38px 70px #0000007a,inset 0 0 54px #37e58f14}.city-heading-actions{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.city-edit-toggle{color:var(--amber);cursor:pointer;background:#f5b84b17;border:1px solid #f5b84b61;border-radius:7px;flex:none;align-items:center;gap:6px;min-height:34px;padding:0 10px;font-size:10px;font-weight:800;display:flex}.city-edit-toggle--active{color:var(--green);background:#37e58f1f;border-color:#37e58f7a}.terrain-road{background:linear-gradient(90deg,#1a2929,#2b3c3b,#172525);border:1px solid #d6ede01f;width:105%;height:8%;display:block;position:absolute;box-shadow:0 0 0 7px #10251f9e}.terrain-road--one{top:48%;left:-2%;transform:rotate(-7deg)}.terrain-road--two{width:7%;height:120%;top:-10%;left:66%;transform:rotate(9deg)}.terrain-water{background:radial-gradient(at 48% 42%,#38bdf87a,#0a4858b8);border:2px solid #8bd9e842;border-radius:50%;width:28%;height:25%;display:block;position:absolute;bottom:6%;left:8%}.city-field-empty{color:var(--green);pointer-events:none;text-align:center;z-index:5;place-items:center;gap:7px;width:min(310px,70%);display:grid;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)}.city-field-empty strong{color:var(--text);font-size:18px}.city-field-empty span{color:var(--muted);font-size:11px;line-height:1.4}.city-field-instruction{color:var(--muted);pointer-events:none;z-index:120;background:#050c0cc7;border:1px solid #8ea5a02e;border-radius:999px;align-items:center;gap:5px;padding:6px 9px;font-size:9px;display:flex;position:absolute;bottom:12px;left:12px}.city-infrastructure{color:var(--building-color);cursor:grab;transform-origin:bottom;z-index:20;background:0 0;border:0;width:82px;height:86px;padding:0;position:absolute}.city-infrastructure:active{cursor:grabbing}.city-infrastructure:focus-visible{outline:1px solid var(--building-color);outline-offset:4px}.city-infrastructure--locked{pointer-events:none}.city-infrastructure--editable{pointer-events:auto}.city-infrastructure--selected{filter:drop-shadow(0 0 12px var(--building-color))}.city-infrastructure-shadow{filter:blur(5px);background:#0000006b;border-radius:50%;width:58px;height:16px;position:absolute;bottom:5px;left:13px;transform:rotate(-8deg)}.city-infrastructure-upright{pointer-events:none;height:86px;transform:rotateZ(var(--terrain-yaw-inverse,0deg)) rotateX(var(--terrain-pitch-inverse,-55deg));transform-origin:bottom;transform-style:preserve-3d;width:82px;position:absolute;bottom:4px;left:0}.city-infrastructure-model{background:linear-gradient(145deg, color-mix(in srgb, var(--building-color) 30%, #172323), #0c1717);border:1px solid color-mix(in srgb, var(--building-color) 60%, #263b3a);box-shadow:-8px 11px 0 color-mix(in srgb, var(--building-color) 13%, #07100f), 0 0 24px color-mix(in srgb, var(--building-color) 28%, transparent);height:48px;transform:rotateY(var(--model-rotation)) rotateX(-5deg);transform-style:preserve-3d;border-radius:10px 10px 5px 5px;justify-content:center;align-items:center;width:52px;display:flex;position:absolute;bottom:21px;left:16px}.infrastructure-geometry{filter:drop-shadow(-7px 10px 5px #0000006b);height:62px;transform:rotateY(var(--model-rotation)) rotateX(-5deg);transform-style:preserve-3d;width:62px;display:block;position:absolute;bottom:18px;left:10px}.infrastructure-geometry-core,.infrastructure-geometry-top,.infrastructure-geometry-side,.infrastructure-geometry-detail{transform-style:preserve-3d;display:block;position:absolute}.infrastructure-geometry-core{background:linear-gradient(145deg, color-mix(in srgb, var(--building-color) 42%, #142321), #0a1514);border:1px solid color-mix(in srgb, var(--building-color) 64%, #263b3a);color:var(--building-color);backface-visibility:hidden;justify-content:center;align-items:center;width:43px;height:40px;display:flex;bottom:5px;left:8px;transform:translateZ(12px)}.infrastructure-geometry-top{background:color-mix(in srgb, var(--building-color) 32%, #162522);border:1px solid color-mix(in srgb, var(--building-color) 48%, #263b3a);width:43px;height:17px;top:0;left:8px;transform:rotateX(62deg)translateZ(17px)}.infrastructure-geometry-side{background:color-mix(in srgb, var(--building-color) 16%, #091311);border:1px solid color-mix(in srgb, var(--building-color) 35%, #263b3a);width:17px;height:40px;bottom:5px;right:2px;transform:rotateY(68deg)translateZ(4px)}.infrastructure-geometry-detail{background:var(--building-color);box-shadow:0 0 12px color-mix(in srgb, var(--building-color) 70%, transparent)}.infrastructure-geometry--park .infrastructure-geometry-core{background:radial-gradient(circle at 35% 32%,#83efaf,#258c58 62%,#105137);border-radius:50% 52% 46% 56%;width:43px;height:40px;top:1px;left:10px}.infrastructure-geometry--park .infrastructure-geometry-top,.infrastructure-geometry--park .infrastructure-geometry-side{display:none}.infrastructure-geometry--park .infrastructure-geometry-detail{background:#63432b;width:6px;height:27px;bottom:3px;left:29px}.infrastructure-geometry--solar .infrastructure-geometry-core{background-color:#122f4d;background-image:linear-gradient(#38bdf859 1px,#0000 1px),linear-gradient(90deg,#38bdf859 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:11px 11px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border:2px solid #416c86;width:58px;height:32px;top:5px;left:2px;transform:rotateX(48deg)rotate(-5deg)translateZ(18px);box-shadow:0 5px #071927,0 9px 13px #0000006b,inset 0 0 12px #38bdf82e}.infrastructure-geometry--solar .infrastructure-geometry-top,.infrastructure-geometry--solar .infrastructure-geometry-side{display:none}.infrastructure-geometry--solar .infrastructure-geometry-detail{background:linear-gradient(90deg,#9cb4b5,#e2f2ed 52%,#789292);border-radius:2px;width:4px;height:27px;bottom:4px;left:29px;box-shadow:0 0 0 1px #ddf4ee33}.infrastructure-geometry--solar .infrastructure-geometry-detail:after{content:"";background:linear-gradient(#8aa3a1,#425d5a);border-radius:50%;width:18px;height:7px;position:absolute;bottom:-5px;left:-7px}.infrastructure-geometry--wind .infrastructure-geometry-core{clip-path:polygon(38% 0,62% 0,78% 100%,22% 100%);background:linear-gradient(90deg,#9fbec3,#e2f6f4,#78999e);border:0;width:13px;height:48px;bottom:2px;left:25px}.infrastructure-geometry--wind .infrastructure-geometry-core svg,.infrastructure-geometry--wind .infrastructure-geometry-top,.infrastructure-geometry--wind .infrastructure-geometry-side{display:none}.infrastructure-geometry--wind .infrastructure-geometry-detail{background:var(--building-color);border-radius:999px;width:49px;height:5px;top:6px;left:8px;transform:rotate(28deg)}.infrastructure-geometry--wind .infrastructure-geometry-detail:after{background:var(--building-color);content:"";width:5px;height:49px;position:absolute;top:-22px;left:22px;transform:rotate(62deg)}.infrastructure-geometry--charger .infrastructure-geometry-core{border-radius:9px 9px 3px 3px;width:27px;height:48px;left:18px}.infrastructure-geometry--charger .infrastructure-geometry-top{border-radius:4px;width:27px;left:18px}.infrastructure-geometry--charger .infrastructure-geometry-side{width:12px;right:13px}.infrastructure-geometry--recycling .infrastructure-geometry-core{border-radius:8px 8px 4px 4px;width:52px;height:34px;left:5px}.infrastructure-geometry--recycling .infrastructure-geometry-top{width:52px;left:5px}.infrastructure-geometry--school .infrastructure-geometry-core{width:56px;height:35px;left:3px}.infrastructure-geometry--school .infrastructure-geometry-top{clip-path:polygon(50% 0,100% 100%,0 100%);background:#614f8b;width:60px;height:24px;top:-8px;left:1px;transform:translateZ(13px)}.infrastructure-geometry--school .infrastructure-geometry-side{right:-1px}.city-edit-toolbar{z-index:160;background:#050c0cf0;border:1px solid #37e58f57;border-radius:8px;align-items:center;gap:6px;padding:7px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 16px 30px #0006}.city-edit-toolbar strong{padding:0 5px;font-size:10px}.city-edit-toolbar button{color:var(--green);cursor:pointer;background:#37e58f17;border:1px solid #37e58f47;border-radius:5px;align-items:center;gap:4px;padding:6px 8px;font-size:9px;display:flex}.city-edit-toolbar .city-edit-toolbar-store{color:var(--amber);background:#f5b84b14;border-color:#f5b84b52}.city-infrastructure-model i,.city-infrastructure-model b{background:color-mix(in srgb, var(--building-color) 22%, #101c1b);border:1px solid color-mix(in srgb, var(--building-color) 35%, #263b3a);content:"";position:absolute}.city-infrastructure-model i{width:38px;height:13px;top:-10px;left:6px;transform:skew(-32deg)}.city-infrastructure-model b{width:43px;height:8px;bottom:-8px;left:4px}.city-infrastructure-label{border:1px solid color-mix(in srgb, var(--building-color) 35%, #263b3a);color:var(--text);text-overflow:ellipsis;white-space:nowrap;background:#050c0cdb;border-radius:999px;max-width:76px;padding:3px 7px;font-size:8px;font-weight:800;position:absolute;bottom:-2px;left:50%;overflow:hidden;transform:translate(-50%)}.city-infrastructure--bonus .city-infrastructure-model{box-shadow:-8px 11px 0 color-mix(in srgb, var(--building-color) 13%, #07100f), 0 0 28px #f5b84b94}.city-infrastructure-bonus{color:var(--amber);filter:drop-shadow(0 0 5px #f5b84bb3);position:absolute;top:8px;right:4px}.city-map-legend--freeform{background:#040a0bc7}.city-catalog{background:#070f0fe0;border:1px solid #8ea5a02e;border-radius:9px;flex-direction:column;gap:9px;min-width:0;padding:11px;display:flex;overflow:hidden auto}.city-warehouse{background:linear-gradient(145deg,#38bdf812,#0e1918db);border:1px solid #38bdf83b;border-radius:8px;gap:7px;padding:8px;display:grid}.city-warehouse-heading,.city-warehouse-heading>div,.city-shop-label{align-items:center;display:flex}.city-warehouse-heading{justify-content:space-between}.city-warehouse-heading>div,.city-shop-label{gap:6px}.city-warehouse-heading svg,.city-warehouse-heading strong{color:var(--cyan)}.city-warehouse-heading strong,.city-shop-label strong{font-size:10px}.city-warehouse-heading span{color:var(--muted);background:#38bdf817;border:1px solid #38bdf833;border-radius:999px;padding:3px 6px;font-size:8px}.city-warehouse-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;display:grid}.city-warehouse-card{color:var(--text);cursor:grab;text-align:left;background:#061112db;border:1px solid #8ea5a029;border-radius:6px;grid-template-columns:27px minmax(0,1fr);align-items:center;gap:6px;min-width:0;padding:6px;display:grid}.city-warehouse-card:hover,.city-warehouse-card:focus-visible,.city-warehouse-card--selected{background:color-mix(in srgb, var(--building-color) 10%, #071313);border-color:color-mix(in srgb, var(--building-color) 62%, #263b3a);outline:none}.city-warehouse-model{background:color-mix(in srgb, var(--building-color) 13%, #0b1716);border:1px solid color-mix(in srgb, var(--building-color) 42%, #263b3a);color:var(--building-color);border-radius:5px;justify-content:center;align-items:center;width:27px;height:27px;display:flex}.city-warehouse-card>span:last-child{min-width:0;display:grid}.city-warehouse-card strong{text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.city-warehouse-card small,.city-warehouse-empty{color:var(--muted);font-size:7px}.city-warehouse-empty{margin:0;line-height:1.4}.city-shop-label{color:var(--amber);border-top:1px solid #8ea5a026;margin-top:2px;padding-top:9px}.city-catalog-list{gap:6px;display:grid}.city-catalog-card{color:var(--text);cursor:grab;text-align:left;background:#0e1918d1;border:1px solid #8ea5a029;border-radius:8px;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:52px;padding:5px 8px;transition:border-color .14s,transform .14s,background .14s;display:grid}.city-catalog-card:hover,.city-catalog-card:focus-visible,.city-catalog-card--selected{background:color-mix(in srgb, var(--building-color) 11%, #0e1918);border-color:color-mix(in srgb, var(--building-color) 65%, #263b3a);outline:none;transform:translate(-2px)}.city-catalog-card:disabled{cursor:not-allowed;opacity:.55}.city-catalog-model{background:linear-gradient(145deg, color-mix(in srgb, var(--building-color) 22%, #152220), #081110);border:1px solid color-mix(in srgb, var(--building-color) 45%, #263b3a);box-shadow:-4px 5px 0 color-mix(in srgb, var(--building-color) 10%, #050c0b);color:var(--building-color);border-radius:8px;justify-content:center;align-items:center;width:38px;height:36px;display:flex;transform:perspective(120px)rotateX(-8deg)rotateY(8deg)}.city-catalog-detail{margin-top:2px}@media (max-width:1100px){.city-workspace--freeform{grid-template-columns:1fr}.city-catalog-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:620px){.city-field{min-height:360px}.city-catalog-list{grid-template-columns:1fr}}
