:root{--ink:#111318;--muted:#647184;--paper:#f6f7f9;--white:#fff;--red:#bd001c;--gold:#c89b3c;--blue:#294861;--line:#e4e8ed;--shadow:0 18px 44px rgba(14,23,35,.13)}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;color:var(--ink);background:var(--paper);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.topbar{height:82px;padding:10px 24px;display:flex;align-items:center;gap:28px;background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:10}.brand{display:block;width:255px}.brand img{display:block;width:100%;height:62px;object-fit:contain}.topbar-actions{display:flex;align-items:end;gap:12px;margin-left:auto}.search,.style-select{display:grid;gap:5px}.search span,.style-select span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}input,select,textarea{font:inherit}.search input,.style-select select{height:42px;border:1px solid var(--line);border-radius:12px;background:#f9fafb;padding:0 14px;color:var(--ink)}.search input{width:min(32vw,360px)}.admin-link{height:42px;display:grid;place-items:center;padding:0 17px;border-radius:12px;background:var(--ink);color:#fff;text-decoration:none;font-weight:750}.dashboard{height:calc(100vh - 82px);display:grid;grid-template-columns:minmax(0,1fr) 390px}.map-panel{position:relative;min-width:0}#map{position:absolute;inset:0}.map-stats{position:absolute;top:22px;left:50%;transform:translateX(-50%);display:flex;border:1px solid rgba(255,255,255,.24);border-radius:16px;background:rgba(17,19,24,.94);color:#fff;box-shadow:var(--shadow);overflow:hidden;z-index:2}.map-stats div{min-width:120px;padding:13px 22px;text-align:center;border-right:1px solid rgba(255,255,255,.16)}.map-stats div:last-child{border:0}.map-stats strong{display:block;font-size:24px}.map-stats span{display:block;margin-top:2px;color:#cfd5dc;font-size:11px}.map-legend{position:absolute;left:18px;bottom:18px;display:grid;gap:8px;width:185px;padding:15px;border-radius:15px;background:rgba(255,255,255,.96);box-shadow:var(--shadow);z-index:2;font-size:12px}.map-legend strong{margin-bottom:2px}.map-legend label{display:flex;align-items:center;gap:7px;cursor:pointer}.map-legend input{accent-color:var(--red)}.dot{width:10px;height:10px;border-radius:50%}.dot.rented{background:#294861}.dot.available{background:#1d8f5a}.dot.coming-soon{background:#e28a16}.dot.sold{background:#737983}.dot.apartment{background:#c89b3c}.dot.airbnb{background:#bd001c}.property-panel{overflow:hidden;display:flex;flex-direction:column;background:#eef1f4;border-left:1px solid var(--line)}.panel-heading{display:flex;align-items:end;justify-content:space-between;padding:24px 22px 17px}.panel-heading h1{margin:2px 0 0;font-size:25px}.eyebrow{margin:0;color:var(--red);font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}#result-count{color:var(--muted);font-size:12px}.property-list{padding:0 14px 20px;overflow:auto;display:grid;gap:12px}.property-card{display:grid;grid-template-columns:118px 1fr;min-height:150px;background:#fff;border:1px solid transparent;border-radius:16px;overflow:hidden;box-shadow:0 5px 18px rgba(14,23,35,.07);cursor:pointer;transition:.18s ease}.property-card:hover,.property-card.selected{transform:translateY(-1px);border-color:var(--gold);box-shadow:0 9px 25px rgba(14,23,35,.13)}.property-card>img,.photo-placeholder{width:118px;height:100%;object-fit:cover;background:#dde2e7;display:grid;place-items:center;color:var(--muted);font-size:12px}.property-card-body{padding:15px 14px}.property-card h2{margin:7px 0 4px;font-size:16px}.property-card p{margin:0;color:var(--muted);font-size:12px}.property-card small{display:block;margin-top:7px;color:#3f4b5b}.property-card a,.map-popup a{display:inline-block;margin-top:10px;color:var(--red);font-size:12px;font-weight:800;text-decoration:none}.status-pill{display:inline-block;padding:4px 8px;border-radius:99px;color:#fff;background:#555;font-size:9px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.status-pill.rented{background:#294861}.status-pill.available{background:#1d8f5a}.status-pill.coming_soon{background:#e28a16}.status-pill.sold{background:#737983}.status-pill.apartment{background:#c89b3c}.status-pill.airbnb{background:#bd001c}.property-marker{width:43px;height:43px;padding:9px;border:3px solid #fff;border-radius:14px 14px 14px 3px;background:var(--marker-color);color:#fff;box-shadow:0 5px 15px rgba(0,0,0,.32);transform:rotate(-45deg);cursor:pointer}.property-marker svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transform:rotate(45deg)}.property-marker[hidden]{display:none}.map-popup{min-width:220px}.popup-image{width:100%;height:120px;object-fit:cover;border-radius:7px;margin-bottom:10px}.map-popup h2{font-size:16px;margin:7px 0 2px}.map-popup p{margin:0;color:var(--muted)}.loading,.empty,.error{padding:28px;color:var(--muted);text-align:center}.error{color:var(--red)}
@media(max-width:900px){.topbar{height:auto;align-items:flex-start;flex-wrap:wrap}.brand{width:220px}.topbar-actions{width:100%;align-items:end}.search{flex:1}.search input{width:100%}.dashboard{height:auto;min-height:calc(100vh - 140px);grid-template-columns:1fr;grid-template-rows:62vh auto}.property-panel{border-left:0;border-top:1px solid var(--line);max-height:none}.property-list{grid-template-columns:repeat(auto-fit,minmax(290px,1fr));overflow:visible}.map-stats div{min-width:95px;padding:11px}.map-legend{display:none}}
@media(max-width:560px){.topbar{padding:10px 14px}.brand{margin:auto}.style-select span{display:none}.admin-link{padding:0 12px}.dashboard{grid-template-rows:58vh auto}.map-stats{top:12px}.map-stats div{min-width:82px;padding:9px}.map-stats strong{font-size:19px}.property-list{grid-template-columns:1fr}}

/* Larger header logo: 25% taller with less surrounding padding. */
@media(min-width:901px){.topbar{height:88px;padding-top:5px;padding-bottom:5px}.brand img{height:78px}.dashboard{height:calc(100vh - 88px)}}
@media(max-width:900px){.brand img{height:78px}}

/* Upright two-tone rounded-square map markers. */
.property-marker{position:relative;width:48px;height:42px;padding:7px;border:4px solid var(--marker-border);border-radius:12px;background:var(--marker-color);color:#fff;box-shadow:0 5px 15px rgba(0,0,0,.32);transform:none;cursor:pointer;display:grid;place-items:center;z-index:0}
.property-marker::after{content:"";position:absolute;left:50%;bottom:-10px;width:14px;height:14px;background:var(--marker-color);border-right:4px solid var(--marker-border);border-bottom:4px solid var(--marker-border);transform:translateX(-50%) rotate(45deg);z-index:-1}
.property-marker svg{width:100%;height:100%;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transform:none}

/* Miniature matching markers in the map-layer legend. */
.legend-marker{position:relative;width:22px;height:19px;flex:0 0 22px;display:grid;place-items:center;padding:3px;border:2px solid var(--marker-border);border-radius:6px;background:var(--marker-color);color:#fff;z-index:0;margin:0 2px 4px}
.legend-marker::after{content:"";position:absolute;left:50%;bottom:-6px;width:7px;height:7px;background:var(--marker-color);border-right:2px solid var(--marker-border);border-bottom:2px solid var(--marker-border);transform:translateX(-50%) rotate(45deg);z-index:-1}
.legend-marker svg{width:100%;height:100%;fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

/* Keep the complete pin inside MapLibre's bottom-anchored marker box. */
.property-marker{position:absolute;width:48px;height:54px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.property-marker::after{content:none}
.marker-face{position:absolute;left:0;top:0;width:48px;height:42px;padding:7px;display:grid;place-items:center;border:4px solid var(--marker-border);border-radius:12px;background:var(--marker-color);color:#fff;box-shadow:0 5px 15px rgba(0,0,0,.32);z-index:0}
.marker-face::after{content:"";position:absolute;left:50%;bottom:-10px;width:14px;height:14px;background:var(--marker-color);border-right:4px solid var(--marker-border);border-bottom:4px solid var(--marker-border);transform:translateX(-50%) rotate(45deg);z-index:-1}

/* Full-width map with the property list floating above it on desktop. */
@media(min-width:901px){
  .dashboard{position:relative;display:block}
  .map-panel{position:absolute;inset:0}
  .property-panel{position:absolute;top:160px;right:18px;bottom:18px;width:390px;border:1px solid rgba(17,19,24,.12);border-radius:18px;background:rgba(238,241,244,.96);box-shadow:0 16px 42px rgba(14,23,35,.22);z-index:4}
  .panel-heading{padding:18px 20px 14px}
  .maplibregl-ctrl-bottom-right{right:408px;bottom:8px}
}

.status-pill.headquarters{background:#111318}
