*{box-sizing:border-box}body{margin:0;background:#080b0f;color:#f4f1e8;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.topbar{position:sticky;top:0;padding:14px 16px;background:#0e1116;border-bottom:1px solid #262b33;z-index:10;display:flex;justify-content:space-between;gap:10px;align-items:center}.topbar strong{display:block}.eyebrow{font-size:.72rem;letter-spacing:.13em;opacity:.68}main{max-width:820px;margin:auto;padding:18px}.hero h1{font-size:2rem;margin:.25rem 0}.card{background:#12171d;border:1px solid #252a32;border-radius:16px;padding:16px;margin:10px 0}.stack{display:grid;gap:10px}.stack .card{margin:0}.muted{opacity:.7}.status{display:inline-block;padding:7px 10px;border-radius:999px;background:#202730;font-size:.8rem;font-weight:700}small{display:block;margin-top:5px;opacity:.66}.error{border-color:#7a3030}footer{text-align:center;padding:24px;opacity:.55;font-size:.75rem}ol{line-height:1.8}.hidden{display:none!important}.button{border:0;border-radius:11px;padding:10px 13px;font-weight:800;cursor:pointer}.primary{background:#eee7d6;color:#111}.secondary{background:#242c35;color:#fff}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px}label{display:grid;gap:6px;font-weight:700}input{width:100%;border:1px solid #303843;background:#0d1116;color:white;border-radius:11px;padding:12px;font:inherit}.password-row{display:grid;grid-template-columns:1fr auto;gap:8px}.cemetery{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.coords{font-size:.72rem;opacity:.55;white-space:nowrap}@media(max-width:600px){.cemetery{display:block}.coords{margin-top:8px}.section-head{align-items:flex-start}}
.explore-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:12px 0}
.gps-status{font-size:.8rem;opacity:.75}
#exploreMap{height:52vh;min-height:360px;border:1px solid #252a32;border-radius:16px;overflow:hidden;margin:12px 0 18px}
.cemetery-button{width:100%;color:inherit;text-align:left;font:inherit;cursor:pointer}
.cemetery-button:hover{border-color:#5a626d}
.list-head{margin-top:14px}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#151a20;color:#f4f1e8}

#cemeteryMap{height:58vh;min-height:400px;border:1px solid #252a32;border-radius:16px;overflow:hidden;margin:12px 0}
#cemeteryDiscoveryPanel{margin-top:18px;scroll-margin-top:80px}
.discovery-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.distance{white-space:nowrap;font-size:.78rem;font-weight:800;background:#202730;padding:6px 8px;border-radius:999px}
.nearby-discovery{border-color:#8a8f77}
.empty{padding:18px;text-align:center;opacity:.7}

.claim-state{font-size:.75rem;font-weight:900;letter-spacing:.08em;margin:10px 0;opacity:.82}
.claimable-discovery{border-color:#a4a77f}
.found-discovery{border-color:#667c6f}
button:disabled{opacity:.42;cursor:not-allowed}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.76);display:grid;place-items:center;padding:18px;z-index:1000}
.modal-card{width:min(640px,100%);max-height:88vh;overflow:auto;background:#12171d;border:1px solid #303843;border-radius:18px;padding:20px;position:relative}
.modal-close{position:absolute;right:12px;top:10px;border:0;background:transparent;color:white;font-size:1.7rem}
.reward{font-size:1.35rem;font-weight:900;margin:18px 0}

.step-box{border:1px solid #303843;border-radius:13px;padding:13px;margin:10px 0;background:#0d1116}
select,textarea{width:100%;border:1px solid #303843;background:#0d1116;color:white;border-radius:11px;padding:12px;font:inherit}
.date-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.photo-preview,.detail-photo{width:100%;max-height:360px;object-fit:contain;border-radius:12px;background:#080b0f}
.contribution-card{width:100%;text-align:left;color:inherit;font:inherit;cursor:pointer}
.status-pill{font-size:.72rem;font-weight:900;background:#202730;padding:6px 8px;border-radius:999px;white-space:nowrap}
.modal-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.danger{background:#713737;color:white}
@media(max-width:600px){.date-grid{grid-template-columns:1fr}}

.journal-summary,.profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}
.journal-summary div,.profile-grid div{background:#0d1116;border:1px solid #252a32;border-radius:12px;padding:12px;text-align:center}
.journal-summary strong,.profile-grid strong{display:block;font-size:1.2rem}.journal-summary span,.profile-grid span{font-size:.72rem;opacity:.7}
.journal-card{width:100%;text-align:left;color:inherit;font:inherit;cursor:pointer}
.checkline{display:flex;align-items:center;gap:8px}
@media(max-width:600px){.profile-grid{grid-template-columns:repeat(2,1fr)}}

.friend-code{display:flex;justify-content:space-between;align-items:center;background:#0d1116;border:1px solid #252a32;border-radius:12px;padding:12px;margin:10px 0}.friend-code strong{letter-spacing:.12em}.member-list{display:grid;gap:6px;margin:10px 0}.member-list>div{display:flex;align-items:center;gap:8px;justify-content:space-between;padding:7px 0;border-bottom:1px solid #252a32}.mini{padding:6px 8px;font-size:.72rem}

body{padding-bottom:78px}
.bottom-nav{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);background:#0e1116;border-top:1px solid #303843;z-index:900;padding-bottom:env(safe-area-inset-bottom)}
.nav-button{appearance:none;border:0;background:transparent;color:#9da5ae;padding:14px 4px 12px;font-size:.72rem;font-weight:800}
.nav-button.active{color:#f4f1e8;background:#171d24}
.app-area{max-width:820px;margin:auto}
.beta-roadmap{opacity:.65}
.adventure-score{display:flex;align-items:baseline;gap:8px;background:#0d1116;border:1px solid #252a32;border-radius:14px;padding:14px;margin:10px 0}.adventure-score strong{font-size:2rem}.adventure-score span{opacity:.7}.adventure-actions,.tour-controls{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.mini-event{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:8px;border-bottom:1px solid #252a32}.mini-event strong{font-size:1.1rem}.tour-progress{font-size:.8rem;font-weight:900;letter-spacing:.08em;margin:8px 0;opacity:.75}#tourStopCard audio{width:100%;margin-top:12px}.topbar{padding-right:12px}
