.listing-field { display:grid; align-content:start; gap:8px; min-width:0; color:#6c604a; font-size:13px; font-weight:600; }
.listing-field > input,.listing-field > select,.listing-field > textarea,.listing-address-input > input { width:100%; min-width:0; padding:12px 14px; border:1px solid #cfc3ad; border-radius:8px; background:#fff; color:#383225; font-size:14px; font-weight:400; }
.listing-field > textarea { min-height:100px; resize:vertical; }
.listing-field input::placeholder,.listing-field textarea::placeholder { color:#9c8d70; }
.listing-field-help { color:#84765b; font-size:12px; line-height:1.8; font-weight:400; }
.listing-field .field-validation-error { font-size:12px; font-weight:400; }
.listing-field .input-validation-error { border-color:#84765b; border-width:2px; }
form.listing-unit-form { grid-template-columns:minmax(0,1fr); }
form.listing-unit-form > * { grid-column:1 / -1; }
.listing-property-section,.listing-location-picker { min-width:0; border:1px solid #e5ddcf; border-radius:12px; padding:20px; }
.listing-property-section legend,.listing-location-picker legend { padding:0 7px; font-weight:700; font-size:15px; color:#6c604a; }
.listing-property-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.listing-location-picker > .listing-field { margin:15px 0; }
.listing-map-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:12px 0; }
.listing-map-actions .student-subtle-button { margin:0; font-size:12px; }
.listing-map-actions button:disabled { opacity:.6; cursor:wait; }
.listing-map-actions [hidden] { display:none !important; }
.listing-address-input { position:relative; }
.listing-address-results { position:absolute; z-index:10; inset:calc(100% + 4px) 0 auto; border:1px solid #cfc3ad; border-radius:8px; max-height:17rem; overflow:auto; background:#fff; box-shadow:0 6px 18px #38322526; font-weight:400; }
.listing-address-results p { margin:0; padding:9px 12px; color:#6c604a; font-size:12px; }
.listing-address-results ul { list-style:none; padding:0; margin:0; }
.listing-address-results button { display:block; width:100%; padding:10px 12px; border:0; border-top:1px solid #e5ddcf; background:#fff; text-align:left; cursor:pointer; }
.listing-address-results button:hover,.listing-address-results button:focus-visible { background:#f3efe7; outline-offset:-2px; }
.listing-map { width:100%; height:330px; border:1px solid #e5ddcf; border-radius:10px; overflow:hidden; z-index:0; background:#f3efe7; }
.listing-map-status { padding:11px 0; font-size:12px; line-height:1.8; color:#6c604a; }
.listing-coordinate-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:10px; }
.listing-facility-group { min-width:0; margin-top:14px; padding:10px 12px 12px; border:1px solid #e5ddcf; border-radius:8px; }
.listing-facility-group legend { padding:0 6px; color:#6c604a; font-size:13px; font-weight:600; }
.listing-map-marker { background:none; border:0; }
.listing-map-pin { display:block; position:relative; width:28px; height:28px; border:3px solid #fff; background:#84765b; border-radius:50% 50% 50% 0; transform:rotate(-45deg); box-shadow:0 3px 8px #51493640; }
.listing-map-pin::after { content:''; position:absolute; width:8px; height:8px; top:7px; left:7px; background:#fff; border-radius:50%; }
.listing-location-panel { margin-top:28px; }
.listing-location-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:20px; }
.listing-location-heading p { margin-top:8px; color:#84765b; font-size:14px; line-height:1.8; }
.listing-location-heading a { flex-shrink:0; font-size:13px; }
.listing-map .leaflet-control-attribution { font-size:11px; }
.listing-map .leaflet-control-attribution a,.listing-map .leaflet-control-zoom a { color:#6c604a; }
@media(max-width:699px) { .listing-property-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .listing-location-heading { flex-direction:column; } .listing-location-heading a { width:100%; } }
@media(max-width:439px) { .listing-property-grid,.listing-coordinate-fields { grid-template-columns:minmax(0,1fr); } .listing-map { height:280px; } .listing-location-picker,.listing-property-section { padding:16px; } }
