/* ===================================================================
   P'Paws — styles
   Mood & tone: cream paper, sage-teal, warm brown, coral hearts, rounded.
   =================================================================== */
:root{
  --cream:        #f7f2e7;
  --cream-soft:   #fbf7ee;
  --panel-top:    #fefcf6;
  --panel-bot:    #faf4e9;   /* soft cream */
  --card:         #ffffff;
  --ink:          #5c4a3a;   /* warm brown text   */
  --ink-soft:     #9b8979;
  --teal:         #7fb0a8;
  --teal-d:       #5d958c;
  --teal-ink:     #3f6f68;
  --coral:        #ef9d90;
  --green:        #8fb87a;
  --green-d:      #6fa75a;
  --open:         #6fb05a;
  --closed:       #c98b86;
  --line:         #efe8d9;   /* soft, light hairline */
  --icon:         #6f9c93;   /* one earthy tone shared by every UI icon */
  --shadow:       0 6px 20px rgba(120,100,70,.10);
  --shadow-soft:  0 2px 8px rgba(120,100,70,.08);
  --r:            16px;

  /* category colours (pins + tags) — keep in sync with CAT{} in js/app.js */
  --c-cafe:#bd8049; --c-restaurant:#cf6f4e; --c-hotel:#a07b9c;
  --c-park:#7fa857; --c-grooming:#5f97a6; --c-vet:#cc6f76; --c-petshop:#d8b13f;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:'Nunito',system-ui,sans-serif;
  color:var(--ink);
  background:var(--cream);
  overflow:hidden;
}
h1,h2,h3,.brand-text h1{font-family:'Baloo 2',cursive;margin:0}
button{font-family:inherit;cursor:pointer}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:#e3d6c0;border-radius:20px}
::-webkit-scrollbar-thumb:hover{background:#d4c3a6}

/* ============================ LAYOUT ============================ */
.sidebar{
  position:fixed;top:0;left:0;bottom:0;width:392px;z-index:600;
  display:flex;flex-direction:column;
  padding:18px 16px 0;
  background:linear-gradient(170deg,var(--panel-top),var(--panel-bot));
  box-shadow:6px 0 24px rgba(120,100,70,.10);
  border-right:1px solid #efe3cf;
  overflow-y:auto;overflow-x:hidden;            /* whole panel scrolls */
  overscroll-behavior:contain;
}
/* keep real content above the decorative watermarks */
.sidebar>:not(.deco){position:relative;z-index:1}
.deco{position:absolute;z-index:0;color:var(--teal);pointer-events:none;opacity:.07}
.deco-paw1{top:80px;right:14px;font-size:40px;transform:rotate(18deg)}
.deco-paw2{top:300px;right:26px;font-size:20px;transform:rotate(-12deg);opacity:.08}
.deco-bone{top:190px;left:16px;font-size:24px;transform:rotate(-24deg);opacity:.07}
.deco-dog{bottom:78px;right:-16px;font-size:132px;opacity:.05}
.map-wrap{position:fixed;inset:0 0 0 392px}
#map{width:100%;height:100%;background:#e9e6df}

/* ============================ BRAND ============================ */
.brand{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.brand-badge{
  position:relative;flex:0 0 auto;width:84px;height:84px;border-radius:50%;
  background:#fff;overflow:hidden;
  display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-soft);
}
.brand-badge img{width:100%;height:100%;object-fit:cover;object-position:center 50%}
.brand-text h1{font-size:38px;line-height:1;letter-spacing:.5px;color:var(--ink)}
.brand-text h1::first-letter{color:var(--teal-d)}
.tagline{margin:3px 0 0;font-size:12.5px;color:var(--ink-soft);font-weight:700}
.tagline .heart{color:var(--coral)}
.fav-toggle{
  margin-left:auto;border:1.5px solid #f0cfc8;background:#fff;
  color:var(--coral);border-radius:20px;padding:6px 10px;font-weight:800;
  display:flex;align-items:center;gap:5px;font-size:13px;box-shadow:var(--shadow-soft);
  transition:.15s;
}
.fav-toggle .fav-heart{font-size:15px;line-height:1}
.fav-toggle.active{background:var(--coral);color:#fff;border-color:var(--coral)}
.fav-toggle.active .fav-heart{}

.location-chip{
  display:inline-flex;align-items:center;gap:5px;align-self:flex-start;
  background:#fff;border:1px solid var(--line);border-radius:20px;
  padding:5px 12px 5px 8px;font-weight:800;font-size:13px;color:var(--teal-ink);
  box-shadow:var(--shadow-soft);margin-bottom:12px;
}

/* ============================ SEARCH ============================ */
.search-wrap{position:relative;margin-bottom:14px}
.search-wrap input{
  width:100%;border:1.5px solid #ece0cb;background:#fff;border-radius:24px;
  padding:12px 38px 12px 38px;font-size:14px;font-weight:600;color:var(--ink);
  box-shadow:var(--shadow-soft);outline:none;transition:.15s;
}
.search-wrap input::placeholder{color:#bcae9b;font-weight:600}
.search-wrap input:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(127,176,168,.18)}
.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:13px;color:var(--teal-d);opacity:.7}
.search-paw{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:13px;color:var(--teal);opacity:.55}

/* ========================= SECTION LABELS ====================== */
.section-label{
  font-family:'Nunito';font-size:11px;font-weight:800;letter-spacing:.6px;
  text-transform:uppercase;color:var(--ink-soft);margin:0 2px 8px;
}

/* ========================= QUICK FILTERS ======================= */
.filters{margin-bottom:14px}
.chip-row{display:flex;flex-wrap:wrap;gap:7px}
.chip{
  display:inline-flex;align-items:center;gap:5px;
  background:#fff;border:1.5px solid #ece0cb;border-radius:20px;
  padding:6px 11px;font-size:12.5px;font-weight:700;color:var(--ink);
  box-shadow:var(--shadow-soft);transition:.14s;user-select:none;white-space:nowrap;
}
.chip .ico{font-size:12px;line-height:1;color:var(--icon);width:14px;text-align:center}
.chip:hover{border-color:var(--teal);transform:translateY(-1px)}
.chip.active{background:var(--teal);border-color:var(--teal);color:#fff;box-shadow:0 3px 10px rgba(127,176,168,.35)}
.chip.active .ico{color:#fff}

/* ========================== CATEGORIES ========================= */
.categories{margin-bottom:14px}
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.cat{
  background:#fff;border:1.5px solid #ece0cb;border-radius:14px;
  padding:9px 4px 7px;text-align:center;box-shadow:var(--shadow-soft);
  transition:.14s;display:flex;flex-direction:column;align-items:center;gap:3px;
}
.cat .cat-ico{font-size:17px;line-height:1;color:var(--icon)}
.cat .cat-name{font-size:11px;font-weight:700;color:var(--ink)}
.cat .cat-n{font-size:9.5px;font-weight:600;color:var(--ink-soft)}
.cat:hover{border-color:var(--teal);transform:translateY(-1px)}
.cat.active{background:linear-gradient(160deg,#8fbfb6,var(--teal));border-color:var(--teal)}
.cat.active .cat-ico,.cat.active .cat-name,.cat.active .cat-n{color:#fff}

/* =========================== STATS ============================= */
.stats-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:2px 2px 10px}
.stats{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;font-weight:600;color:var(--ink-soft)}
.stats b{color:var(--teal-d);font-weight:800}
.sort-wrap{position:relative}
.sort-wrap select{
  appearance:none;-webkit-appearance:none;
  background:#fff;border:1.5px solid #ece0cb;border-radius:20px;
  padding:6px 26px 6px 12px;font-size:12px;font-weight:800;color:var(--teal-ink);
  box-shadow:var(--shadow-soft);outline:none;
}
.sort-wrap::after{content:"▾";position:absolute;right:11px;top:50%;transform:translateY(-50%);
  pointer-events:none;color:var(--teal-d);font-size:11px}

/* ============================ CARDS ============================ */
.cards{flex:0 0 auto;margin:0 -16px;padding:0 16px 14px;display:flex;flex-direction:column;gap:10px}
.card{
  display:flex;gap:11px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);padding:10px;box-shadow:var(--shadow-soft);
  cursor:pointer;transition:.15s;position:relative;
}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#e4d6bf}
.card.sel{border-color:var(--teal);box-shadow:0 0 0 2px rgba(127,176,168,.3)}
.card-thumb{
  flex:0 0 78px;width:78px;height:78px;border-radius:12px;overflow:hidden;
  position:relative;background-size:cover;background-position:center;
  display:flex;align-items:center;justify-content:center;
}
.card-thumb .ph{font-size:26px;color:var(--icon);opacity:.85}
.card-open{
  position:absolute;left:5px;bottom:5px;font-size:9.5px;font-weight:800;
  color:#fff;background:var(--open);border-radius:8px;padding:2px 6px;letter-spacing:.3px;
  box-shadow:0 1px 4px rgba(0,0,0,.2);
}
.card-open.closed{background:var(--closed)}
.card-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
.card-name{font-weight:600;font-size:14.5px;color:var(--ink);line-height:1.18;
  display:flex;align-items:center;gap:5px}
.verified{flex:0 0 auto;width:15px;height:15px;border-radius:50%;background:var(--teal);
  color:#fff;font-size:10px;display:inline-flex;align-items:center;justify-content:center;font-weight:900}
.card-fav{margin-left:auto;border:none;background:none;color:var(--coral);font-size:17px;line-height:1;flex:0 0 auto;padding:0}
.card-rating{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:var(--ink-soft)}
.stars{color:#f0b84a;letter-spacing:1px;font-size:12px}
.card-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:1px}
.tag{font-size:10px;font-weight:700;padding:2px 7px;border-radius:8px;white-space:nowrap}
.tag i{margin-right:3px;font-size:9px}
.tag-cat{color:var(--ink);font-weight:800;border:1px solid transparent}
.tag-cat i{margin-right:2px;font-size:9px;opacity:.8}
.tag-hood{background:#f1ece1;color:var(--ink-soft)}
.tag-flag{background:#eef5f2;color:var(--teal-d);border:1px solid #dcebe6}

/* ========================= SUGGEST BTN ========================= */
.suggest-btn{
  margin:0 0 14px;flex:0 0 auto;border:1.5px dashed var(--teal);background:#fff;
  color:var(--teal-d);font-weight:800;font-size:13px;border-radius:14px;padding:11px;
  box-shadow:var(--shadow-soft);transition:.15s;
}
.suggest-btn:hover{background:var(--teal);color:#fff;border-style:solid}

/* =========================== MAP PINS ========================== */
/* Light marker: cream-white squircle + soft category-coloured icon.
   Keeps the map airy; the selected pin fills in so it stands out. */
.pin{width:36px;height:36px;position:relative}
.pin .bubble{
  width:34px;height:34px;border-radius:12px;
  background:#fdf9f1;                                              /* solid fallback */
  background:color-mix(in srgb, var(--pc,#bd8049) 12%, #fdf9f1);   /* light, opaque, faintly tinted */
  border:1.5px solid #e6d8c1;                                      /* solid fallback */
  border:1.5px solid color-mix(in srgb, var(--pc,#bd8049) 40%, #ffffff);
  box-shadow:0 4px 10px rgba(80,60,30,.18);
  display:flex;align-items:center;justify-content:center;position:relative;
}
.pin .bubble::after{                       /* little downward nub */
  content:"";position:absolute;left:50%;bottom:-4px;width:9px;height:9px;
  background:#fdf9f1;
  background:color-mix(in srgb, var(--pc,#bd8049) 12%, #fdf9f1);
  border-right:1.5px solid #e6d8c1;
  border-right:1.5px solid color-mix(in srgb, var(--pc,#bd8049) 40%, #ffffff);
  border-bottom:1.5px solid #e6d8c1;
  border-bottom:1.5px solid color-mix(in srgb, var(--pc,#bd8049) 40%, #ffffff);
  transform:translateX(-50%) rotate(45deg);border-radius:0 0 3px 0;
}
.pin .bubble span{font-size:15px;line-height:1;color:var(--pc,#bd8049)}
.pin.sel{z-index:1000!important}
.pin.sel .bubble{
  background:var(--pc,#bd8049);border-color:#fff;animation:bounce .5s;
  box-shadow:0 0 0 4px rgba(127,176,168,.4),0 5px 12px rgba(80,60,30,.32);
}
.pin.sel .bubble::after{background:var(--pc,#bd8049);border-color:#fff}
.pin.sel .bubble span{color:#fff}
@keyframes bounce{0%{transform:scale(.7)}60%{transform:scale(1.16)}100%{transform:scale(1)}}
.pp-popup .leaflet-popup-content-wrapper{border-radius:16px;font-family:'Nunito';
  box-shadow:0 10px 30px rgba(80,60,30,.22);padding:0;overflow:hidden}
.pp-popup .leaflet-popup-content{margin:0;width:236px!important}
.pp-popup .leaflet-popup-tip{box-shadow:0 8px 20px rgba(80,60,30,.18)}
.map-pop{display:flex;flex-direction:column}
.mp-thumb{height:108px;background-size:cover;background-position:center;position:relative;
  display:flex;align-items:center;justify-content:center;font-size:30px;background-color:#efe9dd}
.mp-thumb span{color:var(--icon);opacity:.85}
.mp-open{position:absolute;left:8px;top:8px;font-size:10px;font-weight:800;color:#fff;
  background:var(--open);border-radius:8px;padding:2px 8px;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.mp-open.closed{background:var(--closed)}
.mp-body{padding:9px 12px 11px}
.mp-name{font-weight:700;font-size:14.5px;color:var(--ink);line-height:1.18;
  display:flex;align-items:center;gap:5px}
.mp-rating{font-size:12px;font-weight:700;color:var(--ink-soft);margin-top:2px}
.mp-rating .stars{font-size:12px}
.mp-rev{color:#b3a48f}
.mp-tags{display:flex;gap:5px;margin-top:6px;flex-wrap:wrap}
.mp-cat{font-size:10px;font-weight:800;color:var(--ink);padding:2px 8px;border-radius:8px;
  border:1px solid transparent}
.mp-cat i{margin-right:3px;font-size:9px;opacity:.85}
.mp-hood{font-size:10px;font-weight:800;background:#f1ece1;color:var(--ink-soft);padding:2px 8px;border-radius:8px}
.mp-more{margin-top:9px;width:100%;border:none;background:var(--teal);color:#fff;font-weight:800;
  font-size:12.5px;border-radius:10px;padding:8px;box-shadow:var(--shadow-soft)}
.mp-more:hover{background:var(--teal-d)}
.leaflet-popup-close-button{color:#fff!important;right:5px!important;top:5px!important;
  font-size:20px!important;text-shadow:0 1px 3px rgba(0,0,0,.4);z-index:5}

/* ========================= DETAIL PANEL ======================== */
.scrim{position:fixed;inset:0;background:rgba(70,55,35,.32);opacity:0;visibility:hidden;
  transition:.2s;z-index:700}
.scrim.show{opacity:1;visibility:visible}
.detail{
  position:fixed;top:0;bottom:0;left:392px;width:430px;z-index:750;
  background:var(--cream-soft);box-shadow:8px 0 30px rgba(80,60,30,.18);
  transform:translateX(-30px);opacity:0;visibility:hidden;transition:.22s;
  overflow-y:auto;
}
.detail.show{transform:none;opacity:1;visibility:visible}
.detail-inner{padding-bottom:30px}
.d-hero{height:210px;position:relative;background-size:cover;background-position:center;
  display:flex;align-items:center;justify-content:center}
.d-hero .ph{font-size:74px;filter:drop-shadow(0 3px 6px rgba(0,0,0,.2))}
.d-hero-grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(40,30,15,.5),transparent 55%)}
.d-back,.d-close{position:absolute;top:14px;border:none;background:rgba(255,255,255,.92);
  width:36px;height:36px;border-radius:50%;font-size:16px;color:var(--ink);
  box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;z-index:2}
.d-back{left:14px}.d-close{right:14px}
.d-hero-title{position:absolute;left:18px;bottom:14px;right:18px;color:#fff;z-index:2}
.d-hero-title h2{font-size:23px;font-weight:600;line-height:1.12;text-shadow:0 2px 8px rgba(0,0,0,.45)}
.d-hero-badges{display:flex;gap:6px;margin-top:6px}
.d-open{font-size:11px;font-weight:800;color:#fff;background:var(--open);border-radius:8px;padding:3px 9px}
.d-open.closed{background:var(--closed)}
.d-price{font-size:11px;font-weight:800;color:#fff;background:rgba(0,0,0,.35);border-radius:8px;padding:3px 9px}

.d-body{padding:16px 18px 0}
.d-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.d-rating{font-weight:800;color:var(--ink)}
.d-rating .stars{font-size:14px}
.d-catpill{font-size:11px;font-weight:800;color:var(--ink);padding:3px 10px;border-radius:9px;border:1px solid transparent}
.d-catpill i{margin-right:3px;font-size:10px;opacity:.85}
.d-hood{font-size:12px;font-weight:700;color:var(--ink-soft)}
.d-verified{font-size:11px;font-weight:800;color:#fff;background:var(--teal);
  border-radius:9px;padding:3px 9px}
.chip-tags{display:flex;flex-wrap:wrap;gap:6px}
.chiptag{font-size:11.5px;font-weight:700;background:#fff;border:1px solid var(--line);
  color:#6b5848;border-radius:18px;padding:4px 11px}
.rules{margin:9px 0 0;padding-left:2px;list-style:none;display:flex;flex-direction:column;gap:4px}
.rules li{font-size:12.5px;font-weight:700;color:var(--teal-ink)}
.d-favbtn{margin-left:auto;border:1.5px solid #f0cfc8;background:#fff;color:var(--coral);
  border-radius:20px;padding:6px 12px;font-weight:800;font-size:12.5px;display:flex;gap:5px;align-items:center}
.d-favbtn.active{background:var(--coral);color:#fff;border-color:var(--coral)}

.d-desc{font-size:13.5px;line-height:1.55;color:#6b5848;margin:0 0 14px}
.d-section{margin-bottom:16px}
.d-section h3{font-size:13px;font-family:'Baloo 2';color:var(--teal-ink);margin-bottom:7px;
  display:flex;align-items:center;gap:6px}

/* horizontal photo strip — photos 2..N; scrolls when more than ~3 (5+, up to 8) */
.d-gallery{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.d-gallery .g{flex:0 0 116px;height:84px;border-radius:12px;border:none;padding:0;cursor:pointer;
  background-size:cover;background-position:center;scroll-snap-align:start;
  box-shadow:var(--shadow-soft);transition:.15s;outline:2px solid transparent;outline-offset:2px}
.d-gallery .g:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.d-gallery .g.on{outline-color:var(--teal)}
.d-gallery::-webkit-scrollbar{height:7px}
.d-gallery::-webkit-scrollbar-thumb{background:#e3d6c0;border-radius:20px}

.flag-grid{display:flex;flex-wrap:wrap;gap:6px}
.flag-grid .f{font-size:12px;font-weight:800;background:#eef5f2;color:var(--teal-d);
  border:1px solid #dcebe6;border-radius:10px;padding:5px 10px;display:flex;gap:5px;align-items:center}

.hours-table{width:100%;border-collapse:collapse;font-size:13px}
.hours-table td{padding:5px 0;border-bottom:1px dashed var(--line);font-weight:700}
.hours-table td.day{color:var(--ink-soft);width:90px}
.hours-table tr.today td{color:var(--teal-ink);font-weight:800}
.hours-table td.shut{color:var(--closed)}

.d-policy{font-size:13px;line-height:1.55;background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:11px 13px;color:#6b5848}
.d-info{font-size:13px;color:#6b5848;display:flex;flex-direction:column;gap:6px}
.d-info .di{display:flex;align-items:center;gap:9px}
.d-info .di i{color:var(--icon);width:16px;text-align:center;flex:0 0 auto}
.d-info a{color:var(--teal-d);font-weight:700;text-decoration:none}
.d-actions{display:flex;gap:9px;padding:6px 18px 0}
.d-actions a{flex:1;text-align:center;text-decoration:none;font-weight:800;font-size:13px;
  padding:11px;border-radius:13px;box-shadow:var(--shadow-soft)}
.d-dir{background:var(--teal);color:#fff}
.d-call{background:#fff;color:var(--teal-d);border:1.5px solid var(--teal)}

/* ============================ MODAL ============================ */
.modal{position:fixed;inset:0;z-index:900;display:none;align-items:center;justify-content:center;
  background:rgba(70,55,35,.4);padding:18px}
.modal.show{display:flex}
.modal-card{background:var(--cream-soft);border-radius:22px;width:480px;max-width:100%;
  max-height:92vh;overflow-y:auto;padding:24px 24px 18px;box-shadow:0 20px 60px rgba(60,40,20,.35);position:relative}
.modal-card h2{font-size:22px;color:var(--ink)}
.modal-sub{margin:3px 0 16px;font-size:13px;color:var(--ink-soft);font-weight:700}
.modal-close{position:absolute;top:16px;right:16px;border:none;background:#fff;width:32px;height:32px;
  border-radius:50%;font-size:14px;color:var(--ink);box-shadow:var(--shadow-soft)}
.modal-card label{display:block;font-size:12px;font-weight:800;color:var(--teal-ink);margin-bottom:11px}
.modal-card input,.modal-card select,.modal-card textarea{
  width:100%;margin-top:4px;border:1.5px solid #e6d9c2;border-radius:11px;padding:9px 11px;
  font-family:inherit;font-size:13.5px;font-weight:600;color:var(--ink);background:#fff;outline:none}
.modal-card input:focus,.modal-card select:focus,.modal-card textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(127,176,168,.16)}
.form-row{display:flex;gap:11px}.form-row label{flex:1}
.flags-field{border:1.5px solid #e6d9c2;border-radius:12px;padding:8px 12px 12px;margin-bottom:14px}
.flags-field legend{font-size:12px;font-weight:800;color:var(--teal-ink);padding:0 6px}
.flag-chips{display:flex;flex-wrap:wrap;gap:7px}
.flag-chips .fc{font-size:12px;font-weight:700;border:1.5px solid #ece0cb;background:#fff;border-radius:18px;
  padding:5px 11px;color:var(--ink);user-select:none}
.flag-chips .fc.on{background:var(--teal);border-color:var(--teal);color:#fff}
.modal-actions{display:flex;justify-content:flex-end;margin-top:4px}
.modal-actions .primary{background:var(--teal);color:#fff;border:none;border-radius:13px;
  padding:11px 22px;font-weight:800;font-size:14px;box-shadow:var(--shadow)}
.modal-actions .primary:hover{background:var(--teal-d)}
.modal-foot{font-size:11.5px;color:var(--ink-soft);text-align:center;margin:12px 0 0;font-weight:700}
.modal-foot a{color:var(--teal-d);cursor:pointer;font-weight:800}

/* ============================ TOAST ============================ */
.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);z-index:1100;
  background:var(--ink);color:#fff;font-weight:800;font-size:13px;padding:11px 20px;border-radius:30px;
  box-shadow:0 8px 24px rgba(0,0,0,.3);opacity:0;visibility:hidden;transition:.25s;max-width:90vw;text-align:center}
.toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}

/* ====================== MOBILE TOGGLE ========================= */
.mobile-toggle{display:none;position:fixed;z-index:680;bottom:18px;left:50%;transform:translateX(-50%);
  background:var(--ink);color:#fff;border:none;border-radius:30px;padding:11px 22px;font-weight:800;
  font-size:14px;box-shadow:0 8px 22px rgba(0,0,0,.3)}

/* empty state */
.empty{text-align:center;color:var(--ink-soft);font-weight:700;padding:34px 14px;font-size:13.5px}
.empty .big{font-size:40px;display:block;margin-bottom:8px}

/* ============================= COVER ============================ */
/* The cover artwork itself fills the screen (contain on cream so the whole
   composition shows and stays sharp); the full surface is the Enter button. */
.cover{
  position:fixed;inset:0;z-index:2000;
  background:var(--cream) url('../assets/cover.jpg') center center / contain no-repeat;
  transition:opacity .5s ease, visibility .5s ease;
}
.cover.hide{opacity:0;visibility:hidden;pointer-events:none}
.cv-enter{position:absolute;inset:0;width:100%;height:100%;border:none;background:transparent;
  cursor:pointer;padding:0;font:inherit;outline:none}
.cv-enter:focus-visible{outline:3px solid var(--teal);outline-offset:-6px;border-radius:8px}

/* ====================== RESPONSIVE ============================ */
@media (max-width:980px){
  .detail{left:0;width:100%}
}
@media (max-width:760px){
  .sidebar{width:100%;border-right:none;box-shadow:none;z-index:660;overflow-x:hidden}
  .cat .cat-name{font-size:10px}
  .cat .cat-ico{font-size:17px}
  .chip{font-size:12px;padding:6px 9px}
  .map-wrap{inset:0}
  body.show-map .sidebar{transform:translateY(100%)}
  body.show-map .mobile-toggle{}
  .mobile-toggle{display:block}
  body:not(.show-map) .mobile-toggle::before{content:""}
}
