.nearby-audio-control { display: flex; align-items: center; gap: 12px; flex-shrink: 0; padding: 10px 0; border-block: 1px solid #e3eaf0; background: #fff; }
.nearby-audio-open { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; text-align: left; padding: 2px 0; color: #243646; background: none; border: 0; }
.nearby-audio-open > .svg-icon { flex: 0 0 32px; width: 32px; height: 32px; padding: 5px; color: #007e79; background: #e7f6f3; border-radius: 8px; }
.nearby-audio-open > span { min-width: 0; }
.nearby-audio-open strong, .nearby-audio-open small { display: block; overflow-wrap: anywhere; line-height: 1.4; }
.nearby-audio-open strong { font-size: 14px; font-weight: 650; }
.nearby-audio-open small { margin-top: 2px; color: #607282; font-size: 11px; }
.nearby-audio-switch { appearance: none; -webkit-appearance: none; cursor: pointer; flex: 0 0 44px; width: 44px; height: 44px; margin: 0; border: none; border-radius: 0; background: none; position: relative; }
.nearby-audio-switch::before { content: ''; position: absolute; inset: 10px 0; background: #bec9d0; border-radius: 20px; }
.nearby-audio-switch::after { content: ''; position: absolute; top: 13px; left: 3px; width: 18px; height: 18px; background: #fff; border-radius: 50%; box-shadow: 0 1px 3px #17304c30; transition: transform 160ms ease; }
.nearby-audio-switch:checked::before { background: #007e79; }
.nearby-audio-switch:checked::after { transform: translateX(20px); }
.nearby-audio-switch:focus-visible, .nearby-audio-open:focus-visible { outline: 3px solid #1477eb; outline-offset: 2px; }
.home-content > .nearby-audio-control { margin-top: 16px; }
.map-workspace > .nearby-audio-control { padding: 5px 12px; gap: 8px; }
.map-workspace .nearby-audio-open strong { font-size: 12px; }
.map-workspace .nearby-audio-open small { font-size: 10px; }
.nearby-audio-layer { color: #243646; font-family: inherit; }
.nearby-audio-notice { position: fixed; z-index: 1300; bottom: calc(90px + env(safe-area-inset-bottom, 0px)); left: 50%; transform: translateX(-50%); width: min(420px, calc(100% - 24px)); padding: 14px; border: 1px solid #c9e4e1; border-radius: 8px; background: #fff; box-shadow: 0 6px 26px #143f4633; }
.nearby-audio-notice-title { display: flex; gap: 10px; padding-right: 32px; }
.nearby-audio-notice-title > .svg-icon { color: #00837b; width: 26px; height: 26px; flex-shrink: 0; }
.nearby-audio-notice-title > div { min-width: 0; }
.nearby-audio-notice-title strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 3px 0; font-size: 15px; line-height: 1.4; overflow-wrap: anywhere; }
.nearby-audio-notice-title small { color: #00756f; font-size: 11px; }
.nearby-audio-notice-title span { color: #607282; font-size: 11px; }
.nearby-audio-dismiss { position: absolute; right: 5px; top: 5px; }
.nearby-audio-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.nearby-audio-actions button { min-height: 44px; font-size: 13px; padding: 8px; display: flex; align-items: center; justify-content: center; gap: 6px; border-radius: 6px; white-space: normal; }
.nearby-audio-actions .primary { background: #007e79; }
.nearby-audio-actions .svg-icon { width: 18px; height: 18px; flex-shrink: 0; }
.nearby-audio-dialog { color: #243646; width: min(480px, calc(100% - 24px)); max-height: min(720px, 85dvh); padding: 0; border: 1px solid #dde5eb; border-radius: 8px; overflow: auto; overscroll-behavior: contain; box-shadow: 0 16px 60px #18344730; }
.nearby-audio-dialog::backdrop { background: #10232e70; }
.nearby-audio-dialog header { display: flex; align-items: center; justify-content: space-between; gap: 8px; position: sticky; top: 0; z-index: 2; background: #fff; padding: 12px 16px; border-bottom: 1px solid #e3eaf0; }
.nearby-audio-dialog h2 { font-size: 18px; line-height: 1.4; margin: 0; overflow-wrap: anywhere; }
.nearby-audio-dialog-body { padding: 16px; }
.nearby-audio-dialog .icon-button, .nearby-audio-layer .icon-button { min-width: 44px; min-height: 44px; }
.nearby-audio-dialog-body > .primary, .nearby-audio-dialog-body > .ghost { min-height: 44px; margin-top: 12px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 6px; }
.nearby-audio-summary { margin: 0 0 12px; line-height: 1.5; }
.nearby-audio-dialog small { color: #607282; font-size: 12px; }
.nearby-audio-list { list-style: none; margin: 12px 0 0; padding: 0; }
.nearby-audio-list li + li { border-top: 1px solid #e7edf1; }
.nearby-audio-list button { width: 100%; display: flex; align-items: center; gap: 12px; text-align: left; padding: 12px 0; border: 0; background: transparent; color: inherit; }
.nearby-audio-list button > img { width: 56px; height: 56px; object-fit: cover; flex-shrink: 0; border-radius: 6px; }
.nearby-audio-list button > .svg-icon { width: 24px; height: 24px; color: #007e79; flex-shrink: 0; }
.nearby-audio-list button > span { flex: 1; min-width: 0; }
.nearby-audio-list strong, .nearby-audio-list small { display: block; line-height: 1.5; overflow-wrap: anywhere; }
.nearby-audio-list strong { font-size: 14px; }
.nearby-audio-back { display: flex; align-items: center; gap: 4px; background: transparent; color: #126db4; border: 0; min-height: 44px; margin-bottom: 8px; }
.nearby-audio-dialog .audio-story { padding: 0; border: 0; background: transparent; box-shadow: none; }
.nearby-audio-dialog .audio-story h3 { font-size: 18px; line-height: 1.5; overflow-wrap: anywhere; }
.nearby-audio-dialog .audio-story details { margin-top: 16px; }
.nearby-audio-dialog .audio-story p { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.6; }
.nearby-audio-dialog .live-map.nearby-audio-map { height: 240px; min-height: 240px; width: 100%; margin: 12px 0 0; border-radius: 6px; }
.nearby-audio-dialog [hidden] { display: none !important; }
.nearby-audio-privacy { color: #607282; font-size: 12px; line-height: 1.6; margin: 20px 0 8px; }
.nearby-audio-credit { color: #126db4; font-size: 12px; }
.gps-diagnostics { margin-top: 20px; padding-block: 12px; border-top: 1px solid #e3eaf0; font-size: 12px; }
.gps-diagnostics summary { cursor: pointer; min-height: 32px; font-weight: 600; color: #126db4; }
.gps-diagnostics dl { margin: 8px 0; }
.gps-diagnostics dl > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; padding: 6px 0; border-bottom: 1px solid #edf2f5; }
.gps-diagnostics dt { color: #607282; }
.gps-diagnostics dd { margin: 0; text-align: right; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.gps-diagnostics p { line-height: 1.5; color: #607282; }
.gps-diagnostics button { min-height: 44px; }
.gps-diagnostics textarea { width: 100%; height: 140px; margin-top: 8px; font-size: 12px; }
@media (max-width: 600px) {
  .nearby-audio-dialog { width: 100%; max-width: none; max-height: 85dvh; margin: auto 0 0; border: 0; border-radius: 8px 8px 0 0; padding-bottom: env(safe-area-inset-bottom, 0px); }
}
@media (prefers-reduced-motion: reduce) { .nearby-audio-switch::after { transition: none; } }
.notification-bell{position:relative}
.notification-badge{position:absolute;top:7px;right:8px;width:7px;height:7px;background:#e33f55;border-radius:50%;border:1px solid #fff}
.notification-badge[hidden]{display:none}
.notification-page{padding:20px 0}
.notification-page h1{font-size:20px;line-height:1.4;margin:0;overflow-wrap:anywhere}
.notification-page .section-head{gap:12px}
.notification-list{list-style:none;padding:0;margin:14px 0}
.notification-list li{border-bottom:1px solid #e7ecf2}
.notification-item{display:grid;grid-template-columns:24px minmax(0,1fr) 20px;gap:12px;align-items:center;width:100%;min-height:76px;padding:14px 0;border:0;background:transparent;text-align:left;color:#233147}
.notification-item>svg:first-child{color:#2166e7}
.notification-item strong{display:block;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.notification-item small{display:block;font-size:12px;color:#647385;line-height:1.5;margin-top:4px;overflow-wrap:anywhere}
