@import url('./twin-layout.css');
#map-viewport{position:absolute;inset:0;z-index:0;color:#193633;background:#e8ede8;touch-action:none}#map-viewport .leaflet-tile-pane{filter:saturate(.7)}#map-viewport .leaflet-control-attribution{font-size:9px;background:#fffffff2;color:#354d48;padding:3px 6px}#map-viewport .leaflet-control-attribution a{color:#245a51;text-decoration:underline}#map-viewport .leaflet-control-scale-line{color:#24443b;background:#ffffffe8;border-color:#55756c}#map-viewport .leaflet-tooltip{color:#183930;background:#fffffff2;font-size:11px}.scene-panel[data-view=map] .scene-heading{background:#0b1d2be8;padding:12px 14px;border:1px solid #38525c;border-radius:6px;max-width:calc(100% - 45px)}.scene-panel[data-view=map] .scene-heading h2{font-size:18px}.scene-panel[data-view=map] .scene-heading p{margin-bottom:0}.scene-panel[data-view=map] .scene-bottom{bottom:32px;background:#0b1d2be8;padding:7px;border-radius:4px}.scene-panel[data-view=map] .scene-disclaimer{bottom:67px;color:#f1d1a6;background:#28302aee;z-index:2}.scene-panel[data-view=map] .scene-controls{bottom:130px}.district-count{background:#0c493ef2;color:#d9fff0;border:2px solid #8cdbc0;border-radius:12px;box-shadow:0 5px 20px #173b4755;padding:10px 8px;text-align:center}.district-count strong{display:block;font-size:24px;line-height:1.1;font-weight:600}.district-count span{display:block;font-size:11px;margin-top:5px;white-space:nowrap}.district-count small{display:block;color:#8ac8b4;font-size:8px;margin-top:4px}.street-store-pin{width:30px;height:30px;background:#693f8b;color:#fff;display:grid;place-items:center;border:2px solid #fff;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);box-shadow:0 3px 12px #15342766}.street-store-pin span{transform:rotate(45deg);font-size:20px}.street-store-pin.selected{background:#167c65}.twin-map-warning,#map-note{position:absolute;z-index:500;left:16px;right:60px;bottom:110px;padding:9px 12px;background:#fff7e7ed;color:#785d2c;border:1px solid #c5b38d;border-radius:5px;font-size:10px;line-height:1.7;pointer-events:none}#map-note{z-index:3;bottom:150px}#map-viewport .leaflet-control-container a{color:#245a51}
#boundary-status{display:inline-block;max-width:260px;padding:6px 9px;border:1px solid #57897c;border-radius:4px;background:#102a27e8;font-size:10px;color:#9de4cf;letter-spacing:.3px}#boundary-status::before{content:'';display:inline-block;width:12px;border-top:2px solid #ffd58a;margin:0 7px 3px 0}#boundary-status[data-state=error],#boundary-status[data-state=unavailable]{color:#acadb9;border-color:#566474}footer{flex-wrap:wrap;gap:12px}
:root{color-scheme:dark;--bg:#070d17;--panel:#0d1723;--border:#20303d;--text:#e4edf1;--muted:#80939e;--mint:#79efce;--purple:#b49de9;font-family:Inter,-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;font-size:13px;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 30%,#10233444,transparent 65%)}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--mint);outline-offset:3px}button{transition:background .2s,border-color .2s}button:hover{filter:brightness(1.2)}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:10px 15px;border-radius:7px;font-size:12px;white-space:nowrap;border:1px solid var(--border);font-weight:600}.accent{color:#092c27;background:var(--mint);border-color:var(--mint)}.subtle{background:#14232f;color:#b8ccd5}.text-button,.text-link{color:var(--mint);background:none;border:0;font-size:11px}.icon-button{width:32px;height:32px;border:1px solid var(--border);background:#102332;color:#a8c2cf;border-radius:6px;font-size:18px;display:grid;place-items:center}.topbar{height:76px;border-bottom:1px solid #25323d;background:#0a121de8;display:flex;align-items:center;padding:0 32px;gap:34px}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:700;letter-spacing:2px}.brand small{font-size:8px;display:block;color:#99aeb8;letter-spacing:3px;margin-top:4px}.brand-mark{font-size:39px;color:var(--mint);font-weight:300}.header-title{border-left:1px solid var(--border);padding-left:30px;font-size:14px;letter-spacing:1px}.header-title span{display:block;font-size:9px;letter-spacing:2px;color:#708995;margin-top:6px}.topbar nav{margin-left:auto;display:flex;align-items:center;gap:12px}.prototype{font-size:10px;color:#91aaa9;margin-right:12px}.prototype i,.live-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--mint);margin-right:7px;box-shadow:0 0 10px #79efce88}main{max-width:1920px;margin:auto;padding:28px 30px 0}.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.eyebrow{font-size:9px;letter-spacing:2px;color:#65838e;font-weight:600}.intro h1{font-size:27px;font-weight:500;letter-spacing:1px;margin:9px 0 6px}.intro h1 span{color:var(--mint)}.intro p{font-size:12px;color:var(--muted);margin:0}.intro-note{font-size:11px;color:#a9bdc7}.intro-note small{display:block;color:#5e7887;margin:8px 0 0 13px;font-size:10px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.kpis article{position:relative;overflow:hidden;background:linear-gradient(110deg,#14233388,#0f1925);border:1px solid var(--border);border-radius:8px;padding:17px 20px}.kpis article>div:first-child{font-size:11px;color:#a8bdc7}.kpis article>div:first-child span{display:block;font-size:8px;letter-spacing:1.8px;color:#526e7f;margin-top:5px}.kpis strong{display:block;font-size:38px;line-height:1;letter-spacing:1px;font-weight:400;margin:16px 0 9px;font-variant-numeric:tabular-nums}.kpis small{font-size:10px;color:#7a929d}.kpis svg{position:absolute;width:80px;height:30px;right:20px;bottom:20px}.kpis path{fill:none;stroke:var(--mint);stroke-width:1.4}.kpis .no-data{font-size:24px;color:#6f8995;margin:22px 0 17px}.mini-circles,.mini-grid,.connection-icon{position:absolute;right:25px;bottom:19px;color:#3c6b71;font-size:52px}.mini-grid{font-size:50px;color:#8070a3}.connection-icon{font-size:68px;color:#354958}.panel{background:linear-gradient(145deg,#101c28dd,#0a1520ee);border:1px solid var(--border);border-radius:8px}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:19px 18px 15px;gap:8px}.panel-heading h2{font-weight:500;font-size:15px;margin:6px 0 0}.left-panel{display:flex;flex-direction:column;overflow:hidden}.search{display:flex;align-items:center;gap:7px;margin:0 14px 17px;padding:8px 10px;border:1px solid #263643;border-radius:5px;background:#091520}.search span{font-size:20px;color:#54737f}.search input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:#d0e3e9;font-size:11px}.scope-heading,.list-heading{display:flex;justify-content:space-between;margin:0 18px 10px;color:#78919f;font-size:10px}.scope-heading b,.list-heading span{font-weight:400;color:#adc2c8}.regions{padding:0 14px 16px;border-bottom:1px solid var(--border);max-height:140px;overflow:auto}.region-button{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;padding:10px;background:#1733304d;border:1px solid #2d594b66;border-radius:5px;margin-bottom:6px;color:#b5d7cd;font-size:12px}.region-button small{color:#6f9f91;font-size:10px}.list-heading{margin-top:18px}.store-list{overflow:auto;scrollbar-width:thin;scrollbar-color:#243f4d transparent;flex:1}.store-card{width:100%;border:0;border-left:2px solid transparent;border-bottom:1px solid #1c2d38;background:transparent;text-align:left;padding:13px 14px;display:flex;gap:10px;align-items:flex-start;color:var(--text)}.store-card.active{border-left-color:var(--mint);background:linear-gradient(90deg,#1c574b44,transparent)}.store-index{font-size:10px;padding:3px 0;color:#577281;font-variant-numeric:tabular-nums}.store-card strong{font-weight:500;font-size:11px;line-height:1.5;display:block}.store-card small{display:block;font-size:9px;color:#5b7989;margin-top:6px}.store-card .pin-status{color:#9b8aba}.list-footer{font-size:9px;color:#526d7b;border-top:1px solid var(--border);padding:13px 15px}.scene-panel{position:relative;border:1px solid #244354;border-radius:8px;overflow:hidden;background:radial-gradient(ellipse at 50% 48%,#14354588 0%,#07121f 55%,#060e18 100%)}.scene-panel::before{content:'';position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(#779bad66 .7px,transparent .7px),radial-gradient(#77b5ad33 .5px,transparent .5px);background-size:131px 137px,57px 83px;background-position:19px 11px,10px 20px}.scene-toolbar{position:absolute;top:14px;left:16px;right:16px;display:flex;justify-content:space-between;gap:8px;z-index:5;pointer-events:none}.scene-toolbar>*{pointer-events:auto}.level-tabs{display:flex;padding:3px;border:1px solid #253f50;background:#0a1927e8;border-radius:6px}.level-tabs button{background:transparent;border:0;color:#809ba9;padding:7px 12px;border-radius:3px;font-size:11px}.level-tabs button.active{background:#28514677;color:var(--mint)}#viewport{position:absolute;inset:0;touch-action:none}#viewport canvas{display:block}.scene-heading{position:absolute;top:83px;left:22px;pointer-events:none}.scene-heading>span{font-size:8px;letter-spacing:2.3px;color:#53818e}.scene-heading h2{font-size:20px;font-weight:400;letter-spacing:1px;margin:8px 0}.scene-heading p{font-size:10px;color:#688592;max-width:280px;line-height:1.7}.scene-controls{position:absolute;right:15px;bottom:95px;display:flex;flex-direction:column;gap:6px;z-index:4}.scene-controls .icon-button{background:#0b1c29cc}.scene-bottom{position:absolute;bottom:16px;left:20px;right:20px;display:flex;justify-content:space-between;font-size:8px;color:#688797;gap:8px;pointer-events:none}.legend-dot{display:inline-block;width:4px;height:4px;margin:0 5px 1px 9px;border-radius:50%}.mint{background:var(--mint)}.violet{background:var(--purple)}.scene-disclaimer{position:absolute;bottom:47px;left:20px;font-size:9px;color:#908aab;max-width:calc(100% - 70px);line-height:1.7;background:#101b29bb;padding:5px 8px;border-left:1px solid #7b699f}.scene-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.scene-label{position:absolute;top:0;left:0;pointer-events:auto;color:#c7fbe9;background:#0b2929dd;border:1px solid #478f7888;border-radius:5px;box-shadow:0 3px 20px #0006;padding:7px 10px;min-width:70px;max-width:185px;text-align:left;white-space:nowrap}.scene-label::after{content:'';position:absolute;bottom:-7px;left:50%;height:6px;border-left:1px solid #67baa0}.scene-label.violet{border-color:#9773c5;background:#231f38dd;color:#c8b2ef}.scene-label strong{display:block;font-size:10px;font-weight:500;overflow:hidden;text-overflow:ellipsis}.scene-label span{display:block;font-size:8px;color:#7dafa5;margin-top:3px}.scene-error{position:absolute;top:45%;left:10%;right:10%;padding:18px;background:#172735ef;border:1px solid #6c6a91;line-height:1.8;font-size:12px;z-index:8;border-radius:8px}.right-panel{display:flex;flex-direction:column;gap:14px}.store-detail{overflow:hidden}.status-tag{font-size:8px;color:#bea9e0;border:1px solid #4f3c65;padding:3px 5px;border-radius:3px;white-space:nowrap}.status-tag.muted{color:#738c99;border-color:#2c414f}.store-illustration{height:122px;margin:0 18px;background:radial-gradient(ellipse at center,#23454f66,transparent 70%);position:relative;overflow:hidden;border-bottom:1px solid #233441}.isometric-store{position:absolute;width:90px;height:70px;left:50%;top:10px;transform:translateX(-50%) rotate(-12deg) skewY(6deg)}.store-roof{position:absolute;top:3px;left:0;width:100px;height:36px;background:#547a80;color:#b4f6dc;transform:skewX(-30deg);text-align:center;padding:11px;font-size:11px;letter-spacing:3px;border:1px solid #79aaa5}.store-front{position:absolute;top:39px;left:-10px;width:100px;height:40px;background:#233e4b;display:flex;gap:6px;align-items:flex-end;justify-content:center;border:1px solid #4f6c72}.store-front i{display:block;width:21px;height:29px;background:linear-gradient(140deg,#497e88,#162a3f);border:1px solid #55838b}.store-illustration>span{position:absolute;bottom:9px;left:0;right:0;text-align:center;font-size:7px;color:#487380;letter-spacing:2px}.store-detail h3{font-size:14px;font-weight:500;margin:17px 18px 8px;line-height:1.6}.address{font-size:10px;color:#768f9d;line-height:1.8;margin:0 18px 11px;min-height:35px}.store-meta{font-size:9px;color:#8ba5ad;margin:0 18px 15px;display:flex;flex-wrap:wrap;gap:5px}.store-meta span{background:#182b37;padding:4px 6px;border-radius:3px}.full{display:flex;justify-content:space-between;width:calc(100% - 36px);margin:0 18px}.caption{font-size:9px;color:#5c7785;line-height:1.7;margin:10px 18px 15px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;padding:0 18px}.metric-grid>div{padding:12px 0;border-bottom:1px solid #20333f}.metric-grid span{font-size:10px;color:#9cb1bc}.metric-grid strong{font-size:22px;display:block;font-weight:400;color:#7d99a6;margin:6px 0 3px}.metric-grid small{font-size:8px;color:#4f6a79}.journey{display:flex;align-items:center;gap:24px;margin-top:18px;padding:17px 20px}.journey h2{font-size:13px;font-weight:500;margin:6px 0 0}.journey>.button{margin-left:auto}.breadcrumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.breadcrumbs button{border:1px solid #29424d;background:#142631;color:#9db8c4;padding:8px 12px;border-radius:5px;font-size:10px}.breadcrumbs button:last-child{color:var(--mint);border-color:#427967;background:#17373077}.breadcrumbs span{color:#385568}footer{display:flex;align-items:center;justify-content:space-between;padding:20px 0;font-size:8px;letter-spacing:1px;color:#4d6b7c}footer b{margin:0 9px;font-weight:400}footer i{font-style:normal;margin-left:18px;letter-spacing:0;color:#597181}footer a{font-size:8px;letter-spacing:0}dialog{background:#0d1b29;color:var(--text);border:1px solid #36505f;border-radius:12px;padding:24px;width:600px;max-width:calc(100vw - 28px);max-height:90vh}dialog::backdrop{background:#020912bd;backdrop-filter:blur(6px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center}.dialog-heading h2{font-size:22px;font-weight:500;margin:9px 0 15px}dialog p{font-size:12px;color:#8ba4b2;line-height:1.8}.button-row{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.info-box{padding:14px;line-height:1.9;font-size:11px;background:#172434;border:1px solid #344255;border-radius:6px;color:#92a6b7;margin:18px 0}.text-link{display:block;line-height:1.8}.empty{padding:16px;color:#738f9e;font-size:11px;line-height:1.8}#toast{position:fixed;left:50%;bottom:25px;transform:translateX(-50%);padding:13px 20px;background:#173c3bf2;border:1px solid #448678;color:#bfe8dc;z-index:100;border-radius:7px;font-size:12px;max-width:90vw;line-height:1.7}[hidden]{display:none!important}
