.district-page { max-width: 1510px; padding: clamp(16px, 4vw, 48px); margin: auto; }
.portal .district-intro h1 { font-size: clamp(36px, 5vw, 60px); margin-bottom: 12px; }
.district-toolbar { margin-bottom: 20px; }
.district-toolbar label, .district-sidebar label { display: block; font-size: 13px; font-weight: 700; }
.district-search-row, .district-controls { display: flex; gap: 8px; flex-wrap: wrap; }
.district-search-row { margin: 6px 0 12px; }
.district-page input:not([type=checkbox]), .district-page select {
  min-height: 44px; min-width: 0; max-width: 100%; border: 1px solid #adbfba;
  background: white; color: var(--ink); padding: 9px 12px;
}
.district-search-row input { flex: 1 1 235px; }
.district-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(290px, 1fr); gap: 18px; align-items: start; }
#district-map { height: clamp(440px, 72vh, 780px); border-radius: 18px; border: 1px solid var(--line); background: #e5eeea; z-index: 0; }
#district-map.drawing, #district-map.drawing .leaflet-interactive { cursor: crosshair; }
#district-status { margin: 8px 0 0; }
#district-matches:not(:empty) { margin: 0 0 12px; }
.district-sidebar { display: grid; gap: 12px; }
.district-sidebar .panel { padding: 17px; min-width: 0; }
.district-sidebar h2 { margin-bottom: 8px; }
.district-caption { font-size: 12px; margin: 8px 0; }
.district-layers { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 7px; margin: 10px 0 16px; }
.district-layers label { display: flex; gap: 4px; align-items: flex-start; }
.district-layers input { accent-color: var(--accent); }
.district-results { padding: 0; margin: 8px 0; list-style: none; max-height: 240px; overflow: auto; }
.district-results li { padding: 7px 0; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
.district-results button:not(.btn) { background: none; border: 0; padding: 6px 0; color: var(--accent); text-decoration: underline; text-align: left; }
#district-zone-form { display: grid; gap: 6px; }
.district-layer-dot { flex: 0 0 8px; height: 8px; margin: 5px 1px 0; border-radius: 50%; }
@media (max-width: 850px) {
  .district-layout { grid-template-columns: minmax(0,1fr); }
  #district-map { height: 52vh; min-height: 335px; }
}

.portal .district-layers input[type=checkbox] {
  width: 15px; height: 15px; min-height: 0; padding: 0; flex: 0 0 15px; margin: 3px 2px 0 0;
}
.portal .district-layers label { display: flex; align-items: flex-start; }
@media (max-width: 600px) {
  .portal .district-toolbar { padding: 14px; }
  .district-search-row { flex-wrap: nowrap; }
  .district-search-row input { flex: 1 1 0; }
  .portal .district-toolbar .btn { padding-inline: 10px; }
  .district-controls .btn { flex: 1 1 120px; }
  .district-intro p { font-size: 14px; }
}
