/* ちめいろ: 手本=Strava(白地・色は意味のある所だけ)/パレット=海と珊瑚(DESIGN.md 2-2) */
:root{--bg:#f5f6f2;--men:#e8ede8;--ji:#1c2a2e;--hai:#4f5f63;--usu:#8a979a;--kei:#d8dfda;--shu:#0f5f6b;--half:#b9d3d6;--fuku:#f08a6c;--chui:#b23a3a}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{background:var(--bg);color:var(--ji);font-family:"Noto Sans JP",system-ui,sans-serif;font-weight:500;overscroll-behavior:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.num{font-family:Inter,"Noto Sans JP",sans-serif;font-variant-numeric:tabular-nums}
#app{height:100dvh;display:flex;flex-direction:column;max-width:520px;margin:0 auto;background:var(--bg)}
.top{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));background:#fff;border-bottom:1px solid var(--kei)}
.ttl{font-weight:900;font-size:20px;letter-spacing:-.01em}
.cnt{display:flex;align-items:baseline;gap:4px;color:var(--hai);font-size:14px}
.cnt b{font-size:24px;font-weight:800;color:var(--shu)}
main{flex:1;min-height:0;position:relative}
.view{position:absolute;inset:0;display:none;flex-direction:column;overflow:hidden}
.view.on{display:flex}

