/* TOKYO.exe — translucent Y2K travel atlas */
#view-map:not([hidden]){background:#ebe3fa;inset:0 0 calc(86px + env(safe-area-inset-bottom));color:#312947}
#view-map .scene-wrap{background:radial-gradient(ellipse at 10% 2%,#fce9f8 0,transparent 55%),linear-gradient(145deg,#e7e3ff,#e9ddf6 65%,#d9e8f4)}
#view-map .scene-head{top:calc(13px + env(safe-area-inset-top));left:19px;background:none;border:0;box-shadow:none;padding:0}
#view-map .scene-head strong{font-size:31px;font-style:italic;letter-spacing:-1.7px;color:#5c4a8b;text-shadow:0 1px white,1px 3px 0 #b9a5d2;font-weight:950}
#view-map .scene-head small{font-size:10px;letter-spacing:1px;color:#78668b;display:block;margin-top:6px}
#view-map .map-direct-add{top:calc(23px + env(safe-area-inset-top));right:16px;font-size:12px;padding:10px 13px;border:1px solid #b3c687;box-shadow:0 3px 8px #776b9920;background:#dffcaa;color:#302a47;border-radius:24px;min-height:40px}
#view-map .tools,#view-map .help,#view-map .map-filter-panel,#view-map .map-zone-header{display:none!important}
#ward-map-root{position:absolute;inset:calc(95px + env(safe-area-inset-top)) 0 0;display:flex;flex-direction:column;padding:0 16px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.m2-topline{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.5px;color:#806c99;padding:2px 2px 9px}
#view-map .m2-dates{flex:none;min-height:48px;max-width:100%}
#view-map .m2-dates #days{position:static;display:flex;padding:0 0 9px;gap:7px;overflow:auto;max-width:100%;scrollbar-width:none;margin:0;background:none}
#view-map .m2-dates #days button{white-space:nowrap;border:1px solid #fff;border-radius:18px;background:#fff8;box-shadow:inset 0 1px 1px #fff,0 2px 5px #6e529415;padding:9px 14px;color:#625379;font-size:12px;font-weight:700;min-height:37px}
#view-map .m2-dates #days button[aria-pressed=true]{background:#e2ffb9;color:#333f28;border-color:#f9ffe5}
.m2-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;color:#68587f;min-height:32px;flex:none}
.m2-status>button{border:0;background:#fff8;border-radius:12px;color:#61507c;padding:7px 9px;font-size:10px}
.m2-filters{margin-left:auto}.m2-filters select{font:inherit;font-size:10px;max-width:110px;border:1px solid #fff9;background:#ffffff55;color:#61507c;border-radius:12px;padding:7px}
.m2-viewport{position:relative;min-height:330px;height:48dvh;max-height:570px;flex:0 0 auto;margin-top:4px;border-radius:24px;background:radial-gradient(ellipse at 65% 85%,#cbddeb88,transparent 65%);overflow:hidden}
.m2-viewport svg{width:100%;height:100%;touch-action:none;user-select:none;display:block}
.m2-ward{cursor:pointer;outline:none}.m2-ward path{stroke:#fffafc;stroke-width:1.4;vector-effect:non-scaling-stroke;transition:fill .15s}.m2-ward:hover path,.m2-ward:focus path{fill:#d4c4ef;stroke:#78639f;stroke-width:2}.m2-ward.selected path{fill:#d8f3a3;stroke:#8676b0;stroke-width:2}.m2-ward text{fill:#615278;pointer-events:none;paint-order:stroke;stroke:#ffffff66;stroke-width:1}.m2-ward .m2-count{fill:#536935;font-weight:600}.m2-ward .m2-preview{fill:#334024}
.m2-compass{position:absolute;left:2px;top:8px;font-size:11px;letter-spacing:3px;color:#9b86b2;pointer-events:none}.m2-legend{position:absolute;left:3px;bottom:7px;display:flex;gap:14px;font-size:9px;color:#8b769b;pointer-events:none}.m2-legend span:first-child{color:#758e46}
.m2-controls{position:absolute;right:0;bottom:30px;display:grid;gap:5px}.m2-controls button{border:1px solid #fffc;border-radius:13px;background:#fffc;width:36px;height:36px;color:#736088;font-size:22px;box-shadow:0 3px 9px #70588f16}
.m2-panel{flex:none;border:1px solid #fffe;border-radius:22px;background:#fff9;box-shadow:inset 0 1px white,0 4px 16px #715a9010;padding:16px;margin-top:12px;margin-bottom:9px}
.m2-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.m2-panel-head h2{margin:0;font-size:17px;letter-spacing:-.3px}.m2-panel-head>span{font-size:10px;color:#9985aa}
.m2-empty{font-size:12px;line-height:1.8;color:#8b789a;margin:12px 0 16px}.m2-action{border:1px solid #d4e6b4;background:#e6f8ca;color:#566338;border-radius:14px;padding:10px 12px;font-size:11px;font-weight:700;margin-top:7px;min-height:39px}
.m2-group{display:block;border:0;background:transparent;padding:13px 0 8px;font-size:11px;color:#8a739f;font-weight:800;text-align:left}
.m2-entry{display:flex;align-items:center;text-align:left;gap:10px;width:100%;background:#fff8;border:1px solid #fff;border-radius:14px;padding:10px;margin:5px 0;color:#443858;min-height:55px}.m2-number{border-radius:50%;background:#e8f5d3;color:#768747;min-width:27px;height:27px;display:grid;place-items:center;font-size:10px}.m2-entry>span:nth-child(2){flex:1;min-width:0}.m2-entry strong{display:block;font-size:12px;overflow-wrap:anywhere}.m2-entry small{display:block;margin-top:4px;font-size:10px;color:#a18aac}.m2-entry>span:last-child{font-size:14px;color:#b69fc2}.m2-more{border:0;background:none;font-size:10px;padding:8px;color:#8a729c}.m2-hint{font-size:11px;color:#9a775f;line-height:1.6}
.m2-credit{flex:none;font-size:9px;color:#9b88a9;line-height:1.7;margin:3px 5px 15px}.m2-credit p{font-size:10px}
body:has(#view-map:not([hidden])) .bottom-nav{bottom:calc(8px + env(safe-area-inset-bottom));width:calc(100% - 22px);max-width:650px;border:1px solid #fffe;border-radius:26px;box-shadow:0 4px 12px #715a9030,inset 0 1px 2px white;background:#f7edffb3;padding:6px;backdrop-filter:blur(16px)}
body:has(#view-map:not([hidden])) .bottom-nav button{font-size:10px;padding:7px 1px;color:#8b759e;border-radius:20px;gap:4px}
body:has(#view-map:not([hidden])) .bottom-nav button .emoji{font-size:22px;color:#a18ab7}
body:has(#view-map:not([hidden])) .bottom-nav button[aria-current=page]{background:#ddf8b0;color:#586b39;box-shadow:inset 0 1px white}
#view-map .map-info-sheet{background:#fff9ffed;border:1px solid white;box-shadow:0 8px 40px #66517c44;border-radius:24px;max-width:530px;margin:auto}#view-map .map-info-sheet h3{font-size:18px;margin:6px 0}#view-map .map-info-sheet p{font-size:12px;line-height:1.7}
@media(min-width:800px){#ward-map-root{inset:100px 20px 0;display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-template-rows:25px 48px 38px minmax(400px,1fr) auto;column-gap:28px;padding:0 20px}.m2-topline,.m2-dates,.m2-status{grid-column:1/-1}.m2-viewport{grid-column:1;grid-row:4;min-height:450px;height:100%;max-height:none}.m2-panel{grid-column:2;grid-row:4;align-self:start;max-height:100%;overflow:auto;margin:0}.m2-credit{grid-column:1/-1}.m2-ward text{font-family:inherit}}
@media(max-height:650px) and (max-width:799px){#ward-map-root{inset-block-start:85px}.m2-viewport{min-height:260px;height:50dvh}}
#view-map .m2-status .map-privacy-toggle{position:static!important;top:auto;right:auto;min-height:30px;padding:3px 7px;border:1px solid #fff9;box-shadow:none;border-radius:12px;background:#ffffff66;font-size:12px}
