:root {
  --paper: #f4efe6;
  --paper-2: #ebe4d8;
  --ink: #1d1a16;
  --muted: #6f675e;
  --line: #ddd4c6;
  --eat: #b8432f;
  --avoid: #1f5f78;
  --select: #f3ddc4;
  --shadow: 0 1px 0 rgba(29, 26, 22, 0.06);
  font-family: "Source Han Sans SC", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  height: 100%;
  color: var(--ink);
  background: var(--paper);
}

button, input, select { font: inherit; color: inherit; }

.app {
  display: flex;
  height: 100%;
  min-height: 100%;
}

.panel {
  width: 400px;
  flex: none;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--line);
  background: var(--paper);
  min-height: 0;
}

.mast, .tools, .foot { padding: 16px 18px; }

.mast {
  padding-bottom: 8px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
}

.text-btn, .unfold {
  border: 1px solid var(--line);
  background: white;
  border-radius: 8px;
  padding: 6px 10px;
  cursor: pointer;
}

.app.is-folded .panel { display: none; }

.unfold {
  position: absolute;
  z-index: 500;
  top: 12px;
  right: 12px;
}

.checkin {
  position: absolute;
  z-index: 600;
  left: 56px;
  bottom: 16px;
  width: min(340px, calc(100% - 72px));
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 12px;
}

.checkin[hidden], #fix-form[hidden] { display: none; }

.detail { max-height: min(70vh, 560px); overflow: auto; top: 56px; bottom: auto; }

.detail h2 { margin: 0; font-size: 18px; }

.detail-actions { display: flex; gap: 8px; }

.closed-note { color: var(--eat); }

.checkin details { display: flex; flex-direction: column; gap: 8px; }

.kicker {
  margin: 0;
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--muted);
}

h1 {
  margin: 2px 0 4px;
  font-family: "Songti SC", "Noto Serif SC", "Source Han Serif SC", Palatino, "Palatino Linotype", serif;
  font-size: 28px;
  font-weight: 600;
  line-height: 1.15;
}

.lede {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.5;
}

.tools {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 8px;
}

.seg {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4px;
  padding: 4px;
  background: var(--paper-2);
  border-radius: 10px;
}

.seg-btn {
  border: 0;
  background: transparent;
  border-radius: 8px;
  padding: 8px 0;
  cursor: pointer;
}

.seg-btn.is-on {
  background: white;
  box-shadow: var(--shadow);
}

.field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  color: var(--muted);
}

.field input, .field select {
  width: 100%;
  border: 1px solid var(--line);
  background: white;
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 14px;
  color: var(--ink);
}

.summary {
  margin: 0;
  font-size: 13px;
  color: var(--muted);
}

.near {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-top: 2px;
}

.near-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.near-head button, .primary {
  border: 1px solid var(--line);
  background: white;
  border-radius: 8px;
  padding: 6px 10px;
  cursor: pointer;
}

.primary { background: var(--ink); color: white; border-color: var(--ink); }

.near-item {
  display: block;
  width: 100%;
  text-align: left;
  border: 0;
  background: white;
  border-radius: 8px;
  padding: 8px 10px;
  cursor: pointer;
}

.near-item.is-on { background: var(--select); }

.who { color: var(--ink); }

.dist { color: var(--eat); font-variant-numeric: tabular-nums; }

.add {
  border-top: 1px solid var(--line);
  padding: 10px 18px 12px;
}

.add summary { cursor: pointer; font-size: 14px; }

.add form, .visit {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 10px;
}

.visit[hidden] { display: none; }

.visit {
  margin: 0;
  padding: 12px 18px;
  border-top: 1px solid var(--line);
  background: white;
}

.visit-title { margin: 0; font-size: 14px; }

textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 10px;
  resize: vertical;
  background: white;
}

.stars { display: flex; gap: 6px; }

.stars button {
  width: 36px;
  height: 32px;
  border: 1px solid var(--line);
  background: white;
  border-radius: 8px;
  cursor: pointer;
}

.stars button.is-on { background: var(--ink); color: white; border-color: var(--ink); }

.check { display: flex; gap: 8px; align-items: center; font-size: 14px; }

.visit-line { margin: 8px 0 0; padding-top: 8px; border-top: 1px solid var(--line); }

.visit-photos { display: flex; gap: 6px; margin-top: 6px; }

.visit-photos img, .popup-photo {
  width: 72px;
  height: 72px;
  object-fit: cover;
  border-radius: 6px;
}

.popup-photo { width: 100%; height: 140px; margin-top: 8px; }

.list {
  flex: 1;
  overflow: auto;
  min-height: 0;
  border-top: 1px solid var(--line);
}

.shop {
  display: block;
  width: 100%;
  text-align: left;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  padding: 12px 18px;
  cursor: pointer;
}

.shop.is-on { background: var(--select); }

.shop-top, .shop-meta {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: baseline;
}

.shop-name {
  font-size: 16px;
  font-weight: 650;
}

.tag {
  flex: none;
  font-size: 12px;
  padding: 1px 6px;
  border-radius: 999px;
  border: 1px solid var(--line);
}

