body { padding-bottom:24px; }
main { padding-bottom:24px; }
h1 { font-size:clamp(20px,5.5vw,28px); }
.latest-card { overflow:hidden; }
.latest-card > img { width:100%; max-height:420px; object-fit:contain; display:block; border-radius:16px; margin-bottom:18px; }
.latest-card h2 { line-height:1.35; margin:10px 0; overflow-wrap:anywhere; }
.latest-price { font-size:24px; font-weight:700; margin:8px 0; }
.latest-description { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.6; }
.latest-card .hidden-actions { margin-top:16px; }
.latest-card details { margin-top:12px; }
.card-toolbar { display:flex; align-items:center; gap:20px; margin-top:20px; padding-top:14px; border-top:1px solid var(--line); }
.card-toolbar a { text-decoration:none; padding:8px 0; }
.card-menu { margin-left:auto; flex-shrink:0; width:44px; height:44px; padding:0; border:1px solid var(--line); border-radius:12px; background:transparent; color:var(--text); font-size:26px; line-height:1; }
.ad-menu-items { display:flex; flex-direction:column; margin-top:16px; }
.ad-menu-items button { text-align:left; padding:14px 0; width:100%; border-bottom:1px solid var(--line); border-radius:0; }
.admin-menu { margin-top:20px; }
.admin-menu summary { cursor:pointer; color:var(--muted); padding:10px 0; }
.pagination { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:18px 0; scroll-margin-top:12px; }
.pagination[hidden] { display:none; }
.pagination button { padding:12px 16px; }
.pagination span { white-space:nowrap; }
.feedback-dialog .hint { overflow-wrap:anywhere; }
.latest-bottom { text-align:center; margin-top:20px; }
.feedback-dialog { width:min(520px, calc(100% - 32px)); max-height:85vh; overflow:auto; box-sizing:border-box; border:1px solid var(--line); border-radius:20px; padding:24px; background:var(--card); color:var(--text); }
.feedback-dialog::backdrop { background:#0008; }
.feedback-dialog textarea { display:block; width:100%; box-sizing:border-box; margin-top:10px; }
.feedback-dialog .hidden-actions { margin-top:20px; }

/* Listing hierarchy: content first, one primary action, contextual tools. */
.listing-controls { padding:0 4px 6px; }
.listing-tools { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.listing-tools>div { display:flex; gap:4px; }
.filter-link { display:flex; align-items:center; gap:8px; color:var(--accent); font-size:13px; font-weight:700; text-decoration:none; min-height:44px; }
svg { width:20px; height:20px; flex-shrink:0; }
.icon-button { display:grid; place-items:center; width:44px; height:44px; border:0; border-radius:12px; color:var(--muted); background:transparent; cursor:pointer; }
.icon-button:hover,.card-menu:hover { background:var(--soft); }
.listing-controls #status { color:var(--text); font-size:13px; font-weight:700; margin:12px 0 2px; }
.listing-period { margin:0; }
.listing-heading { display:flex; align-items:center; gap:8px; }
.latest-price { font-size:22px; flex:1; }
.card-menu { border:1px solid var(--line); background:var(--input); color:var(--text); width:44px; height:44px; border-radius:12px; cursor:pointer; }
.latest-card h2 { font-size:16px; font-weight:600; letter-spacing:0; }
.latest-card>.hint { font-size:12px; }
.card-toolbar { gap:10px; border:0; padding-top:0; }
.card-toolbar a { display:flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:10px 14px; border-radius:12px; font-size:12px; }
.card-toolbar .listing-primary { flex:1; background:var(--accent); color:var(--card); }
.card-toolbar .listing-map { background:var(--soft); color:var(--accent); }
.dark .listing-primary { color:var(--bg); }
.ad-menu-items .menu-row { display:flex; align-items:center; gap:14px; color:var(--text); background:none; border:0; padding:16px 4px; cursor:pointer; font:inherit; }
.menu-row>svg { color:var(--muted); width:22px; height:22px; }
.menu-copy { display:flex; flex-direction:column; gap:5px; }
.menu-copy strong { font-size:14px; font-weight:600; }
.menu-copy small { font-size:12px; color:var(--muted); line-height:1.5; }
.menu-row:hover { background:var(--soft); }
.admin-menu { border-top:1px solid var(--line); margin-top:8px; padding-top:12px; }
.admin-menu button { font-size:13px; }
.pagination { border-radius:14px; background:var(--card); border:1px solid var(--line); padding:4px; }
.pagination button { border:0; font-size:12px; }
.pagination span { font-size:12px; margin:0; }
@media(max-width:600px){.action-sheet { width:100%; max-width:100%; margin:auto 0 0; border-radius:24px 24px 0 0; padding:24px 20px calc(20px + env(safe-area-inset-bottom)); }}

.blacklist-link { border:0; background:none; padding:8px 0; cursor:pointer; font-family:inherit; }
.blacklist-dialog h3 { font-size:14px; margin:24px 0 12px; }
.blacklist-entry { padding:14px 0; border-bottom:1px solid var(--line); }
.blacklist-entry .hint { font-size:13px; color:var(--text); margin:0 0 10px; }
.blacklist-entry button { min-height:44px; }
@media(max-width:360px){.listing-tools { gap:8px; }.filter-link { font-size:12px; }}

.action-sheet { transition:transform .18s ease-out; overscroll-behavior:contain; }
.action-sheet.sheet-dragging { transition:none; user-select:none; }
.sheet-handle { display:none; }
.action-sheet .sheet-cancel { width:100%; min-height:50px; text-align:center; font-size:14px; background:var(--input); border-radius:14px; }
@media(max-width:600px){.sheet-handle { display:flex; align-items:center; justify-content:center; width:100%; height:36px; margin:-16px 0 12px; border:0; padding:0; background:transparent; touch-action:none; cursor:grab; }.sheet-handle span { width:36px; height:4px; background:var(--line); border-radius:4px; }.sheet-dragging .sheet-handle { cursor:grabbing; }}
@media(prefers-reduced-motion:reduce){.action-sheet { transition:none; }}

.action-sheet::backdrop { transition:background .24s ease; }
.action-sheet.sheet-closing::backdrop { background:transparent; }
.action-sheet.sheet-closing { pointer-events:none; }

.listing-heading { align-items:flex-start; }
.listing-pricing { flex:1; min-width:0; }
.listing-pricing .latest-price { margin:0; }

.listing-heading + h2 { margin-top:8px; }

.detail-card .photo-gallery { margin:-23px -23px 18px; }
.photo-stage { position:relative; background:var(--input); }
.photo-strip { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; overscroll-behavior-x:contain; }
.photo-strip::-webkit-scrollbar,.photo-thumbnails::-webkit-scrollbar { display:none; }
.photo-slide { display:grid; place-items:center; flex:0 0 100%; min-width:0; scroll-snap-align:start; scroll-snap-stop:always; aspect-ratio:4/3; }
.photo-slide img { display:block; width:100%; height:100%; max-height:65vh; object-fit:contain; }
.photo-count { position:absolute; right:12px; bottom:12px; background:#17211dcc; color:white; padding:6px 10px; border-radius:20px; font-size:12px; pointer-events:none; }
.photo-thumbnails { display:flex; gap:8px; overflow-x:auto; padding:12px; scrollbar-width:none; position:relative; }
.photo-thumb { flex:0 0 58px; width:58px; height:48px; border:2px solid transparent; border-radius:9px; padding:2px; background:var(--input); color:var(--text); cursor:pointer; opacity:.65; }
.photo-thumb img { width:100%; height:100%; object-fit:cover; border-radius:5px; display:block; }
.photo-thumb[aria-pressed="true"] { border-color:var(--accent); opacity:1; }
.photo-thumb:focus-visible,.photo-strip:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }
.photo-arrow { display:grid; place-items:center; padding:0; position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; border:1px solid #ffffff70; border-radius:50%; background:#17211dcc; color:white; font-size:28px; cursor:pointer; }
.photo-prev { left:12px; }.photo-next { right:12px; }
.photo-arrow:disabled { visibility:hidden; }
@media(max-width:360px){.detail-card .photo-gallery { margin:-18px -18px 16px; }}

.card-menu { display:grid; place-items:center; padding:0; appearance:none; -webkit-appearance:none; }
.card-menu svg { display:block; width:24px; height:24px; }

.photo-arrow { appearance:none; -webkit-appearance:none; display:flex; align-items:center; justify-content:center; line-height:1; }
.photo-arrow svg { display:block; width:22px; height:22px; margin:0; flex:none; }
.photo-slide { height:auto; min-height:0; }
.photo-slide img { aspect-ratio:4/3; height:auto; }
.photo-slide[role="button"] { cursor:zoom-in; }
.full-photo-viewer { position:fixed; inset:0; margin:0; width:100vw; height:100dvh; max-width:none; max-height:none; padding:0; border:0; background:#101614; color:#fff; overflow:hidden; }
.full-photo-viewer::backdrop { background:#101614; }
.viewer-toolbar { position:absolute; inset:0 0 auto; z-index:2; display:flex; justify-content:space-between; padding:calc(10px + env(safe-area-inset-top)) 12px 10px; background:linear-gradient(#0009,transparent); }
.viewer-control { min-height:44px; border:1px solid #ffffff60; border-radius:12px; padding:8px 14px; background:#17211dcc; color:white; font:600 13px Manrope,system-ui; cursor:pointer; }
.full-photo-viewer .photo-gallery { margin:0; }
.full-photo-viewer .photo-stage { background:transparent; }
.full-photo-viewer .photo-strip,.full-photo-viewer .photo-slide { height:100dvh; }
.full-photo-viewer .photo-slide { aspect-ratio:auto; overflow:auto; display:block; }
.full-photo-viewer .photo-slide img { width:100%; height:100%; max-height:none; aspect-ratio:auto; object-fit:contain; }
.full-photo-viewer .photo-thumbnails { display:none; }
.full-photo-viewer .photo-count { bottom:calc(18px + env(safe-area-inset-bottom)); }
.full-photo-viewer .photo-zoomed img { width:200%; height:200%; max-width:none; }

.web-search-form .blacklist-tabs { margin-top:0; }
.search-label { display:block; font-size:13px; font-weight:600; margin:16px 0 8px; }
.web-search-form input { width:100%; border:1px solid var(--line); border-radius:12px; padding:14px; background:var(--input); color:var(--text); font:400 16px Manrope,system-ui; }
.search-submit { width:100%; min-height:48px; border:0; border-radius:12px; background:var(--accent); color:var(--card); font:600 14px Manrope,system-ui; cursor:pointer; }
.dark .search-submit { color:var(--bg); }

.search-radius-label { display:flex; align-items:center; justify-content:space-between; font-size:13px; font-weight:600; margin:20px 0 8px; }.search-radius-label output { color:var(--accent); }.web-search-form input[type=range] { padding:0; height:32px; border:0; accent-color:var(--accent); cursor:pointer; }

.ad-block-status { padding:16px; border:1px solid var(--line); background:var(--input); border-radius:16px; margin-bottom:20px; }.ad-block-status h3 { margin:0 0 12px; }.ad-block-row + .ad-block-row { border-top:1px solid var(--line); margin-top:16px; padding-top:8px; }.ad-block-row p { font-size:14px; }
.landmark-choices{display:grid;gap:12px}
.landmark-choice-row{display:flex;align-items:center;gap:12px}
.landmark-choice{flex:1;min-width:0;text-align:left;display:grid;gap:4px;padding:14px;white-space:normal;font:inherit;color:var(--text);background:var(--input);border:1px solid var(--line);border-radius:13px;cursor:pointer}
.landmark-choice:hover{border-color:var(--accent);background:var(--soft)}
.landmark-choice:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.landmark-choice .hint{margin:0}
.landmark-choice-row>a{flex-shrink:0}

.search-premium-hint { margin:14px 0 0; line-height:1.6; }

.listing-distance { display:flex; align-items:center; gap:8px; width:fit-content; max-width:100%; box-sizing:border-box; margin:14px 0; padding:10px 12px; border:1px solid var(--accent); border-radius:12px; background:var(--input); color:var(--text); font-size:14px; font-weight:600; line-height:1.5; }
.listing-distance svg { width:20px; height:20px; flex-shrink:0; color:var(--accent); }

.search-premium-card { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:18px; padding:18px; border:1px solid #cdbb8b; border-radius:16px; background:linear-gradient(120deg,#163f35,#216452); color:#fff; text-decoration:none; }.search-premium-card > span { display:flex; flex-direction:column; gap:6px; }.search-premium-card small { font-size:9px; font-weight:800; letter-spacing:1px; color:#f4dba1; }.search-premium-card strong { font-size:18px; line-height:1.3; }.search-premium-card span span { font-size:12px; color:#deeee7; }.search-premium-card svg { width:24px; height:24px; flex-shrink:0; color:#f4dba1; }

.latest-current-toggle { margin:16px 0; padding:14px 16px; border:1px solid var(--line); border-radius:14px; background:var(--card); }.latest-current-toggle strong { font-size:14px; }

.listing-tools > .hint { margin:0; line-height:1.5; }
.listing-tools .icon-button { display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.listing-tools .icon-button svg { display:block; width:20px; height:20px; }
.latest-summary-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:12px 14px; margin:8px 0 0; border:1px solid var(--line); border-radius:14px; background:var(--card); }
.listing-controls .latest-summary-bar #status { margin:0; font-size:12px; line-height:1.5; font-weight:600; }
.latest-summary-bar .latest-current-toggle { margin:0; padding:0; border:0; background:none; gap:10px; margin-left:auto; }
.latest-summary-bar .latest-current-toggle strong { font-size:12px; line-height:1.5; }
.listing-controls:has(.latest-summary-bar) { padding-bottom:0; }
.listing-controls:has(.latest-summary-bar) + .pagination { margin:10px 0; }

.moderation-pending { display:flex; align-items:center; gap:12px; padding:14px 16px; margin-bottom:18px; border-radius:14px; background:#fff3d6; color:#73500e; }
.moderation-pending svg { width:24px; height:24px; flex-shrink:0; }
.moderation-pending strong { display:block; font-size:14px; }
.moderation-pending span { display:block; margin-top:3px; font-size:12px; line-height:1.5; }
.dark .moderation-pending { background:#3d3420; color:#f4d899; }

.detail-card > .photo-gallery:not(:first-child) { margin-top:0; }

.moderation-cover { display:block; margin-bottom:18px; } .moderation-cover img { display:block; width:100%; max-height:320px; object-fit:contain; border-radius:14px; } .moderation-decisions { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:24px; padding-top:20px; border-top:1px solid var(--line); } .moderation-decisions button { min-height:48px; cursor:pointer; }

.moderation-decisions .listing-primary, .feedback-dialog button.listing-primary { display:flex; align-items:center; justify-content:center; min-height:46px; padding:12px 18px; border:0; border-radius:12px; background:var(--accent); color:var(--card); font:600 14px Manrope,system-ui; cursor:pointer; }

.price-history { margin:22px 0; padding:16px 12px 12px; border:1px solid var(--line); border-radius:16px; background:var(--input); }
.price-history-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:0 4px; }
.price-history-heading h3 { margin:0; font-size:14px; }.price-history-heading span { font-size:13px; font-weight:700; white-space:nowrap; }
.price-rise { color:#bc5932; }.price-fall { color:var(--accent); }
svg.price-history-chart { display:block; width:100%; height:auto; margin-top:12px; overflow:visible; }
.price-grid { stroke:var(--line); stroke-dasharray:3 4; }.price-axis { fill:var(--muted); font:11px Manrope,system-ui; }.price-line { fill:none; stroke:var(--accent); stroke-width:2.5; stroke-linejoin:round; }
.price-point { fill:var(--card); stroke:var(--accent); stroke-width:2.5; cursor:pointer; }.price-point.selected,.price-point:focus { fill:var(--accent); outline:none; stroke-width:4; }
.price-selected { margin:0 4px; font-size:14px; font-weight:700; }.price-history-note { margin:6px 4px 0; font-size:10px; line-height:1.5; color:var(--muted); }

/* Reserve the measured navigation height once, with a small content gap. */
body:has(#list) { padding-bottom:0; }
body.has-bottom-nav main:has(#list) { padding-bottom:calc(var(--bottom-nav-height, 74px) + 12px); }
#list > .latest-card:last-child { margin-bottom:0; }
main:has(#list) > .latest-bottom { margin-bottom:0; }

.owner-detail-actions { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 16px; } .owner-detail-actions>* { flex:1 1 calc(50% - 8px); min-height:44px; text-align:center; text-decoration:none; display:flex; align-items:center; justify-content:center; } .mine-delete { color:#bc4234; } .mine-dialog-actions { display:flex; gap:12px; margin-top:18px; } .mine-dialog-actions>* { flex:1; text-align:center; text-decoration:none; } .mine-dialog-actions .submit-primary,.mine-dialog-actions .delete-submission-confirm { padding:12px; border:0; border-radius:12px; background:var(--accent); color:var(--card); font:600 13px Manrope,system-ui; cursor:pointer; } .mine-dialog-actions .delete-submission-confirm { background:#b43b30;color:white; }

.latest-map-link{white-space:nowrap;text-decoration:none;padding:9px 12px;font-size:12px}.listing-tools .latest-map-link{flex-shrink:0}
.latest-feed header .brand{gap:10px;align-items:center}
.latest-feed header .brand>div{flex:1;min-width:0}
.latest-feed header h1{font-size:clamp(19px,5vw,25px)}
.latest-feed header #refresh{flex-shrink:0;background:var(--card);border:1px solid var(--line);color:var(--accent)}
.latest-feed #refresh svg{width:20px;height:20px}

.latest-feed .listing-tools{display:block}
.latest-feed .listing-tools>.hint{display:block;margin:0 0 16px}
.latest-feed .listing-tools>.latest-view-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.latest-view-button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 10px;border:1px solid var(--line);border-radius:14px;background:var(--soft);color:var(--accent);font:700 13px Manrope,system-ui;text-decoration:none;white-space:nowrap}
.latest-view-button svg{width:19px;height:19px;flex-shrink:0}
.latest-view-button:hover{border-color:var(--accent)}
.latest-view-button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.latest-feed .latest-summary-bar{margin:0 0 6px}


@media(max-width:360px){.latest-view-button{font-size:12px;gap:6px}.latest-feed header .logo{width:36px;height:36px}}

/* Separate the filter panel from cards when a single page hides pagination. */
.listing-controls:has(.latest-summary-bar) + .pagination[hidden] + #list { padding-top:14px; }

.listing-pricing{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.listing-pricing .latest-price{flex:1 1 auto}.listing-pricing .unit-price{flex:0 0 auto;margin:0;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:var(--input);color:var(--muted);font-size:12px;font-weight:600;white-space:nowrap}.card-toolbar .card-menu{width:48px;height:46px;margin-left:0;border-color:var(--line);background:var(--soft);color:var(--accent)}.card-toolbar .card-menu:hover{border-color:var(--accent)}.card-toolbar .card-menu:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.latest-feed .latest-summary-bar{flex-wrap:nowrap;gap:8px}.latest-result-count{font-size:12px;font-weight:600;white-space:nowrap}.latest-feed .latest-current-toggle{flex-shrink:0}.latest-feed .listing-controls>#status{font-size:12px;font-weight:400;color:var(--muted);margin:10px 0}.latest-feed .listing-controls>#status:empty{display:none}@media(max-width:360px){.latest-feed .latest-summary-bar{padding:12px 10px}.latest-feed .latest-current-toggle{gap:6px}.latest-feed .latest-current-toggle strong{font-size:11px}}

.latest-feed .latest-summary-bar #status{flex:1;min-width:0;margin:0;font-size:12px;line-height:1.5}.latest-feed .latest-summary-bar .latest-current-toggle{margin-left:auto}
