/* Layout and accessibility only: existing palette and surfaces are preserved. */
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
button:disabled { cursor: wait; opacity: .6; }
.place-item { cursor: pointer; }
.place-item:focus-visible { outline-offset: -3px; }
.place-name span:last-child, .saved-popup-title { overflow-wrap: anywhere; white-space: normal; }
.place-type-options { display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px; }
.place-type-options .option-btn { min-height:44px;height:auto!important; }
.collection-nav {display:flex;gap:8px;padding:8px 0 16px;}
.collection-nav button {flex:1;justify-content:center;}
.account-tools {margin-top:24px;padding-top:16px;border-top:1px solid currentColor;font-size:14px;line-height:1.6;}
.account-tools button {margin:0 8px 8px 0;}
.visit-editor {margin:16px 0;line-height:1.6;}
.visit-editor label,.visit-editor input,.visit-editor textarea {display:block;width:100%;margin:8px 0;}
.visit-editor li {margin:8px 0;}
.visit-editor li button {margin-left:12px;}
.journal-card {max-width:640px;width:min(90vw,640px);padding:24px;max-height:85dvh;overflow:auto;}
.journal-card article {padding:16px 0;border-bottom:1px solid currentColor;}
.profile-diary-link {display:flex;align-items:center;justify-content:space-between;width:100%;margin:-12px 0 14px;padding:10px 12px;border:1px solid currentColor;border-radius:10px;background:transparent;color:inherit;font:inherit;font-size:13px;cursor:pointer;}
.profile-diary-link:hover {text-decoration:underline;}
.journal-month {margin:22px 0 4px;font-size:12px;font-weight:650;text-transform:capitalize;}
.journal-entry {display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:start;gap:12px;}
.journal-entry time {font-size:12px;white-space:nowrap;}
.journal-entry h4 {margin:0;font-size:14px;line-height:1.4;}
.journal-entry p {margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5;}
.journal-entry button {white-space:nowrap;}
@media(max-width:520px){.journal-entry {grid-template-columns:48px minmax(0,1fr);}.journal-entry button {grid-column:2;justify-self:start;}}
#offlinePlacesDialog {width:min(620px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:0;border:0;background:transparent;color:inherit;}
#offlinePlacesDialog .offline-card {max-height:calc(100dvh - 32px);overflow-y:auto;padding:18px;}
#offlinePlacesDialog header {display:flex;align-items:center;justify-content:space-between;gap:12px;}
#offlinePlacesDialog h2 {margin:0;font-size:18px;}
#offlineUpdatedAt {font-size:12px;line-height:1.5;}
.offline-place {padding:10px 0;border-top:1px solid currentColor;}
.offline-place summary {cursor:pointer;font-weight:650;line-height:1.4;}
.offline-place p {font-size:13px;line-height:1.5;margin:7px 0;}
.offline-description {white-space:pre-wrap;overflow-wrap:anywhere;}
#loginOfflinePlaces[hidden] {display:none!important;}
.place-draft-notice {display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid currentColor;font-size:12px;}
.place-draft-notice[hidden] {display:none!important;}
.place-draft-notice span {flex:1 1 150px;}
.place-draft-notice button {min-height:36px;padding:5px 9px;border:1px solid currentColor;border-radius:8px;background:transparent;color:inherit;font:inherit;cursor:pointer;}
#photoBatchStatus:empty {display:none;}
#photoBatchStatus {font-size:12px;line-height:1.4;}
.elevation-unavailable {font-size:13px;line-height:1.4;padding:8px;}
#connectionStatus {position:fixed;top:8px;left:50%;transform:translateX(-50%);z-index:9999;padding:10px 16px;border:1px solid currentColor;border-radius:12px;background:var(--color-bg,#0f172a);color:var(--color-text,#f8fafc);width:max-content;max-width:90vw;}
#connectionStatus[hidden] {display:none!important;}
#connectionStatus button {border:0;background:none;color:inherit;text-decoration:underline;font:inherit;cursor:pointer;}
.leaflet-control-attribution {display:block!important;visibility:visible!important;font-size:10px!important;max-width:min(80vw,600px);}
#publishShareBtn {margin-bottom:16px;min-height:44px;}
#shareModalOverlay button,#settingsModal button {min-height:44px;}
#shareModalOverlay input[type=checkbox] {min-width:24px;min-height:24px;}
@media(max-width:768px) {
  input,textarea,select {font-size:16px!important;}
  .mobile-nav .nav-btn {min-width:44px;min-height:48px;font-size:12px;flex:1;}
  .mobile-nav {gap:4px;padding-bottom:env(safe-area-inset-bottom,0px);}
  .saved-popup-title {font-size:20px!important;line-height:1.3!important;-webkit-line-clamp:unset!important;max-height:none!important;}
  .custom-modern-saved-popup .leaflet-popup-content {max-height:65dvh;overflow-y:auto;overscroll-behavior:contain;}
  .saved-popup-actions button,.leaflet-popup-close-button {min-width:44px!important;min-height:44px!important;}
  .place-details-modal-card,.share-modal-card {max-height:85dvh!important;overflow:auto;}
  .place-location {display:none;}
  .leaflet-bottom {bottom:80px;}
  dialog .card,dialog .login-card {max-height:90dvh;overflow-y:auto;}
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {animation:none!important;transition:none!important;scroll-behavior:auto!important;}
}
