@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700&display=swap');
.settings-button{font-size:11px;color:#697c6b;white-space:nowrap;padding:10px 4px}.setup-notes{background:#f4f5ef;border-radius:10px;padding:8px 14px;margin-top:16px;font-size:11px;color:#71816c}.setup-notes a{color:#315d49}.setup-notes code{overflow-wrap:anywhere;font-size:10px}.google-pin{cursor:pointer}#map-settings{max-height:90dvh;overflow:auto}.map-hint{max-width:calc(100% - 32px);white-space:normal;text-align:center}.map-wrap:has(.gm-style) .map-actions{bottom:150px}.map-wrap:has(.gm-style) .map-caption{top:23px;left:24px}@media(max-width:760px){header{gap:7px!important}.settings-button{font-size:10px;padding:8px 0}.map-wrap:has(.gm-style) .map-actions{bottom:150px}}
:root{font-family:'Noto Sans TC',sans-serif;color:#293c35;background:#f7f6f2;font-synthesis:none;--green:#315d49;--line:#e7e9e2}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{border:0;background:none;color:inherit}button:hover{filter:brightness(.94)}button:focus-visible,a:focus-visible{outline:3px solid #a4c9b1;outline-offset:3px}header{height:88px;display:flex;align-items:center;padding:0 34px;border-bottom:1px solid var(--line);gap:32px;background:#fffefa}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--green);font-size:23px;font-weight:700;letter-spacing:2px}.brand-icon{background:#e9efe3;width:43px;height:43px;display:grid;place-items:center;border-radius:14px;font-size:32px}.brand small{display:block;font-size:9px;letter-spacing:3px;font-weight:500;margin-top:2px}.header-note{color:#859087;font-size:13px;flex:1}.primary{background:var(--green);color:white;border-radius:10px;padding:12px 20px;font-size:13px;font-weight:600}main{display:flex;height:calc(100dvh - 88px)}aside{width:370px;flex-shrink:0;background:#fffefa;display:flex;flex-direction:column;border-right:1px solid var(--line);z-index:500}.intro{padding:31px 25px 19px}.eyebrow{font-size:9px;font-weight:600;letter-spacing:2px;color:#8e9b8c}h1{font-size:25px;font-weight:600;letter-spacing:1px;margin:10px 0}p{line-height:1.8}.intro p{font-size:12px;color:#8c938a;margin:0}.search{margin:0 24px;display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;background:#f8f9f5;gap:8px;padding:11px 13px}.search span{font-size:23px;color:#8c958a;line-height:1}.search input{background:none;border:0;outline:none;min-width:0;width:100%;font-size:11px}.tabs{display:flex;gap:22px;margin:18px 24px 0;border-bottom:1px solid var(--line)}.tabs button{font-size:12px;padding:11px 0 13px;color:#8d968f;position:relative}.tabs .active{color:var(--green);font-weight:700}.tabs .active:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--green)}.tabs span{font-size:10px;border-radius:5px;background:#eaf0e7;padding:2px 5px;margin-left:3px}.categories{display:flex;gap:6px;padding:19px 24px 14px;flex-wrap:wrap}.categories button{font-size:11px;border:1px solid var(--line);border-radius:20px;padding:6px 10px}.categories .active{background:#eaf0e5;border-color:#cad9c6;color:#315d49}.list-heading{display:flex;justify-content:space-between;align-items:center;padding:8px 24px 13px;font-size:11px;color:#879183}.list-heading b{font-weight:400;margin-left:5px}.list-heading button{font-size:10px;color:#64796b;padding:0}.list{overflow:auto;flex:1;padding:0 13px 12px}.store{width:100%;display:flex;text-align:left;padding:16px 11px;gap:13px;border-radius:12px;border:1px solid transparent;border-bottom-color:#eceee7;align-items:flex-start}.store:hover,.store.selected{background:#f2f5ed;border-color:#e0e6d8}.food-icon{background:var(--wash);color:var(--color);width:43px;height:43px;flex-shrink:0;border-radius:13px;display:grid;place-items:center;font-size:22px}.store-copy{flex:1;min-width:0}.store h3{font-size:14px;font-weight:600;margin:0 0 5px}.store p{font-size:11px;color:#92998f;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.store .note{margin-top:5px;color:#67736a}.pill{font-size:9px;border-radius:5px;padding:3px 6px;background:#f1eada;color:#9a7a42;white-space:nowrap}.pill.visited{background:#e5ede2;color:#648160}.empty{padding:40px 22px;text-align:center;color:#859082;font-size:12px}.empty strong{display:block;color:#4c6251;font-size:16px;margin-bottom:10px}footer{border-top:1px solid var(--line);padding:15px 24px;display:flex;justify-content:space-between;font-size:9px;color:#9ba294}footer button{font-size:10px;padding:0 0 0 12px;color:#697c6b}.map-wrap{position:relative;flex:1;min-width:0;background:#e9eee5}#map{height:100%;width:100%;background:#e9eee5}.leaflet-tile{filter:saturate(.55)}.map-caption{position:absolute;left:24px;top:23px;z-index:450;background:#fffefaeF;padding:12px 17px;border:1px solid #e4e8df;border-radius:10px;box-shadow:0 3px 12px #3b4c3810;font-size:12px;display:flex;align-items:center;gap:8px}.map-caption>span:last-child{font-size:10px;color:#9aab97;margin-left:8px}.live-dot{width:6px;height:6px;background:#81a276;border-radius:50%}.map-hint{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:450;white-space:nowrap;background:#fffefaed;padding:10px 18px;border-radius:30px;font-size:11px;color:#7e8a78;box-shadow:0 2px 15px #465c4310}.map-actions{position:absolute;right:21px;bottom:110px;z-index:450}.map-actions button{width:38px;height:38px;border-radius:9px;background:#fffefa;box-shadow:0 2px 10px #31482f20;font-size:23px}.leaflet-control-zoom{border:0!important;box-shadow:0 2px 10px #31482f20!important;margin:24px 21px!important;border-radius:9px!important;overflow:hidden}.leaflet-control-zoom a{color:#4e6954!important;background:#fffefa!important}.leaflet-tooltip{font-family:inherit;font-size:11px;border:0;border-radius:6px;padding:6px 10px}.detail{position:absolute;z-index:600;bottom:68px;right:24px;background:#fffefa;width:310px;padding:24px;border:1px solid #e1e7dc;border-radius:16px;box-shadow:0 12px 40px #31432c22}.detail-top{display:flex;gap:12px;align-items:center}.detail h2{font-size:18px;margin:0 0 5px}.detail .address{font-size:11px;color:#8b9785;margin:15px 0}.detail .note-box{padding:12px;background:#f4f5ef;border-radius:9px;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;color:#60735e}.detail-actions{display:flex;gap:8px;margin-top:15px}.detail-actions button,.detail-actions a{font-size:11px;padding:9px 12px;border:1px solid #dce3d6;border-radius:8px;text-decoration:none;color:#456747}.detail-links{display:flex;justify-content:space-between;font-size:10px;margin-top:16px}.detail-links a{color:#71886b}.detail-links button{font-size:10px;color:#8b9785}.close{position:absolute;right:12px;top:9px;font-size:24px;color:#9da695}.mobile-list{display:none}dialog{border:1px solid #e0e5d9;border-radius:18px;width:480px;max-width:calc(100% - 24px);padding:27px;background:#fffefa;color:#293c35;box-shadow:0 24px 80px #22342c30}dialog::backdrop{background:#22392e55;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between}.dialog-heading h2{font-size:22px;margin:8px 0}.muted{color:#8a9685;font-size:12px}.fine{font-size:10px}.form-row{display:flex;gap:12px}.form-row>label{flex:1;min-width:0}form label{display:block;font-size:12px;margin:14px 0 0}form label>span{color:#b27659}form input,form select,form textarea{display:block;width:100%;padding:10px 12px;border:1px solid #dfe5d8;border-radius:8px;background:#fff;color:#354c39;margin-top:6px;font-size:12px;resize:vertical}form input:focus,form textarea:focus,form select:focus{outline:2px solid #bed0b7}.pick{font-size:12px;color:#4e7750;border:1px dashed #bfcfba;border-radius:8px;width:100%;padding:10px;margin-top:14px}.dialog-footer{border-top:1px solid var(--line);padding-top:18px;margin-top:20px;display:flex;justify-content:flex-end;gap:15px}.dialog-footer button{font-size:12px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#2f5140;color:white;font-size:12px;padding:12px 20px;border-radius:10px;z-index:2000;box-shadow:0 5px 20px #21372e30}[hidden]{display:none!important}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}@media(max-width:760px){header{height:72px;padding:0 17px;gap:12px}.brand{font-size:19px;gap:8px}.brand-icon{width:36px;height:36px;font-size:26px}.brand small{font-size:8px}.header-note{display:none}header .primary{margin-left:auto;font-size:11px;padding:11px 13px}main{height:calc(100dvh - 72px)}aside{display:none;position:absolute;bottom:0;left:0;right:0;width:100%;height:60dvh;border-radius:20px 20px 0 0;z-index:650;box-shadow:0 -10px 30px #2d4c3820}body.show-list aside{display:flex}.intro{padding:17px 24px 10px}.intro h1{font-size:20px;margin:5px 0}.intro p,.intro .eyebrow{display:none}.categories{padding-top:12px}.tabs{margin-top:8px}.mobile-list{display:block;position:absolute;bottom:30px;left:16px;z-index:700;background:#315d49;color:white;border-radius:30px;padding:12px 17px;font-size:12px}body.show-list .mobile-list{bottom:calc(60dvh + 12px)}.map-caption{left:14px;top:16px;font-size:11px;padding:10px 13px}.map-caption>span:last-child{margin-left:0}.map-hint{bottom:82px;font-size:10px;padding:9px 13px}.detail{left:12px;right:12px;bottom:82px;width:auto}.leaflet-control-zoom{margin:16px 14px!important}dialog{padding:22px;max-height:90dvh}.map-actions{right:14px;bottom:35px}footer{padding:13px 24px}}
.map-wrap .map-hint{max-width:calc(100% - 32px);white-space:normal;text-align:center}
.address-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px}.address-actions>button{font-size:12px;color:#315d49;border:1px solid #cddcc6;border-radius:8px;padding:8px 11px;background:#eef4e7}.address-actions>button:disabled{opacity:.6;cursor:wait}.address-actions>small{font-size:10px;color:#7d8a73}.address-results{background:#f5f7f0;border:1px solid #dce5d6;border-radius:10px;padding:12px;margin-top:10px;font-size:12px;line-height:1.8;overflow-wrap:anywhere}.address-results>p{margin:0 0 8px}.address-result{display:flex;flex-direction:column;gap:3px;text-align:left;width:100%;border:1px solid #dfe6d7;border-radius:8px;padding:10px;background:#fffefa;margin-top:7px}.address-result.selected{border-color:#7caa74;background:#edf4e7}.address-result small{font-size:10px;color:#6c8064}.google-attribution{display:block;margin-top:10px;font-family:Arial,sans-serif;font-style:normal;font-weight:400;font-size:12px;letter-spacing:normal;white-space:nowrap;color:#5e5e5e}
/* A round-headed steel pin. Keep the needle tip anchored while its artwork moves. */
.pin-shell{background:none;border:0;overflow:visible;cursor:pointer}
.google-pin{width:48px;height:62px}.google-pin.cluster-shell{width:56px;height:56px}
.pin{position:relative;width:48px;height:62px;color:var(--color);isolation:isolate}
.pin-visual,.pin-lift{position:absolute;inset:0;transform-origin:24px 58px}
.pin-visual{pointer-events:none}
.pin-lift{transition:filter .3s;filter:drop-shadow(3px 4px 2px #293c3530)}
.pin-object{position:absolute;inset:0;transform-origin:24px 58px;transform:rotate(-20deg);transition:transform .28s cubic-bezier(.2,.8,.3,1.3)}
.pin-needle{position:absolute;top:29px;left:21px;width:6px;height:29px;clip-path:polygon(0 0,100% 0,85% 65%,50% 100%,15% 65%);background:linear-gradient(90deg,#596b72 0%,#cbd6db 22%,#fff 43%,#a5b5bd 65%,#52636c 100%)}
.pin-neck{position:absolute;left:19px;top:27px;width:10px;height:7px;border-radius:3px;background:linear-gradient(90deg,#596c6b,#e6ece8 40%,#7c8e8b);box-shadow:0 2px 2px #293c3526}
.pin-head{position:absolute;top:4px;left:9px;width:30px;height:30px;border-radius:50%;border:1px solid color-mix(in srgb,var(--color),#23392e 25%);background:radial-gradient(circle at 29% 22%,#ffffffe0 0%,#ffffff50 12%,transparent 33%),radial-gradient(circle at 35% 28%,color-mix(in srgb,var(--color),white 25%),var(--color) 65%,color-mix(in srgb,var(--color),#20342a 45%) 100%);box-shadow:inset -2px -3px 4px #20382b35,inset 1px 1px 1px #ffffff70,0 2px 2px #21372b35}
.pin-emblem{position:absolute;inset:0;display:grid;place-items:center;color:#fffef4;transform:rotate(20deg);opacity:.95;filter:drop-shadow(0 1px 1px #243d3040)}
.pin-emblem svg{width:17px;height:17px;overflow:visible}
.pin-ground{position:absolute;left:12px;top:54px;width:24px;height:8px;background:radial-gradient(ellipse,#293c3560,transparent 72%);border-radius:50%;z-index:-1;transition:transform .3s,opacity .3s;pointer-events:none}
.pin-ripple{position:absolute;left:8px;top:42px;width:32px;height:32px;border:1.5px solid var(--color);background:var(--wash);border-radius:50%;opacity:0;z-index:-1;pointer-events:none}
.pin-visited{position:absolute;top:0;left:30px;width:17px;height:17px;display:grid;place-items:center;background:#315d49;border:2px solid #fffefa;border-radius:50%;box-shadow:0 2px 5px #293c3526;transform:rotate(20deg)}
.pin-visited svg{width:12px;height:12px;fill:none;stroke:#fffefa;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pin-label{position:absolute;bottom:72px;left:50%;max-width:190px;padding:7px 12px;border:1px solid #e8e9e1;border-radius:9px;background:#fffefa;color:#364e40;box-shadow:0 4px 16px #293c3514;font-family:'Noto Sans TC',sans-serif;font-size:11px;font-weight:600;line-height:1.5;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;pointer-events:none;opacity:0;transform:translate(-50%,5px);transition:opacity .18s,transform .22s}
.pin-shell:hover .pin-object,.pin-shell:focus-visible .pin-object{transform:rotate(-13deg)}
.pin-shell:hover .pin-ground{transform:scale(1.1);opacity:.8}
.pin-shell:hover .pin-label,.pin-shell:focus-visible .pin-label,.pin-shell.chosen .pin-label{opacity:1;transform:translate(-50%,0)}
.pin-shell.chosen .pin-object{transform:rotate(-12deg) scale(1.1)}
.pin-shell.chosen .pin-lift{filter:drop-shadow(3px 5px 3px #293c3540)}
.pin-shell.chosen .pin-ripple{animation:pin-ripple 2.8s ease-out infinite}
.pin.is-entering .pin-visual{animation:pin-arrive .8s both;animation-delay:var(--pin-delay)}
.pin.is-entering .pin-ground{animation:pin-ground-arrive .8s both;animation-delay:var(--pin-delay)}
.pin.is-selecting .pin-visual{animation:pin-select .48s both}
.cluster{position:relative;width:56px;height:56px;isolation:isolate;transform-origin:center}
.cluster:before{content:'';position:absolute;inset:4px 2px 0 6px;border-radius:19px;background:#d9e4d2;border:2px solid #fffefa;transform:rotate(13deg);box-shadow:0 4px 10px #293c3520}
.cluster-face{position:absolute;inset:0 5px 5px 0;border:2px solid #fffefa;border-radius:18px;background:linear-gradient(145deg,#fffefa,#eef3e8);box-shadow:0 2px 3px #293c3510,0 7px 14px #293c3520;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;color:#315d49;transition:transform .25s}
.cluster-face strong{font-family:'Noto Sans TC',sans-serif;font-size:20px;font-weight:700;line-height:1.2}
.cluster-face>span{font-family:'Noto Sans TC',sans-serif;font-size:7px;letter-spacing:.4px;line-height:1.5}
.pin-shell:hover .cluster-face{transform:translateY(-3px) rotate(-4deg)}
.cluster.is-entering{animation:cluster-arrive .6s both;animation-delay:var(--pin-delay)}
@keyframes pin-arrive{0%{opacity:0;transform:translate(-32px,-85px) rotate(-10deg)}35%{opacity:1}64%{transform:translate(0,0) rotate(7deg)}78%{transform:rotate(-4deg)}90%{transform:rotate(2deg)}100%{opacity:1;transform:none}}
@keyframes pin-ground-arrive{0%,25%{opacity:0;transform:scale(.3)}60%{opacity:1;transform:scale(1.3)}76%{opacity:.45;transform:scale(.75)}100%{opacity:1;transform:none}}
@keyframes pin-select{0%,100%{transform:none}35%{transform:rotate(8deg)}65%{transform:rotate(-5deg)}85%{transform:rotate(2deg)}}
@keyframes pin-ripple{0%{opacity:0;transform:scale(.55,.3)}15%{opacity:.4}70%,100%{opacity:0;transform:scale(1.9,.85)}}
@keyframes cluster-arrive{0%{opacity:0;transform:translateY(-22px) scale(.65) rotate(-12deg)}65%{opacity:1;transform:translateY(2px) scale(1.06) rotate(3deg)}100%{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.pin-object,.pin-lift,.pin-label,.cluster-face{transition:none}.pin-shell.chosen .pin-ripple{animation:none;opacity:.22;transform:scale(1.25,.5)}}
.discovery-entry{margin:0 24px 16px;padding:12px 14px;border:1px solid #dbe5d5;border-radius:11px;background:#f0f4e9;text-align:left;color:#315d49;display:flex;flex-direction:column;gap:5px;flex-shrink:0}.discovery-entry span{font-size:13px;font-weight:600}.discovery-entry small{font-size:10px;color:#7d8c72}#discoveries{width:920px;max-height:90dvh;overflow:auto}#discoveries .dialog-heading{position:relative;padding-right:25px}#discoveries .close{right:-10px;top:-13px}.discovery-explainer{font-size:12px;color:#74816f;max-width:680px;margin:8px 0 18px}.discovery-filters{display:flex;gap:10px}.discovery-filters input,.discovery-filters select{border:1px solid #dfe5d8;border-radius:8px;background:white;padding:10px 12px;color:#354c39;font-size:12px;min-width:0}.discovery-filters input{flex:1}.discovery-filters select{max-width:220px}#discovery-list{display:grid;grid-template-columns:1fr 1fr;gap:14px}.discovery-card{border:1px solid #e1e7db;background:#fffefa;border-radius:13px;padding:18px;display:flex;flex-direction:column;min-width:0}.discovery-top{display:flex;gap:12px;align-items:center}.discovery-top h3{font-size:15px;margin:0 0 4px;overflow-wrap:anywhere}.discovery-top>div>span{font-size:10px;color:#8a9681}.discovery-note{font-size:12px;color:#60735e;margin:14px 0 5px}.discovery-address{font-size:11px;color:#8a9681;margin:3px 0 9px}.discovery-badges{display:flex;gap:6px;flex-wrap:wrap}.discovery-badges span{font-size:10px;padding:4px 7px;border-radius:5px}.discovery-badges .located{background:#e8f0e1;color:#557848}.discovery-badges .pending{background:#f4eedd;color:#967341}.discovery-warning{font-size:11px;color:#947442;background:#faf5e9;border-radius:7px;padding:8px 10px;margin:9px 0 0}.discovery-sources{display:flex;flex-direction:column;gap:7px;margin:15px 0;font-size:11px;overflow-wrap:anywhere}.discovery-sources a{color:#657e57;text-decoration:underline;text-underline-offset:3px}.discovery-sources small{font-size:9px;color:#919c89;margin-top:-4px}.discovery-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;border-top:1px solid #e7e9e2;padding-top:14px}.discovery-actions a{font-size:11px;color:#697c6b}.discovery-actions .primary{font-size:11px;padding:9px 13px}.discovery-actions button:disabled{opacity:.5;cursor:default}.discovery-empty{grid-column:1/-1;text-align:center;padding:35px;color:#7a8971}.saved-sources{margin:12px 0 0;display:flex;flex-direction:column;gap:6px;font-size:10px;overflow-wrap:anywhere}.saved-sources a{color:#71886b}@media(max-width:760px){.discovery-entry{margin-bottom:10px;padding:8px 12px;flex-direction:row;align-items:center;justify-content:space-between;gap:5px}.discovery-entry span{font-size:12px}.discovery-entry small{font-size:9px}#discoveries{padding:20px}#discoveries h2{font-size:20px}.discovery-filters{flex-wrap:wrap;gap:8px}.discovery-filters input{flex-basis:100%}.discovery-filters select{flex:1;max-width:none;padding:9px 7px;font-size:11px}#discovery-list{grid-template-columns:1fr}.discovery-card{padding:16px}}@media(max-width:360px){.discovery-entry small{font-size:8px}.discovery-entry{margin-left:17px;margin-right:17px}}
.discovery-audit{font-size:11px;margin:12px 0}.discovery-audit a{color:#657e57}.discovery-filters{flex-wrap:wrap}.discovery-filters input{min-width:180px}.discovery-region-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:18px 0 12px}.discovery-region-row label{font-size:12px;color:#62735d}.discovery-region-row select{padding:9px 14px;border:1px solid #cbdcc7;border-radius:8px;color:#315d49;background:#f0f5ea;font:inherit;font-size:13px;font-weight:600}.discovery-region-row small{font-size:11px;color:#7b8971}@media(max-width:760px){.discovery-filters select{flex:1 1 40%}.discovery-region-row small{flex-basis:100%}}
.collection-toolbar{margin:15px 0;padding:15px;border:1px solid #dce4d7;border-radius:12px;background:#f0f4eb}.collection-toolbar>div{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.collection-toolbar .primary{font-size:13px;padding:11px 16px}.collection-toolbar small{font-size:11px;color:#708067;flex:1;min-width:220px}.collection-toolbar p{font-size:12px;color:#56734b;line-height:1.7;margin:10px 0 0}.collection-toolbar p:empty{display:none}.collection-toolbar button:disabled{opacity:.55;cursor:default}#stop-collection{font-size:12px;padding:10px;color:#6e765f;border:1px solid #ced7c8;border-radius:8px;background:#fffdf7}@media(max-width:760px){.collection-toolbar small{flex-basis:100%;min-width:0}}

.free-location-note{font-size:11px;color:#61785a;background:#f0f4eb;border-radius:9px;padding:10px 13px;margin:12px 0}.free-location-note small{display:block;margin-top:3px;font-size:10px;color:#87917f}.free-location-note a{color:inherit}
#show-uncollected{font-size:12px;padding:10px 13px;color:#315d49;border:1px solid #ced7c8;border-radius:8px;background:#fffdf7}.collection-toolbar #collection-summary{font-weight:600}.collection-toolbar #collection-breakdown{font-size:11px;color:#708067;margin-top:4px}

.author-label{display:inline-block;font-size:10px;line-height:1.5;padding:3px 7px;border-radius:5px;margin:3px 4px 3px 0;background:#e9ece4;color:#4d5d49}.author-label.recommended,.discovery-badges .author-label.recommended{background:#315d49;color:#fff}.author-label.qualified,.discovery-badges .author-label.qualified{background:#f4e6ca;color:#79551f}.author-label.introduced,.discovery-badges .author-label.introduced{background:#e9ece4;color:#4d5d49}

/* Japanese map-first layout. Existing provider, storage and pin anchors are shared. */
:root{--green:#40664b;--ink:#293e31;--muted:#748070;--line:#e1e7dc;--paper:#fcfdf9;--soft:#f0f4ec;--panel-width:326px;color:var(--ink);background:var(--paper)}
body{overflow:hidden}button,a{touch-action:manipulation}button{transition:background .18s,color .18s,box-shadow .18s}button:hover{filter:none}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #96b99a;outline-offset:3px}p{line-height:1.75}
.app-header{height:74px;padding:0 28px;gap:24px;background:var(--paper);position:relative;z-index:700;border-bottom:1px solid var(--line)}
.brand{gap:10px;font-size:20px;font-weight:600;letter-spacing:2px}.brand-icon{background:none;border-radius:0;width:27px;height:34px;color:var(--green)}.brand-icon svg{width:28px;height:28px}.brand small{font-size:9px;letter-spacing:2.7px;font-weight:400;margin-top:3px}
.header-note{font-size:12px;color:#8a9485;flex:1}.header-nav{display:flex;align-items:center;gap:22px;margin-left:auto;white-space:nowrap}.header-nav button{font-size:13px;padding:9px 0;color:#7b8776}.header-nav .nav-current{color:var(--green);font-weight:500}.header-nav button:hover{color:var(--green)}
.header-nav .discovery-entry{display:block;border:0;border-radius:0;background:none;margin:0;padding:9px 0;color:var(--green)}.header-nav .discovery-entry span{font-size:12px;margin-left:3px}.settings-button{font-size:11px;border-left:1px solid var(--line);padding:9px 0 9px 21px;color:#788371}.primary{border-radius:9px;padding:11px 16px;font-weight:500;font-size:13px;background:var(--green)}.primary:hover{background:#33563e;box-shadow:0 3px 10px #315d4917}.primary:disabled{background:#8c9f88;box-shadow:none;opacity:.65}
#add{display:flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;font-size:12px;padding:11px 15px}#add svg{width:16px;height:16px;flex-shrink:0}
main{position:relative;height:calc(100dvh - 74px);display:block;isolation:isolate}.map-wrap{position:absolute;inset:0;width:100%;height:100%;background:#e8eee4}#map{height:100%}.leaflet-tile{filter:saturate(.56)}
main>aside{position:absolute;left:24px;top:24px;bottom:52px;width:var(--panel-width);height:auto;z-index:550;border:1px solid #e1e7db;border-radius:17px;background:var(--paper);box-shadow:0 8px 32px #253b2921;overflow:hidden;display:flex;flex-direction:column;flex-shrink:0}
.intro{padding:23px 23px 17px;flex-shrink:0}.eyebrow{font-size:9px;font-weight:500;letter-spacing:2.3px;color:#7a8b70}h1{font-size:25px;line-height:1.5;letter-spacing:1px;font-weight:500;margin:10px 0 7px}.intro p{font-size:11px;color:#89947e;line-height:1.7}
.search{margin:0 20px;gap:9px;padding:11px 12px;border:0;background:var(--soft);border-radius:10px;flex-shrink:0}.search>svg{width:17px;height:17px;color:#7e8b74;flex-shrink:0}.search input{font-size:12px;color:var(--ink);padding:0;line-height:1.65}.search input::placeholder{color:#88937e}
.tabs{gap:20px;margin:13px 21px 0;flex-shrink:0;border-bottom-color:var(--line)}.tabs button{font-size:12px;font-weight:400;color:#89917f;padding:10px 0 12px}.tabs .active{font-weight:500;color:var(--green)}.tabs .active:after{height:2px;border-radius:2px}.tabs span{font-size:10px;background:#eaf0e3;color:#75866c;padding:2px 5px;font-weight:400}
.categories{gap:6px;padding:16px 21px 11px;flex-shrink:0}.categories button{font-size:11px;padding:6px 10px;border-color:#e3e8dd;border-radius:20px;color:#7d8876;background:var(--paper)}.categories .active{background:var(--green);border-color:var(--green);color:#fff}.categories button:not(.active):hover{background:var(--soft)}
.list-heading{padding:7px 22px 11px;font-size:11px;color:#87927e;flex-shrink:0}.list-heading b{margin-left:6px;color:#55704c}.list-heading button{font-size:10px;color:#72846a}.list{padding:0 12px 12px;min-height:0;scrollbar-width:thin;scrollbar-color:#d8e0d0 transparent;overscroll-behavior:contain}
.store{position:relative;gap:11px;padding:14px 10px;border-radius:11px;border:1px solid transparent;border-bottom:1px solid #eef0e9;align-items:center;background:transparent}.store:hover{background:#f3f6ee;border-color:transparent}.store.selected{background:#eef3e7;border-color:#dce6d3}.food-icon{width:40px;height:42px;border-radius:12px;background:var(--wash);color:var(--color)}.food-icon svg{width:21px;height:21px}.store h3{font-weight:500;line-height:1.6;font-size:13px;margin-bottom:4px;color:#354b38;overflow-wrap:anywhere}.store p{font-size:10px;line-height:1.7;color:#8b9483}.store .note{font-size:11px;line-height:1.6;color:#74806d;margin-top:4px}.store .pill{position:absolute;right:10px;top:16px;opacity:0;transition:opacity .15s}.store:hover .pill,.store:focus-visible .pill,.store.selected .pill{opacity:1}.store:hover h3,.store.selected h3{padding-right:30px}
.pill{font-size:10px;line-height:1.6;font-weight:400;background:#f4efdf;color:#8a7548;padding:3px 7px;border-radius:5px}.pill.visited{background:#e8efdf;color:#6b845c}
footer{padding:14px 21px;font-size:10px;color:#98a08d;flex-shrink:0;align-items:center;min-height:44px;background:var(--paper)}footer button{font-size:11px;padding-left:11px;color:#74836c}#mobile-map-settings{display:none}
.empty{padding:35px 14px;color:#87947b;font-size:12px;line-height:1.8}.empty strong{font-size:15px;font-weight:500;color:#51684a}.empty p{margin:8px 0 17px}.empty #demo{font-size:11px;color:#7b8c6e;text-decoration:underline;text-underline-offset:4px}
.map-caption,.map-wrap:has(.gm-style) .map-caption{left:calc(var(--panel-width) + 48px);top:24px;background:#fcfdf9f2;padding:11px 15px;border:1px solid #e0e6d8;border-radius:30px;box-shadow:0 3px 15px #31482f12;gap:7px;font-size:12px;max-width:calc(100% - var(--panel-width) - 160px)}.map-caption>span:last-child{font-size:10px;color:#86967b;margin-left:5px;white-space:nowrap}.live-dot{width:5px;height:5px;background:#77966a}
.map-hint{bottom:20px;font-size:10px;padding:8px 14px;background:#fcfdf9eb;color:#87977c;box-shadow:0 2px 12px #31482f10;max-width:calc(100% - 48px);z-index:450}.map-actions,.map-wrap:has(.gm-style) .map-actions{right:23px;bottom:105px}.map-actions button{width:38px;height:38px;border-radius:10px;background:var(--paper);display:grid;place-items:center;box-shadow:0 3px 14px #31482f21}.map-actions svg{width:20px;height:20px;color:#647e56}.leaflet-control-zoom{margin:24px 23px!important;border-radius:10px!important}.leaflet-control-zoom a{background:var(--paper)!important;color:#5b7550!important}
.detail{right:23px;bottom:52px;width:310px;padding:23px;border-radius:15px;background:var(--paper);border:1px solid #dfe7d6;box-shadow:0 12px 40px #253b2926;max-height:calc(100% - 48px);overflow:auto;scrollbar-width:thin;overscroll-behavior:contain}.detail-top{gap:11px;padding-right:12px}.detail h2{font-size:17px;line-height:1.6;font-weight:500;margin:0 0 7px;overflow-wrap:anywhere}.detail .address{font-size:11px;line-height:1.8;color:#829275;margin:16px 0 12px}.detail .note-box{background:#f2f5ec;border-radius:9px;padding:13px;font-size:12px;line-height:1.8;color:#607456;margin-top:9px}.detail-actions{gap:6px;flex-wrap:wrap;margin-top:15px}.detail-actions button,.detail-actions a{font-size:11px;padding:9px 10px;border:1px solid #dce5d1;border-radius:7px;color:#59754c;background:transparent}.detail-actions button:hover,.detail-actions a:hover{background:var(--soft)}.detail-links{font-size:10px;line-height:1.7;gap:10px;margin-top:16px}.detail-links a{color:#748969;text-underline-offset:3px}.detail-links button{font-size:10px;color:#9aa28d;white-space:nowrap}.close{right:11px;top:8px;width:30px;height:30px;border-radius:50%;font-size:23px;line-height:1;color:#8d9b81}.close:hover{background:var(--soft);color:var(--green)}
.saved-sources{font-size:11px;margin:15px 0 0;border-top:1px solid var(--line);padding-top:12px}.saved-sources summary,.source-details summary{color:#6c825e;cursor:pointer;line-height:1.8}.saved-sources>div{display:flex;flex-direction:column;gap:8px;padding-top:10px}.saved-sources a{line-height:1.8;color:#6c825e;text-underline-offset:3px;overflow-wrap:anywhere}
dialog{border:1px solid #dce5d4;border-radius:17px;padding:28px;background:var(--paper);color:var(--ink);box-shadow:0 24px 80px #253b2930;max-height:calc(100dvh - 48px);overflow:auto;scrollbar-width:thin}dialog::backdrop{background:#23372b40;backdrop-filter:blur(4px)}.dialog-heading{position:relative;padding-right:32px}.dialog-heading h2{font-size:23px;line-height:1.5;font-weight:500;letter-spacing:.5px;margin:8px 0}.dialog-heading .close{right:-8px;top:-8px}.muted{font-size:12px;line-height:1.8;color:#839478}.fine{font-size:11px}
form label{font-size:12px;color:#627957;margin-top:17px}form input,form select,form textarea{background:#fff;border-color:#dce5d3;border-radius:9px;padding:11px 12px;font-size:13px;color:#344e37}form input::placeholder,form textarea::placeholder{color:#a2ac99}form input:focus,form textarea:focus,form select:focus{outline:2px solid #bed1ac}.form-row{gap:13px}.pick{font-size:12px;padding:11px;color:#6a865a;border-color:#bfceaE}.dialog-footer{padding-top:18px;margin-top:23px}.dialog-footer button{font-size:12px}.setup-notes{font-size:12px;line-height:1.8;padding:10px 16px;background:var(--soft);color:#75866a}.setup-notes code{font-size:11px}.setup-notes a{color:var(--green)}
.address-actions>small{font-size:10px;color:#8a987e}.address-actions>button{font-size:12px;background:var(--soft);border-color:#d4e0c8;border-radius:8px}.address-results{font-size:12px;border-color:#dce5d3;background:var(--soft)}.address-result{border-color:#dce5d3;background:var(--paper)}.address-result small{font-size:11px}
#discoveries{width:960px;max-width:calc(100% - 48px);max-height:calc(100dvh - 56px);padding:27px 30px}#discoveries .dialog-heading{align-items:center;padding-right:35px}#discoveries .dialog-heading .close{right:-10px;top:-7px}#discoveries .eyebrow{font-size:9px}#discovery-meta{margin:6px 0 12px;font-size:11px;color:#8b997f}
.discovery-help{font-size:11px;color:#859679;border-bottom:1px solid var(--line);padding:0 0 13px;margin:0 0 16px}.discovery-help summary{cursor:pointer;color:#7b8d6d;line-height:1.8;list-style:disclosure-closed}.discovery-help[open] summary{list-style:disclosure-open;margin-bottom:10px}.discovery-help p{font-size:11px;line-height:1.9;color:#7c8f6d}.discovery-help .discovery-explainer{max-width:none;margin:8px 0}.discovery-help .free-location-note{background:var(--soft);padding:10px 13px;border-radius:8px;margin:10px 0}.free-location-note small{font-size:10px;color:#8b997f}.discovery-audit{font-size:11px;margin:12px 0}.discovery-audit a{color:#718663;text-underline-offset:3px}
.discovery-region-row{display:flex;align-items:center;gap:10px;margin:0 0 12px}.discovery-region-row label{font-size:12px;color:#819073}.discovery-region-row select{border:1px solid #d6e2ca;border-radius:8px;padding:8px 13px;font-size:12px;font-weight:500;color:#4f7140;background:#f1f5e9}
.discovery-filters{display:grid;grid-template-columns:minmax(150px,1.8fr) 1fr 1fr .8fr;gap:9px}.discovery-filters input,.discovery-filters select{width:100%;max-width:none;min-width:0;padding:10px 11px;border:1px solid #dce5d3;border-radius:8px;color:#617a51;background:#fff;font-size:12px}.discovery-filters input{min-width:0}
.collection-toolbar{border:1px solid #dfe7d5;border-radius:11px;padding:13px 15px;background:#f5f7ef;margin:15px 0 16px}.collection-toolbar>div{gap:8px}.collection-toolbar .primary{font-size:12px;padding:9px 13px}#show-uncollected,#stop-collection{font-size:11px;padding:8px 11px;border:1px solid #dce5d2;border-radius:7px;background:var(--paper);color:#738869}.collection-toolbar p{font-size:11px;color:#7c8e6f;line-height:1.8;margin-top:9px}.collection-toolbar #collection-summary{font-weight:400;color:#647e54}.collection-toolbar #collection-breakdown{font-size:10px;color:#8a987b}.collection-toolbar #collection-status:not(:empty){color:#526f43;border-top:1px solid #e1e8d8;padding-top:8px}#discovery-count{font-size:11px;margin:12px 0;color:#91a082}
#discovery-list{gap:13px;align-items:start}.discovery-card{border:1px solid #e1e8d9;border-radius:12px;padding:18px 19px;background:var(--paper);min-width:0;transition:border-color .18s,box-shadow .18s}.discovery-card:hover{border-color:#cddcc1;box-shadow:0 4px 16px #31482f09}.discovery-top{gap:11px}.discovery-top h3{font-size:15px;font-weight:500;line-height:1.65;margin-bottom:4px;color:#3b5533}.discovery-top>div>span{font-size:10px;color:#899b79}.discovery-top .food-icon{width:39px;height:41px}.discovery-note{font-size:12px;line-height:1.9;color:#6d845e;margin:14px 0 8px}.discovery-address{font-size:11px;line-height:1.8;color:#8a9b7a;margin:2px 0 10px;overflow-wrap:anywhere}.discovery-badges{gap:5px}.discovery-badges span{font-size:10px;font-weight:400;padding:3px 6px;line-height:1.6;border-radius:4px}.discovery-badges .located{background:#edf3e5;color:#81966b}.discovery-badges .pending{background:#f6efdf;color:#a38b51}.discovery-warning{background:#faf5e9;color:#9a844e;padding:8px 10px;font-size:11px;line-height:1.85;border-radius:7px;margin-top:10px}
.source-details{margin:14px 0 0;font-size:11px;border-top:1px solid #edf0e6;padding-top:11px}.source-details summary{font-size:11px;color:#7b916b}.source-details[open]{padding-bottom:5px}.discovery-sources{font-size:11px;margin:11px 0 4px;gap:9px}.discovery-sources a{font-size:11px;line-height:1.8;color:#6c8759;text-underline-offset:3px}.discovery-sources small{font-size:10px;line-height:1.8;color:#96a186;margin-top:-4px}.discovery-actions{margin-top:14px;border-top:0;padding-top:0;gap:12px}.discovery-actions a{font-size:11px;color:#8a9a7c;text-underline-offset:3px}.discovery-actions .primary{font-size:11px;font-weight:400;padding:8px 12px;border-radius:7px}.discovery-empty{font-size:13px;color:#80946f;padding:35px}
.author-label{font-size:10px;padding:3px 6px;border-radius:4px;margin:2px 4px 2px 0;font-weight:400}.author-label.recommended,.discovery-badges .author-label.recommended{background:#4b7147;color:#fff}.author-label.qualified,.discovery-badges .author-label.qualified{background:#f3e9d3;color:#8c7240}.author-label.introduced,.discovery-badges .author-label.introduced{background:#edf0e5;color:#829071}
.pin-object{transform:rotate(-13deg)}.pin-head{width:34px;height:34px;left:7px;top:1px}.pin-emblem,.pin-visited{transform:rotate(13deg)}.pin-emblem svg{width:17px;height:17px}.pin-shell:hover .pin-object,.pin-shell:focus-visible .pin-object{transform:rotate(-7deg)}.pin-shell.chosen .pin-object{transform:rotate(-7deg) scale(1.08)}.pin-label{font-weight:500;padding:7px 11px;border-radius:8px;border-color:#dfe7d7}.cluster-face{background:linear-gradient(145deg,#fcfdf9,#edf3e6)}.cluster-face strong{font-weight:500}.pin-shell.chosen .pin-ripple{animation-duration:3.6s}
#toast{font-size:12px;border-radius:10px;bottom:24px;padding:12px 18px;background:#3e6448;max-width:calc(100% - 28px);text-align:center;line-height:1.7}
@media(min-width:761px) and (max-width:1050px){.app-header{padding:0 23px;gap:18px}.header-note{display:none}.header-nav{margin-left:auto}main>aside{left:20px;width:310px}.map-caption,.map-wrap:has(.gm-style) .map-caption{left:350px;max-width:calc(100% - 455px)}.detail{width:295px}}
@media(max-height:760px) and (min-width:761px){.intro{padding-top:18px;padding-bottom:13px}.intro p{display:none}.intro h1{margin-bottom:3px}.categories{padding-top:12px;padding-bottom:8px}.tabs{margin-top:10px}main>aside{top:20px}.map-caption,.map-wrap:has(.gm-style) .map-caption{top:20px}}
@media(max-width:760px){
 .app-header{height:66px;padding:0 17px;gap:14px!important}.brand{font-size:18px;letter-spacing:1px;gap:7px}.brand-icon{width:23px}.brand-icon svg{width:24px}.brand small,.header-note,#show-pocket,.app-header .settings-button{display:none}.header-nav{margin-left:auto;gap:0}.header-nav .discovery-entry{font-size:12px;padding:10px 0}.header-nav .discovery-entry span{display:none}#add{width:36px;height:36px;padding:9px;border-radius:9px}#add span{display:none}#add svg{width:18px;height:18px}
 main{height:calc(100dvh - 66px)}main>aside{display:none;position:absolute;left:12px;right:12px;bottom:70px;top:auto;width:auto;height:min(66dvh,530px);border-radius:17px;z-index:650;box-shadow:0 12px 40px #253b292d}.show-list main>aside{display:flex}.intro{padding:17px 20px 12px}.intro .eyebrow,.intro p{display:none}.intro h1{font-size:21px;margin:0}.search{margin:0 18px;padding:10px 12px}.search input{font-size:16px}.tabs{margin:9px 19px 0;gap:23px}.tabs button{font-size:12px;padding:9px 0 10px}.categories{padding:12px 19px 7px;gap:6px}.categories button{font-size:11px;padding:6px 10px}.list-heading{padding:7px 20px 10px}.store{padding:12px 9px}.store h3{font-size:13px}.store p{font-size:10px}.store .pill{display:none}.store:hover h3,.store.selected h3{padding-right:0}.list{padding:0 10px 8px}footer{padding:12px 20px}footer button{font-size:11px}#mobile-map-settings{display:inline-block}
 .map-caption,.map-wrap:has(.gm-style) .map-caption{left:15px;top:17px;max-width:calc(100% - 85px);padding:10px 13px;font-size:11px;gap:6px}.map-caption>span:last-child{font-size:10px;margin-left:1px}.map-caption .live-dot{width:4px;height:4px}.map-hint{bottom:75px;font-size:10px;padding:8px 12px;max-width:calc(100% - 28px)}.map-actions,.map-wrap:has(.gm-style) .map-actions{right:15px;bottom:105px}.map-actions button{width:36px;height:36px}.leaflet-control-zoom{margin:17px 15px!important}.mobile-list{display:flex;align-items:center;gap:9px;position:absolute;left:50%;bottom:23px;transform:translateX(-50%);z-index:700;border:1px solid #e0e7d6;border-radius:25px;background:var(--paper);box-shadow:0 5px 20px #253b2926;color:var(--green);font-size:12px;padding:11px 19px;white-space:nowrap}.mobile-list span{font-size:15px}.show-list .mobile-list{bottom:23px;background:var(--green);color:#fff;border-color:var(--green)}
 .detail{left:12px;right:12px;bottom:77px;top:auto;width:auto;max-height:calc(100% - 145px);padding:21px;border-radius:14px}.detail h2{font-size:17px}.detail .address{font-size:12px}.detail .note-box{font-size:13px}.detail-actions button,.detail-actions a{font-size:12px}.detail-links{font-size:11px}.detail-links button{font-size:11px}.saved-sources summary{font-size:12px}
 dialog{padding:23px;max-width:calc(100% - 22px);max-height:calc(100dvh - 30px);border-radius:15px}.dialog-heading h2{font-size:21px}form input,form select,form textarea{font-size:16px}form label{font-size:13px}.form-row{gap:10px}.address-actions{align-items:flex-start}.address-actions>small{max-width:110px;line-height:1.7}.address-actions>button{font-size:12px;padding:8px 10px}.setup-notes{font-size:12px}
 #discoveries{width:100%;max-width:calc(100% - 22px);padding:22px 19px;max-height:calc(100dvh - 30px)}#discoveries h2{font-size:21px}#discoveries .dialog-heading .close{right:-9px;top:-8px}#discovery-meta{font-size:11px;margin-bottom:12px}.discovery-help{font-size:11px;margin-bottom:14px}.discovery-help p{font-size:12px}.discovery-help .free-location-note{font-size:12px}.discovery-region-row{margin-bottom:11px;gap:10px}.discovery-region-row label{font-size:12px}.discovery-region-row select{font-size:16px;padding:7px 11px}.discovery-filters{grid-template-columns:1fr 1fr;gap:8px}.discovery-filters input{grid-column:1/-1;min-width:0;font-size:16px;padding:10px}.discovery-filters select{font-size:12px;padding:10px 8px;max-width:none;width:100%;min-width:0}#discovery-category{grid-column:1/-1}.collection-toolbar{padding:12px;margin:13px 0}.collection-toolbar>div{gap:7px}.collection-toolbar .primary{font-size:12px;padding:9px 12px}#show-uncollected,#stop-collection{font-size:11px;padding:8px}.collection-toolbar p{font-size:11px}.collection-toolbar #collection-breakdown{font-size:11px}#discovery-count{font-size:11px}#discovery-list{grid-template-columns:1fr;gap:12px}.discovery-card{padding:17px}.discovery-top h3{font-size:16px}.discovery-top>div>span{font-size:11px}.discovery-note{font-size:13px;line-height:1.8}.discovery-address{font-size:12px}.discovery-badges span{font-size:11px}.discovery-warning{font-size:12px}.source-details summary{font-size:12px}.discovery-sources a,.discovery-sources small{font-size:11px}.discovery-actions a,.discovery-actions .primary{font-size:12px}.discovery-actions .primary{padding:9px 13px}.discovery-entry{margin:0}.author-label{font-size:10px}
}
@media(max-width:360px){.app-header{padding:0 12px;gap:10px!important}.brand{font-size:17px}.brand-icon{display:none}.intro{padding-top:14px;padding-bottom:10px}.tabs{gap:16px}.categories{gap:4px}.categories button{padding:5px 8px}.collection-toolbar>div{align-items:stretch}.collection-toolbar .primary{flex:1}.collection-toolbar #show-uncollected{flex:1}.discovery-top h3{font-size:15px}}
@media(prefers-reduced-motion:reduce){button,.store,.discovery-card{transition:none}}
.store .pill.visited{opacity:1}.store:has(.pill.visited) h3{padding-right:34px}
@media(max-width:760px){body.show-list .mobile-list{bottom:23px}body.show-list .mobile-list span{transform:rotate(180deg)}.store:has(.pill.visited) h3{padding-right:0}}
