:root{--sand:#f4ead8;--paper:#fffaf1;--ink:#332318;--muted:#7c6b5a;--line:#e2d1b8;--teal:#127365;--green:#2e7d32;--amber:#c77916;--red:#bb2d25;--shadow:0 18px 50px rgba(52,35,20,.12);--radius:22px}*{box-sizing:border-box}body{margin:0;background:linear-gradient(135deg,#f7efe1,#efe0c4);color:var(--ink);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,textarea,select{font:inherit}.app-shell{min-height:100vh;padding:18px}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:16px}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:11px;color:var(--teal);font-weight:800;margin:0 0 7px}.topbar h1{font-family:Georgia,serif;font-weight:500;font-size:clamp(28px,4vw,48px);line-height:.95;margin:0}.top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.update-pill,.tab,.mini,.ghost,.primary{border:1px solid var(--line);border-radius:999px;padding:10px 14px;background:rgba(255,250,241,.78);color:var(--ink)}.primary{background:var(--teal);color:white;border-color:var(--teal);font-weight:800}.primary:disabled{background:#b9aa96;border-color:#b9aa96;cursor:not-allowed}.ghost,.mini,.tab{cursor:pointer}.small{padding:7px 10px;font-size:13px}.tab.active{background:var(--ink);color:white}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 410px;gap:16px}.map-panel,.card{background:rgba(255,250,241,.78);border:1px solid rgba(98,69,39,.14);border-radius:var(--radius);box-shadow:var(--shadow)}.map-panel{overflow:hidden}.map-toolbar{display:flex;justify-content:space-between;gap:10px;padding:12px;border-bottom:1px solid var(--line);align-items:center}.status-tabs,.zoom-actions{display:flex;gap:8px;flex-wrap:wrap}.map-viewport{height:calc(100vh - 156px);min-height:560px;overflow:auto;background:#fff6e8}.map-canvas{position:relative;width:1280px;height:904px;transform-origin:0 0;transition:transform .18s ease}.map-canvas img{position:absolute;inset:0;width:1280px;height:904px;user-select:none}.map-canvas svg{position:absolute;inset:0;width:1280px;height:904px}.lot-hit{cursor:pointer;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25));transition:transform .14s ease,opacity .14s ease}.lot-hit:hover,.lot-hit.active{transform:scale(1.28);transform-origin:center}.lot-hit.filtered{opacity:.14}.lot-label{font-size:14px;font-weight:900;fill:white;paint-order:stroke;stroke:rgba(0,0,0,.45);stroke-width:3px;pointer-events:none}.legend{padding:10px 14px;border-top:1px solid var(--line);display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:13px}.dot{display:inline-block;width:10px;height:10px;border-radius:999px;margin-right:6px}.available{background:var(--green)}.reserved{background:var(--amber)}.sold{background:var(--red)}.side-panel{display:flex;flex-direction:column;gap:14px}.card{padding:16px}.hero-card h2{font-family:Georgia,serif;font-weight:500;font-size:28px;margin:0 0 8px}.muted{color:var(--muted)}.hidden{display:none!important}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:14px}.stat{padding:12px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.42)}.stat b{display:block;font-size:22px}.search-label{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:800}input,textarea,select{width:100%;margin-top:8px;border:1px solid var(--line);border-radius:14px;background:white;padding:12px;color:var(--ink)}.range-row{display:flex;justify-content:space-between;margin-top:14px}.lot-card{min-height:210px}.empty-state{border:1px dashed var(--line);border-radius:16px;padding:24px;text-align:center;color:var(--muted)}.detail-title{display:flex;justify-content:space-between;gap:10px;align-items:start}.status-badge{border-radius:999px;padding:6px 10px;color:white;font-weight:900;font-size:12px;text-transform:uppercase;font-style:normal}.status-badge.available{background:var(--green)}.status-badge.reserved{background:var(--amber)}.status-badge.sold{background:var(--red)}.price{font-family:Georgia,serif;font-size:34px;margin:10px 0}.kv{display:grid;grid-template-columns:1fr 1fr;gap:8px}.kv div{border:1px solid var(--line);border-radius:14px;padding:10px;background:rgba(255,255,255,.45)}.kv small{display:block;color:var(--muted)}.kv strong{display:block;margin-top:4px}.action-row,.admin-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.admin-actions select{flex:1;min-width:140px}.admin-actions button{flex:1}.list-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.list-head h3{margin:0}.lot-list,.booking-list{max-height:310px;overflow:auto;display:flex;flex-direction:column;gap:8px;margin-top:12px}.lot-row,.booking-row{display:grid;grid-template-columns:54px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);background:rgba(255,255,255,.44);border-radius:16px;padding:10px;cursor:pointer;text-align:left}.booking-row{grid-template-columns:1fr}.lot-row:hover{border-color:var(--teal)}.lot-row small,.booking-row small{color:var(--muted)}dialog{border:0;border-radius:24px;padding:0;box-shadow:0 30px 80px rgba(0,0,0,.25);background:transparent}dialog::backdrop{background:rgba(35,24,14,.48);backdrop-filter:blur(4px)}.dialog-card{width:min(520px,calc(100vw - 30px));background:var(--paper);border-radius:24px;padding:24px;position:relative}.dialog-card h2{margin:0 0 8px;font-family:Georgia,serif;font-size:30px}.dialog-card label{display:block;margin-top:12px;font-weight:700}.close{position:absolute;right:16px;top:14px;border:0;background:transparent;font-size:30px;cursor:pointer}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.fineprint{font-size:12px;color:var(--muted)}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:white;border-radius:999px;padding:12px 18px;opacity:0;pointer-events:none;transition:.2s;z-index:10}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}@media(max-width:980px){.workspace{grid-template-columns:1fr}.side-panel{order:2}.map-viewport{height:58vh;min-height:420px}.topbar{align-items:flex-start;flex-direction:column}.app-shell{padding:10px}.map-toolbar{align-items:flex-start;flex-direction:column}.stats-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:560px){.stats-grid{grid-template-columns:repeat(2,1fr)}.lot-row{grid-template-columns:48px 1fr}.lot-row .status-badge{grid-column:1/-1;width:max-content}.top-actions{width:100%}.primary,.ghost{flex:1}.map-viewport{min-height:360px}}