/* Карта (map.blade.php). Всё под .mp, чтобы не конфликтовать со style.css */
.mp{
  --paper:#F3F6FA; --card:#FFFFFF; --ink:#102A43; --ink-soft:#56708A;
  --line:#E0E7F0; --sky:#E6F0FB; --sky-line:#CBDEF4;
  --brand:#0A7CDB; --brand-ink:#0860A8;
  --accent:#DA6A2B; --good:#1E9A68;
  --c1:#D9434B; --c2:#1F7AE0; --c3:#E09A0B; --c4:#8B5CF6;
  --bar:#001F43;
  --shadow:0 18px 40px -20px rgba(16,42,67,.5);
  --f:"Onest","Roboto","Helvetica Neue",Arial,sans-serif;
  background:var(--paper);color:var(--ink);font-family:var(--f);line-height:1.5;-webkit-font-smoothing:antialiased;
}
.mp *{box-sizing:border-box}
.mp h1,.mp h3{margin:0;font-family:var(--f);line-height:1.15;color:var(--ink)}
.mp p{margin:0}
.mp a{color:inherit;text-decoration:none}
.mp button,.mp input{font-family:var(--f)}
.mp .i{width:18px;height:18px;flex:none;display:block}
.mp :focus-visible{outline:2px solid var(--brand);outline-offset:2px}

