:root{--ink:#0C1620;--ink-2:#122130;--brass:#E8B15A;--seafoam:#79C7BE;--mist:#9DB0BC;--hair:rgba(157,176,188,.16);
  --display:"Fraunces",serif;--body:"Hanken Grotesk",system-ui,sans-serif;--mono:"Space Mono",monospace}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--body);background:var(--ink);color:#E9EFF2;overflow:hidden}
#worldmap{position:fixed;inset:0;background:var(--ink)}
.leaflet-container{background:var(--ink)}
.leaflet-control-attribution{background:rgba(11,20,30,.6)!important;color:#5d707c!important;font-size:9px}
.topbar{position:fixed;top:0;left:0;right:0;z-index:1200;display:flex;align-items:center;justify-content:space-between;
  padding:14px 20px;background:linear-gradient(to bottom,rgba(11,20,30,.85),transparent);pointer-events:none}
.topbar a,.topbar button{pointer-events:auto}
.brand{font-family:var(--display);font-weight:600;font-size:20px}
.brand .a{color:var(--brass)}.brand .d{color:var(--mist);margin:0 .08em}.brand .b{color:var(--seafoam)}
.mapback{pointer-events:auto;font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#eaf3f5;background:rgba(11,20,30,.7);border:1px solid var(--hair);padding:8px 14px;border-radius:999px;text-decoration:none;margin-left:auto;margin-right:10px}
.mapback:hover{border-color:var(--brass);color:#fff}
.pnl-toggle{display:none;font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#eaf3f5;
  background:rgba(11,20,30,.7);border:1px solid var(--hair);padding:8px 14px;border-radius:999px;cursor:pointer}
.panel{position:fixed;top:62px;left:20px;z-index:1100;width:290px;max-height:calc(100vh - 82px);overflow:auto;
  background:rgba(14,26,38,.94);backdrop-filter:blur(8px);border:1px solid var(--hair);border-radius:16px;padding:18px 18px 14px;
  box-shadow:0 24px 60px -20px rgba(0,0,0,.6)}
.fhead{font-family:var(--display);font-weight:600;font-size:20px;margin-bottom:14px}
.fgroup{margin-bottom:16px}
.flabel{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--seafoam);margin-bottom:8px}
.panel label{display:flex;align-items:center;gap:8px;font-size:14px;color:#dbe6ec;cursor:pointer;padding:3px 0}
.panel input[type=radio],.panel input[type=checkbox]{accent-color:var(--brass)}
.tychips{display:grid;grid-template-columns:1fr 1fr;gap:2px 12px}
.tychips .chip{font-size:13px}
.panel select,.fsearch{width:100%;font-family:var(--body);font-size:14px;padding:9px 11px;border:1px solid var(--hair);
  border-radius:9px;background:var(--ink-2);color:#E9EFF2}
.panel select:focus,.fsearch:focus{outline:2px solid var(--brass);outline-offset:1px}
.fsearch{margin-bottom:12px}
.fcount{font-family:var(--mono);font-size:11px;color:var(--mist);border-top:1px solid var(--hair);padding-top:10px}
.fcount b{color:#fff}.lg-v{color:var(--brass)}.lg-p{color:var(--seafoam)}
/* markery */
.mk{display:block;width:13px;height:13px;border-radius:50%;border:2px solid var(--ink)}
.mk-visited{background:var(--brass);box-shadow:0 0 8px 1px rgba(232,177,90,.6)}
.mk-planned{background:transparent;border-color:var(--seafoam);box-shadow:0 0 6px 0 rgba(121,199,190,.5)}
.leaflet-popup-content-wrapper{background:var(--ink-2);color:#E9EFF2;border:1px solid var(--hair);border-radius:12px}
.leaflet-popup-tip{background:var(--ink-2);border:1px solid var(--hair)}
.pop-t{font-family:var(--display);font-size:19px;font-weight:600;margin-bottom:2px}
.pop-m{font-family:var(--mono);font-size:11px;color:var(--mist);margin-bottom:6px}
.pop-m .v{color:var(--brass)}.pop-m .p{color:var(--seafoam)}
.pop-tr a{font-family:var(--mono);font-size:11px;color:var(--seafoam);display:inline-block;margin-right:8px}
.pop-tr a:hover{color:var(--brass)}
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background:rgba(232,177,90,.25)}
.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{background:rgba(232,177,90,.7);color:#0C1620;font-family:var(--mono);font-weight:700}
@media(max-width:720px){
  .pnl-toggle{display:block}
  .panel{display:none;left:12px;right:12px;width:auto;top:58px}
  .panel.open{display:block}
}
