/* Location follows the existing forest-green identity; address first, amenities second. */
.location-section { padding:64px 0; background:var(--paper); scroll-margin-top:88px; }
.location-heading { margin-bottom:28px; }
.location-heading h2 { margin:0; font:700 32px/1.35 var(--display); color:var(--ink); }
.location-heading p { margin:10px 0 0; color:var(--muted); font-size:16px; }
.location-map-preview { margin:0 0 28px; border:1px solid var(--line); border-radius:14px; overflow:hidden; background:var(--canvas); }
.location-map-preview iframe { display:block; width:100%; height:400px; border:0; background:var(--green-soft); }
.location-map-preview [hidden],.snapshot-editor [hidden] { display:none!important; }
.location-snapshot-link { display:block; position:relative; width:100%; padding:0; border:0; background:var(--canvas); cursor:pointer; }
.location-snapshot-link img { display:block; width:100%; height:auto; }
.location-snapshot-link>span { position:absolute; left:12px; top:12px; padding:8px 12px; background:var(--paper); border-radius:8px; color:var(--green); font-size:13px; box-shadow:var(--shadow); }
.snapshot-editor>img { display:block; width:100%; height:auto; border:1px solid var(--line); border-radius:8px; }
.snapshot-editor p { font-size:14px; color:var(--muted); }
.picker-map .rental-map-label { background:#2a6349; color:white; border:2px solid white; border-radius:8px; padding:8px 14px; font:700 18px/1.4 "Microsoft YaHei",sans-serif; box-shadow:0 2px 8px #0003; }
.picker-map .rental-map-label:before { border-top-color:white; }
.picker-map.is-capturing .leaflet-control-zoom { visibility:hidden; }
.location-map-preview figcaption { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 16px; padding:12px 18px; color:var(--muted); font-size:13px; line-height:1.6; }
.location-map-fallback { display:flex; align-items:center; flex-wrap:wrap; gap:4px 10px; }
.location-map-fallback button,.location-map-fallback a { display:inline-flex; align-items:center; min-height:44px; padding:0; border:0; background:transparent; color:var(--green); font:inherit; font-weight:700; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.location-layout { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.location-address-panel { padding:28px; border:1px solid var(--line); border-radius:14px; background:var(--canvas); min-width:0; }
.location-pin { width:48px; height:48px; display:grid; place-items:center; border-radius:50%; background:var(--green-soft); color:var(--green); }
.location-pin svg { width:26px; height:26px; }
.location-status { margin:16px 0 6px; color:var(--green); font-size:13px; font-weight:700; }
.location-layout h3 { margin:0 0 10px; font-size:20px; line-height:1.5; }
#location-address { margin:0 0 8px; font-size:17px; font-weight:500; overflow-wrap:anywhere; }
.location-hint { margin:0 0 16px; color:var(--muted); font-size:14px; line-height:1.65; }
.location-buttons { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.location-section .button { min-height:46px; font-size:14px; }
.location-section .button:disabled { opacity:.55; cursor:not-allowed; }
.location-section :focus-visible { outline:2px solid var(--green); outline-offset:4px; }
.location-directions { margin-top:24px; padding-top:20px; border-top:1px solid var(--line); }
.location-directions h4 { margin:0 0 8px; font-size:15px; }
.location-directions p { margin:0; white-space:pre-line; color:var(--muted); font-size:15px; overflow-wrap:anywhere; }
.location-nearby-panel { min-width:0; padding-top:4px; }
.nearby-list { margin:0 0 18px; padding:0; list-style:none; }
.nearby-item { display:grid; grid-template-columns:64px minmax(0,1fr); column-gap:14px; align-items:start; padding:14px 0; border-bottom:1px solid var(--line); }
.nearby-item>svg { width:64px; height:64px; padding:16px; margin:0; border-radius:14px; color:#34729a; background:#e5f2fb; }
.nearby-item:nth-child(2n)>svg { color:#6755a2; background:#eee9fb; }
.nearby-item:nth-child(3n)>svg { color:#b37418; background:#fff0d7; }
.nearby-item strong { display:block; font-size:15px; line-height:1.55; font-weight:700; overflow-wrap:anywhere; }
.nearby-item small { display:block; margin:1px 0; font-size:12px; color:var(--muted); }
.nearby-item p { margin:4px 0 0; color:var(--muted); font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.nearby-empty { padding:24px 0; border-top:1px solid var(--line); color:var(--muted); font-size:15px; }
.location-next { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:32px; padding-top:24px; border-top:1px solid var(--line); font-size:15px; color:var(--muted); }
.location-editor { min-width:0; margin:12px 0; padding:20px 0; border:0; border-top:1px solid var(--line); scroll-margin-top:24px; }
.location-editor legend { padding:0 8px 0 0; font-size:22px; font-weight:700; color:var(--green); }
.location-editor>p { margin:0 0 16px; color:var(--muted); font-size:14px; }
.location-editor-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.location-editor-grid label { min-width:0; }
.settings-form .location-editor label { font-size:14px; }
.settings-form .location-editor input,.settings-form .location-editor textarea,.settings-form .location-editor select { width:100%; min-height:44px; padding:10px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); font:inherit; font-size:15px; }
.location-editor small { display:block; color:var(--muted); font-size:13px; font-weight:400; }
.nearby-editor-row { padding:16px 0; border-bottom:1px solid var(--line); }
.nearby-editor-controls { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
.nearby-editor-controls button { min-height:44px; }
.location-editor>.button { margin-top:16px; }
#nearby-editor-empty { color:var(--muted); font-size:14px; }
.picker-entry small { margin-top:8px; }
.location-picker-dialog { width:min(960px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:0; border:1px solid var(--line); border-radius:14px; color:var(--ink); background:var(--paper); }
.location-picker-dialog::backdrop { background:rgba(15,35,25,.5); }
.picker-shell { display:flex; flex-direction:column; max-height:calc(100dvh - 34px); }
.picker-header { display:flex; justify-content:space-between; gap:16px; padding:18px 20px 10px; }
.picker-header h2 { margin:0; font-size:23px; }
.picker-header p { margin:4px 0 0; color:var(--muted); font-size:14px; }
.picker-header .icon-button { flex-shrink:0; min-width:44px; min-height:44px; font-size:24px; }
.picker-search { padding:0 20px 12px; position:relative; }
.picker-search label { display:block; margin-bottom:4px; font-size:13px; }
.picker-search>div:first-of-type { display:flex; gap:8px; }
.picker-search input { min-width:0; flex:1; padding:8px 12px; border:1px solid var(--line); border-radius:8px; font-size:16px; }
.picker-results:not(:empty) { position:absolute; z-index:1100; top:100%; left:20px; right:20px; max-height:200px; overflow:auto; padding:12px; background:var(--paper); border:1px solid var(--line); box-shadow:var(--shadow); font-size:14px; }
.picker-results button { display:block; width:100%; min-height:44px; padding:10px; border:0; border-bottom:1px solid var(--line); text-align:left; color:var(--ink); background:var(--paper); font-size:14px; }
.picker-results button:hover { background:var(--green-soft); }
.picker-map { height:380px; min-height:180px; flex:1 1 380px; background:var(--green-soft); }
.picker-selection { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 20px; }
.picker-selection p { margin:0; font-size:13px; }
.picker-selection button { flex-shrink:0; }
.picker-footer { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:10px; padding:12px 20px; border-top:1px solid var(--line); }
.picker-footer span { margin-right:auto; color:var(--muted); font-size:13px; }
.location-picker-dialog .button { min-height:44px; }
.location-picker-dialog .button:disabled { opacity:.5; cursor:not-allowed; }
.location-picker-dialog :focus-visible { outline:2px solid var(--green); outline-offset:2px; }
.picker-map-error { margin:0; padding:8px 20px; color:#8a4338; font-size:13px; }
.picker-map-error button { color:inherit; border:0; background:none; text-decoration:underline; min-height:44px; }
.picker-map .leaflet-control-zoom a { width:44px; height:44px; line-height:44px; }
@media(max-width:600px) {
  .location-picker-dialog { width:100%; max-width:100%; height:100dvh; max-height:100dvh; margin:0; border:0; border-radius:0; }
  .picker-shell { height:100dvh; max-height:100dvh; }
  .picker-header,.picker-search,.picker-selection { padding-left:16px; padding-right:16px; }
  .picker-selection { flex-wrap:wrap; }
  .picker-footer { padding:12px 16px calc(12px + env(safe-area-inset-bottom)); }
  .picker-footer span { width:100%; }
  .picker-footer .button { flex:1; }
}
@media(max-width:760px) {
  /* 地图截图是竖向标注图，手机端保留品牌标注和定位点，避免 220px cover 裁掉顶部信息。 */
  .location-snapshot-link img { width:100%; height:300px; min-height:300px; object-fit:cover; object-position:center 38%; background:var(--green-soft); }
  .location-section { padding:24px 0 28px; scroll-margin-top:76px; }
  .location-heading { margin-bottom:16px; }
  .location-heading h2 { font-size:26px; }
  .location-heading p { margin-top:6px; font-size:14px; }
  .location-map-preview iframe { height:260px; }
  .location-map-preview { margin-bottom:18px; }
  .location-map-preview figcaption { padding:8px 12px; }
  .location-layout { grid-template-columns:minmax(0,1fr); gap:18px; }
  .location-address-panel { padding:16px; }
  .location-next { align-items:stretch; flex-direction:column; }
  .location-next .button { align-self:flex-start; }
  .location-editor-grid { grid-template-columns:minmax(0,1fr); }
  .location-editor-grid .form-wide { grid-column:auto; }
  .nearby-item { grid-template-columns:52px minmax(0,1fr); column-gap:12px; padding:10px 0; }
  .nearby-item>svg { width:52px; height:52px; padding:14px; border-radius:14px; }
  .nearby-item strong { font-size:15px; }
  .nearby-item p { font-size:13px; line-height:1.6; }
}
@media(max-width:380px) {
  .location-buttons { flex-direction:column; }
  .location-heading h2 { font-size:24px; }
}

@media (min-width: 960px) {
  body.redesign-v3 .location-section {
    padding: 64px 0 72px;
  }

  body.redesign-v3 .location-section .container {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(280px, 0.7fr);
    grid-template-areas:
      "heading heading"
      "map nearby";
    column-gap: 56px;
    row-gap: 16px;
    align-items: stretch;
  }

  body.redesign-v3 .location-heading {
    grid-area: heading;
    margin-bottom: 8px;
  }

  body.redesign-v3 .location-map-preview {
    grid-area: map;
    margin: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
  }

  body.redesign-v3 .location-snapshot-link {
    position: relative;
    display: block;
    flex: 1 1 auto;
    min-height: 440px;
    overflow: hidden;
  }

  body.redesign-v3 .location-map-preview iframe {
    flex: 1 1 auto;
    min-height: 440px;
    width: 100%;
    height: auto;
  }

  body.redesign-v3 .location-snapshot-link img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 36%;
  }

  body.redesign-v3 .location-layout {
    grid-area: nearby;
    display: block;
  }

  body.redesign-v3 .nearby-item > svg,
  body.redesign-v3 .nearby-item:nth-child(2n) > svg,
  body.redesign-v3 .nearby-item:nth-child(3n) > svg {
    color: var(--green);
    background: var(--green-soft);
  }
}
