#weather .section-desc{color:#bdcbe1!important;max-width:70ch}.wxm-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin:1.8rem 0 1rem}.wxm-toolbar label{display:block;font-size:.78rem;color:#bacbe0;margin-bottom:.4rem}#weather .wxm-toolbar input,#weather .wxm-city-label select{font:inherit;font-size:16px;min-height:44px;background:#122338;color:#f3f7ff;border:1px solid #526d85;border-radius:10px;padding:.5rem .75rem;color-scheme:dark}.wxm-status{flex:1;color:#b8cce1;font-size:.85rem;line-height:1.7;min-width:190px}.wxm-toolbar button,.wxm-map-head button{font:inherit;cursor:pointer;border:1px solid #52778e;background:#10273c;color:#dff5fc;padding:.5rem .8rem;border-radius:10px;min-height:40px}.wxm-toolbar button[hidden]{display:none}.wxm-days{display:flex;gap:.6rem;overflow:auto;padding:0 0 .85rem;scrollbar-width:thin;scrollbar-color:#42667e transparent}.wxm-days button{flex:0 0 72px;border:1px solid #43566e;border-radius:14px;padding:.7rem .55rem;background:#111e30;color:#c6d5e8;cursor:pointer;font:inherit;line-height:1.5}.wxm-days button span{display:block;font-size:.72rem}.wxm-days button strong{font-size:1.05rem}.wxm-days button[aria-pressed=true]{background:#b9d9c0;color:#122a26;border-color:#d6f2dc;box-shadow:0 6px 22px #7dc9c122}.wxm-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1.3rem;margin-top:.6rem;align-items:start}.wxm-map-wrap{overflow:hidden;border:1px solid #395269;border-radius:22px;background:#0d1e2e}.wxm-map-head{padding:.85rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;color:#b0d3d7;font-size:.72rem;letter-spacing:.07em}.wxm-map-head button{font-size:.75rem;letter-spacing:0}#wxJapanMap{height:610px;z-index:0;background:#0d1e2e}#wxMapHint{font-size:.74rem;color:#b9cce1;line-height:1.7;padding:.8rem 1rem;margin:0}.wxm-overview-title{font-size:1rem;color:#e8f4fa;margin:0 0 .8rem;line-height:1.7}.wxm-regions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.wxm-region{font:inherit;text-align:left;cursor:pointer;border:1px solid #334d65;border-radius:16px;padding:.9rem;background:linear-gradient(145deg,#14263b,#0d1929);color:#e8f3ff;min-width:0;transition:border-color .2s,background .2s}.wxm-region[aria-pressed=true]{border-color:#b9d9c0;background:linear-gradient(145deg,#1d3e49,#122739)}.wxm-region .wxm-region-name{display:block;font-size:.83rem;font-weight:700}.wxm-region small{display:block;color:#abc0d6;font-size:.72rem;margin:.15rem 0 .45rem}.wxm-region .wxm-reading{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.wxm-reading .wxm-icon{font-size:1.65rem}.wxm-reading strong{font-size:1.45rem}.wxm-region .wxm-low{font-size:.74rem;color:#b7cee0}.wxm-region .wxm-rain{font-size:.73rem;color:#a4dbef;margin-top:.35rem;display:block}.wxm-pin{background:transparent!important;border:0!important}.wxm-pin-content{border:1px solid #84bec9;background:#102d42;color:#fff;border-radius:12px;box-shadow:0 4px 12px #0008;text-align:center;padding:3px 4px;font:700 12px/1.3 'Noto Sans Thai',sans-serif;min-height:44px;box-sizing:border-box}.wxm-pin-content span{display:block;font-size:19px;line-height:1.1}.wxm-pin-content.selected{background:#b9d9c0;color:#102b27;border-color:#e1f8e6}.wxm-detail{margin-top:1.3rem;padding:1.1rem 1.3rem;border:1px solid #3b566c;border-radius:20px;background:linear-gradient(120deg,#142a3d,#0d1a2b);color:#ecf4fc}.wxm-detail-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.wxm-detail h3{font-size:1.08rem;margin:0}.wxm-city-label{font-size:.78rem;color:#c4d4e5;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.wxm-detail-values{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;margin-top:1rem}.wxm-detail-values .wxm-big{font-size:2rem;color:#fff}.wxm-detail-values p{color:#b8cce0;font-size:.85rem;line-height:1.8;margin:0}.wxm-source{font-size:.73rem;color:#a8bdd4;line-height:1.8;margin:1rem 0 0}.wxm-source a{color:#aee2e7;text-decoration:underline}#weather .leaflet-control-attribution{font-size:9px;background:#0d1e2ee6;color:#c6d8e7}#weather .leaflet-control-attribution a{color:#aee2e7}#weather .leaflet-control-zoom a{background:#142b3f;color:#e7f4ff;border-color:#3b566c}#weather button:focus-visible,#weather input:focus-visible,#weather select:focus-visible{outline:3px solid #e9bd73;outline-offset:3px}#weather button:disabled{cursor:not-allowed;opacity:.45}@media(max-width:900px){.wxm-layout{grid-template-columns:1fr}#wxJapanMap{height:540px}.wxm-regions{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:560px){#weather{padding:3rem 0}.wxm-regions{grid-template-columns:repeat(2,minmax(0,1fr))}.wxm-region{padding:.8rem}.wxm-toolbar{gap:.7rem}.wxm-toolbar>div:first-child{width:100%}.wxm-toolbar input{width:100%;box-sizing:border-box}#wxJapanMap{height:510px}.wxm-detail{padding:1rem}.wxm-city-label select{max-width:100%;width:100%}.wxm-city-label{width:100%}.wxm-detail-values{gap:.8rem}.wxm-status{min-width:0}.wxm-map-head{gap:.5rem}}@media(prefers-reduced-motion:reduce){.wxm-region{transition:none}}

