/* Keep all map sizing inside its own page, including the 600px app frame. */
.kim-page { --kim-line:#e5e3df; --kim-accent:#b93624; --kim-muted:#68716e; width:100%; max-width:1200px; min-width:0; margin:24px auto; padding:20px; box-sizing:border-box; color:inherit; }
.kim-page *, .kim-page *::before, .kim-page *::after { box-sizing:border-box; }
.kim-page [hidden] { display:none!important; }
.kim-heading { margin-bottom:20px; }
.kim-eyebrow { display:block; color:var(--kim-accent); font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.kim-heading h1 { margin:6px 0 8px; font-size:clamp(1.4rem,3vw,2rem); font-weight:700; line-height:1.2; font-family:inherit; overflow-wrap:anywhere; }
.kim-heading p { max-width:620px; margin:0; color:var(--kim-muted); font-size:13px; line-height:1.65; }
.kim-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)) minmax(100px,.65fr) auto; gap:12px; align-items:end; margin:0 0 18px; padding:18px; border:1px solid var(--kim-line); border-radius:18px; background:#fff; color:#26332e; }
.kim-form > *, .kim-grid > *, .kim-browser > * { min-width:0; }
.kim-form label { display:block; margin-bottom:7px; font-size:11px; font-weight:750; }
.kim-form input[data-kf-date-display], .kim-form #map-guests, .kim-zone select { display:block; width:100%; max-width:100%; min-width:0; height:46px; padding:10px 12px; border:1px solid #d4d9d5; border-radius:10px; background:#fafbf9; color:#25342f; font:inherit; font-size:13px; }
.kim-form input[data-kf-date-display] { padding-right:42px; }
.kim-form .kf-date-native { min-width:0; }
.kim-button { display:inline-flex; justify-content:center; align-items:center; min-height:46px; padding:12px 18px; border:0; border-radius:10px; background:var(--kim-accent); color:#fff!important; font:inherit; font-size:13px; font-weight:750; text-align:center; text-decoration:none; cursor:pointer; }
.kim-button:hover { background:#982b1c; }
.kim-date-summary { grid-column:1/-1; margin:0; padding-top:10px; border-top:1px solid #eeefeb; color:var(--kim-muted); font-size:11px; line-height:1.6; }
.kim-filters { display:flex; flex-wrap:wrap; gap:10px 16px; align-items:center; margin:0 0 18px; }
.kim-zone { display:flex; flex:1 1 170px; align-items:center; gap:10px; font-size:12px; font-weight:750; }
.kim-zone select { width:auto; flex:1; min-width:0; max-width:230px; height:42px; background:#fff; }
.kim-filter-options { display:flex; flex-wrap:wrap; gap:8px; }
.kim-filter-options label { display:inline-flex; align-items:center; gap:7px; min-height:38px; margin:0; padding:7px 10px; border:1px solid var(--kim-line); border-radius:999px; background:#fff; color:#3d4944; font-size:11px; cursor:pointer; }
.kim-filter-options input { width:16px; height:16px; margin:0; accent-color:var(--kim-accent); }
.kim-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; align-items:start; }
.kim-browser { width:100%; min-width:0; overflow:hidden; padding:16px; border:1px solid var(--kim-line); border-radius:18px; background:#fff; color:#26332e; }
.kim-browser-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:5px 12px; margin-bottom:14px; }
.kim-browser-heading h2 { margin:0; font-family:inherit; font-size:16px; font-weight:800; }
.kim-browser-heading > span { color:var(--kim-muted); font-size:11px; white-space:nowrap; }
.kim-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; margin-bottom:12px; padding:4px; border-radius:12px; background:#f1f2ef; }
.kim-tabs button { min-width:0; min-height:40px; padding:8px; border:0; border-radius:9px; background:transparent; color:#69716e; font:inherit; font-size:12px; font-weight:800; cursor:pointer; }
.kim-tabs button[aria-selected=true] { background:#fff; color:var(--kim-accent); box-shadow:0 2px 7px #26332e0a; }
.kim-map-toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; margin:0 0 10px; }
.kim-map-toolbar > span { color:var(--kim-muted); font-size:10px; }
.kim-zoom { display:flex; gap:5px; }
.kim-zoom button { display:grid; place-items:center; min-width:40px; min-height:40px; padding:7px 10px; border:1px solid var(--kim-line); border-radius:9px; background:#fff; color:#32463e; font:inherit; font-size:19px; line-height:1; cursor:pointer; }
.kim-zoom [data-zoom=fit] { font-size:10px; font-weight:750; }
.kim-viewport { display:block; width:100%; max-width:100%; min-width:0; overflow:auto; border:1px solid #e5d6bb; border-radius:12px; background:#f7e2b7; overscroll-behavior-x:contain; }
.kim-canvas { position:relative; width:100%; max-width:none; line-height:0; }
.kim-canvas > img { display:block; width:100%; max-width:none; height:auto; }
.kim-available { --lot-color:#287846; --lot-tint:#eff8f1; }
.kim-held { --lot-color:#97610e; --lot-tint:#fff7e8; }
.kim-unavailable { --lot-color:#a84244; --lot-tint:#fff2f2; }
.kim-closed { --lot-color:#68706e; --lot-tint:#f1f3f2; }
.kim-dates { --lot-color:#57768c; --lot-tint:#f3f7fa; }
.kim-hotspot { position:absolute!important; display:block!important; min-width:0!important; min-height:0!important; padding:0!important; border:1px solid var(--lot-color)!important; border-radius:3px!important; background:transparent!important; box-shadow:none!important; cursor:pointer; }
.kim-hotspot span { position:absolute; right:0; bottom:0; min-width:11px; border-radius:2px; background:#fff; color:var(--lot-color); font:800 9px/11px system-ui; }
.kim-hotspot[aria-pressed=true] { z-index:2; outline:3px solid #126b8b; outline-offset:1px; background:#fff5!important; }
.kim-hotspot.is-filtered { opacity:.15; pointer-events:none; }
.kim-hint { margin:10px 0 0; color:var(--kim-muted); font-size:11px; line-height:1.6; }
.kim-list-heading { margin:0 0 10px; font-size:13px; font-family:inherit; }
.kim-lots { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; max-height:390px; overflow-y:auto; overflow-x:hidden; padding:2px; scrollbar-width:thin; overscroll-behavior-y:contain; }
.kim-lot { min-width:0; min-height:68px; padding:9px 4px; border:1px solid #dfe5e1; border-radius:11px; background:var(--lot-tint); color:#2d3e36; font:inherit; text-align:center; cursor:pointer; }
.kim-lot strong { display:block; font-size:13px; font-weight:850; }
.kim-lot small { display:block; margin-top:4px; color:var(--lot-color); font-size:9px; line-height:1.3; overflow-wrap:anywhere; }
.kim-lot[aria-pressed=true] { border-color:#126b8b; outline:2px solid #126b8b; outline-offset:-2px; background:#e9f5f8; }
.kim-guide { margin-top:14px; padding-top:12px; border-top:1px solid var(--kim-line); color:var(--kim-muted); font-size:11px; }
.kim-guide summary { min-height:32px; cursor:pointer; font-weight:700; }
.kim-guide p { margin:10px 0 0; line-height:1.6; }
.kim-legend { display:flex; flex-wrap:wrap; gap:9px 14px; }
.kim-legend > span { display:inline-flex; align-items:center; gap:5px; }
.kim-status { display:inline-grid; place-items:center; min-width:20px; min-height:20px; border:1px solid var(--lot-color); border-radius:5px; color:var(--lot-color); }
.kim-panel { width:100%; min-width:0; padding:18px; border:1px solid var(--kim-line); border-radius:18px; background:var(--card-bg,#fff); color:var(--text-color,#26332e); scroll-margin-top:105px; }
.kim-pick { margin:0; text-align:center; line-height:1.6; }
.kim-pick strong { display:block; font-size:13px; }
.kim-pick > span { display:block; margin-top:5px; color:var(--kim-muted); font-size:11px; }
.kim-selection-heading { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.kim-selection-heading h2 { margin:3px 0 0; font-family:inherit; font-size:28px; line-height:1.2; font-weight:850; }
.kim-selection-state { max-width:65%; padding:6px 9px; border-radius:8px; background:#f3f6f2; color:#4d6658; font-size:10px; line-height:1.5; }
.kim-product { margin:9px 0 12px; font-size:13px; font-weight:700; overflow-wrap:anywhere; }
.kim-panel .kim-detail-image { display:block; width:100%; max-height:150px; margin:0 0 12px; border-radius:12px; object-fit:cover; }
.kim-features, .kim-description { margin:10px 0; color:var(--kim-muted); font-size:11px; line-height:1.7; overflow-wrap:anywhere; }
.kim-capacity { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:14px 0; }
.kim-capacity > div { min-width:0; padding:10px; border-radius:10px; background:#f6f7f4; }
.kim-capacity dt { color:#68716e; font-size:10px; line-height:1.5; font-weight:400; }
.kim-capacity dd { margin:5px 0 0; color:#26332e; font-size:18px; font-weight:800; }
.kim-price { margin:12px 0 4px; color:var(--kim-accent); font-size:21px; font-weight:850; }
.kim-estimate { margin:0 0 12px; color:var(--kim-muted); font-size:12px; }
.kim-price-note { margin:10px 0 0; color:var(--kim-muted); font-size:10px; line-height:1.6; }
.kim-panel .kim-button { width:100%; }
.kim-capacity-warning, .kim-empty { padding:10px; border-radius:8px; background:#fff1ea; color:#8e3b23; font-size:12px; }
.kim-notice { padding:14px; border-left:3px solid #8c57ff; background:#8c57ff12; font-size:12px; }
.kim-catalogue-link { display:inline-flex; align-items:center; min-height:44px; margin-top:14px; color:#66716b; font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.kim-page button::before, .kim-page button::after { content:none!important; }
.kim-page button:focus-visible, .kim-page a:focus-visible, .kim-viewport:focus-visible, .kim-panel:focus-visible, .kim-guide summary:focus-visible { outline:3px solid #126b8b; outline-offset:3px; }
.app-lot-map-body .app-frame, .app-lot-map-body .app-main { width:100%; max-width:600px; min-width:0; }
.app-lot-map-body .app-main { padding:18px 14px calc(120px + env(safe-area-inset-bottom)); }
.app-lot-map-body .kim-page { max-width:100%; margin:0; padding:0; }
.app-lot-map-body .kim-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
.app-lot-map-body .kim-grid { grid-template-columns:minmax(0,1fr); }
.app-lot-map-body .app-bottom-nav { left:50%; right:auto; width:min(100%,600px); max-width:100vw; margin:0; transform:translateX(-50%); }
@media (min-width:1100px) {
    .kingfisher-home .kim-grid { grid-template-columns:minmax(0,1fr) 300px; }
    .kingfisher-home .kim-panel { position:sticky; top:110px; }
    .kingfisher-home .kim-lots { grid-template-columns:repeat(6,minmax(0,1fr)); }
}
@media (max-width:900px) {
    .kim-page { padding:14px; margin:12px auto; }
    .kim-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:480px) {
    .kim-heading h1 { font-size:23px; }
    .kim-form { padding:14px; gap:12px 10px; }
    .kim-form .kim-button { padding:9px; font-size:12px; }
    .kim-zone { flex-basis:100%; }
    .kim-zone select { max-width:none; }
    .kim-filter-options { width:100%; }
    .kim-browser { padding:12px; }
    .kim-browser-heading h2 { font-size:15px; }
    .kim-map-toolbar > span { width:100%; }
    .kim-zoom { width:100%; justify-content:space-between; }
    .kim-zoom [data-zoom=fit] { flex:1; }
}
@media (max-width:360px) { .kim-lots { grid-template-columns:repeat(3,minmax(0,1fr)); } .kim-filter-options label { font-size:10px; padding:7px 8px; } }
@media (prefers-reduced-motion:reduce) { .kim-page * { scroll-behavior:auto!important; } }
