*{box-sizing:border-box}body{margin:0;color:#113c32;font:16px/1.45 system-ui,sans-serif;background:#355b34 url('assets/nature.jpg') center/cover fixed}body:before{content:'';position:fixed;inset:0;background:radial-gradient(at 40% 0%,#d5ecc795,transparent 65%),linear-gradient(120deg,#2c613360,#b9d39b65);z-index:-1}.glass{background:linear-gradient(135deg,#e6f4d8ca,#bbdfd1ad);backdrop-filter:blur(22px);border:1px solid #efffe0ae;box-shadow:inset 0 1px 2px #fff9,0 8px 25px #00291950;border-radius:20px}header{margin:12px 18px;padding:12px 20px;display:flex;align-items:center;gap:24px;min-height:66px}.brand{display:flex;align-items:center;gap:12px;letter-spacing:4px;font-size:25px;margin-right:auto}.brand img{width:62px;height:48px;object-fit:cover;border-radius:12px}.brand span{font-size:37px}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid #f1ffec99;border-radius:12px;background:#e4f3e24d;padding:11px 15px;transition:.2s}button:hover{background:#d0f4d6bb;transform:translateY(-1px)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #20b981;outline-offset:2px}nav{display:flex;gap:8px}nav button{background:transparent;border:0;border-radius:0}nav .active{border-bottom:2px solid #145d44}main{padding:6px 18px 18px;display:grid;grid-template-columns:260px minmax(420px,1fr) 290px;gap:14px;height:calc(100dvh - 103px);min-height:680px}.filters,.details{padding:22px;overflow:auto}h1{font-size:25px;margin:0 0 22px}h2{font-size:36px;margin:12px 0 0}.sub{margin:0 0 22px}.filters input{width:100%;border:1px solid #effff0aa;border-radius:12px;padding:13px;background:#f1fff447}.pills{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0}.pills button{padding:8px 10px;font-size:14px}.active,.primary{background:linear-gradient(160deg,#147c59,#043f32);color:white;box-shadow:inset 0 1px 4px #8cddaa8a;border-color:#b7f5d0}.filters label{display:block;font-size:14px;margin:14px 0}select{display:block;width:100%;padding:11px;background:#e0f1df65;border:1px solid #eefce5aa;border-radius:10px}.sample{font-size:13px;color:#345b50;margin:18px 0}.plot-row{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;margin:8px 0;padding:15px;font-size:15px}.plot-row strong{font-size:18px}.plot-row small{display:block;font-size:13px}.bird{width:100%;margin-top:20px;border-radius:14px}#list{max-height:360px;overflow:auto}.viewer{position:relative;background:#030806;border-radius:22px;overflow:hidden;border:1px solid #0b2e23;display:flex;flex-direction:column}.view-top,.view-bottom{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;gap:12px;color:#d8ede2}.view-top span{letter-spacing:2px;font-size:13px}.viewer button{color:#e4f8ec;background:#17372b70;padding:9px 12px}.viewport{flex:1;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:center;touch-action:none}.stage{position:relative;width:100%;transform-origin:center;transition:transform .1s;flex-shrink:0}.stage>img{width:100%;display:block}.stage svg{position:absolute;inset:0;width:100%;height:100%}.plot{fill:transparent;stroke:transparent;stroke-width:3;cursor:pointer}.plot:hover,.plot:focus{fill:#38d88a50;stroke:#a8f5b8;outline:none}.plot.selected{fill:#00cf8560;stroke:#39ffac;stroke-width:5}.plot.reserved{fill:#e9ae2630}.plot.sold{fill:#878b8a50}.plot.filtered{opacity:.15;pointer-events:none}.map-label{font:600 16px system-ui;fill:#123e2a;pointer-events:none}.label-bg{fill:#eefbdfec;pointer-events:none}.selected-label{fill:#00754c}.selected-text{fill:white}.legend{display:flex;gap:12px;font-size:12px}.legend span{white-space:nowrap}i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.available{background:#1dd779}.reserved{background:#ecb52d}.sold{background:#96a39c}.tools{display:flex;gap:5px}.badge{padding:7px 14px;border-radius:10px;background:#c4f2ce;color:#09542f;font-size:14px}.metrics{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #fff8;border-bottom:1px solid #fff8;margin-top:22px}.metrics div{padding:15px 0;font-size:14px}.metrics strong{display:block;font-size:17px;font-weight:600}.chips{display:flex;gap:8px;margin-bottom:18px;font-size:13px}.chips span{padding:7px 10px;border:1px solid #e8fff4a0;border-radius:10px}.club-card{width:100%;padding:0;overflow:hidden;text-align:left;margin-bottom:14px}.club-card img{display:block;width:100%;height:130px;object-fit:cover}.club-card span{display:block;padding:10px;font-size:14px}.details>button:not(.club-card){width:100%;margin:5px 0}.details #compare{background:transparent;border:0}.details #comparison{font-size:14px}#message{font-size:14px}dialog{width:min(680px,92vw);border:1px solid #c4e4cb;border-radius:20px;padding:28px;background:#e4f4e8;color:#113c32}dialog::backdrop{background:#00140ed0;backdrop-filter:blur(8px)}.close{float:right;font-size:22px;padding:3px 12px}dialog img{max-width:100%;border-radius:10px}dialog input,dialog textarea{display:block;width:100%;padding:12px;border:1px solid #a3c5b3;border-radius:8px;margin:12px 0}table{width:100%;border-collapse:collapse;font-size:14px}td,th{padding:9px;border-bottom:1px solid #9ac3a9}.mobile-hint{display:none}@media(max-width:1150px){main{grid-template-columns:210px minmax(350px,1fr) 240px;gap:8px;padding:6px 10px}.filters,.details{padding:16px}.brand{font-size:20px;letter-spacing:2px}.brand img{display:none}header{gap:10px}.legend{gap:6px}.view-bottom{flex-wrap:wrap}}@media(max-width:850px){header{margin:8px;padding:10px;flex-wrap:wrap}.brand{font-size:21px}nav{order:3;width:100%;justify-content:center}header>.visit{font-size:14px;padding:8px}main{display:flex;flex-direction:column;height:auto;min-height:0}.viewer{order:0;height:65vh;min-height:450px}.filters{order:1}.details{order:2}.filters .bird{display:none}#list{max-height:200px}.filters h1{margin-bottom:12px}.pills{margin:10px 0}.view-top,.view-bottom{padding:12px}.stage{width:100%}h2{font-size:30px}.club-card img{height:200px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
 [hidden]{display:none!important}button:disabled{opacity:.6;cursor:wait}.price-card{margin-top:18px;padding:18px;border-radius:14px;background:#074f3f;color:#effff4}.price-card span,.price-card small{display:block}.price-card strong{display:block;font-size:28px;overflow-wrap:anywhere}.plot-description{white-space:pre-wrap;overflow-wrap:anywhere}.badge[data-status="sold"]{background:#d1d7d3;color:#34453c}.badge[data-status="reserved"]{background:#ffdf8c;color:#624600}.edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.edit-grid label{min-width:0}dialog label{display:block;font-size:14px;font-weight:600}dialog input,dialog select,dialog textarea{margin:6px 0 10px;background:#fff;font-size:16px}dialog textarea{resize:vertical;font:inherit}.edit-actions{display:flex;justify-content:flex-end;gap:12px}#save-error{color:#972b1d}dialog h2{font-size:26px;clear:none}.details h2{overflow-wrap:anywhere}.plot-row strong{overflow-wrap:anywhere;max-width:50%}@media(max-width:500px){.edit-grid{grid-template-columns:1fr}dialog{padding:20px}}
/* Compact laptop workspace */
body{font-size:14px;line-height:1.35}
header{margin:8px 10px;padding:7px 14px;min-height:50px;gap:14px;border-radius:14px}
.brand{font-size:19px;letter-spacing:2px;gap:8px}.brand img{width:42px;height:34px}.brand span{font-size:26px}
button{padding:7px 10px;border-radius:8px}nav button{font-size:14px}
main{height:calc(100dvh - 74px);min-height:0;padding:0 10px 10px;grid-template-columns:170px minmax(0,1fr) 244px;gap:10px}
.filters,.details{padding:14px;border-radius:14px;min-height:0;min-width:0}
.filters h1{font-size:18px;margin:0 0 12px}.filters input{padding:9px;font-size:14px;border-radius:8px}
.pills{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:12px 0}.pills button{padding:7px 3px;font-size:12px}
.filters label{margin:12px 0 5px;font-size:12px}.filters select{padding:8px;font-size:14px}.sample{font-size:12px;margin:8px 0}
.filter-result{font-size:12px;margin:12px 0 4px;font-weight:600}.map-hint{font-size:12px;line-height:1.5;color:#345b50;margin:0 0 12px}
.filters .bird{margin-top:8px;border-radius:10px}.viewer{border-radius:16px;min-width:0}
.view-top,.view-bottom{padding:10px 12px;gap:8px;flex-wrap:nowrap}.view-top span{font-size:12px}.viewer button{padding:6px 9px;font-size:13px}.legend{font-size:12px;gap:10px}.tools{gap:4px}
.viewport{container-type:size}.stage{width:min(100%,141.3cqh)}
.plot.available{fill:#16c56a55;stroke:#35ee91;stroke-width:2}
.plot.reserved{fill:#ffb51570;stroke:#ffc247;stroke-width:2}
.plot.sold{fill:#ec4c4c70;stroke:#ff6b6b;stroke-width:2}
.plot:hover,.plot:focus{stroke:#fff;stroke-width:4;filter:brightness(1.15);outline:none}
.plot.selected{stroke:#fff;stroke-width:6;filter:drop-shadow(0 0 5px #ffffffa0)}
.plot.filtered{opacity:.1}.sold{background:#ec5555}
[data-label][data-status="available"] .label-bg{fill:#bbf5d5}
[data-label][data-status="reserved"] .label-bg{fill:#ffe2a0}
[data-label][data-status="sold"] .label-bg{fill:#ffd0cd}
[data-label] .selected-label{stroke:#fff;stroke-width:3}
.selected-text{fill:#123e2a}.badge{display:inline-block;font-size:12px;padding:5px 9px;border-radius:7px}
.badge[data-status="sold"]{background:#ffd0cd;color:#842727}
.details h2{font-size:24px;line-height:1.15;margin:9px 0 3px}.sub{font-size:12px;margin:0 0 10px}
.price-card{margin:0 0 10px;padding:11px 12px;border-radius:10px}.price-card span,.price-card small{font-size:12px}.price-card strong{font-size:23px;margin:3px 0;line-height:1.2}
.metrics{margin:0;gap:0 8px}.metrics div{padding:9px 0;font-size:12px}.metrics strong{font-size:14px;margin-top:3px;overflow-wrap:anywhere}
.plot-description{font-size:13px;margin:8px 0;line-height:1.4}.plot-description:empty,.sample:empty,#message:empty,#comparison:empty{display:none}
.details>button:not(.club-card){margin:3px 0;padding:7px 8px;font-size:13px}.club-card{display:flex;align-items:center;margin:8px 0;padding:0;border-radius:9px;gap:4px}.club-card img{width:66px;height:44px;flex-shrink:0}.club-card span{padding:5px;font-size:12px}
.details #compare{font-size:12px;padding:5px}.details #comparison button{font-size:12px;padding:6px;width:100%}#message{font-size:12px;margin:6px 0}
@media(min-width:851px) and (max-height:720px){.filters,.details{padding:11px}.details h2{font-size:22px;margin-top:7px}.metrics div{padding:7px 0}.price-card{padding:9px 10px;margin-bottom:8px}.club-card img{height:36px}.details>button:not(.club-card){padding:6px 8px}.plot-description{margin:6px 0}.sample{margin:6px 0}}
@media(min-width:851px) and (max-width:1150px){main{grid-template-columns:154px minmax(0,1fr) 228px;gap:8px}.filters,.details{padding:11px}.view-bottom{flex-wrap:wrap}.brand img{display:none}}
@media(max-width:850px){header{flex-wrap:wrap}main{height:auto;min-height:0;display:flex}.viewer{height:65dvh;min-height:360px}.filters,.details{padding:14px}.stage{width:min(100%,141.3cqh)}.filters .bird{display:none}.pills{display:flex}.pills button{padding:7px 12px}.view-bottom{flex-wrap:wrap}.details h2{font-size:24px}.club-card img{width:80px;height:48px}}

/* Keep the plan clear; status belongs to the number labels. */
.plot.available,.plot.reserved,.plot.sold,.plot.selected,.plot:focus{fill:transparent;stroke:transparent;filter:none}
.plot.available:hover,.plot.available:focus-visible{fill:#16c56a55;stroke:#35ee91;stroke-width:3}
.plot.reserved:hover,.plot.reserved:focus-visible{fill:#ffb51560;stroke:#ffc247;stroke-width:3}
.plot.sold:hover,.plot.sold:focus-visible{fill:#ec4c4c60;stroke:#ff6b6b;stroke-width:3}
