:root{
  --bg:#07080c; --panel:#0d1016; --panel2:#131824; --border:#1c2231;
  --text:#dfe3ec; --muted:#7e8798; --accent:#c0392b;
  --gS:#e11d48; --gA:#f43f5e; --gB:#f59e0b; --gC:#64748b;
  --blood:#8a1522;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;display:flex;flex-direction:column}

header{display:flex;align-items:baseline;gap:16px;padding:12px 20px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#0d1016,#07080c);position:relative}
header::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--blood) 30%,#e11d48 50%,var(--blood) 70%,transparent);opacity:.55}
.brand{font-size:18px;letter-spacing:.14em;margin:0;font-weight:800}
.brand span{color:#e11d48;margin:0 2px}
.brand .brand-x{color:var(--muted)}
.tagline{color:var(--muted);font-size:12.5px}

main{flex:1;display:flex;min-height:0;position:relative}

#sidebar{width:340px;min-width:280px;border-right:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;padding:12px;gap:8px}
#search-input,#country-select{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--panel2);color:var(--text);font-size:13px}
#search-input:focus,#country-select:focus{outline:1px solid var(--accent)}
.chip-label{color:var(--muted);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;margin-top:2px}
.tier-chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{flex:1;padding:5px 0;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--muted);font-size:12px;cursor:pointer;min-width:34px}
.chip .count{margin-left:5px;font-size:10px;color:var(--muted);opacity:.85}
.chip.active{background:var(--panel2);color:var(--text);border-color:var(--accent)}
.chip.gS.active{box-shadow:inset 0 -2px 0 var(--gS);color:var(--gS)}
.chip.gA.active{box-shadow:inset 0 -2px 0 var(--gA);color:var(--gA)}
.chip.gB.active{box-shadow:inset 0 -2px 0 var(--gB)}
.chip.gC.active{box-shadow:inset 0 -2px 0 var(--gC)}
#list-count{color:var(--muted);font-size:11.5px;padding:0 2px}
#loc-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}
#loc-list li{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;border:1px solid transparent}
#loc-list li a{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;width:100%}
#loc-list li:hover{background:var(--panel2)}
#loc-list li.active{background:var(--panel2);border-color:var(--accent)}
#loc-list b{display:block;font-size:13.5px;font-weight:600}
#loc-list small{color:var(--muted);font-size:11.5px}
.dot{width:10px;height:10px;border-radius:50%;flex:none;box-shadow:0 0 6px rgba(225,29,72,.35)}
.dot.gS{background:var(--gS)} .dot.gA{background:var(--gA)} .dot.gB{background:var(--gB)} .dot.gC{background:var(--gC)}

#map{flex:1;min-width:0}
.leaflet-container{background:#07080c}

#detail{position:absolute;top:0;right:0;bottom:0;width:min(460px,92vw);background:var(--panel);border-left:1px solid var(--border);z-index:1200;overflow-y:auto;padding:20px;box-shadow:-8px 0 30px rgba(0,0,0,.45)}
#detail-close{position:absolute;top:10px;right:12px;background:none;border:none;color:var(--muted);font-size:24px;cursor:pointer;line-height:1}
#detail-close:hover{color:var(--text)}
.grade-badge{display:inline-block;font-size:11px;letter-spacing:.08em;padding:3px 9px;border-radius:999px;border:1px solid var(--border);color:var(--muted);margin-bottom:10px}
.grade-badge.gS{color:var(--gS);border-color:var(--gS);box-shadow:0 0 10px rgba(225,29,72,.25)}
.grade-badge.gA{color:var(--gA);border-color:var(--gA)}
.grade-badge.gB{color:var(--gB);border-color:var(--gB)}
.grade-badge.gC{color:#9aa6bd;border-color:var(--gC)}
#detail-body h2{margin:0 0 4px;font-size:21px;line-height:1.25}
.meta{color:var(--muted);font-size:12px;margin-bottom:14px}
.hook{font-size:14px;color:#c6cbdb;margin:0 0 18px}
.evidence{border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:16px;background:rgba(0,0,0,.18)}
.evidence h3{margin:0 0 10px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.ev-col{padding:10px 2px;border-top:1px solid var(--border)}
.ev-col h4{margin:0 0 6px;font-size:13px}
.ev-col p{margin:0;font-size:12.5px;color:#b9c0d0;line-height:1.6}
.ev-col.skeptic h4{color:#7da7c4}
.ev-col.skeptic{background:rgba(125,167,196,.04)}
.detail-page-link{margin:0 0 16px}
.detail-page-link a{color:var(--accent);font-weight:600;text-decoration:none}
.detail-page-link a:hover{text-decoration:underline}
.tour-btn{display:block;text-align:center;padding:11px;border-radius:10px;background:linear-gradient(180deg,#a93226,#7b241c);color:#fff;font-weight:700;text-decoration:none;font-size:14px}
.tour-btn:hover{filter:brightness(1.12)}
.tour-btn.disabled{background:var(--panel2);color:var(--muted);border:1px dashed var(--border);cursor:not-allowed;font-weight:500}
.tour-note{color:var(--muted);font-size:11.5px;text-align:center;margin-top:8px}

footer{padding:6px 20px;border-top:1px solid var(--border);color:var(--muted);font-size:11.5px;text-align:center;background:var(--panel)}

@media (max-width:860px){
  main{flex-direction:column}
  #sidebar{width:100%;max-height:46vh;border-right:none;border-bottom:1px solid var(--border)}
  #detail{width:100%}
}

/* ---- static location pages ---- */
body.loc-page{display:block;max-width:820px;margin:0 auto;padding:0 20px 40px}
.loc-page main{display:block;flex:none;min-height:0}
.loc-page header{justify-content:space-between;align-items:center;margin-bottom:8px}
.brand-link{color:var(--accent);text-decoration:none;font-weight:700;letter-spacing:.06em}
.loc-page h1{margin:4px 0 2px;font-size:28px;line-height:1.2}
.loc-main .meta{margin-bottom:12px}
.loc-map{height:340px;border-radius:12px;border:1px solid var(--border);margin:18px 0;overflow:hidden}
.loc-page .evidence{margin-top:18px}
.loc-page .evidence h2{margin:0 0 10px;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.loc-page .ev-col h3{margin:0 0 6px;font-size:13.5px}
.loc-page .ev-col p{margin:0;font-size:13px;color:#b9c0d0;line-height:1.65}
.loc-page .ev-col.skeptic h3{color:#7da7c4}
.loc-page .tour{margin-top:16px}
.loc-page footer{max-width:820px;margin:0 auto}