/* панель фильтров */
.mp-tool{display:flex;align-items:center;gap:12px;flex-wrap:nowrap;padding:12px 20px;background:var(--card);border-bottom:1px solid var(--line);position:relative;z-index:30}
.mp-tool h1{font-size:19px;font-weight:800;white-space:nowrap}
.mp-q{display:flex;align-items:center;gap:8px;border:1.5px solid var(--sky-line);border-radius:11px;padding:0 12px;margin:0;background:var(--card);min-width:0;flex:0 1 230px}
.mp-q:focus-within{border-color:var(--brand)}
.mp-q .i{color:var(--ink-soft);width:16px;height:16px}
.mp-q input{border:0;outline:0;background:transparent;color:var(--ink);font-size:15px;padding:9px 0;width:100%;min-width:0}
.mp-chips{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;min-width:0;scrollbar-width:none}
.mp-chips::-webkit-scrollbar{display:none}
.mp-chip{flex:none;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:7px 12px;font-weight:600;font-size:14px;cursor:pointer;white-space:nowrap}
.mp-chip .dot{width:10px;height:10px;border-radius:50%;flex:none}
.mp-chip small{color:var(--ink-soft);font-weight:600;font-size:12.5px;font-variant-numeric:tabular-nums}
.mp-chip[aria-pressed="true"]{background:var(--bar);border-color:var(--bar);color:#fff}
.mp-chip[aria-pressed="true"] small{color:rgba(255,255,255,.7)}
.mp-more{position:relative;flex:none}
.mp-more .n{background:var(--accent);color:#fff;border-radius:999px;font-size:12px;padding:0 7px;line-height:18px}
.mp-more .n[hidden]{display:none}
.mp-pop{position:absolute;top:calc(100% + 8px);left:0;width:min(520px,calc(100vw - 32px));background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:16px}
.mp-pop[hidden]{display:none}
.mp-pop h3{font-size:15px;margin-bottom:10px}
.mp-pop .grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 14px}
.mp-pop label{display:flex;align-items:center;gap:9px;font-size:14px;padding:5px 0;margin:0;cursor:pointer;font-weight:400}
.mp-pop label small{color:var(--ink-soft);margin-left:auto;font-variant-numeric:tabular-nums}
.mp-pop input{accent-color:var(--accent);width:16px;height:16px;margin:0;flex:none}
.mp-pop .row{display:flex;justify-content:space-between;align-items:center;margin:12px 0 0;padding-top:12px;border-top:1px solid var(--line)}
.mp-btn{border:0;border-radius:10px;padding:9px 16px;font-weight:700;font-size:14px;cursor:pointer}
.mp-btn.pri{background:var(--accent);color:#fff}
.mp-btn.ghost{background:transparent;color:var(--brand-ink);padding-inline:4px}
.mp-view{margin-left:auto;flex:none;display:flex;background:var(--paper);border-radius:11px;padding:3px}
.mp-view a,.mp-view span{white-space:nowrap;padding:6px 12px;border-radius:9px;font-weight:600;font-size:14px;color:var(--ink-soft)}
.mp-view span{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(16,42,67,.15)}

/* список + карта */
.mp-stage{height:calc(100vh - 150px);min-height:520px;display:grid;grid-template-columns:380px minmax(0,1fr);position:relative}
.mp-list{background:var(--card);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;position:relative;z-index:5}
.mp-lh{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px 10px;font-size:14px;color:var(--ink-soft)}
.mp-lh b{color:var(--ink);font-variant-numeric:tabular-nums}
.mp-grip{display:none}
.mp-items{overflow:auto;flex:1;padding:0 10px 12px}
.mp-it{display:grid;grid-template-columns:78px minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 8px;border-radius:13px;cursor:pointer}
.mp-it:hover,.mp-it.on{background:var(--sky)}
.mp-it img,.mp-it .noph{width:78px;height:58px;border-radius:10px;object-fit:cover;display:block;background:var(--paper)}
.mp-it .noph{display:grid;place-items:center;color:var(--ink-soft)}
.mp-k{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--ink-soft)}
.mp-k i{width:8px;height:8px;border-radius:50%;display:block}
.mp-it b{font-size:14.5px;font-weight:700;line-height:1.3;color:var(--ink);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.mp-it .ad{font-size:12.5px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mp-sc{flex:none;min-width:40px;text-align:center;border-radius:10px;background:var(--good);color:#fff;font-weight:800;font-size:14px;padding:6px 7px;font-variant-numeric:tabular-nums}
.mp-sc.mid{background:var(--brand)}
.mp-sc.none{background:transparent;color:var(--ink-soft);font-weight:500;font-size:11.5px;line-height:1.2;padding:0}
.mp-empty{padding:30px 16px;text-align:center;color:var(--ink-soft)}
.mp-empty b{display:block;color:var(--ink);margin-bottom:6px}

.mp-mapbox{position:relative;min-width:0}
#mp-map{position:absolute;inset:0;background:#EDEAE2}
.mp-near{position:absolute;left:16px;top:16px;z-index:6;display:flex;align-items:center;gap:8px;border:0;border-radius:12px;background:var(--card);color:var(--ink);box-shadow:0 6px 16px -6px rgba(0,0,0,.35);padding:11px 15px;font-weight:700;font-size:14px;cursor:pointer}
.mp-near .i{color:var(--brand)}
.mp-ctrl{position:absolute;right:16px;top:16px;display:flex;flex-direction:column;gap:8px;z-index:6}
.mp-ctrl button{width:42px;height:42px;border:0;border-radius:12px;background:var(--card);color:var(--ink);box-shadow:0 6px 16px -6px rgba(0,0,0,.35);cursor:pointer;display:grid;place-items:center;font-size:22px;font-weight:500;line-height:1}
.mp-toast{position:absolute;left:50%;top:16px;transform:translateX(-50%);z-index:7;background:var(--bar);color:#fff;border-radius:10px;padding:9px 14px;font-size:14px;max-width:calc(100% - 140px);text-align:center}
.mp-toast[hidden]{display:none}

/* метки (рисуются Яндекс.Картой через templateLayoutFactory) */
.mp-pin{position:absolute;cursor:pointer;font-family:"Onest","Roboto",Arial,sans-serif}
.mp-pin.dot{left:-8px;top:-8px;width:16px;height:16px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35)}
.mp-pin.pill{left:0;top:0;transform:translate(-50%,calc(-100% - 7px));display:flex;align-items:center;gap:4px;color:#fff;font-weight:800;font-size:13px;line-height:1.2;border-radius:10px;padding:4px 8px;box-shadow:0 4px 10px -2px rgba(0,0,0,.4);font-variant-numeric:tabular-nums;border:2px solid #fff;white-space:nowrap}
.mp-pin.pill::after{content:"";position:absolute;left:50%;bottom:-8px;margin-left:-6px;border:6px solid transparent;border-top-color:#fff;border-bottom:0}
.mp-pin.pill svg{width:12px;height:12px;display:block}
.mp-pin.dot.on{transform:scale(1.4)}
.mp-pin.pill.on{transform:translate(-50%,calc(-100% - 7px)) scale(1.15)}
.mp-cl{position:absolute;transform:translate(-50%,-50%);border-radius:50%;display:grid;place-items:center;box-shadow:0 4px 12px -2px rgba(0,0,0,.35);cursor:pointer}
.mp-cl span{width:calc(100% - 8px);height:calc(100% - 8px);border-radius:50%;background:#fff;display:grid;place-items:center;font:800 14px/1 "Onest","Roboto",Arial,sans-serif;color:#102A43;font-variant-numeric:tabular-nums}
.mp-me{position:absolute;left:-10px;top:-10px;width:20px;height:20px;border-radius:50%;background:#0A7CDB;border:4px solid #fff;box-shadow:0 0 0 8px rgba(10,124,219,.22)}

/* карточка места */
.mp-card{position:absolute;left:16px;bottom:16px;z-index:8;width:320px;max-width:calc(100% - 32px);background:var(--card);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}
.mp-card[hidden]{display:none}
.mp-card .ph{position:relative;aspect-ratio:16/9;max-width:100%;background:var(--paper)}
.mp-card .ph img{width:100%;height:100%;object-fit:cover;display:block}
.mp-card .x{position:absolute;right:8px;top:8px;width:30px;height:30px;border-radius:50%;border:0;background:rgba(0,20,40,.55);color:#fff;font-size:18px;line-height:1;cursor:pointer;display:grid;place-items:center}
.mp-card .bd{padding:12px 14px 14px}
.mp-card .top{display:flex;gap:10px;align-items:flex-start}
.mp-card .top > div{flex:1;min-width:0}
.mp-card b{display:block;font-size:16px;line-height:1.3;margin-top:2px;color:var(--ink)}
.mp-card .ln{display:flex;gap:7px;align-items:flex-start;font-size:13px;color:var(--ink-soft);margin-top:7px}
.mp-card .ln .i{width:15px;height:15px;margin-top:2px}
.mp-card .ln a{color:var(--brand-ink)}
.mp-card .acts{display:flex;gap:8px;margin-top:12px}
.mp-card .acts a{flex:1;text-align:center;border-radius:10px;padding:9px 10px;font-weight:700;font-size:14px}
.mp-card .acts .go{background:var(--accent);color:#fff}
.mp-card .acts .rt{background:var(--sky);color:var(--brand-ink)}

@media (max-width:1180px){.mp-tool h1{display:none}}
@media (max-width:860px){
  .mp-tool{gap:8px;padding:10px 12px;flex-wrap:wrap}
  .mp-q{flex:1 1 100%}
  .mp-chips{max-width:calc(100% - 120px)}
  .mp-view{display:none}
  .mp-stage{grid-template-columns:minmax(0,1fr)}
  .mp-mapbox{position:absolute;inset:0}
  .mp-list{position:absolute;left:0;right:0;bottom:0;height:128px;border-right:0;border-radius:20px 20px 0 0;box-shadow:0 -10px 30px -12px rgba(0,0,0,.35);transition:height .25s}
  .mp-list.open{height:72%}
  .mp-grip{display:block;width:40px;height:5px;border-radius:3px;background:var(--line);margin:8px auto 0}
  .mp-lh{cursor:pointer}
  .mp-near{top:12px;left:12px}
  .mp-ctrl{top:12px;right:12px}
  .mp-card{left:12px;right:12px;width:auto;bottom:140px}
  .mp-card .ph{aspect-ratio:16/7}
}
@media (prefers-reduced-motion:reduce){.mp *{transition:none !important}}
