html, body, #root, .app-shell { min-height: 100%; min-height: 100dvh; }
.brand-logo { object-fit: contain; object-position: left center; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, a:focus-visible {
  outline: 3px solid rgba(92, 132, 255, .48);
  outline-offset: 2px;
}
.branch-list, .detail-card, .branch-editor-content, .search-suggestions {
  scrollbar-width: thin;
  scrollbar-color: #8295aa transparent;
}
.branch-list::-webkit-scrollbar, .detail-card::-webkit-scrollbar, .branch-editor-content::-webkit-scrollbar, .search-suggestions::-webkit-scrollbar { width: 8px; }
.branch-list::-webkit-scrollbar-thumb, .detail-card::-webkit-scrollbar-thumb, .branch-editor-content::-webkit-scrollbar-thumb, .search-suggestions::-webkit-scrollbar-thumb {
  background: #8295aa;
  border: 2px solid transparent;
  border-radius: 999px;
  background-clip: padding-box;
}
.status-select select:disabled, .editor-form input:read-only, .editor-form textarea:read-only { cursor: not-allowed; opacity: .72; }
.search-suggestions button:focus-visible { background: #edf3ff; }
.map-notice { pointer-events: none; }

@media (max-width: 759px) {
  .topbar { height: calc(134px + env(safe-area-inset-top)); padding-top: env(safe-area-inset-top); }
  .map-wrap { inset: calc(134px + env(safe-area-inset-top)) 0 0; }
  .sidebar { top: calc(134px + env(safe-area-inset-top)); }
  .open-panel { top: calc(150px + env(safe-area-inset-top)); min-height: 44px; }
  .detail-card { max-height: calc(100dvh - 154px - env(safe-area-inset-bottom)); }
  .branch-editor { max-height: calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); }
  .branch-editor-content { overscroll-behavior: contain; }
  .edit-toolbar { bottom: max(10px, env(safe-area-inset-bottom)); max-height: calc(100dvh - 24px); overflow-y: auto; }
  .icon-button, .admin-button, .secondary-action, .global-search > button, .branch-editor > header > button { min-width: 44px; min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
}
