.location-panel { position: fixed; inset: 0; z-index: 10000; display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain; padding: 32px 24px; background: var(--bg); }
.location-dialog { flex-shrink: 0; width: 100%; max-width: 620px; margin: auto; padding: 28px; background: var(--card); border: 1px solid var(--border-glow); border-radius: var(--radius-lg); box-shadow: var(--glow); }
body.location-modal-open { overflow: hidden; }
.location-panel[hidden], [hidden] { display: none !important; }
.location-panel h2 { font-family: var(--font-head); }
.location-panel p, .location-panel label { font-size: 13px; margin: 12px 0; color: var(--text-2); }
.location-panel button, .location-admin button { padding: 10px 14px; margin: 6px 6px 6px 0; border: 1px solid var(--cyan); color: var(--text-1); border-radius: var(--radius); }
.location-panel button:disabled { opacity: .5; cursor: default; }
.location-panel input, .location-admin input { width: 100%; padding: 10px; background: var(--bg); color: var(--text-1); border: 1px solid var(--text-2); border-radius: var(--radius); }
.location-panel a, .location-admin a, #location-open { color: var(--cyan); text-decoration: underline; }
.location-panel :focus-visible, .location-admin :focus-visible, #location-open:focus-visible { outline: 2px solid var(--cyan); outline-offset: 3px; }
.location-admin { max-width: 1400px; margin: 40px auto; padding: 20px; }
.location-admin form { max-width: 460px; margin: 20px 0; }
.location-table { overflow-x: auto; }
.location-admin td, .location-admin th { padding: 12px; text-align: left; border-bottom: 1px solid var(--text-2); }
@media (max-width: 600px) {
  .location-panel { padding: 16px; padding-top: calc(16px + env(safe-area-inset-top, 0px)); padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }
  .location-dialog { padding: 20px; }
  .location-panel button { min-height: 44px; }
  .location-panel input { font-size: 16px; }
}