.tag-eat { color: var(--eat); border-color: #e4b2a8; }
.tag-avoid { color: var(--avoid); border-color: #b7cdd6; }
.tag-city { color: var(--muted); }

.shop-meta, .shop-addr {
  margin-top: 3px;
  color: var(--muted);
  font-size: 13px;
}

.shop-addr {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.empty {
  padding: 24px 18px;
  color: var(--muted);
}

.foot {
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.foot p { margin: 0 0 6px; }
.foot a { color: var(--ink); }

.map-wrap {
  position: relative;
  flex: 1;
  min-width: 0;
}

#map { height: 100%; background: #e7e1d6; }

.map-error {
  position: absolute;
  z-index: 500;
  left: 12px;
  right: 12px;
  top: 12px;
  margin: 0;
  padding: 8px 10px;
  background: #fff8ee;
  border: 1px solid #e4c9a4;
  border-radius: 8px;
  font-size: 13px;
}

.leaflet-div-icon.pin-wrap {
  background: transparent;
  border: none;
}

.pin {
  display: block;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  box-sizing: border-box;
  border: 2px solid #fff;
}

.shop-spot {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.pin-eat { background: var(--eat); }
.pin-avoid { background: var(--avoid); }
.pin-city { background: transparent; }
.pin-eat.pin-city { border: 2px solid var(--eat); }
.pin-avoid.pin-city { border: 2px solid var(--avoid); }
.pin-closed { background: #8a8178; }
.pin.is-on {
  width: 22px;
  height: 22px;
  outline: 2px solid var(--ink);
}

.cluster {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: 2px solid #fff;
  box-shadow: 0 1px 4px rgba(29, 26, 22, 0.28);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
}
.cluster.is-eat { background: var(--eat); }
.cluster.is-avoid { background: var(--avoid); }
.cluster.is-mixed { background: var(--eat); box-shadow: 0 0 0 3px var(--avoid); }

.leaflet-popup-content-wrapper {
  border-radius: 10px;
  box-shadow: none;
  border: 1px solid var(--line);
}

.leaflet-popup-content { margin: 10px 12px; }
.popup h2 { margin: 0 0 4px; font-size: 16px; }
.popup p { margin: 0 0 4px; font-size: 13px; line-height: 1.45; }
.popup .muted { color: var(--muted); }
.popup .note { margin-top: 6px; }

.popup-photo {
  display: block;
  width: 100%;
  height: 120px;
  object-fit: cover;
  margin-top: 8px;
  border-radius: 6px;
}

.popup a { color: var(--ink); }

.legend {
  display: flex;
  gap: 12px;
  background: rgba(244, 239, 230, 0.94);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 12px;
}

.legend i {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  margin-right: 4px;
  vertical-align: -1px;
}

.legend .eat { background: var(--eat); }
.legend .avoid { background: var(--avoid); }
.legend .city { background: transparent; border: 2px solid var(--ink); box-sizing: border-box; }
.legend .count {
  width: 16px;
  height: 16px;
  background: var(--eat);
  color: #fff;
  font-style: normal;
  font-size: 9px;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
  vertical-align: -3px;
}
.legend .count::before { content: "8"; }

.sheet-handle { display: none; }

@media (max-width: 800px) {
  html, body, .app {
    height: 100dvh;
    overflow: hidden;
  }
  .app { display: block; }
  .map-wrap { position: absolute; inset: 0; }
  .panel {
    position: absolute;
    z-index: 450;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 48dvh;
    border-right: 0;
    border-radius: 18px 18px 0 0;
    box-shadow: 0 -10px 30px rgba(29, 26, 22, 0.12);
    padding-bottom: env(safe-area-inset-bottom);
  }
  .app.is-folded .panel {
    height: 0;
    overflow: hidden;
    border: 0;
    box-shadow: none;
  }
  .sheet-handle {
    display: block;
    width: 42px;
    height: 22px;
    margin: 8px auto 0;
    border: 0;
    background: transparent;
    position: relative;
  }
  .sheet-handle::before {
    content: "";
    display: block;
    width: 42px;
    height: 4px;
    border-radius: 99px;
    background: #cfc6b8;
  }
  .mast { padding: 0 16px 4px; }
  .tools { padding: 4px 16px 8px; gap: 8px; }
  .lede, .foot, .kicker, #fold { display: none; }
  h1 { font-size: 22px; }
  .field input, .field select, .seg-btn, .primary, .text-btn {
    min-height: 44px;
  }
  .list { border-top: 0; }
  .shop { padding: 14px 16px; }
  .legend, .near p { display: none; }
  .leaflet-bottom.leaflet-left { bottom: calc(48dvh + 8px); }
  .leaflet-control-attribution { display: none; }
  .field > span { position: absolute; width: 1px; height: 1px; overflow: hidden; }
  .app.is-folded .leaflet-bottom.leaflet-left,
  .app.has-sheet .leaflet-bottom.leaflet-left { bottom: calc(12px + env(safe-area-inset-bottom)); }
  .unfold {
    top: auto;
    right: auto;
    left: 50%;
    bottom: calc(16px + env(safe-area-inset-bottom));
    transform: translateX(-50%);
    min-height: 44px;
    padding: 0 18px;
  }
  .detail, #visit-form.checkin {
    left: 0;
    right: 0;
    top: auto;
    bottom: 0;
    width: 100%;
    max-height: 78dvh;
    border-radius: 18px 18px 0 0;
    padding-bottom: calc(12px + env(safe-area-inset-bottom));
  }
}

/* Community v1: compact discovery and legible member contributions. */
[hidden]{display:none!important}
button:disabled{opacity:.55;cursor:wait}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--eat);outline-offset:3px}
.edition{display:inline-block;font:11px sans-serif;vertical-align:middle;color:var(--muted);border:1px solid var(--line);padding:3px 5px;border-radius:4px;margin-left:8px}
.community-nav{display:flex;gap:4px;padding:8px 18px;border-bottom:1px solid var(--line)}
.community-nav button{flex:1;border:0;background:transparent;padding:10px 4px;cursor:pointer;font-size:13px;border-radius:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.community-nav button.is-on{background:var(--ink);color:white}
.filter-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.panel-bottom{display:flex;justify-content:space-between;gap:8px;padding:12px 18px;border-top:1px solid var(--line)}
.panel-bottom button{min-height:40px}
.precision-label{display:block;font-size:11px;margin-top:5px;color:var(--eat)}
.detail{width:min(420px,calc(100% - 80px));max-height:calc(100% - 80px);padding:18px;gap:14px}
.detail-eyebrow{font-size:12px;color:var(--muted)}
#detail-body>h2{font-size:24px;line-height:1.3;margin-bottom:8px}
#detail-body p{font-size:14px;line-height:1.65;overflow-wrap:anywhere}
.detail-meta,.muted,small{color:var(--muted)}
.detail-actions{flex-wrap:wrap;margin:14px 0}
.detail-actions button,.map-link{min-height:40px}
.detail section{border-top:1px solid var(--line);margin-top:18px;padding-top:6px}
.detail h3{font-size:15px;margin:12px 0}
.precision-box{padding:8px 10px;border-radius:6px;background:#eee0d3;color:#703e26;font-size:12px!important}
.precision-box.exact{background:var(--paper-2);color:var(--muted)}
.favorite-public{font-size:12px;line-height:1.5}
.restaurant-photo{display:block;width:100%;height:160px;object-fit:cover;border-radius:8px;margin-top:12px}
.map-link{display:inline-block;color:var(--ink);text-decoration:none;font-size:13px;vertical-align:middle;padding-top:10px}
.review{padding:16px 0;border-bottom:1px solid var(--line)}
.review-head{display:flex;align-items:center;gap:8px;font-size:13px}.review-head>span:last-child{margin-left:auto}.review-date{display:block;margin-top:3px}
.avatar-letter{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:var(--paper-2);color:var(--ink);font-size:15px}.avatar-letter.large{width:52px;height:52px;font-size:22px}
.review-actions{display:flex;gap:6px;margin-top:10px}.review-actions button{font-size:12px}.tag-row{display:flex;gap:6px;flex-wrap:wrap}.tag-check{padding:7px 9px;border:1px solid var(--line);border-radius:6px;font-size:12px}
.detail-footer{padding-top:18px;display:flex;gap:8px;flex-wrap:wrap}
dialog{width:min(540px,calc(100% - 32px));max-height:88dvh;overflow:auto;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink);padding:20px}
dialog::backdrop{background:rgba(29,26,22,.45)}
.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.dialog-head h2{font-size:20px;margin:0}
#modal-body form{display:flex;flex-direction:column;gap:12px}#modal-body details,#modal-body section{border-top:1px solid var(--line);padding:16px 0;margin-top:16px}#modal-body p{font-size:14px;line-height:1.65}#modal-body .field>span{position:static;width:auto;height:auto;overflow:visible}.form-msg{font-size:13px;color:var(--eat);margin:0;min-height:1.3em}
.identity{display:flex;gap:12px;align-items:center;margin-bottom:20px}.identity p{margin:4px 0}.history-row{display:block;border:0;border-bottom:1px solid var(--line);background:transparent;width:100%;padding:12px 0;text-align:left;cursor:pointer}.history-row small{display:block;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-row{border-bottom:1px solid var(--line);padding:12px 0}.audit-row{font-size:12px!important;overflow-wrap:anywhere}.audit-row small{display:block}.share-preview{padding:16px;background:var(--paper-2);margin-bottom:16px;border-radius:8px}.share-preview h3{font-size:22px;margin:12px 0}
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);padding:12px 18px;border-radius:8px;background:var(--ink);color:white;z-index:2000;font-size:14px;box-shadow:none}
#pick-bar{position:absolute;z-index:800;bottom:20px;left:50%;transform:translateX(-50%);width:min(450px,calc(100% - 24px));padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:10px;text-align:center}#pick-bar p{margin:0 0 10px}
.field input[type=number]{min-width:0}.foot{padding-top:8px;padding-bottom:8px}.foot p{font-size:11px;margin:0}
@media(max-width:800px){
 .panel{height:52dvh}.app.sheet-expanded .panel{height:84dvh}.mast{padding-top:0}.community-nav{padding:4px 12px}.community-nav button{min-height:36px}.tools{gap:6px;padding-bottom:8px}.tools>.field>span,.filter-row .field>span{position:absolute;width:1px;height:1px;overflow:hidden}.filter-row .field input,.filter-row .field select{font-size:12px}.summary{font-size:11px}.mast h1{font-size:21px}.sheet-handle{margin-top:2px;height:18px}.panel-bottom{padding:8px 12px}.panel-bottom button{min-height:38px;font-size:13px}.shop{padding:12px 16px}.shop-name{font-size:15px}.detail{width:100%;left:0;right:0;top:auto;bottom:0;max-height:82dvh;border-radius:18px 18px 0 0;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom))}.leaflet-control-attribution{display:block!important;font-size:8px!important;max-width:180px}.leaflet-bottom.leaflet-right{bottom:0}.leaflet-bottom.leaflet-left{display:none}dialog{width:calc(100% - 20px);max-height:90dvh;padding:16px}.field input,.field select,.field textarea{font-size:16px}.panel-bottom .primary{background:var(--ink)}#toast{bottom:calc(18px + env(safe-area-inset-bottom))}#pick-bar{bottom:calc(16px + env(safe-area-inset-bottom))}
}
@media(max-height:700px) and (max-width:800px){.panel{height:62dvh}.mast .edition{display:none}.tools{gap:4px}.community-nav{padding-top:0;padding-bottom:0}.field input,.field select{min-height:36px;padding:6px 8px}.panel-bottom{padding:5px 12px}}

/* Short mobile steps and explicit map confirmation */
[hidden]{display:none!important}
.step-track{display:flex;list-style:none;padding:0;margin:0 0 10px;gap:8px}.step-track li{flex:1;padding:10px 4px;border-bottom:3px solid var(--line);font-size:13px;color:var(--muted)}.step-track li.active{color:var(--eat);border-color:var(--eat)}
#new-shop-form fieldset{border:0;padding:0;margin:0;min-width:0;display:flex;flex-direction:column;gap:14px}#new-shop-form legend{font-size:19px;font-weight:700;margin-bottom:16px}.wizard-actions{position:sticky;bottom:-20px;background:var(--paper);display:flex;gap:12px;padding:14px 0;border-top:1px solid var(--line);z-index:2}.wizard-actions .primary{flex:1}.wizard-actions button,.location-options button{min-height:44px}.location-options{display:flex;flex-wrap:wrap;gap:8px}.location-card{padding:14px;background:#eee7dc;border:1px solid var(--line);border-radius:10px;line-height:1.6;overflow-wrap:anywhere}.location-card p{margin:5px 0}.location-card strong{display:block}.stall-fields{display:flex;flex-direction:column;gap:12px}.history-review{background:#eee7dc;padding:12px;border-radius:8px}.history-review>small{display:block;margin-top:4px}#map-center-pin{position:absolute;z-index:650;top:50%;left:50%;font-size:36px;line-height:1;transform:translate(-50%,-100%);pointer-events:none}#pick-bar{z-index:700;max-width:calc(100% - 24px)}#pick-note{line-height:1.5;font-size:13px}
@media(max-width:800px){dialog{max-height:calc(var(--visible-height,100dvh) - 20px);margin:auto;padding:16px;box-sizing:border-box}.dialog-head{position:sticky;top:-16px;background:var(--paper);z-index:3;padding:8px 0}.wizard-actions{bottom:-16px;padding-bottom:calc(12px + env(safe-area-inset-bottom))}.wizard-actions button{min-height:48px}#new-shop-form details>summary{min-height:44px;display:flex;align-items:center}.location-options{display:grid;grid-template-columns:1fr}.location-options button{text-align:left}.detail-actions button,.detail-footer button{min-height:44px}.step-track li{font-size:14px}.panel-bottom button,.community-nav button{min-height:44px}.location-evidence .text-btn{width:100%;min-height:44px}.field input,.field select,.field textarea{font-size:16px}}
/* Fusion v1.3: warm discovery with a full-width header and a real map. */
:root{--paper:#f8f3e9;--paper-2:#f2e5d5;--ink:#3d352b;--muted:#847969;--line:#e5dccb;--eat:#ae5036;--select:#fff6e7;--shadow:none}
html,body{overflow:hidden}.app{height:100dvh;min-height:0;display:grid;grid-template-columns:390px minmax(0,1fr);grid-template-rows:auto auto auto auto minmax(0,1fr);gap:0 24px;padding:0 28px 24px;max-width:1800px;margin:auto}.site-header{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px;border-bottom:1px solid var(--line);background:#fffcf6;margin:0 -28px;padding:0 28px}.site-brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;flex-shrink:0}.brand-mark{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:var(--eat);color:#fff;font:700 22px 'Songti SC',serif}.site-brand h1{font:700 20px 'PingFang SC','Microsoft YaHei',sans-serif;letter-spacing:1px;margin:0}.site-brand small{display:block;font-size:10px;letter-spacing:1.5px;margin-top:5px}.community-nav{padding:0;border:0;gap:28px}.community-nav button{flex:none;color:var(--muted);border-radius:0;padding:14px 0;font-size:13px;min-width:48px}.community-nav button.is-on{color:var(--eat);background:none;border-bottom:2px solid var(--eat)}.site-header>.primary{background:var(--eat);font-size:13px;min-height:44px;padding:10px 18px}.welcome{grid-column:1/-1;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:24px 0 20px}.welcome-kicker{font-size:10px;letter-spacing:2px;color:var(--eat);margin:0 0 10px}.welcome h2{font-size:28px;letter-spacing:-.7px;margin:0 0 10px}.welcome p:last-child{font-size:12px;color:var(--muted);margin:0}.community-total{font-size:11px;color:var(--muted);white-space:nowrap;padding-bottom:2px}.friend-strip{grid-column:1/-1;display:flex;align-items:center;gap:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 0;margin-bottom:16px;min-width:0}.friend-heading{min-width:145px;display:flex;align-items:center;gap:7px;font-size:11px}.live-dot{width:6px;height:6px;border-radius:50%;background:#7f8860}.friend-event{border:0;background:none;display:flex;align-items:center;gap:10px;flex:1;text-align:left;color:var(--muted);font-size:11px;cursor:pointer;min-width:0;min-height:44px}.friend-event+.friend-event{border-left:1px solid var(--line);padding-left:18px}.activity-avatar{flex-shrink:0;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--paper-2);color:var(--eat);font-weight:700}.friend-event>span:nth-child(2){min-width:0;flex:1}.friend-event b,.friend-event strong{color:var(--ink);font-weight:600}.friend-event small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:32vw;font-size:10px;margin-top:5px}.event-arrow{color:var(--eat);margin-left:auto}.tools{grid-column:1/-1;display:grid;grid-template-columns:minmax(280px,1fr) minmax(280px,340px) auto;align-items:end;gap:16px;padding:0 0 18px}.tools>.field{grid-column:1;grid-row:1}.tools>.field>span,.tools .filter-row .field>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.filter-row{grid-column:2;grid-row:1;gap:10px}.tools .field input,.tools .field select{min-height:46px;background:#fffcf6;border-radius:9px;font-size:12px}.seg{grid-column:3;grid-row:1;gap:7px;background:none;padding:0;display:flex}.seg-btn{border:1px solid var(--line);background:#fffcf6;padding:10px 15px;min-height:46px;white-space:nowrap;font-size:12px}.seg-btn.is-on{background:var(--paper-2);color:var(--eat);border-color:var(--eat)}.panel{width:auto;position:relative;grid-column:1;grid-row:5;min-height:0;height:auto;border:0;background:none;box-shadow:none;padding:0;overflow:hidden;z-index:1}.list-heading{display:flex;align-items:center;justify-content:space-between;font-size:14px;margin-bottom:6px}.list-heading .text-btn{background:transparent;border:0;font-size:11px;color:var(--muted);min-height:30px}.summary{font-size:11px;line-height:1.6;margin:0 0 12px}.list{overflow:auto;flex:1;border:0;padding-right:5px;min-height:0;scrollbar-width:thin}.shop{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);border-radius:12px;background:#fffcf6;padding:14px;margin:0 0 11px;width:100%;box-shadow:none}.shop.is-on{border-color:var(--eat);background:var(--select)}.shop-copy{display:block;flex:1;min-width:0}.shop-top{gap:8px;align-items:flex-start}.shop-name{font-size:15px;line-height:1.5}.tag{font-size:10px;border-radius:5px;padding:3px 5px;white-space:nowrap}.shop-meta{display:block;font-size:11px;line-height:1.6;margin-top:5px}.shop-spot{font-size:11px;line-height:1.5;margin-top:5px}.shop-sharer{display:block;font-size:10px;color:var(--muted);margin-top:8px;line-height:1.6}.shop-thumb{width:72px;height:82px;flex-shrink:0;border-radius:8px;background:#f0e3ce;overflow:hidden}.shop-thumb img{width:100%;height:100%;object-fit:cover}.thumb-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center}.thumb-placeholder svg{width:60px;height:60px}.thumb-placeholder small{font-size:9px;color:#967954;margin-top:-3px}.panel-bottom{border:0;padding:6px 0 0;justify-content:flex-end}.panel-bottom .text-btn{background:none;border:0;font-size:11px}.foot{padding:4px 0 0;border:0}.foot p{font-size:10px}.map-wrap{grid-column:2;grid-row:5;min-height:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;position:relative;inset:auto;flex:none}.detail{left:auto;right:16px;top:16px;bottom:auto;max-height:calc(100% - 32px);width:min(420px,calc(100% - 80px));background:#fffcf6;border-radius:12px}.primary{background:var(--eat);color:#fffcf6}.text-btn,.unfold{background:#fffcf6}.location-card,.history-review{background:var(--paper-2)}.mobile-view{display:none}.app.is-folded{grid-template-columns:minmax(0,1fr)}.app.is-folded .map-wrap{grid-column:1/-1}.app.is-folded .welcome,.app.is-folded .friend-strip,.app.is-folded .tools{display:none}.app.is-folded{grid-template-rows:auto minmax(0,1fr)}.app.is-folded .map-wrap{grid-row:2}.legend{background:#fffcf6}.leaflet-bottom.leaflet-left{bottom:8px}.unfold{z-index:610}.map-error{max-width:calc(100% - 24px)}
@media(max-width:1100px) and (min-width:801px){.app{grid-template-columns:340px minmax(0,1fr);padding-left:20px;padding-right:20px;gap:0 18px}.site-header{margin:0 -20px;padding:0 20px}.tools{grid-template-columns:minmax(200px,1fr) 290px auto;gap:10px}.seg-btn{padding:10px}.community-nav{gap:18px}.shop-thumb{width:58px;height:70px}.welcome h2{font-size:25px}}
@media(max-width:800px){html,body{height:100dvh;overflow:hidden}.app{display:flex;flex-direction:column;height:100dvh;min-height:0;gap:0;padding:0 16px calc(70px + env(safe-area-inset-bottom));overflow:hidden}.site-header{flex:none;min-height:64px;margin:0 -16px;padding:10px 16px;gap:8px;flex-wrap:wrap}.site-brand h1{font-size:17px}.brand-mark{width:30px;height:30px;font-size:19px}.site-brand small{font-size:8px}.site-header>.primary{margin-left:auto;font-size:11px;padding:8px 10px;min-height:40px}.community-nav{order:3;width:100%;gap:0;justify-content:space-around;margin:5px 0 -10px}.community-nav button{font-size:12px;flex:1;min-height:42px;padding:8px 0}.welcome{display:block;flex:none;padding:16px 0 13px}.welcome-kicker{font-size:9px;letter-spacing:1px;margin-bottom:8px}.welcome h2{font-size:23px;letter-spacing:-1px;line-height:1.4;margin-bottom:6px}.welcome p:last-child{font-size:10px}.community-total{display:block;font-size:10px;margin-top:10px}.friend-strip{flex:none;display:flex;gap:10px;padding:8px 0;margin-bottom:10px}.friend-heading{min-width:0;width:60px;line-height:1.6;font-size:10px;flex-shrink:0}.friend-event{font-size:10px;gap:7px;padding:0}.friend-event+.friend-event{display:none}.activity-avatar{width:25px;height:25px}.friend-event small{max-width:60vw;font-size:9px}.tools{flex:none;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 0 12px}.tools>.field{grid-column:1/-1;grid-row:1}.filter-row{grid-column:1;grid-row:2;gap:6px;grid-template-columns:1fr 1fr;min-width:0}.tools .field select{font-size:10px;padding:6px;min-width:0;min-height:40px}.tools .field input{font-size:16px;min-height:44px}.seg{grid-column:2;grid-row:2;gap:4px;justify-content:flex-end;min-width:0}.seg-btn{font-size:11px;padding:8px;min-height:40px}.panel,.app.sheet-expanded .panel{position:relative;left:auto;right:auto;top:auto;bottom:auto;flex:1;min-height:0;height:auto;width:100%;border:0;border-radius:0;padding:0;box-shadow:none;display:flex;overflow:hidden}.list-heading{font-size:12px;margin:0}.list-heading #fold{display:none}.summary{font-size:10px;margin:4px 0 8px}.list{padding-right:0}.shop{padding:12px;gap:10px}.shop-name{font-size:14px}.shop-thumb{width:62px;height:78px}.shop-meta,.shop-spot{font-size:10px}.shop-sharer{font-size:9px}.panel-bottom,.foot{display:none}.map-wrap{display:none;position:relative;inset:auto;flex:1;min-height:0;width:100%;border-radius:10px}.app.show-map .panel{display:none}.app.show-map .map-wrap{display:block}.app.show-map .welcome,.app.show-map .friend-strip{display:none}.app.show-map .tools{padding-top:12px}.mobile-view{display:flex;position:fixed;bottom:calc(12px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#fffcf6;border:1px solid var(--line);border-radius:28px;padding:5px;z-index:650;gap:4px}.mobile-view button{min-height:42px;padding:8px 20px;font-size:12px;border:0;background:transparent;border-radius:24px;color:var(--muted);white-space:nowrap}.mobile-view button[aria-pressed=true]{background:var(--eat);color:white}.detail{width:100%;left:0;right:0;top:auto;bottom:0;max-height:95%;border-radius:14px 14px 0 0;padding:16px}.app.is-folded .site-header .community-nav{display:none}.app.is-folded .map-wrap{display:block;flex:1}.app.is-folded .panel,.app.is-folded .mobile-view{display:none}.app.is-folded{padding-bottom:12px}.unfold{bottom:12px;top:auto;left:50%;right:auto}.app.is-folded .leaflet-bottom.leaflet-left{display:none}#toast{bottom:calc(78px + env(safe-area-inset-bottom))}#pick-bar{bottom:12px}.leaflet-control-attribution{max-width:180px}}
@media(max-height:700px) and (max-width:800px){.welcome{padding:10px 0}.welcome h2{font-size:20px}.welcome p:last-child,.community-total{display:none}.friend-strip{padding:4px 0;margin-bottom:8px}.site-header{padding-top:6px;padding-bottom:6px;min-height:55px}.tools{padding-bottom:8px}}
/* v1.4: compact community identity and mobile map previews. */
.site-header{min-height:68px}.brand-mark{width:40px;height:40px;object-fit:contain;border-radius:10px;background:none}.site-brand small{font-size:10px;letter-spacing:.5px}.welcome{padding:15px 0 14px}.welcome h2{font-size:25px;margin-bottom:6px}.welcome-kicker{margin-bottom:7px;letter-spacing:1px}.tools{padding-bottom:14px;gap:12px}.tools .field input,.tools .field select,.seg-btn{min-height:42px}.shop{padding:11px;gap:11px;margin-bottom:9px}.shop-thumb{width:58px;height:68px}.thumb-placeholder svg{width:48px;height:48px}.thumb-placeholder small{font-size:8px}.shop-name{font-size:14px}.shop-meta{margin-top:3px;line-height:1.5}.shop-spot{-webkit-line-clamp:1;margin-top:3px}.shop-sharer{margin-top:5px}.summary{margin-bottom:9px}.site-header>.primary{min-height:42px}.friend-strip{padding:6px 0;margin-bottom:12px}.shop-preview{display:none}.detail .near-head{position:sticky;top:-18px;z-index:10;background:#fffcf6;padding:10px 0;border-bottom:1px solid var(--line);flex-shrink:0}.detail #detail-close{min-width:70px;min-height:48px;font-weight:600;color:var(--eat);border-color:#d7b4a2}.dialog-head #modal-close{min-width:64px;min-height:46px}.detail-eyebrow{font-size:11px}#detail-body>h2{font-size:22px}.detail-actions{gap:7px}.detail section{margin-top:14px}.detail .review{padding:12px 0}
@media(max-width:800px){.site-header{padding:8px 14px;min-height:58px}.site-brand{gap:8px}.brand-mark{width:36px;height:36px}.site-brand h1{font-size:16px}.site-brand small{font-size:8px;letter-spacing:0;max-width:190px}.site-header>.primary{font-size:10px;padding:8px;min-height:40px}.community-nav{margin:2px 0 -8px}.community-nav button{min-height:38px;font-size:11px;padding:7px 0}.welcome{padding:12px 0 10px}.welcome h2{font-size:21px;letter-spacing:-.5px;margin-bottom:3px}.welcome-kicker{font-size:9px;letter-spacing:0;margin-bottom:5px}.welcome p:last-child{display:none}.community-total{font-size:9px;margin-top:6px}.friend-strip{padding:5px 0;margin-bottom:8px}.tools{padding-bottom:9px;gap:7px}.tools .field input{min-height:42px}.tools .field select,.seg-btn{min-height:38px}.shop{padding:10px;gap:10px;margin-bottom:8px}.shop-thumb{width:52px;height:64px}.shop-meta,.shop-spot{font-size:10px}.shop-sharer{font-size:9px;margin-top:4px}.summary{margin:3px 0 7px}.shop-preview:not([hidden]){display:block;position:absolute;left:10px;right:10px;bottom:12px;background:#fffcf6;border:1px solid #d7b4a2;border-radius:14px;padding:10px 12px 12px;z-index:600}.preview-top{display:flex;align-items:center;gap:8px}.preview-top h2{font-size:16px;line-height:1.4;margin:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-top #preview-close{flex-shrink:0;min-width:44px;min-height:44px;font-size:26px;line-height:1;border:0;background:var(--paper-2);border-radius:50%;color:var(--eat);padding:0}.shop-preview p{font-size:11px;line-height:1.5;color:var(--muted);margin:2px 0 10px}.shop-preview .primary{width:100%;min-height:42px;font-size:12px}.detail{max-height:74%;padding:14px;border-radius:14px}.detail .near-head{top:-14px;padding:8px 0;margin-bottom:6px}.detail #detail-close{min-height:48px;min-width:76px}.detail .near-head:before{content:'店铺详情';font-size:12px;color:var(--muted)}.detail .detail-eyebrow{display:none}.mobile-view{padding:4px;bottom:calc(10px + env(safe-area-inset-bottom))}.mobile-view button{min-height:40px}.app{padding-bottom:calc(64px + env(safe-area-inset-bottom))}}

/* v1.5: evidence before rankings, compact draft recovery */
.rating-summary{background:#f8f3ea;border:1px solid #e6dccb;border-radius:12px;padding:12px;margin:10px 0 16px}
.rating-overview{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.rating-overview>strong{font-size:28px;color:#a54b34}.rating-overview small{font-size:13px;color:#776e62}.rating-overview>span{font-size:12px}
.rating-bars>div{display:grid;grid-template-columns:32px 1fr 26px;gap:8px;align-items:center;font-size:12px;margin:5px 0}.rating-bars meter{width:100%;height:10px;accent-color:#b86d43}.rating-bars>div>span:last-child{text-align:right}
.draft-notice{display:flex;align-items:center;gap:8px;justify-content:space-between;padding:8px 10px;margin-bottom:12px;border-radius:8px;background:#f7f1e7;font-size:11px;color:#746653}.draft-notice .text-btn{flex-shrink:0;min-height:44px;padding:6px;font-size:12px}.draft-status{line-height:1.5}.panel-bottom{display:flex;justify-content:space-between;gap:6px}
@media(max-width:800px){.tools .filter-row{grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.tools>.seg{grid-column:1/-1;grid-row:3;justify-content:flex-start}.tools>.seg .seg-btn{padding:7px 12px;min-height:44px;flex:1}.tools .field select{min-height:44px;width:100%}.rating-summary{padding:10px}.draft-notice{align-items:flex-start}}

/* Small visual marks with larger transparent hit areas. */
.leaflet-div-icon.pin-wrap{display:flex;align-items:center;justify-content:center}
.shop-pin .pin{width:10px;height:10px;border-width:1.5px;flex-shrink:0;box-shadow:0 1px 3px #0003}
.shop-pin .pin.is-on{width:15px;height:15px;background:#1769d2;border:2px solid #fff;outline:2px solid #1769d2;box-shadow:0 0 0 5px #fff9}
.cluster-wrap .cluster{box-sizing:border-box;flex-shrink:0;border-width:1.5px;font-size:10px;box-shadow:0 1px 3px #0003}
.cluster-wrap .cluster.is-mixed{background:var(--eat);box-shadow:0 0 0 1px var(--avoid),0 1px 3px #0003}
.legend i.selected{background:#1769d2}
.map-context{position:absolute;top:12px;right:12px;z-index:610;max-width:calc(100% - 70px);padding:7px 9px;background:#fffcf6f2;border:1px solid var(--line);border-radius:9px;box-shadow:0 1px 5px #0001}
.map-context[hidden]{display:none}
.map-context strong{display:block;font-size:11px;color:var(--ink);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:210px}
.map-context>div{display:flex;gap:6px;margin-top:4px}
.map-context button{border:1px solid var(--line);border-radius:6px;background:#fffdf8;color:var(--eat);font-size:11px;min-height:36px;padding:5px 10px;cursor:pointer}
.leaflet-control-scale-line{background:#fffcf6d9;font-size:10px}
@media(min-width:801px){.has-selection .map-context{right:auto;left:52px}}
@media(max-width:800px){.map-context{top:10px;right:10px;padding:6px 8px}.map-context button{min-height:44px;padding:6px 12px}.has-selection .leaflet-bottom.leaflet-right{bottom:154px}.app:has(#detail:not([hidden])) .map-context{display:none}}

/* Location confidence uses familiar green / amber / blue cues, independent of taste. */
.shop-pin .pin-eat,.shop-pin .pin-avoid{background:#16836f}
.shop-pin .pin-city{background:#f7b84b;border:1.5px solid #84530d;box-shadow:0 0 0 1px #fffb}
.shop-pin .pin.is-on{background:#1769d2;border:2px solid white;outline:2px solid #1769d2}
.cluster-wrap .cluster.is-eat{background:#16836f}.cluster-wrap .cluster.is-approx{background:#f0b547;color:#52360e;border-color:#fff;box-shadow:0 1px 3px #0003}
.legend i.eat{background:#16836f}.legend i.city{background:#f7b84b;border-color:#84530d}.legend i.avoid{background:#c94f45}
.tag-avoid{background:#fff0ee;color:#a4372f;border-color:#edb3ab}.tag-eat{color:#83503c}
.cuisine-tags{display:flex;flex-wrap:wrap;gap:4px;margin:5px 0;color:#596b61;font-size:10px}.cuisine-tags>span{background:#edf3ed;border:1px solid #dbe5d8;border-radius:4px;padding:2px 5px}.cuisine-tags small{color:var(--muted);align-self:center}
.cuisine-fields{border:0;padding:0;margin:6px 0}.cuisine-fields legend{font-size:14px!important;margin:0 0 8px!important}.cuisine-fields>div{display:flex;flex-wrap:wrap;gap:6px}.cuisine-fields label{display:flex;align-items:center;gap:4px;min-height:40px;border:1px solid var(--line);border-radius:7px;padding:4px 8px;font-size:12px;background:#fffdf8}.cuisine-fields label:has(input:checked){background:#e9f2e9;border-color:#6b8e73}
.review-triage{padding:10px;background:#edf3ed;border:1px solid #c6d8c5;border-radius:8px;font-size:12px;margin:10px 0}.review-triage.high{background:#fff2dd;border-color:#dfb878}.review-triage ul{margin:6px 0;padding-left:18px}.review-triage li{margin:4px 0}.map-context button:disabled{opacity:.6;cursor:default}
.map-unmapped{position:absolute;z-index:600;bottom:12px;left:10px;max-width:calc(100% - 130px);font-size:11px;line-height:1.5;padding:7px 10px;min-height:36px;background:#fff3d9;color:#795012;border:1px solid #dcb46e;border-radius:8px;text-align:left;cursor:pointer}.map-unmapped[hidden]{display:none}.has-selection .map-unmapped{bottom:160px}
.filter-row{grid-template-columns:repeat(3,minmax(0,1fr))}.tools{grid-template-columns:minmax(200px,1fr) minmax(360px,450px) auto}.detail-grip{display:none}
@media(min-width:801px){.has-selection .map-unmapped{bottom:50px}}
@media(max-width:1100px) and (min-width:801px){.tools{grid-template-columns:minmax(180px,1fr) 330px auto}.tools>.seg .seg-btn{padding:8px}.tools{gap:8px}}
@media(max-width:800px){.tools{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.tools .filter-row{grid-template-columns:repeat(3,minmax(0,1fr))}.tools .field select{font-size:11px;padding:6px 4px}.detail{height:var(--detail-height,68%);max-height:92%;min-height:120px;box-sizing:border-box}.detail .near-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:0;gap:3px}.detail .near-head:before{order:1}.detail #detail-close{order:2;min-height:44px;min-width:66px}.detail-grip{order:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:100%;min-height:32px;padding:2px;border:0;background:transparent;color:var(--muted);touch-action:none;user-select:none;cursor:ns-resize}.detail-grip>span{display:block;width:40px;height:4px;border-radius:3px;background:#b5afa4}.detail-grip small{font-size:9px}.map-unmapped{font-size:10px}.app:has(#detail:not([hidden])) .map-unmapped{display:none}.app:has(#detail:not([hidden])) .leaflet-bottom.leaflet-right{bottom:0}.cuisine-fields label{min-height:44px}}
/* Restaurant reading hierarchy: useful facts first, provenance kept in storage. */
.shop {padding:16px;gap:12px;transition:background .15s,border-color .15s;}
.shop:hover {background:#fff8ef;border-color:#d4bba6;}
.shop-name {font-size:17px;font-weight:650;line-height:1.45;}
.shop-thumb {width:60px;height:70px;border-radius:12px;}
.shop-spot {font-size:13px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.shop-meta {font-size:12px;}
.shop-sharer {font-size:11px;margin-top:8px;}
.shop .precision-label {display:inline-block;background:#f3eee3;color:#8a6e52;border:0;border-radius:4px;padding:3px 6px;font-size:10px;margin-top:7px;}
.shop .cuisine-tags {margin-top:7px;}
.shop .tag-eat {background:#eef2e9;color:#60784d;border-color:#dde5d6;}
.detail {border-radius:18px;padding:22px;background:#fffcf7;box-shadow:0 14px 42px #51372320;}
.near-head {padding-bottom:12px;}
.restaurant-heading h2 {font-size:25px;line-height:1.4;margin:10px 0;letter-spacing:-.5px;}
.restaurant-label {font-size:12px;letter-spacing:.5px;color:#a45136;background:#f8ebdf;padding:5px 8px;border-radius:5px;}
.restaurant-heading .detail-meta {font-size:13px;margin:10px 0 16px;}
.restaurant-address {display:flex;align-items:flex-start;gap:10px;padding:15px 0;border-top:1px solid var(--line);}
.address-icon {font-size:23px;color:#aa694b;line-height:1.5;}
.restaurant-address p {margin:0;font-size:15px;line-height:1.7;}
.restaurant-address .position-hint,.position-hint {font-size:12px;color:#8d7058;line-height:1.6;margin-top:7px;}
.restaurant-primary-actions {display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;margin:6px 0 12px;}
.restaurant-primary-actions button {font-size:13px;padding:9px 10px;min-height:44px;}
.address-actions {display:flex;gap:8px;flex-wrap:wrap;}
.address-actions .text-btn {border:0;background:transparent;color:#7d624e;font-size:12px;padding:6px 0;margin-right:10px;min-height:32px;}
.friend-recommendation {padding:13px 15px;border-radius:10px;background:#f1f1e7;margin:18px 0;color:#536246;}
.recommendation-person {font-size:12px;font-weight:600;}
.friend-recommendation p {font-size:14px;line-height:1.75;margin:6px 0 0;white-space:pre-wrap;}
.friend-recommendation>div+div {padding-top:10px;margin-top:10px;border-top:1px solid #dde2d2;}
.detail .section-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;}
.detail .section-heading h3,.detail .shop-facts h3 {font-size:18px;margin:16px 0;}
.section-heading>span {font-size:12px;color:var(--muted);white-space:nowrap;}
.no-ratings {font-size:12px;color:var(--muted);margin:0 0 18px;}
.rating-summary {padding:12px 14px;background:#f8f2e9;border-radius:10px;}
.rating-method summary {font-size:12px;margin-top:10px;color:var(--muted);cursor:pointer;}
.detail .review {padding:16px 0;margin:0;border:0;border-top:1px solid var(--line);border-radius:0;background:none;}
.review-head {align-items:center;gap:10px;}
.review-head strong {font-size:14px;}
.review-head .review-date {font-size:11px;margin-top:4px;}
.review-score {margin-left:auto;background:#eef1e7;color:#627a4e;font-size:13px;padding:5px 8px;border-radius:6px;}
.review-dish {font-size:13px;color:#a15a3b;padding:8px 10px;background:#fbefdf;border-radius:6px;}
.review-text {font-size:15px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;}
.review-actions {justify-content:flex-end;gap:12px;}
.review-actions .text-btn {font-size:11px;background:none;border:0;color:var(--muted);padding:4px 0;min-height:30px;}
.experience-empty {padding:16px;background:#f7f5ee;border-radius:10px;}
.experience-empty p {font-size:15px;margin:0 0 6px;}
.experience-empty span {font-size:12px;color:var(--muted);line-height:1.7;display:block;}
.experience-empty button {margin-top:12px;background:transparent;border:0;color:#9b593e;padding:0;font-size:13px;}
.location-evidence details {display:block;}
.location-evidence summary {font-size:13px;color:#7d6957;cursor:pointer;margin:12px 0;}
.location-evidence p,.shop-facts p {font-size:13px;line-height:1.75;}
.location-evidence .text-btn {font-size:12px;background:none;border:0;color:#876044;padding-left:0;}
.duplicate-review {padding:16px;background:#f6f2e9;border:1px solid #e3d9c9;border-radius:12px;margin:12px 0;}
.duplicate-review>strong {font-size:15px;}
.duplicate-review>p,.duplicate-review>details {font-size:13px;line-height:1.7;color:var(--muted);}
.candidate-shop {display:flex;justify-content:space-between;align-items:center;gap:16px;text-align:left;width:100%;background:#fffdf8;border:1px solid var(--line);border-radius:8px;padding:12px;margin:10px 0;cursor:pointer;min-height:60px;}
.candidate-shop b {font-size:14px;}
.candidate-shop small {display:block;font-size:12px;line-height:1.6;margin-top:4px;}
.candidate-shop>span:last-child {flex-shrink:0;color:#9b593e;font-size:12px;}
#existing-shop-choice,.merge-summary {padding:14px 16px;background:#eef2e8;border-radius:10px;margin:12px 0;font-size:14px;line-height:1.6;}
#existing-shop-choice small {display:block;}
#existing-shop-choice .text-btn {margin-top:8px;}
@media(max-width:800px) {
 .detail {border-radius:18px 18px 0 0;padding:18px;padding-bottom:calc(18px + env(safe-area-inset-bottom));}
 .restaurant-heading h2 {font-size:24px;}
 .shop {padding:14px;}
 .shop-name {font-size:16px;}
 .restaurant-primary-actions button {min-height:46px;}
 .review-actions .text-btn,.address-actions .text-btn {min-height:44px;}
 .candidate-shop {gap:10px;}
 .detail {max-height:92%;}
 .detail .near-head {top:0;padding:0 0 6px;margin:0;border:0;background:transparent;min-height:22px;justify-content:center;}
 .detail .near-head:before {display:none;}
 .detail-grip {background:none;border:0;min-height:20px;height:20px;padding:0;}
 .detail-grip small {display:none;}
 .detail #detail-close {position:absolute;right:0;top:0;min-width:50px;min-height:36px;padding:6px;font-size:12px;}
 .restaurant-heading {padding-top:6px;}
 .restaurant-heading h2 {margin:10px 0 8px;}
 .restaurant-heading .detail-meta {margin:8px 0 12px;}
}

/* P1: position quality remains readable when selecting a marker. */
.shop-pin .pin.quality-reference{background:#16836f;border:1.5px solid white}
.shop-pin .pin.quality-approx{background:#f7b84b;border:1.5px solid #84530d}
.shop-pin .pin.is-on{background:#1769d2;border:2px solid white;outline:2px solid #1769d2}
.map-empty{position:absolute;z-index:650;top:68px;left:50%;transform:translateX(-50%);background:#fffcf6;border:1px solid #d7c3a9;padding:16px;border-radius:10px;max-width:90%;text-align:center}
.map-empty strong{display:block;font-size:14px}.map-empty[hidden]{display:none}
.contribution-row{padding:16px 0;border-bottom:1px solid var(--line)}.contribution-row>small{display:block;margin-top:8px;color:var(--muted)}.contribution-row>.tag{margin-left:10px}
@media(max-width:800px){.detail #detail-close{min-width:56px;min-height:44px}.detail .near-head{min-height:40px}.map-empty{top:58px}}
