/**
 * @file map-saved-places.css
 * @purpose Compact folder navigation and accessible minimal saved-place dialogs.
 * @dependencies Shared notification panel shell; saved places and dialog controllers.
 * @public .saved-places-list, .saved-places-controls, .place-dialog.
 * @sideEffects Styles only saved-place controls and their native modal backdrop.
 */
/* ----- Sidebar rows and bounded pagination ----- */
.saved-places-list { list-style: none; padding: 0; margin: 0; }
.saved-places-list li { display: flex; align-items: center; gap: 6px; border-bottom: 1px solid #454b53; }
.saved-places-list button, .saved-places-controls button { border: 0; background: transparent; color: #fff; font: inherit; cursor: pointer; }
.saved-place-visit { flex: 1; min-width: 0; padding: 14px 2px; font-size: 13px !important; text-align: left; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.saved-place-visit small { display: block; margin-top: 5px; color: #d5d9de; font-size: 12px; white-space: pre-wrap; }
.saved-folder-visit::before { content: '▱'; margin-right: 8px; }
.saved-place-delete { padding: 6px 10px; font-size: 22px !important; }
.saved-places-controls { display: flex; justify-content: space-between; gap: 8px; margin: 5px 0; }
.saved-places-controls button { min-width: 36px; min-height: 36px; font-size: 24px; }
.saved-places-controls button:last-child { margin-left: auto; }
.saved-places-controls[hidden] { display: none; }
.saved-places-list button:hover, .saved-places-controls button:hover { background: #3b424c; }
.saved-places-list button:focus-visible, .saved-places-controls button:focus-visible { outline: 2px solid #b8d2ff; outline-offset: -2px; }
.saved-places-list button:disabled, .saved-places-controls button:disabled { opacity: .4; cursor: default; }
/* ----- Native dialogs retain focus trapping, Escape and mobile viewport bounds ----- */
.place-dialog { width: min(360px, calc(100vw - 32px)); box-sizing: border-box; max-height: calc(100dvh - 32px); overflow: auto; padding: 22px; border: 1px solid #d8dce1; border-radius: 10px; background: #fff; color: #20252b; font-family: inherit; box-shadow: 0 16px 60px #0004; }
.place-dialog::backdrop { background: #1118; }
.place-dialog h2 { margin: 0 0 18px; font-size: 18px; }
.place-dialog label { display: block; margin-top: 14px; font-size: 13px; font-weight: 600; }
.place-dialog input, .place-dialog textarea, .place-dialog select { display: block; width: 100%; box-sizing: border-box; margin-top: 6px; padding: 10px; border: 1px solid #bfc5ce; border-radius: 5px; background: #fff; color: #20252b; font: inherit; font-size: 16px; }
.place-dialog textarea { resize: vertical; }
.place-dialog button { min-height: 40px; padding: 8px 14px; border: 1px solid #bcc3cc; border-radius: 5px; background: #fff; color: #252a32; font: inherit; cursor: pointer; }
.place-dialog button:hover { background: #edf0f4; }
.place-dialog :focus-visible { outline: 2px solid #3268ab; outline-offset: 2px; }
.place-dialog :disabled { opacity: .5; cursor: wait; }
.place-dialog-actions, .place-picker-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.place-picker-actions { margin-top: 8px; }
.place-picker-actions button:last-child { margin-left: auto; }
.place-dialog .place-danger { background: #c72d36; border-color: #c72d36; color: #fff; }
.place-dialog .place-danger:hover { background: #a61d27; }
.place-dialog-error { color: #ae202a; font-size: 13px; margin: 12px 0 0; }
.place-dialog-error:empty { display: none; }
