.app-main { padding-top: 20px; padding-bottom: 60px; }
.auth { max-width: 460px; margin: 30px auto; }
.layout { display: grid; grid-template-columns: 320px 1fr; gap: 20px; align-items: start; }
.sidebar { position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow: auto; }
.sidebar fieldset { border: 0; padding: 0; margin: 0 0 14px; }
.sidebar legend { font-weight: 700; font-size: 14px; margin-bottom: 6px; }
.sidebar select[multiple] { min-height: 120px; }
.results-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.map.big { height: 560px; }
.permit .actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 6px; }
.permit .actions select { width: auto; min-height: 36px; padding: 4px 8px; font-size: 14px; }
.permit .actions input { min-height: 36px; padding: 4px 8px; font-size: 14px; max-width: 280px; }
.pager { display: flex; gap: 10px; align-items: center; justify-content: center; margin-top: 14px; }
.stat-row { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.stat-row .tag { font-size: 14px; padding: 5px 12px; }
.areas-pick { max-height: 300px; overflow: auto; border: 1px solid var(--line); border-radius: 10px; padding: 8px; }
.areas-pick h4 { margin: 8px 0 4px; font-size: 13px; text-transform: uppercase; color: var(--muted); letter-spacing: .05em; }
.drawbar { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
@media (max-width: 900px) {
  .layout { grid-template-columns: 1fr; }
  .sidebar { position: static; max-height: none; }
  .layout > section { order: -1; }   /* map or list first on phones, filters below */
  .map.big { height: 60vh; }
}
