/* Non-type refinements from the approved Explore and downstairs sheets. */
.explore .ticket{position:relative;border:0;border-radius:0;box-shadow:none;background:transparent url('assets/design/explore-ticket-frame.png') center/100% 100% no-repeat;min-height:38px;padding:8px 10px;gap:8px}
.explore .ticket .icon{width:19px;height:19px}
.explore-top{padding:15px 19px 0}
.explore .city-line{gap:9px;min-height:42px}
.explore .city-button{min-width:0;max-width:58%;overflow-wrap:anywhere}
.explore .tabs{height:48px;gap:4px}
.explore .tabs button{flex:1;padding:8px 0}
.explore .map-tools{gap:8px;right:12px}
.explore .map-tools button{width:52px;height:52px;min-height:52px;border-radius:17px;padding:7px 5px;gap:2px}
.explore .map-tools button:first-child{width:70px;height:72px;min-height:72px;border-radius:21px;padding:9px 4px;gap:2px}
.explore .map-tools button:first-child .icon{width:31px;height:31px}
.explore .map-tools .icon{width:24px;height:24px}
.explore .map-card{left:12px;right:12px;bottom:12px;width:auto;max-height:48%;padding:12px;gap:12px;border-radius:23px;align-items:stretch}
.explore .map-card>img:not(.original-icon){width:39%;flex:0 0 39%;min-height:156px;max-height:224px;border-radius:18px;object-fit:cover;align-self:stretch}
.explore .map-card>img.place-art{object-fit:cover;background:#e7f3aa}
.explore .map-card>div{max-height:225px;min-width:0;overflow:auto;padding:2px 0 0}
.explore .map-card .place-card-copy{display:flex;flex-direction:column}
.explore .map-card .place-card-copy .light-link{margin-top:auto;align-self:flex-end;min-height:36px}
.explore .map-card .close{top:1px;right:1px;width:28px;min-width:28px;min-height:28px;background:#faf9ef;border-radius:50%}
#modal.downstairs-dialog{width:min(480px,100%);max-width:480px;max-height:94dvh;margin:auto auto 0;border-width:2px 2px 0;border-radius:25px 25px 0 0;overflow:auto}
#modal.downstairs-dialog .sheet{padding:22px 18px calc(16px + env(safe-area-inset-bottom))}
#modal.downstairs-dialog .handle{width:41px;margin-bottom:14px}
#modal.downstairs-dialog .modal-top .intro{gap:12px;margin:0 0 17px;min-height:72px;padding-right:16px}
#modal.downstairs-dialog .avatar{width:76px;height:76px;flex:0 0 76px;border-width:2px;padding:3px;background:#faf9ef}
#downstairs-form>label{display:flex;align-items:center;gap:7px;margin-top:10px}
#downstairs-form>label .icon{width:21px;height:21px}
#downstairs-form .option-row{gap:6px;margin:7px 0 15px}
#downstairs-form .option-row button{position:relative;min-height:44px;border:1px solid #25291f;border-radius:8px;background:#faf9ef;padding:8px 4px}
#downstairs-form .option-row button.on{background:#e7f3aa;border:2px solid #697534;box-shadow:inset 0 0 0 1px #dce68f;padding-right:24px}
#downstairs-form .option-row button.on:after{content:'✓';position:absolute;right:5px;top:50%;transform:translateY(-50%);width:19px;height:19px;display:grid;place-items:center;line-height:1;border-radius:50%;background:#697534;color:#fffdef}
#downstairs-form .place-select{min-height:46px;border:1px solid #25291f;border-radius:8px;background-color:#faf9ef;padding:9px 11px;margin:7px 0 5px;max-width:100%}
#downstairs-form .field{margin:13px 0 10px}
#downstairs-form .field label{margin-bottom:7px}
#downstairs-form .field textarea{min-height:46px;height:46px;border:1px solid #45483a;border-radius:8px;padding:10px 12px;background:#faf9ef;resize:vertical}
#downstairs-form .primary{position:relative;isolation:auto;min-height:47px;height:auto;border:0;border-radius:12px;box-shadow:none;background:#697534;color:#fffdef;margin-top:8px;padding:11px 13px}
#downstairs-form .primary:before,#downstairs-form .primary:after{display:none}
#downstairs-form .primary .icon{width:24px;height:24px}
#downstairs-form .error:empty{padding:0}
#downstairs-form .downstairs-place-row{display:flex;align-items:center;gap:9px;border:1px solid #25291f;border-radius:8px;min-height:46px;padding:8px 10px;margin:8px 0 13px}
#downstairs-form .downstairs-place-row label{display:flex;gap:6px;align-items:center;white-space:nowrap}
#downstairs-form .downstairs-place-row select{flex:1;width:0;min-width:0;border:0;background:transparent;padding:5px 0;margin:0;min-height:30px}
@media(max-width:350px){.explore-top{padding-left:13px;padding-right:13px}.explore .ticket{gap:5px;padding:7px 9px}.explore .map-card{left:9px;right:9px;padding:11px;gap:9px}.explore .map-card>img:not(.original-icon){width:35%;flex-basis:35%;min-height:145px}#modal.downstairs-dialog .avatar{width:63px;height:63px;flex-basis:63px}#modal.downstairs-dialog .modal-top .intro{gap:9px;padding-right:12px}#modal.downstairs-dialog .sheet{padding-left:14px;padding-right:14px}}
@media(min-width:760px){.explore .map-card{left:20px;right:auto;width:390px;bottom:24px}.explore .map-tools{right:20px!important}#modal.downstairs-dialog{margin:auto;border-width:2px;border-radius:25px}}
/* Approved map artwork is a clearly labelled schematic, never a projection. */
.map-area.illustrated-map{background:#e7f3aa}
.map-area.illustrated-map .map{visibility:visible;pointer-events:auto}
.map-area .illustration-layer{position:absolute;inset:0;z-index:410;overflow:hidden}
.map-area .illustration-layer>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}
.illustration-pins{position:absolute;inset:0}
.illustration-pin{position:absolute;display:flex;align-items:center;gap:0;padding:0;min-width:44px;min-height:44px;max-width:75%;background:transparent;transform:translate(-25%,-50%)}
.illustration-pin .pin{display:grid;place-items:center;width:45px;height:56px;flex-shrink:0;background:#e7f3aa;border:3px solid #202619;border-radius:50% 50% 47% 47%;box-shadow:0 0 0 3px #faf9ef}
.illustration-pin .pin>img{width:45px;height:62px;object-fit:contain;max-width:none}
.illustration-pin .pin:has(>img){border:0;box-shadow:none;background:transparent}
.illustration-pin .pin-label{position:relative;min-height:30px;display:flex;align-items:center;padding:6px 10px;max-width:205px;background:#faf9ef;border:2px solid #22291b;border-radius:16px;overflow-wrap:anywhere;box-shadow:1px 2px 0 #faf9ef}
.illustration-pin.selected .pin-label{background:#e7f3aa}
.map-mode-toggle{position:absolute;left:12px;top:10px;z-index:422;min-height:34px;padding:5px 10px;border:1px solid #313923;border-radius:8px;background:#faf9ef;box-shadow:1px 2px 0 #69753444}
.map-mode-note{position:absolute;left:12px;bottom:3px;z-index:419;background:#faf9efed;padding:3px 7px;border-radius:4px;max-width:calc(100% - 86px)}
#downstairs-form .downstairs-note{margin:9px 0 0;text-align:center;color:#747568}
@media(max-width:350px){.illustration-pin .pin{width:39px;height:49px}.illustration-pin .pin-label{max-width:160px;padding:5px 8px}}
.illustration-pin .pin,.illustration-pin .pin>span{transform:none}
/* City content has its own scroll surface; tools do not cover list rows. */
.explore .illustration-layer{overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.explore .illustration-content{position:relative;min-height:100%;padding-bottom:90px}
.explore .illustration-content>.illustration-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.explore .illustration-pins{position:absolute;inset:0}
.explore .map-list{padding:76px 15px 35px;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.explore .showing-list .map-tools{top:7px;bottom:auto!important;flex-direction:row;align-items:center;gap:7px;z-index:450}
.explore .showing-list .map-tools button:first-child{width:70px;height:52px;min-height:52px}
.explore .showing-list .map-mode-toggle{display:none}
.explore .showing-list .map-mode-note{display:none}
.city-result-summary{font-size:13px;color:#59652c;grid-column:1/-1;padding:0 0 12px}
.city-place-status{margin-top:12px;padding:10px;background:#eef2da;font-size:13px;line-height:1.6}
.explore .map-list .wish-item-main{min-height:140px}
.explore .map-list .wish-item img{height:140px;min-height:0;object-fit:cover}
@media(min-width:760px){.explore .map-list{padding:80px 24px 30px}}
.explore .illustration-pin{transform:translateY(-50%);max-width:65%;width:max-content}
.explore .illustration-pin .pin-label{width:150px;max-width:150px;flex-shrink:0;font-size:12px;line-height:1.35}
.explore .map-area:not(.illustrated-map) .map-mode-toggle{left:58px}
@media(max-width:350px){.explore .illustration-pin .pin-label{width:125px;max-width:125px}}

/* Geographic vector map with the approved comic palette. */
.explore .maplibregl-canvas{filter:none}.vector-pin{padding:0;background:transparent;border:0;width:44px;height:57px;cursor:pointer}.vector-pin img{width:44px;height:57px;object-fit:contain}.vector-count{display:grid;place-items:center;width:38px;height:43px;background:#e6f39d;border:3px solid #30362b;border-radius:48% 50% 44% 49%;font-weight:800;box-shadow:0 0 0 3px #fffdf0}.maplibregl-ctrl-attrib{font-size:9px;background:#fffdf0e8!important}.maplibregl-ctrl-group{border:2px solid #30362b!important;border-radius:10px!important;background:#fffdf0!important}.explore .showing-list .map-tools{top:auto;bottom:36px!important;flex-direction:column}.explore .showing-list .map-list{padding-right:90px}
