.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: 420px; 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); font-size: 24px; line-height: 1.3; margin: 0; text-align: center; }
.location-actions { display: grid; grid-template-columns: 1fr; gap: 12px; margin-top: 24px; }
.location-actions button { width: 100%; min-height: 48px; margin: 0 !important; font-size: 16px; font-weight: 600; color: #fff; }
#location-request { background: #147a46; border-color: #147a46; }
#location-dismiss { background: #b93838; border-color: #b93838; }
#location-status:empty { display: none; }
.location-panel details { margin-top: 18px; }
.location-panel summary { cursor: pointer; color: var(--cyan); }
.location-panel p, .location-panel label { font-size: 13px; margin: 12px 0; color: var(--text-2); }
.location-panel ol { padding-left: 20px; font-size: 13px; line-height: 1.6; color: var(--text-2); }
.location-panel li + li { margin-top: 10px; }
.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; }
.admin-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; margin: 24px 0; }
.location-admin input[type="checkbox"] { width: auto; }
.location-admin input:disabled { opacity: .45; cursor: default; }
.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; }
}