#weather #wxMapDate,#weather #wxMapTo,#weather #wxCitySelect{background:#122338!important;color:#f3f7ff!important;border-color:#526d85!important;color-scheme:dark!important}.wxm-pin-content small{display:block;font-size:10px;line-height:1.3;white-space:nowrap;margin-bottom:2px}.wxm-pin-content b{font-size:13px}.wxm-pin-content{min-height:62px}

.wxm-range-label{color:#bcd4e6!important;font-size:.8rem;line-height:1.8;margin:.8rem 0}.wxm-city-range{display:flex;overflow:auto;gap:.7rem;padding:.9rem 0 .3rem}.wxm-range-day{flex:0 0 125px;padding:.8rem .65rem;border:1px solid #4a657e;border-radius:14px;background:#102238;color:#ecf5ff;cursor:pointer;font:inherit;display:flex;flex-direction:column;align-items:center;gap:.45rem}.wxm-range-day small{font-size:.72rem;color:#bbd2e7}.wxm-range-day strong{font-size:.95rem}.wxm-range-day[aria-pressed=true]{border-color:#c9ecd5;background:#234b52}.wxm-range-icon{font-size:1.8rem}@media(max-width:560px){.wxm-toolbar>div:first-child,.wxm-toolbar>div:nth-child(2){width:calc(50% - .35rem)}.wxm-toolbar .wxm-status{flex-basis:100%}}
/* Compact overview: keep all nine regions easy to scan beside the map. */
.wxm-regions{gap:.5rem}.wxm-region{padding:.65rem .7rem;border-radius:13px;line-height:1.4}.wxm-region .wxm-region-name{font-size:.78rem}.wxm-region small{font-size:.68rem;margin:.12rem 0 .3rem}.wxm-region .wxm-reading{gap:.3rem}.wxm-reading .wxm-icon{font-size:1.3rem}.wxm-reading strong{font-size:1.18rem}.wxm-region .wxm-low{font-size:.68rem}.wxm-region .wxm-rain{font-size:.68rem;margin-top:.25rem}.wxm-overview-title{font-size:.9rem;margin-bottom:.6rem}@media(max-width:560px){.wxm-region{padding:.65rem}.wxm-region .wxm-region-name{font-size:.78rem}.wxm-region .wxm-low{font-size:.7rem}}
#weather .wxm-detail h3,#weather .wxm-overview-title{color:#edf5ff!important}
/* Full-width interactive map; forecasts open from its markers. */
.wxm-layout{display:block}.wxm-map-wrap{width:100%}#wxJapanMap{height:680px}.wxm-horizon{padding:.75rem 1rem;border:1px solid #3c6578;border-radius:12px;background:#122b3d;color:#cbe8ee!important;font-size:.82rem;line-height:1.8}.wxm-map-head #wxMapActiveDay{font-size:.8rem;letter-spacing:0;color:#dcefe5}.wxm-explanation{border-top:1px solid #3e586e;margin-top:1rem;padding-top:.7rem}.wxm-explanation p{font-size:.88rem;color:#d2e1ee!important;line-height:1.9;margin:.4rem 0}.wxm-explanation small{display:block;font-size:.75rem;color:#aec6da;line-height:1.8;margin-top:.65rem}#weather .leaflet-popup-content-wrapper,#weather .leaflet-popup-tip{background:#102b40;color:#edf5ff}#weather .leaflet-popup-content{font-family:'Noto Sans Thai',sans-serif;line-height:1.8;margin:1rem}#weather .wxm-popup p{font-size:.82rem;color:#d2e1ee!important;margin:.5rem 0}#weather .wxm-popup strong{color:#d1efda}#weather .wxm-popup small{font-size:.73rem;color:#b2cbdc}#weather .leaflet-popup-close-button{color:#eaf4fc;width:30px;height:30px}@media(max-width:900px){#wxJapanMap{height:600px}}@media(max-width:560px){#wxJapanMap{height:540px}.wxm-map-head{align-items:flex-start}.wxm-map-head>span{max-width:65%;line-height:1.7}.wxm-map-head #wxMapActiveDay{display:block}.wxm-horizon{font-size:.78rem}.wxm-explanation p{font-size:.85rem}}
/* Available forecast dates are explicit; no disabled month/year calendar. */
#weather .wxm-toolbar select{font:inherit;font-size:16px;min-height:46px;border:1px solid #526d85;border-radius:10px;padding:.55rem .7rem;background:#122338;color:#f3f7ff;color-scheme:dark;min-width:165px;box-sizing:border-box}.wxm-quick,.wxm-day-nav{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:.9rem 0}.wxm-quick button,.wxm-day-nav button{font:inherit;font-size:.8rem;min-height:44px;border:1px solid #52748b;border-radius:10px;padding:.55rem .8rem;background:#12283d;color:#e2f2fa;cursor:pointer}.wxm-quick button[aria-pressed=true]{background:#b9d9c0;color:#142c25;border-color:#d5efdc}.wxm-day-nav strong{font-size:.85rem;color:#d1e5f3;min-width:115px;text-align:center}.wxm-day-nav button:disabled{opacity:.4;cursor:not-allowed}@media(max-width:560px){#weather .wxm-toolbar select{width:100%;min-width:0;font-size:15px}.wxm-quick{gap:.45rem}.wxm-quick button{font-size:.76rem;padding:.5rem .6rem}.wxm-day-nav{gap:.4rem;justify-content:space-between}.wxm-day-nav strong{min-width:0;font-size:.78rem}.wxm-day-nav button{font-size:.73rem;padding:.5rem .55rem}}

/* long-range outlook (day 16+) */
#weather .wxm-toolbar input[type=date]{font:inherit;font-size:16px;min-height:46px;border:1px solid #526d85;border-radius:10px;padding:.55rem .7rem;background:#122338;color:#f3f7ff;color-scheme:dark;min-width:165px;box-sizing:border-box}
.wxm-pin-content.outlook{border-style:dashed!important;opacity:.92}
.wxm-range-day.outlook{border-style:dashed}
.wxm-outlook-badge{display:inline-block;font-size:.72rem;letter-spacing:.02em;padding:.2rem .6rem;border-radius:999px;border:1px dashed #8fb3cc;color:#cfe3f1;margin-bottom:.5rem}
.wxm-outlook-note{color:#cfe0ee!important;border-left:3px solid #6c9ab4;padding-left:.7rem}

#weather [hidden]{display:none!important}
/* Audit: clear hierarchy, compact date controls, touch-friendly map. */
#weather .wxm-toolbar{padding:1rem;border:1px solid #344f67;border-radius:16px;background:#101f32;align-items:flex-end;gap:.8rem}
#weather .wxm-toolbar>div:first-child,#weather .wxm-toolbar>div:nth-child(2){flex:0 1 210px;min-width:0}
#weather .wxm-toolbar input[type=date]{width:100%;min-width:0;max-width:100%}
#weather .wxm-status{font-size:.78rem;padding-bottom:.35rem}
#weather .wxm-horizon{margin:.8rem 0;border-left:3px solid #b9d9c0;background:#102332}
#weather .wxm-map-wrap{box-shadow:0 14px 40px #0003}
#weather .wxm-day-nav{justify-content:space-between}
#weather .wxm-days button{transition:background .15s,border-color .15s}
#weather .wxm-days button:hover{border-color:#b9d9c0}
@media(max-width:560px){#weather .wxm-toolbar>div:first-child,#weather .wxm-toolbar>div:nth-child(2){flex:1 1 calc(50% - .4rem);width:calc(50% - .4rem)}#weather .wxm-toolbar{padding:.75rem}#weather .wxm-toolbar input[type=date]{font-size:14px;padding:.55rem .35rem}#weather .wxm-horizon{font-size:.75rem;padding:.65rem .8rem}#weather .wxm-map-head{padding:.75rem}#weather .wxm-map-wrap{border-radius:16px}}

/* Weather pictograms remain clear at map-pin size. */
#weather .wxm-pin-content span{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:25px;line-height:1.2;margin:2px 0;filter:drop-shadow(0 2px 3px #0003)}
#weather .wxm-pin-content{min-height:66px;border-radius:13px;background:linear-gradient(150deg,#173e56,#102b40)}
#weather .wxm-pin-content.selected{background:linear-gradient(145deg,#d1ead3,#a9d2be)}
#weather .wxm-pin-content small{color:inherit;font-size:10px}#weather .wxm-pin-content b{font-size:14px}