/* 地図 */
.stats{display:flex;align-items:center;gap:16px;padding:12px 16px;border-bottom:1px solid var(--kei)}
.stats>div{display:flex;align-items:baseline;gap:4px;font-size:12px;color:var(--hai)}
.stats b{font-size:20px;font-weight:800;color:var(--ji)}
.stats .ghost{margin-left:auto}
.ghost{border:1px solid var(--shu);color:var(--shu);border-radius:4px;padding:8px 12px;font-size:14px;font-weight:700;white-space:nowrap;background:#fff}
.mapwrap{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:8px}
#map{width:100%;height:100%}
#map path{stroke:#fff;stroke-width:.7;cursor:pointer;transition:fill .3s}
#map .p-none{fill:#dfe5e2}
#map .p-half{fill:var(--half)}
#map .p-done{fill:var(--shu)}
#map .okibox{fill:none;stroke:var(--kei);stroke-width:1}
.legend{display:flex;gap:16px;justify-content:center;font-size:12px;color:var(--hai);padding:4px 0 10px}
.lg{display:inline-block;width:10px;height:10px;margin-right:4px;vertical-align:-1px}
.lg.done{background:var(--shu)}.lg.half{background:var(--half)}.lg.none{background:#dfe5e2}

/* 見つけた */
.search{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid var(--kei);background:#fff}
.search input{flex:1;min-width:0;border:1px solid #8d8b85;border-radius:4px;padding:10px 12px;font:500 16px "Noto Sans JP",sans-serif;background:#fff;color:var(--ji)}
.hint{font-size:12px;color:var(--hai);padding:8px 16px 0}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px 16px 16px;overflow-y:auto;flex:1;align-content:start}
.chip{border:1px solid var(--kei);background:#fff;border-radius:4px;padding:10px 6px;text-align:center;line-height:1.25}
.chip b{display:block;font-size:18px;font-weight:900}
.chip small{display:block;font-size:11px;color:var(--hai);margin-top:2px}
.chip.got{background:var(--shu);border-color:var(--shu);color:#fff}
.chip.got small{color:#cfe3e5}
.chips.small .chip{padding:7px 10px}
.chips.small .chip b{font-size:15px;display:inline}
.chip:active{transform:scale(.97)}

/* 地名帳 */
#v-book{overflow-y:auto}
.reg{padding:14px 16px 4px;font-size:12px;color:var(--hai);letter-spacing:.08em;font-weight:700;display:flex;justify-content:space-between}
.prow{padding:10px 16px;border-top:1px solid var(--kei)}
.prow h3{font-size:15px;font-weight:900;display:flex;justify-content:space-between;margin-bottom:8px}
.prow h3 span{color:var(--shu);font-family:Inter,sans-serif;font-weight:800;font-size:14px}
.prow h3 span.done{background:var(--shu);color:#fff;padding:1px 8px;border-radius:4px;font-family:"Noto Sans JP";font-size:12px}

/* 下のタブ */
.tabs{display:grid;grid-template-columns:1fr 1.3fr 1fr;align-items:center;background:#fff;border-top:1px solid var(--kei);padding:8px 12px;padding-bottom:max(8px,env(safe-area-inset-bottom));gap:8px}
.tabs button{padding:10px 0;font-weight:700;font-size:14px;color:var(--hai);border-radius:4px}
.tabs button.on{color:var(--shu);box-shadow:inset 0 -3px 0 var(--shu);border-radius:0}
.tabs .big{background:var(--shu);color:#fff;font-size:18px;font-weight:900;padding:14px 0;border-radius:4px}
.tabs .big.on{color:#fff;box-shadow:none;background:#0b4a54}

/* 下から出る面 */
.sheet{position:fixed;inset:0;background:rgba(28,42,46,.45);display:flex;align-items:flex-end;justify-content:center;z-index:10}
.sheet[hidden]{display:none}
.sheet-in{background:#fff;width:100%;max-width:520px;max-height:82dvh;overflow-y:auto;padding:16px 16px max(20px,env(safe-area-inset-bottom));border-radius:8px 8px 0 0;position:relative}
.x{position:absolute;right:12px;top:12px;font-size:14px;color:var(--hai);border:1px solid var(--kei);border-radius:4px;padding:6px 10px}
.sh-t{font-size:24px;font-weight:900;margin-bottom:2px}
.sh-s{font-size:14px;color:var(--hai);margin-bottom:12px}
.card{display:flex;gap:14px;align-items:center;padding:4px 0 12px}
.plate{width:150px;flex:none;aspect-ratio:2/1;border:3px solid #2f6b3a;border-radius:6px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#2f6b3a;font-weight:900;line-height:1.1}
.plate .pn{font-size:24px;letter-spacing:.04em}
.plate .pd{font-family:Inter,sans-serif;font-size:22px;letter-spacing:.06em;color:#2f6b3a}
.card .yomi{font-size:14px;color:var(--hai)}
.card .nm{font-size:28px;font-weight:900}
.card .pf{font-size:14px;margin-top:2px}
.mini{width:100%;height:150px;background:var(--men);border-radius:4px}
.mini path{fill:#fff;stroke:var(--kei);stroke-width:.6}
.mini path.hl{fill:var(--fuku);stroke:var(--fuku)}
.meta{font-size:14px;color:var(--hai);padding:10px 0}
.btn{display:block;width:100%;padding:14px;border-radius:4px;background:var(--shu);color:#fff;font-weight:900;font-size:16px;text-align:center}
.btn.sub{background:#fff;color:var(--chui);border:1px solid var(--kei);font-weight:700;font-size:14px;margin-top:8px}

/* 記録した時 */
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom));background:var(--ji);color:#fff;border-radius:6px;padding:12px 14px;display:flex;gap:14px;align-items:center;z-index:20;width:calc(100% - 32px);max-width:488px;font-size:14px}
.toast[hidden]{display:none}
.toast b{font-size:18px;font-weight:900}
.toast .pg{color:#b9d3d6;margin-left:6px}
.toast button{margin-left:auto;color:#f7c2b2;font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* 県がそろった時 */
.yatta{position:fixed;inset:0;background:rgba(15,95,107,.94);display:flex;align-items:center;justify-content:center;z-index:30;padding:24px}
.yatta[hidden]{display:none}
.yatta-in{text-align:center;color:#fff;width:100%;max-width:360px;animation:pop .45s ease-out}
#yattaMap{width:180px;height:180px;margin:0 auto 12px;display:block}
#yattaMap path{fill:#fff}
.yatta-t{font-size:32px;font-weight:900;line-height:1.3}
.yatta-s{font-size:16px;margin:6px 0 24px;color:#d7ebed}
.yatta .btn{background:#fff;color:var(--shu)}
@keyframes pop{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}
