/* Map V2. Scoped so the existing portfolio and owner console keep their layout. */
[data-land-version="2"] [hidden] { display:none!important; }
[data-land-version="2"] .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
[data-land-version="2"] :is(button,a,input,select,summary):focus-visible { outline:2px solid #6bf5c2; outline-offset:4px; }
[data-land-version="2"] .land-v2-section { width:min(1720px,100%); margin:auto; padding:0 clamp(16px,3.5vw,64px) 80px; scroll-margin-top:110px; }
[data-land-version="2"] .land-section-top { padding:0; }
.land-v2-shell { display:grid; grid-template-columns:minmax(0,1fr) 320px; align-items:start; gap:22px; }
.land-v2-surface { min-width:0; border:1px solid #45405f; background:#10101b; box-shadow:8px 8px 0 #24203655; }
.land-tool { border:1px solid #514a70; background:#171624; color:#e9e6fa; min-width:44px;min-height:44px; padding:9px 13px; font:500 12px 'DM Mono',monospace; cursor:pointer; }
.land-tool:hover:not(:disabled) { background:#25213c; border-color:#ada1f9; }
.land-tool[aria-pressed="true"] { border-color:#6bf5c2; color:#6bf5c2; background:#18362c; }
.land-tool:disabled { opacity:.4; cursor:default; }
.land-v2-toolbar,.land-v2-navigation { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; border-bottom:1px solid #343046; }
.land-v2-status { display:flex; align-items:center; gap:9px; font:10px 'DM Mono',monospace; color:#c6bfee; letter-spacing:.05em; }
.land-v2-status .pulse { width:6px;height:6px;flex:none;background:#6bf5c2;border-radius:50%; }
.land-v2-status button { background:none; color:#6bf5c2; border:0; min-height:44px; text-decoration:underline; }
.land-v2-search { display:flex; gap:8px; margin:14px 18px 0; position:relative; }
.land-v2-search input { flex:1; min-width:0; padding:12px; background:#090912; border:1px solid #514a70; color:#f4f2ff; font:14px Inter,sans-serif; }
.land-v2-search input::placeholder { color:#9992ad; }
.land-search-results:not(:empty) { position:absolute; top:100%; left:0; right:0; z-index:5; max-height:240px; overflow:auto; background:#171422; border:1px solid #8577bd; padding:8px; box-shadow:0 8px 25px #0009; }
.land-search-results .land-tool { display:block; width:100%; margin:4px 0; text-align:left; overflow-wrap:anywhere; }
.land-search-results p { font-size:13px; color:#d3cde7; }
.land-v2-navigation { flex-wrap:wrap; justify-content:flex-start; padding-top:12px; }
.land-zoom-controls { display:flex; align-items:center; margin-right:auto; }
.land-zoom-controls output { width:140px; text-align:center; color:#b8b0d5; font:11px 'DM Mono',monospace; }
.land-zoom-controls button { width:44px; font-size:22px; line-height:1; }
[data-land-version="2"] .land-v2-viewport { height:clamp(440px,59vh,700px); min-height:0; touch-action:pan-y pinch-zoom; background:#090a12; }
[data-land-version="2"] #public-grid { display:block; width:100%;height:100%;min-height:0;cursor:grab;touch-action:pan-y pinch-zoom; }
[data-land-version="2"] .is-dragging #public-grid { cursor:grabbing; }
[data-land-version="2"] .minimap { top:12px;right:12px;padding:4px; background:#0a0913; }
[data-land-version="2"] .minimap canvas { display:block;width:88px;height:88px; }
.land-mobile-cover { display:none; }
.land-map-bottom { display:flex; gap:16px; justify-content:space-between; align-items:center; padding:10px 18px; border-top:1px solid #343046; }
.land-map-bottom p { color:#c2bbd6; font-size:12px; line-height:1.5; margin:0; max-width:410px; }
.land-pan-controls { display:flex; gap:4px; flex-shrink:0; }
.land-pan-controls .land-tool { width:38px; min-height:38px;padding:4px;font-size:18px; }
.land-v2-legend { display:flex; gap:18px; justify-content:center; flex-wrap:wrap; padding:14px 12px; border-top:1px solid #343046; color:#b9b2cf; font:10px 'DM Mono',monospace; }
.land-v2-legend span { display:flex; align-items:center; gap:6px; }
.land-v2-legend i { width:8px;height:8px;border:1px solid #847b9c; }
.legend-owned { background:#8271ca; }.legend-pending { background:repeating-linear-gradient(135deg,#aaa1bd 0 2px,#514966 2px 4px); }.legend-selected { background:#6bf5c2; }
.land-v2-purchase { background:#11101c; border:1px solid #51496e; padding:24px; position:sticky; top:108px; }
.land-v2-purchase h3 { font-size:28px; letter-spacing:-.05em; line-height:1.1;margin:12px 0; }
.land-v2-purchase > p:not(.panel-kicker):not(.panel-note) { font-size:14px;line-height:1.6;color:#bfb8d2;margin:0 0 22px; }
.land-choice-options { border-top:1px solid #383047;padding-top:14px; }
.land-choice-options summary { color:#eee9ff;font-size:14px;cursor:pointer;min-height:32px; }
.land-choice-options > label { display:block;color:#bfb8d2;font-size:12px;margin:14px 0 7px; }
.land-choice-options select,.land-dimensions input { width:100%;background:#090912;color:#f2eeff;border:1px solid #554b73;min-height:44px;padding:10px;font:16px Inter,sans-serif; }
.land-size-presets { display:flex; gap:8px;margin:14px 0; }.land-size-presets button { flex:1;padding:7px; }
.land-dimensions { display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:10px;margin:14px 0; }
.land-dimensions label { font-size:12px;color:#c3bbd8;display:grid;gap:7px; }
.land-dimensions span { align-self:center;color:#8c839d; }
.land-find-free { width:100%; font-size:10px;padding:10px;min-height:48px; }
.land-coordinate-options { margin:14px 0 0; }.land-coordinate-options summary { color:#bfb8d2;font-size:12px; }
.land-selection-data { margin:20px 0;border-top:1px solid #3c344c; }
.land-selection-data > div { display:flex;justify-content:space-between;gap:15px;padding:10px 0;border-bottom:1px solid #312b40; }
.land-selection-data dt { color:#b8afcb;font-size:12px; }.land-selection-data dd { margin:0;text-align:right;font:12px 'DM Mono',monospace;color:#ede8fa; }
.land-selection-data .land-total dd { color:#6bf5c2;font:700 24px Inter,sans-serif; }
.land-selection-data .land-total { align-items:center; }
.land-next-row { display:flex;gap:8px;margin-top:20px; }.land-next-row .primary-action { flex:1; }
.land-v2-notice { border-left:2px solid #6bf5c2; background:#131724;color:#eee8fa;padding:16px 20px;margin:24px 0;font-size:14px;line-height:1.6; }
.land-v2-notice[data-tone="error"],.land-v2-notice[data-tone="warning"] { border-color:#ff8898; }
.land-parcel-detail { border:1px solid #62547e;background:#101019;margin:28px 0 0;padding:26px;scroll-margin-top:110px; }
.land-detail-header { display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px; }
.land-detail-header .eyebrow { font-size:10px; margin:0; }
.land-detail-grid { display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(20px,4vw,60px);align-items:center; }
.land-detail-frame { position:relative;background:#050608;min-width:0;min-height:0;width:100%;aspect-ratio:1;justify-self:center;overflow:hidden; }
.land-detail-frame img { position:absolute;max-width:none;max-height:none;filter:none;opacity:1; }
.land-detail-frame canvas { width:100%;height:100%;position:absolute;inset:0;pointer-events:none; }
.land-detail-frame p { position:absolute;inset:0;display:grid;place-items:center;margin:0;color:#aaa1be;font-size:14px;text-align:center;padding:25px; }
.land-detail-copy { min-width:0;overflow-wrap:anywhere; }
.land-detail-copy h3 { font-size:clamp(27px,3vw,46px);line-height:1.1;letter-spacing:-.05em;margin:12px 0 20px; }
.land-detail-copy h3:focus { outline:none; }
.land-detail-copy #detail-description { color:#ccc5dc;line-height:1.8;font-size:16px;white-space:pre-wrap; }
.land-detail-facts { display:flex;gap:24px;margin:26px 0; }
.land-detail-facts dt { color:#a59db8;font:11px 'DM Mono',monospace;margin-bottom:7px; }.land-detail-facts dd { margin:0;font-size:14px; }
.land-detail-actions { display:flex;flex-wrap:wrap;gap:10px; }.land-detail-copy small { display:block;margin-top:10px;color:#a59db8; }
#detail-founder { color:#e1cc79;font:12px 'DM Mono',monospace; }
.land-dialog-open { overflow:hidden; }
:is(.land-map-dialog,.land-detail-dialog,.land-review-dialog) { padding:0;border:1px solid #655680;color:#f1ecff;background:#101019;max-height:calc(100dvh - 32px); }
:is(.land-map-dialog,.land-detail-dialog,.land-review-dialog)::backdrop { background:#03040be8;backdrop-filter:blur(8px); }
.land-dialog-header { display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 24px;background:#12101e;border-bottom:1px solid #4a3f60; }
.land-dialog-header h2 { font-size:24px;letter-spacing:-.045em;margin:0; }.land-dialog-header p { margin:0 0 6px; }.land-dialog-header button { flex-shrink:0; }
.land-map-dialog { width:calc(100vw - 32px);max-width:1800px;height:calc(100dvh - 32px);overflow:hidden; }
.land-map-dialog[open] { display:flex;flex-direction:column; }
#map-dialog-body { flex:1;min-height:0;padding:18px; }
.land-map-dialog .land-v2-shell { height:100%;grid-template-columns:minmax(0,1fr) 310px; }
.land-map-dialog .land-v2-surface { height:100%;display:flex;flex-direction:column;min-height:0; }
.land-map-dialog .land-v2-viewport { flex:1;height:auto;min-height:80px;touch-action:none; }
[data-land-version="2"] .land-map-dialog #public-grid { touch-action:none; }
.land-map-dialog .land-v2-purchase { position:static;max-height:100%;overflow:auto; }
.land-map-dialog #expand-map { display:none; }.land-map-dialog .land-mobile-cover { display:none; }
#map-dialog-notice { padding:12px 24px;border-top:1px solid #4a3f60;color:#d8cfeb;font-size:13px;flex:none;line-height:1.4; }
.land-detail-dialog { width:min(1100px,calc(100% - 32px));max-width:none;overflow:auto; }
.land-detail-dialog .land-parcel-detail { margin:0;border:0; }.land-detail-dialog .land-detail-header { position:sticky;top:-26px;background:#101019;padding:12px 0;z-index:1; }
.land-review-dialog { width:min(520px,calc(100% - 28px));padding:24px;overflow:auto; }
.land-review-dialog .land-dialog-header { padding:0 0 18px;border:0; }.land-review-dialog > p { font-size:14px;color:#c4bad7;line-height:1.6; }
.land-review-dialog .primary-action,.land-review-dialog #edit-selection { width:100%;margin-top:10px; }.land-review-dialog #review-notice { color:#8de7c0; }
@media(max-width:1100px) {
  .land-v2-shell { grid-template-columns:minmax(0,1fr) 280px;gap:14px; }.land-v2-purchase { padding:20px; }
  .land-map-bottom { align-items:flex-start;flex-direction:column;gap:8px; }
  .land-v2-navigation { gap:8px; }.land-v2-navigation .land-tool { font-size:11px; }.land-zoom-controls output { width:115px; }
}
@media(max-width:800px) {
  [data-land-version="2"] .land-v2-section { padding:0 16px 50px; }.land-v2-shell { grid-template-columns:1fr;gap:16px; }
  .land-v2-purchase { position:static; }.land-v2-toolbar { padding:10px 12px; }.land-v2-status { font-size:9px; }.land-v2-toolbar #expand-map { display:none; }
  .land-v2-search { margin:12px; }.land-v2-navigation { padding:0 12px 12px; }.land-zoom-controls { flex:1; }
  [data-land-version="2"] .land-v2-viewport { height:320px;min-height:0;touch-action:pan-y pinch-zoom; }
  [data-land-version="2"] #public-grid { pointer-events:none;touch-action:pan-y pinch-zoom; }
  .land-mobile-cover { display:flex;position:absolute;inset:0;flex-direction:column;align-items:center;justify-content:center;gap:18px;touch-action:pan-y pinch-zoom;background:#090a1266; }
  .land-mobile-cover span { font-size:22px;font-weight:700;letter-spacing:-.04em; }.land-mobile-cover small { font-size:12px;color:#d4cee5; }
  [data-land-version="2"] .minimap { display:none; }
  .land-map-bottom { padding:12px; }.land-map-bottom .land-pan-controls { display:none; }
  .land-v2-legend { font-size:9px;gap:12px; }
  .land-detail-grid { grid-template-columns:1fr;gap:24px; }.land-parcel-detail { padding:18px; }.land-detail-frame { min-height:0; }
  .land-detail-header { align-items:center; }.land-detail-header .eyebrow { font-size:9px;letter-spacing:.08em; }
  .land-detail-actions > a { flex:1;font-size:10px;padding:10px; }
  .land-detail-dialog { width:calc(100% - 16px);max-height:calc(100dvh - 16px); }.land-detail-dialog .land-detail-header { top:-18px; }
  .land-map-dialog { margin:0;width:100%;max-width:none;height:100dvh;max-height:none;border:0; }
  .land-map-dialog .land-dialog-header { flex-shrink:0;padding:10px 12px; }.land-map-dialog .land-dialog-header .panel-kicker { display:none; }.land-map-dialog .land-dialog-header h2 { font-size:20px; }
  #map-dialog-body { padding:0;display:flex; }
  .land-map-dialog .land-v2-shell { display:flex;flex-direction:column;align-items:stretch;gap:0;width:100%; }
  .land-map-dialog .land-v2-surface { flex:1;border:0;box-shadow:none; }
  .land-map-dialog .land-v2-toolbar { padding:0 12px;min-height:26px;flex:none; }
  .land-map-dialog .land-v2-search { margin:6px 12px;flex:none; }.land-map-dialog .land-v2-search input { padding:8px;font-size:16px; }
  .land-map-dialog .land-v2-navigation { padding:0 12px 8px;flex:none;gap:6px; }
  .land-map-dialog .land-zoom-controls output { width:auto;min-width:100px;flex:1;font-size:10px; }
  .land-map-dialog #reset-view { display:none; }.land-map-dialog #detail-zoom { font-size:10px;padding:7px; }
  [data-land-version="2"] .land-map-dialog #public-grid { pointer-events:auto;touch-action:none; }
  [data-land-version="2"] .land-map-dialog .land-v2-viewport { flex:1;height:auto;min-height:60px;touch-action:none; }
  .land-map-dialog .land-map-bottom { padding:6px 12px;flex-direction:row;align-items:center;gap:8px;flex:none; }.land-map-dialog .land-map-bottom p { flex:1;min-width:0;font-size:10px; }.land-map-dialog .land-pan-controls { display:flex; }.land-map-dialog .land-pan-controls .land-tool { width:44px;min-height:44px;font-size:16px; }
  .land-map-dialog .land-v2-legend { padding:6px;font-size:9px;flex:none; }
  .land-map-dialog .land-v2-purchase { padding:10px 14px max(10px,env(safe-area-inset-bottom));border:0;border-top:1px solid #655680;max-height:48dvh;overflow:auto;flex:none; }
  .land-map-dialog .land-v2-purchase :is(.panel-kicker,h3,#selection-description,.panel-note) { display:none; }
  .land-map-dialog .land-choice-options { border:0;padding:0; }.land-map-dialog .land-choice-options > summary { min-height:30px; }
  .land-map-dialog .land-choice-options[open] { max-height:28dvh;overflow:auto;overscroll-behavior:contain;padding-bottom:10px; }
  .land-map-dialog .land-selection-data { display:grid;grid-template-columns:1fr 1fr;column-gap:14px;margin:6px 0; }.land-map-dialog .land-selection-data > div { padding:5px 0; }.land-map-dialog .land-selection-data dd { font-size:10px; }.land-map-dialog .land-selection-data dt { font-size:10px; }.land-map-dialog .land-selection-data .land-total dd { font-size:18px; }
  .land-map-dialog .land-next-row { margin-top:4px; }.land-map-dialog .land-next-row .primary-action { min-height:44px; }
  #map-dialog-notice { padding:6px 12px;font-size:11px;max-height:66px;overflow:auto; }
}
@media(max-height:560px) and (max-width:800px) {
  .land-map-dialog .land-dialog-header h2,.land-map-dialog .land-v2-toolbar,.land-map-dialog .land-v2-legend,.land-map-dialog .land-map-bottom p { display:none; }
  .land-map-dialog .land-dialog-header { padding:4px 12px;justify-content:flex-end; }
  .land-map-dialog .land-v2-search { margin:3px 12px; }.land-map-dialog .land-v2-purchase { max-height:42dvh; }
}
/* In landscape, give the map the full remaining height instead of stacking
   the editor under a tiny strip of canvas. The close button never scrolls. */
@media(max-height:560px) and (min-width:520px) and (max-width:800px) {
  #map-dialog-body { display:block; }
  .land-map-dialog .land-v2-shell { display:grid;grid-template-columns:minmax(0,1fr) 215px;height:100%; }
  .land-map-dialog .land-v2-purchase { height:100%;max-height:100%;border-top:0;border-left:1px solid #655680;padding:10px; }
  .land-map-dialog .land-choice-options[open] { max-height:none;overflow:visible; }
  .land-map-dialog .land-selection-data { grid-template-columns:1fr; }
  .land-map-dialog .land-v2-navigation { gap:4px;padding:0 8px 6px; }
  .land-map-dialog .land-zoom-controls { flex:1 1 100%; }
  .land-map-dialog #detail-zoom { position:absolute;left:12px;top:4px;z-index:3;background:#171624ed; }
  .land-map-dialog .land-map-bottom { justify-content:center;padding:4px; }
  .land-map-dialog .land-v2-search { margin:4px 8px; }
  .land-map-dialog .land-v2-search input { width:0; }
}
@media(prefers-reduced-motion:reduce) { [data-land-version="2"] * { scroll-behavior:auto!important; } }
