/* Polaris — base styles. */

* { margin: 0; padding: 0; box-sizing: border-box; }

html, body, #app { height: 100%; }

body {
  background: var(--bg);
  color: var(--text);
  font: 15px/1.5 var(--font-ui);
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color-scheme: dark;
}

#app { display: flex; min-height: 0; height: 100vh; height: 100dvh; }

body { overflow: hidden; }

button, input, select, textarea { font-family: inherit; }

/* Keep the target larger than the icon or label on both mouse and touch UIs. */
:where(button, input, select, textarea, summary, a[href], [role="button"]) {
  min-width: 32px;
  min-height: 32px;
}

h1 {
  font-size: 20px;
  letter-spacing: 0.35em;
  font-weight: 600;
}

.tagline { color: var(--text-muted); font-size: 12px; letter-spacing: 0.08em; }

h2 {
  font-size: 10.5px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 600;
}

[hidden] { display: none !important; }

.hint {
  font-size: 12px;
  line-height: 1.6;
  color: var(--text-muted);
}

.hint b { color: var(--text); }

/* Keyboard users could reach most controls and see nothing when they did:
   hover states existed, focus states largely did not. :focus-visible keeps it
   off mouse clicks. */
:focus-visible {
  /* Controls may suppress :focus; keyboard focus must remain visible. */
  outline: var(--ring) !important;
  outline-offset: 2px;
}

/* Thin, dark scrollbars keep scrollable content discoverable. */
* {
  scrollbar-width: thin;
  scrollbar-color: var(--border-strong) var(--bg);
}
*::-webkit-scrollbar { width: 6px; height: 6px; }
*::-webkit-scrollbar-track { background: var(--bg); }
*::-webkit-scrollbar-thumb {
  background: var(--border-strong);
  border-radius: var(--r-sm);
}
*::-webkit-scrollbar-thumb:hover { background: var(--text-faint); }

/* Include pseudo-elements, loading feedback, and vendored Leaflet effects. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
