@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');

:root { --ink:#233b31; --green:#285646; --cream:#f6f5ef; --border:#dcded3; }
html, body { margin:0; background:var(--cream); color:var(--ink); font-family:'DM Sans',Arial,sans-serif; }
* { box-sizing:border-box; }
a { color:var(--green); text-underline-offset:3px; }
button, input, select, textarea { font:inherit; }
:focus-visible { outline:3px solid #a87642; outline-offset:3px; }
h1, h2, h3, p { margin-top:0; }
h1 { font-family:Georgia,'Times New Roman',serif; font-weight:400; font-size:clamp(2.1rem,3.3vw,3.7rem); line-height:1.08; letter-spacing:-.04em; margin-bottom:1rem; }
h2 { font-size:1.15rem; font-weight:600; margin-bottom:.8rem; }
h3 { font-size:.93rem; font-weight:600; margin:1.3rem 0 .5rem; }
.eyebrow { font-size:.65rem; letter-spacing:.17em; font-weight:600; color:#607568; margin-bottom:1.1rem; }
.explore-intro { padding:2.4rem 3vw 1.6rem; display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; }
.explore-intro > p { color:#647369; font-size:.9rem; line-height:1.8; max-width:28rem; }
.explore-grid { padding:0 3vw 2.5rem; display:grid; grid-template-columns:290px minmax(0,1fr); gap:1.5rem; align-items:start; }
.filter-panel { background:#fff; border:1px solid var(--border); border-radius:8px; padding:1.25rem; min-width:0; }
.panel-heading { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.panel-heading h2 { margin:0; }
.field-pair { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:.7rem; }
.filter-panel .mud-input-control, .admin-section .mud-input-control { margin-bottom:.6rem; }
.fine-print { font-size:.73rem; color:#68736c; line-height:1.6; }
.layer-section { border-top:1px solid var(--border); margin-top:1.4rem; }
.circle-list { max-height:330px; overflow:auto; }
.circle-entry { position:relative; border-bottom:1px solid #eee; padding:.3rem 0 .7rem; }
.circle-entry .mud-checkbox { max-width:calc(100% - 15px); }
.circle-entry details { margin-left:.5rem; font-size:.74rem; line-height:1.6; }
.circle-entry summary { cursor:pointer; }
.circle-swatch { position:absolute; right:0; top:1.1rem; width:10px; height:10px; border-radius:50%; }
.map-column { min-width:0; }
.results-bar { display:flex; justify-content:space-between; gap:1rem; align-items:center; background:#e9ede3; padding:.8rem 1rem; border-radius:8px 8px 0 0; font-size:.86rem; }
.property-map { height:clamp(400px,61vh,700px); background:#e5e8dc; border:1px solid var(--border); z-index:0; }
.map-legend { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; font-size:.7rem; background:#fff; padding:.8rem 1rem; border:1px solid var(--border); border-top:0; border-radius:0 0 8px 8px; }
.map-legend > span:not(.legend-dot) { display:inline-flex; align-items:center; gap:.3rem; }
.legend-dot { display:inline-block; width:9px; height:9px; border-radius:50%; margin-left:.4rem; }
.home-dot { background:#285646; } .school-dot { background:#a87642; } .station-dot { background:#537486; }
.data-status { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem 1rem; padding:.6rem 0; font-size:.69rem; color:#647369; }
.stale-status { color:#8b5a20; }
.property-detail { margin-top:1.5rem; padding:1.4rem; border:1px solid var(--border); border-radius:8px; background:#fff; }
.property-overview { display:grid; grid-template-columns:minmax(180px,.9fr) minmax(0,1.1fr); gap:1.5rem; }
.property-overview img { width:100%; height:100%; max-height:350px; object-fit:cover; border-radius:5px; }
.property-overview h2 { font-family:Georgia,serif; font-size:1.8rem; font-weight:400; }
.property-overview p { font-size:.83rem; line-height:1.7; }
.property-overview .property-price { font-size:1.4rem; font-weight:600; }
.property-price small { font-size:.7rem; font-weight:400; }
.nearby-heading { display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.nearby-heading .mud-input-control { max-width:160px; flex-shrink:0; }
.table-scroll { overflow:auto; }
.nearby-table { width:100%; border-collapse:collapse; font-size:.8rem; text-align:left; }
.nearby-table th { font-size:.7rem; color:#637469; background:#f3f4ee; }
.nearby-table th, .nearby-table td { padding:.8rem; border-bottom:1px solid #e7e9e0; }
.property-results { margin-top:1.8rem; }
.property-results h2 { font-family:Georgia,serif; font-weight:400; font-size:1.6rem; }
.property-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:1rem; }
.property-card { display:flex; flex-direction:column; align-items:stretch; min-width:0; padding:0; text-align:left; background:#fff; border:1px solid var(--border); border-radius:6px; overflow:hidden; color:var(--ink); cursor:pointer; transition:border-color .15s; }
.property-card:hover, .property-card.selected { border-color:var(--green); box-shadow:0 0 0 1px var(--green); }
.property-card img { width:100%; aspect-ratio:1.5; object-fit:cover; display:block; flex-shrink:0; }
.card-content { padding:1rem; display:flex; flex-direction:column; flex:1; min-height:10rem; gap:.4rem; font-size:.85rem; overflow-wrap:anywhere; }
.card-content strong { font-size:1.15rem; }
.card-content small { color:#69766d; font-size:.7rem; }
.map-property-pin { display:grid; place-items:center; width:22px; height:22px; background:#285646; border:3px solid #fff; border-radius:50%; font:bold 11px Arial,sans-serif; color:#fff; box-shadow:0 1px 6px #233b3155; }
.map-property-pin.is-selected { background:#a87642; transform:scale(1.3); }
.map-place-pin { display:grid; place-items:center; width:25px; height:25px; border:2px solid #fff; border-radius:5px; font:bold 11px Arial,sans-serif; color:#fff; box-shadow:0 1px 5px #233b3144; }
.school-pin { background:#a87642; } .station-pin { background:#537486; }
.school-pin.is-selected { outline:2px solid #285646; outline-offset:2px; }
.school-cluster { display:grid; place-items:center; border:5px solid #a8764244; border-radius:50%; background-clip:padding-box; background-color:#a87642; color:#fff; font:bold 12px Arial,sans-serif; }
.marker-cluster-small, .marker-cluster-medium, .marker-cluster-large { background:#28564633 !important; }
.marker-cluster-small div, .marker-cluster-medium div, .marker-cluster-large div { background:#285646 !important; color:#fff; }
.admin-page { max-width:1300px; margin:0 auto; padding:2.5rem 3vw; }
.admin-page > p { color:#647369; }
.admin-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; align-items:start; }
.admin-section { background:#fff; border:1px solid var(--border); border-radius:8px; padding:1.5rem; margin-top:1.5rem; min-width:0; }
.admin-actions { display:flex; gap:.7rem; flex-wrap:wrap; margin:.8rem 0; }
.admin-records { max-height:260px; overflow:auto; margin:1rem 0; border:1px solid var(--border); border-radius:4px; }
.record-button { display:flex; width:100%; flex-direction:column; gap:.2rem; text-align:left; padding:.8rem; border:0; border-bottom:1px solid #eee; background:#fff; color:var(--ink); cursor:pointer; }
.record-button:hover { background:#f0f3eb; }
.record-button span { font-size:.75rem; color:#647369; }
.delete-confirm { border:1px solid #c89480; padding:1rem; margin-top:1rem; border-radius:4px; }
.page-alert { margin:0 3vw 1rem; }
.validation-message, .validation-errors { color:#a33d31; font-size:.8rem; }
.blazor-error-boundary { background:#a33d31; color:#fff; padding:1rem; }
.blazor-error-boundary::after { content:'An error occurred. Please reload.'; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(min-width:1500px) { .explore-grid { grid-template-columns:320px minmax(0,1fr); } }
@media(max-width:900px) { .explore-grid { grid-template-columns:250px minmax(0,1fr); gap:1rem; } .property-overview { grid-template-columns:1fr; } .property-overview img { max-height:280px; } .explore-intro > p { max-width:18rem; } }
@media(max-width:680px) {
    .explore-intro { display:block; padding:1.8rem 1rem 1rem; } .explore-intro > p { max-width:none; }
    .explore-grid { display:flex; flex-direction:column; padding:0 1rem 2rem; }
    .filter-panel, .map-column { width:100%; } .property-map { height:55vh; min-height:360px; }
    .results-bar { align-items:flex-start; } .results-bar .fine-print { max-width:9rem; text-align:right; }
    .admin-grid { grid-template-columns:1fr; } .admin-page { padding:2rem 1rem; }
    .nearby-heading { flex-direction:column; align-items:stretch; } .nearby-heading .mud-input-control { max-width:none; }
    .property-detail { padding:1rem; } .nearby-table th, .nearby-table td { padding:.5rem; }
}
@media(prefers-reduced-motion:reduce) { *, *::before, *::after { transition:none !important; animation:none !important; scroll-behavior:auto !important; } }
