/* ============ GEO777 — DARK theme + realistic map mock ============ */
.geo-d{
  --d-bg:#0A0E16;
  --d-bg2:#0E1320;
  --d-card:#121826;
  --d-card2:#161D2D;
  --d-line:#1F2838;
  --d-line2:#283449;
  --d-ink:#F2F5FA;
  --d-mut:#9AA5B8;
  --d-mut2:#6B768A;
  --blue:#3B82F6;
  --blue-d:#2563EB;
  --blue-soft:rgba(59,130,246,.14);
  --blue-line:rgba(59,130,246,.32);
  --green:#22C55E;
  font-family:var(--sans);
  color:var(--d-ink);
  background:var(--d-bg);
  -webkit-font-smoothing:antialiased;
}
.geo-d *{box-sizing:border-box;}
.geo-d h1,.geo-d h2,.geo-d h3,.geo-d p,.geo-d ul{margin:0;padding:0;}

/* ---------- header (dark) ---------- */
.dhd{display:flex;align-items:center;justify-content:space-between;padding:16px 36px;border-bottom:1px solid var(--d-line);background:rgba(10,14,22,.72);backdrop-filter:blur(10px);position:relative;z-index:20;}
.dhd-nav{display:flex;align-items:center;gap:28px;}
.dhd-nav a{font-size:14px;font-weight:600;color:var(--d-mut);text-decoration:none;display:flex;align-items:center;gap:5px;cursor:pointer;transition:.15s;}
.dhd-nav a:hover{color:#fff;}
.dhd-right{display:flex;align-items:center;gap:9px;}
.dic{width:36px;height:36px;border-radius:9px;border:1px solid var(--d-line2);background:var(--d-card);display:grid;place-items:center;color:var(--d-mut);cursor:pointer;transition:.15s;}
.dic:hover{border-color:var(--blue-line);color:var(--blue);background:var(--blue-soft);}
.dic svg{width:17px;height:17px;}
.btn-login{display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);font-weight:600;font-size:13px;color:var(--d-ink);background:var(--d-card);border:1px solid var(--d-line2);border-radius:9px;padding:9px 14px;cursor:pointer;transition:.15s;height:36px;}
.btn-login:hover{border-color:var(--blue-line);color:#fff;background:var(--blue-soft);}
.btn-login svg{width:15px;height:15px;}

/* ---------- dark hero text ---------- */
.d-eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#9DC0FF;background:var(--blue-soft);border:1px solid var(--blue-line);padding:7px 12px;border-radius:99px;align-self:flex-start;}
.d-eyebrow .pulse{width:7px;height:7px;border-radius:99px;background:var(--blue);box-shadow:0 0 0 3px rgba(59,130,246,.22);}
.d-h1{font-size:46px;line-height:1.06;font-weight:800;letter-spacing:-.028em;color:#fff;}
.d-h1 .hl{color:var(--blue);}
.d-sub{font-size:16.5px;line-height:1.55;color:var(--d-mut);max-width:540px;font-weight:500;}
.d-check{display:flex;flex-direction:column;gap:11px;}
.d-check li{display:flex;gap:11px;align-items:flex-start;font-size:14px;line-height:1.4;font-weight:600;color:#D4DBE8;list-style:none;}
.d-check .ck{flex:none;width:21px;height:21px;border-radius:7px;background:rgba(34,197,94,.14);color:var(--green);display:grid;place-items:center;margin-top:1px;}
.d-check .ck svg{width:12px;height:12px;}
.d-pills{display:flex;gap:9px;flex-wrap:wrap;}
.d-pill{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.03em;padding:7px 12px;border-radius:8px;}
.d-pill.key{background:#fff;color:var(--d-bg);}
.d-ps{font-size:12px;line-height:1.5;color:var(--d-mut2);font-weight:500;max-width:520px;margin-top:-4px;}
.d-pill.ag{background:var(--blue-soft);color:#9DC0FF;border:1px solid var(--blue-line);}
.btn-cta{font-family:var(--sans);font-weight:700;border:none;border-radius:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:9px;background:var(--blue);color:#fff;padding:15px 24px;font-size:15.5px;box-shadow:0 14px 30px -8px rgba(59,130,246,.6);transition:.15s;}
.btn-cta:hover{background:var(--blue-d);transform:translateY(-1px);}
.btn-cta svg{width:20px;height:20px;}
.btn-out{font-family:var(--sans);font-weight:700;border-radius:13px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;background:transparent;color:#fff;border:1px solid var(--d-line2);padding:14px 22px;font-size:15px;transition:.15s;}
.btn-out:hover{border-color:var(--blue-line);background:var(--blue-soft);}
.d-note{font-size:12.5px;color:var(--d-mut2);font-weight:500;display:flex;align-items:center;gap:7px;}

/* ---------- KPI strip (dark) ---------- */
.kstrip{display:flex;gap:12px;flex-wrap:wrap;}
.kchip{display:flex;align-items:center;gap:11px;background:var(--d-card);border:1px solid var(--d-line);border-radius:13px;padding:12px 15px;}
.kchip .ki{width:34px;height:34px;border-radius:9px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;}
.kchip .ki svg{width:17px;height:17px;}
.kchip .kv{font-size:18px;font-weight:800;letter-spacing:-.02em;color:#fff;display:flex;align-items:center;gap:6px;}
.kchip .kv .up{font-size:11px;color:#4ade80;font-family:var(--mono);}
.kchip .kl{font-size:11.5px;color:var(--d-mut);font-weight:600;margin-top:1px;}

/* ============ REALISTIC YANDEX-STYLE MAP MOCK ============ */
.ymap{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--d-line2);background:#EDEAE4;box-shadow:0 40px 80px -24px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.04);display:grid;grid-template-columns:300px 1fr;height:520px;}
.ymap.compact{grid-template-columns:264px 1fr;height:460px;}

/* sidebar */
.ym-side{background:#fff;display:flex;flex-direction:column;min-width:0;border-right:1px solid #E6E8EC;}
.ym-search{display:flex;align-items:center;gap:9px;padding:11px 12px;border-bottom:1px solid #EEF0F3;}
.ym-sbox{flex:1;display:flex;align-items:center;gap:8px;background:#F3F4F6;border-radius:9px;padding:9px 11px;font-size:13.5px;font-weight:600;color:#1A1A1A;}
.ym-sbox .mpin{color:#E03;}.ym-sbox svg{width:14px;height:14px;}
.ym-sx{color:#9AA0A8;}
.ym-tabs{display:flex;gap:20px;padding:0 14px;border-bottom:1px solid #EEF0F3;}
.ym-tab{font-size:13.5px;font-weight:600;color:#8A9099;padding:11px 0;border-bottom:2px solid transparent;cursor:pointer;}
.ym-tab.on{color:#2563EB;border-color:#2563EB;}
.ym-cats{display:flex;gap:7px;padding:11px 12px;overflow:hidden;}
.ym-cat{flex:none;display:flex;flex-direction:column;align-items:center;gap:4px;width:46px;}
.ym-cat .cc{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;font-size:11px;font-weight:800;color:#fff;}
.ym-cat .cl{font-size:9px;color:#5A626E;font-weight:600;text-align:center;line-height:1.1;white-space:nowrap;}
.ym-list{flex:1;overflow:hidden;display:flex;flex-direction:column;}
.ym-card{padding:13px 14px;border-bottom:1px solid #F0F1F3;position:relative;cursor:pointer;}
.ym-card.top{background:#F4F8FF;}
.ym-card.top::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#2563EB;}
.ym-rank{position:absolute;top:11px;right:12px;width:22px;height:22px;border-radius:99px;background:#2563EB;color:#fff;font-size:12px;font-weight:800;display:grid;place-items:center;box-shadow:0 3px 8px -1px rgba(37,99,235,.5);}
.ym-nm{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:700;color:#1A1A1A;}
.ym-verified{width:15px;height:15px;color:#22A45D;}
.ym-rate{display:flex;align-items:center;gap:7px;margin-top:5px;font-size:13px;}
.ym-stars{display:flex;align-items:center;gap:2px;color:#FFA600;}
.ym-stars svg{width:13px;height:13px;}
.ym-rval{font-weight:700;color:#1A1A1A;}
.ym-rcnt{color:#9AA0A8;font-weight:500;}
.ym-place{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:#3A3A3A;}
.ym-medal{width:14px;height:14px;}
.ym-meta{font-size:12px;color:#6B7280;margin-top:5px;line-height:1.35;}
.ym-meta .opn{color:#22A45D;font-weight:600;}
.ym-addr{font-size:12px;color:#9AA0A8;margin-top:2px;}
.ym-photos{display:flex;gap:5px;margin-top:9px;}
.ym-photos .ph{flex:1;height:46px;border-radius:8px;background-size:cover;background-position:center;}
.ym-up{font-size:9.5px;font-weight:700;color:#fff;background:#22A45D;padding:2px 6px;border-radius:5px;display:inline-flex;align-items:center;gap:3px;}

/* map canvas */
.ym-map{position:relative;overflow:hidden;}
.ym-map svg.base{position:absolute;inset:0;width:100%;height:100%;display:block;}
/* top filter chips */
.ym-top{position:absolute;top:11px;left:11px;right:11px;display:flex;gap:7px;z-index:5;overflow:hidden;}
.ym-chip{flex:none;display:flex;align-items:center;gap:5px;background:#fff;border-radius:9px;padding:7px 11px;font-size:12px;font-weight:600;color:#2A2A2A;box-shadow:0 2px 6px rgba(0,0,0,.12);white-space:nowrap;}
.ym-chip.acc{color:#1A1A1A;}
.ym-chip .cav{width:6px;height:6px;border-radius:99px;background:#888;}
.ym-chip svg{width:11px;height:11px;color:#9AA0A8;}
.ym-chip .medal{width:14px;height:14px;}
/* right controls */
.ym-ctrl{position:absolute;right:11px;bottom:14px;display:flex;flex-direction:column;gap:8px;z-index:5;}
.ym-ctrl .cb{width:34px;height:34px;border-radius:9px;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.14);display:grid;place-items:center;color:#3A3A3A;font-weight:700;font-size:16px;}
.ym-zoom{display:flex;flex-direction:column;border-radius:9px;overflow:hidden;box-shadow:0 2px 6px rgba(0,0,0,.14);}
.ym-zoom .cb{border-radius:0;box-shadow:none;}
.ym-zoom .cb+.cb{border-top:1px solid #ECECEC;}
.ym-topright{position:absolute;top:11px;right:11px;display:none;}

/* pins on map */
.ym-pin{position:absolute;z-index:4;transform:translate(-50%,-100%);display:flex;align-items:center;gap:0;filter:drop-shadow(0 4px 5px rgba(0,0,0,.28));}
.ym-pin .pdot{width:26px;height:26px;border-radius:8px 8px 8px 2px;display:grid;place-items:center;color:#fff;background:#3FAA4E;border:2px solid #fff;}
.ym-pin .pdot svg{width:13px;height:13px;}
.ym-pin .plab{position:absolute;left:30px;top:2px;white-space:nowrap;font-size:11px;font-weight:700;color:#1A1A1A;background:rgba(255,255,255,.92);padding:2px 7px;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,.15);display:flex;align-items:center;gap:4px;}
.ym-pin .plab .st{color:#FFA600;}
.ym-pin.main{z-index:6;}
.ym-pin.main .pdot{width:38px;height:38px;border-radius:11px 11px 11px 3px;background:#2563EB;}
.ym-pin.main .pdot svg{width:18px;height:18px;}
.ym-pin.main .plab{left:42px;top:5px;font-size:12px;background:#2563EB;color:#fff;}
.ym-pin.main .plab .st{color:#FFD24A;}
.ym-ping{position:absolute;left:50%;top:0;width:38px;height:38px;border-radius:11px;background:rgba(37,99,235,.35);transform:translate(-50%,-100%);animation:ymp 2.6s ease-out infinite;z-index:5;}
@keyframes ymp{0%{transform:translate(-50%,-100%) scale(.6);opacity:.7;}80%,100%{transform:translate(-50%,-100%) scale(2.6);opacity:0;}}
.ym-mdot{position:absolute;width:9px;height:9px;border-radius:99px;background:#2563EB;border:2px solid #fff;transform:translate(-50%,-50%);box-shadow:0 1px 3px rgba(0,0,0,.3);z-index:3;}
.ym-metro{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:3px;z-index:3;font-size:9.5px;font-weight:700;color:#6B7280;}
.ym-metro .mm{width:13px;height:13px;border-radius:3px;background:#E4002B;color:#fff;display:grid;place-items:center;font-size:9px;font-weight:800;}

/* floating position card overlay */
.ym-float{position:absolute;z-index:8;background:rgba(13,18,28,.86);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:13px 15px;box-shadow:0 20px 40px -10px rgba(0,0,0,.6);color:#fff;}
.ym-float .fl{font-size:11px;color:var(--d-mut);font-weight:600;margin-bottom:9px;display:flex;align-items:center;gap:6px;}
.ym-float .fr{display:flex;align-items:center;gap:11px;}
.ym-float .fc{text-align:center;}
.ym-float .fk{font-size:10px;color:var(--d-mut2);font-weight:600;}
.ym-float .fv{font-size:24px;font-weight:800;letter-spacing:-.03em;}
.ym-float .fc.was .fv{color:#7C879B;}
.ym-float .fc.now .fv{color:#4ade80;}
.ym-float .farr{color:#4ade80;}
