/**
 * Design tokens — the single source of truth for color, type, radii and motion.
 * Values are transcribed from IMAGEHUNTER_RESTYLE_WORKORDER.md §3.2.
 *
 * Light semantics live on bare :root so every token is always defined. Dark is
 * applied only by an explicit data-theme="dark" toggle; the work order also
 * describes a prefers-color-scheme block, which is intentionally omitted so the
 * OS can never change the theme on its own.
 *
 * Never redefine a token outside this file, and never hardcode a raw color in a
 * component. --text-on-brand flips to ink in dark theme, so #fff on an olive
 * button is always wrong.
 */

:root {
  /* ---- primitives: identical in both themes ---- */
  --olive-50: #f6f7f1;
  --olive-100: #eaecdf;
  --olive-200: #d2d6ba;
  --olive-300: #b4bc8c;
  --olive-400: #929e59;
  --olive-500: #7a8835;
  --olive-600: #687819;
  --olive-700: #576515;
  --olive-800: #454f10;
  --olive-900: #323a0c;

  --navy-50: #f2f3f5;
  --navy-100: #e1e4e8;
  --navy-200: #bfc4cd;
  --navy-300: #949eac;
  --navy-400: #657387;
  --navy-500: #43536c;
  --navy-600: #293c58;
  --navy-700: #22324a;
  --navy-800: #1b283a;
  --navy-900: #141d2a;

  --n-0: #ffffff;
  --n-25: #fefff7;
  --n-50: #f6f8eb;
  --n-100: #eff1e2;
  --n-200: #e2e5d2;
  --n-300: #c9ccba;
  --n-400: #9ea394;
  --n-500: #75796c;
  --n-600: #545849;
  --n-700: #3a3e32;
  --n-800: #22261d;
  --n-850: #15161c;
  --n-900: #0b0b14;
  --n-950: #000012;

  --font-sans: "Schibsted Grotesk", "Figtree", ui-sans-serif, system-ui,
    -apple-system, "Segoe UI", sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", "Roboto Mono",
    Menlo, monospace;

  --radius-pill: 999px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-2xl: 40px;

  --container: 1240px;
  --container-narrow: 1040px;
  --gutter: 30px;
  --control-h: 44px;
  --control-h-sm: 36px;
  --control-h-xs: 28px;
  --header-h: 48px;
  --drawer-w: 470px;
  --tap-min: 44px;

  --ease: cubic-bezier(0.2, 0, 0, 1);
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
  --dur-fast: 120ms;
  --dur: 200ms;
  --dur-slow: 320ms;

  /* ---- space scale, §2.7 (4px base) ---- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-30: 120px;

  /* ---- type scale, §2.6 ----
     The work order names these --text-display / --text-label-sm etc., but
     --text-* is already the color namespace here (--text, --text-muted). Split
     into fs/lh/ls triplets so a size can never be mistaken for a color:
     --fs-label-sm is the work order's --text-label-sm. */
  --fs-display: 56px;
  --lh-display: 60px;
  --ls-display: -0.01em;
  --fs-h1: 48px;
  --lh-h1: 54px;
  --ls-h1: -0.01em;
  --fs-h2: 40px;
  --lh-h2: 46px;
  --ls-h2: -0.005em;
  --fs-h3: 32px;
  --lh-h3: 38px;
  --fs-h4: 24px;
  --lh-h4: 30px;
  --fs-h5: 20px;
  --lh-h5: 26px;
  --fs-body-lg: 18px;
  --lh-body-lg: 28px;
  --fs-body: 16px;
  --lh-body: 24px;
  --fs-body-sm: 14px;
  --lh-body-sm: 20px;
  --fs-caption: 12px;
  --lh-caption: 16px;
  /* mono + uppercase only — §2.6's "system voice" rule */
  --fs-label: 16px;
  --lh-label: 20px;
  --ls-label: 0.14em;
  --fs-label-sm: 14px;
  --lh-label-sm: 18px;
  --ls-label-sm: 0.12em;
  --fs-label-xs: 12px;
  --lh-label-xs: 16px;
  --ls-label-xs: 0.1em;

  /* ---- LIGHT semantics: on bare :root so they are always present ---- */
  --bg: var(--n-50);
  --surface: var(--n-25);
  --surface-raised: var(--n-0);
  --surface-sunken: var(--n-100);
  --surface-brand: var(--olive-600);
  --surface-accent: var(--navy-600);
  --surface-inverse: var(--n-950);

  --text: var(--n-950);
  --text-muted: var(--n-600);
  --text-subtle: var(--n-500);
  --text-brand: var(--olive-600);
  --text-brand-strong: var(--olive-700);
  --text-accent: var(--navy-600);
  --text-on-brand: #ffffff;

  /* §4.1 primary button. Kept separate from --surface-brand, which is the
     full-bleed marketing band: in dark theme that band is olive-800 and cannot
     carry the ink label the spec calls for. */
  --btn-primary-bg: var(--olive-600);
  --btn-primary-bg-hover: var(--olive-700);
  --btn-primary-fg: #ffffff;
  --text-on-accent: #ffffff;

  /* §4.6 selected table row. A semantic name because the fill flips ends of the
     olive ramp between themes, not just its lightness. */
  --row-selected: var(--olive-50);

  --border: var(--n-200);
  --border-strong: #8c9180;
  --track: var(--border);
  --border-on-accent: #8794a8;
  --border-table: #e4e7ec;
  --border-rule: var(--navy-600);
  --blueprint: #d9ddc7;

  --danger: #a3341c;
  --danger-bg: #fbe9e3;
  --warning: #8a5b00;
  --warning-bg: #fbf0da;
  --success: #2f6b3a;
  --success-bg: #e6f2e8;
  --info: var(--navy-600);
  --info-bg: #e7ecf3;

  --focus-ring: var(--olive-700);

  /* Translucent brand washes, for selected/active fills that must let the
     surface beneath show through. Literal rgba because the alpha has to ride on
     the brand hue, and var() cannot be interpolated into a color function on
     this build's PostCSS. */
  --brand-tint-weak: rgba(104, 120, 25, 0.1);
  --brand-tint: rgba(104, 120, 25, 0.22);
  --brand-tint-strong: rgba(104, 120, 25, 0.5);

  /* §4.7 dialog scrim, reused by ClipPage's blocking overlays. */
  --scrim: rgba(0, 0, 18, 0.5);

  --shadow-sm: 0 1px 2px rgba(0, 0, 18, 0.04), 0 1px 1px rgba(0, 0, 18, 0.03);
  --shadow-md: 0 4px 12px rgba(0, 0, 18, 0.05), 0 1px 3px rgba(0, 0, 18, 0.04);
  --shadow-lg: 0 12px 28px rgba(0, 0, 18, 0.06), 0 2px 6px rgba(0, 0, 18, 0.04);
  --shadow-xl: 0 24px 48px rgba(0, 0, 18, 0.07), 0 4px 10px rgba(0, 0, 18, 0.05);

  /* Basemap canvas (Roads / Terrain). Snazzy tile color is sampled, not tokenized
     into the Maps JSON — Maps cannot read var(). Used by the Gulf label + empty canvas. */
  --map-water: #6ccde1;
  --map-water-label: #1e5360;
  --map-land: #f6f8eb;
  --map-park: #b4bc8c;
  --map-highway: #e2d4a4;
  --map-canvas: var(--map-water);
}

/* ---- DARK: explicit toggle only ---- */
:root[data-theme="dark"] {
  --bg: var(--n-950);
  --surface: var(--n-850);
  --surface-raised: #20222a;
  --surface-sunken: var(--n-900);
  --surface-brand: var(--olive-800);
  --surface-accent: var(--navy-600);
  --surface-inverse: var(--n-50);

  --text: var(--n-50);
  --text-muted: #a8ac9c;
  --text-subtle: #7e8274;
  --text-brand: #a6b84e;
  --text-brand-strong: #becc77;
  --text-accent: #8fb0d9;
  --text-on-brand: var(--n-950);

  --btn-primary-bg: var(--olive-500);
  --btn-primary-bg-hover: var(--olive-400);
  --btn-primary-fg: var(--n-950);
  --text-on-accent: #ffffff;

  --row-selected: var(--olive-900);

  --border: #2e303a;
  --border-strong: #63677a;
  --track: #3a3d48;
  --border-on-accent: #8794a8;
  --border-table: #282a33;
  --border-rule: #8fb0d9;
  --blueprint: #14141f;

  --danger: #f0906f;
  --danger-bg: #31150d;
  --warning: #e8b04a;
  --warning-bg: #2e2007;
  --success: #78c489;
  --success-bg: #10240f;
  --info: #8fb0d9;
  --info-bg: #111a28;

  --focus-ring: #becc77;

  --brand-tint-weak: rgba(166, 184, 78, 0.12);
  --brand-tint: rgba(166, 184, 78, 0.24);
  --brand-tint-strong: rgba(166, 184, 78, 0.55);

  --scrim: rgba(0, 0, 0, 0.7);

  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.5);
  --shadow-lg: 0 12px 28px rgba(0, 0, 0, 0.55);
  --shadow-xl: 0 24px 48px rgba(0, 0, 0, 0.6);

  --map-water: #1c7689;
  --map-water-label: #d5e4e8;
  --map-land: #14241c;
  --map-park: #1a3324;
  --map-highway: #1a1e22;
  --map-canvas: var(--map-water);
}

/*
 * §4.9 on-dark-photo card. §5 carves out one exception to the theme: panels
 * sitting directly on the map keep this treatment in BOTH themes, because a
 * cream panel over satellite imagery has no edge definition. So these live
 * outside the two theme blocks and deliberately do not flip.
 *
 * Deviation from §4.9, which specifies rgba(255,255,255,.07): that is a wash for
 * cards on a known-dark hero image. These panels float over arbitrary imagery
 * (snow, desert, ocean), so anything carrying text gets --photo-scrim instead —
 * the same reasoning as the §6.1 casing rule.
 */
@media (max-width: 767px) {
  :root {
    --drawer-w: 100vw;
    --gutter: 16px;
  }
}

:root {
  --photo-card: rgba(255, 255, 255, 0.07);
  --photo-card-border: rgba(255, 255, 255, 0.12);
  --photo-scrim: rgba(0, 0, 18, 0.78);
  --photo-text: #ffffff;
  --photo-text-muted: rgba(255, 255, 255, 0.78);
}

/**
 * Filter control primitives. Token-only. Used by the filter panel and chip popovers.
 */

/* ---- FilterRow ------------------------------------------------------- */

.ui-filter-row {
  display: grid;
  grid-template-columns: 104px 1fr auto;
  -ms-flex-align: center;
      align-items: center;
  gap: 14px;
  height: calc(var(--control-h) + var(--space-3));
  min-width: 0;
}

.ui-filter-row-label {
  font-family: var(--font-mono);
  font-size: var(--fs-label-xs);
  line-height: var(--lh-label-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  white-space: nowrap;
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis;
}

.ui-filter-row.is-set .ui-filter-row-label {
  color: var(--text);
}

.ui-filter-row-control {
  min-width: 0;
}

.ui-filter-row-value {
  justify-self: end;
  min-width: 0;
}

.ui-filter-row.has-no-control .ui-filter-row-value {
  grid-column: 2 / -1;
}

@media (max-width: 360px) {
  .ui-filter-row {
    grid-template-columns: 104px 1fr;
    height: auto;
    padding-block: 10px;
  }

  .ui-filter-row-value {
    grid-column: 2;
    justify-self: end;
  }
}

.ui-filter-group {
  border-bottom: 1px solid var(--border);
}

.ui-popover-body > .ui-filter-group {
  border-bottom: 0;
}

.ui-popover-body .ui-filter-row:not(.has-no-control) {
  grid-template-columns: 104px 1fr;
  height: auto;
  min-height: calc(var(--control-h) + var(--space-3));
  padding-top: var(--space-2);
  padding-bottom: var(--space-3);
  row-gap: var(--space-3);
}

.ui-popover-body .ui-filter-row:not(.has-no-control) .ui-filter-row-value {
  grid-column: 2;
  grid-row: 1;
}

.ui-popover-body .ui-filter-row:not(.has-no-control) .ui-filter-row-control {
  grid-column: 1 / -1;
  grid-row: 2;
  width: 100%;
  min-width: 0;
}

/* ---- Slider ---------------------------------------------------------- */

.ui-slider {
  --pct: 0%;
  position: relative;
  height: 18px;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
}

.ui-slider-input {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  width: 100%;
  height: 18px;
  margin: 0;
  background: transparent;
  cursor: pointer;
}

.ui-slider-input:focus {
  outline: none;
}

.ui-slider-input:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

.ui-slider-input::-webkit-slider-runnable-track {
  height: 4px;
  border-radius: var(--radius-pill);
  background: -webkit-gradient(
    linear,
    left top, right top,
    from(var(--slider-fill, transparent)),
    color-stop(var(--slider-fill, transparent)),
    color-stop(var(--track)),
    to(var(--track))
  );
  background: -webkit-linear-gradient(
    left,
    var(--slider-fill, transparent) 0%,
    var(--slider-fill, transparent) var(--pct),
    var(--track) var(--pct),
    var(--track) 100%
  );
  background: linear-gradient(
    to right,
    var(--slider-fill, transparent) 0%,
    var(--slider-fill, transparent) var(--pct),
    var(--track) var(--pct),
    var(--track) 100%
  );
}

.ui-slider-input::-moz-range-track {
  height: 4px;
  border-radius: var(--radius-pill);
  background: var(--track);
}

.ui-slider-input::-moz-range-progress {
  height: 4px;
  border-radius: var(--radius-pill);
  background: var(--slider-fill, transparent);
}

.ui-slider-input::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  margin-top: -7px;
  border-radius: 50%;
  background: var(--surface-raised);
  border: 2px solid var(--thumb-border, var(--border-strong));
  -webkit-box-shadow: none;
          box-shadow: none;
}

.ui-slider-input::-moz-range-thumb {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--surface-raised);
  border: 2px solid var(--thumb-border, var(--border-strong));
  box-shadow: none;
}

.ui-slider.is-set {
  --slider-fill: var(--surface-brand);
  --thumb-border: var(--surface-brand);
}

.ui-slider:not(.is-set) {
  --slider-fill: transparent;
  --thumb-border: var(--border-strong);
}

/* ---- Dual slider ----------------------------------------------------- */

.ui-dual {
  position: relative;
  height: 18px;
}

.ui-dual-rail {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 4px;
  margin-top: -2px;
  border-radius: var(--radius-pill);
  background: var(--track);
}

.ui-dual-fill {
  position: absolute;
  top: 50%;
  height: 4px;
  margin-top: -2px;
  border-radius: var(--radius-pill);
  background: var(--surface-brand);
  pointer-events: none;
}

.ui-dual:not(.is-set) .ui-dual-fill {
  display: none;
}

.ui-dual-input {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 18px;
  margin: 0;
  background: transparent;
  pointer-events: none;
}

.ui-dual-input:focus {
  outline: none;
}

.ui-dual-input:focus-visible::-webkit-slider-thumb {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

.ui-dual-input:focus-visible::-moz-range-thumb {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

.ui-dual-input::-webkit-slider-runnable-track {
  height: 4px;
  background: transparent;
}

.ui-dual-input::-moz-range-track {
  height: 4px;
  background: transparent;
  border: none;
}

.ui-dual-input::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  pointer-events: auto;
  width: 18px;
  height: 18px;
  margin-top: -7px;
  border-radius: 50%;
  background: var(--surface-raised);
  border: 2px solid var(--thumb-border, var(--border-strong));
  cursor: pointer;
}

.ui-dual-input::-moz-range-thumb {
  pointer-events: auto;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--surface-raised);
  border: 2px solid var(--thumb-border, var(--border-strong));
  cursor: pointer;
}

.ui-dual.is-set {
  --thumb-border: var(--surface-brand);
}

.ui-dual:not(.is-set) {
  --thumb-border: var(--border-strong);
}

/* ---- Number field ---------------------------------------------------- */

.ui-number {
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  height: 34px;
  padding: 0 4px 0 10px;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-pill);
  background: var(--surface-raised);
  white-space: nowrap;
}

.ui-number-input {
  width: 36px;
  min-width: 0;
  border: 0;
  background: transparent;
  color: var(--text);
  font-family: var(--font-mono);
  font-size: var(--fs-body-sm);
  line-height: var(--lh-body-sm);
  font-variant-numeric: tabular-nums;
  text-align: right;
  -webkit-appearance: textfield;
          appearance: textfield;
  -moz-appearance: textfield;
}

.ui-number-input::-webkit-outer-spin-button,
.ui-number-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
}

.ui-number-input:focus {
  outline: none;
}

.ui-number:focus-within {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

.ui-number-unit {
  margin-left: 2px;
  font-family: var(--font-mono);
  font-size: var(--fs-label-xs);
  line-height: var(--lh-label-xs);
  color: var(--text-muted);
}

.ui-number-steppers {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  margin-left: 4px;
}

.ui-number-step {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
  width: 22px;
  height: 13px;
  padding: 0;
  border: 0;
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  line-height: 1;
}

.ui-number-step:hover,
.ui-number-step:focus-visible {
  color: var(--text);
  background: var(--surface-sunken);
}

.ui-number-step:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

.ui-number-pair .ui-number-input {
  width: 2.8em;
}

.ui-number-dash {
  color: var(--text-subtle);
  padding: 0 2px;
  font-family: var(--font-mono);
}

/* ---- Date field ------------------------------------------------------ */

.ui-date-field {
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex: 1 1;
      flex: 1 1;
  min-width: 0;
  height: 38px;
  padding: 0 4px 0 12px;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-pill);
  background: var(--surface-raised);
}

.ui-date-field .ui-date-picker,
.ui-date-field .MuiFormControl-root {
  width: 100%;
  margin: 0 !important;
  min-width: 0;
}

.ui-date-field .MuiFormHelperText-root {
  display: none;
}

.ui-date-field .MuiInput-root,
.ui-date-field .MuiInputBase-root {
  height: 38px;
  color: var(--text);
}

.ui-date-field .MuiInput-underline:before,
.ui-date-field .MuiInput-underline:after,
.ui-date-field .MuiInput-underline:hover:not(.Mui-disabled):before {
  display: none;
  border: 0;
}

.ui-date-field .MuiInputBase-input {
  width: auto;
  min-width: 0;
  padding: 0;
  font-family: var(--font-mono);
  font-size: var(--fs-body-sm);
  line-height: var(--lh-body-sm);
  font-variant-numeric: tabular-nums;
  color: var(--text);
}

.ui-date-field .MuiIconButton-root {
  width: 28px;
  height: 28px;
  padding: 0;
  color: var(--text-muted);
}

.ui-date-field .MuiIconButton-root svg,
.ui-date-field .MuiSvgIcon-root {
  color: currentColor;
  fill: currentColor;
}

.ui-date-field .MuiIconButton-root:hover,
.ui-date-field .MuiIconButton-root:focus-visible {
  color: var(--text);
}

.ui-date-field .MuiIconButton-root:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

.ui-date-field .MuiInputAdornment-root {
  height: 28px;
  margin: 0;
}

.ui-date-fields {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  gap: 14px;
  height: calc(var(--control-h) + var(--space-3));
  min-width: 0;
}

.ui-date-range {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  gap: var(--space-2);
  min-width: 0;
  -ms-flex: 1 1 auto;
      flex: 1 1 auto;
  width: 100%;
}

.ih-recurring {
  padding: var(--space-2) 0 var(--space-3);
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  gap: var(--space-2);
}

.ui-date-range-dash {
  color: var(--text-subtle);
  font-family: var(--font-mono);
}

/* ---- Segmented control ----------------------------------------------- */

.ui-seg {
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-align: center;
      align-items: center;
  padding: 3px;
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  background: var(--surface-sunken);
  gap: 0;
}

.ui-seg-btn {
  height: 30px;
  padding: 0 10px;
  border: 0;
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--text-muted);
  font-family: var(--font-mono);
  font-size: var(--fs-label-xs);
  line-height: var(--lh-label-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  white-space: nowrap;
}

.ui-seg-btn.is-on {
  background: var(--btn-primary-bg);
  color: var(--btn-primary-fg);
}

.ui-seg-btn:focus {
  outline: none;
}

.ui-seg-btn:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

/* ---- Chip row -------------------------------------------------------- */

.ui-chip-row {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-pack: end;
      justify-content: flex-end;
  gap: 6px;
}

.ui-filter-row .ui-chip-row {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
}

.ui-chip {
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-align: center;
      align-items: center;
  gap: var(--space-1);
  height: var(--control-h-xs);
  padding: 0 10px;
  white-space: nowrap;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--text-muted);
  font-family: var(--font-mono);
  font-size: var(--fs-label-xs);
  line-height: var(--lh-label-xs);
  letter-spacing: 0.07em;
  text-transform: uppercase;
  cursor: pointer;
}

.ui-chip.is-on {
  background: var(--btn-primary-bg);
  color: var(--btn-primary-fg);
  border-color: transparent;
}

.ui-chip:focus {
  outline: none;
}

.ui-chip:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

/* ---- Checkbox -------------------------------------------------------- */

.ui-check {
  position: relative;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-align: center;
      align-items: center;
  gap: var(--space-2);
  cursor: pointer;
  min-height: var(--control-h);
}

.ui-check-input {
  position: absolute;
  opacity: 0;
  width: 18px;
  height: 18px;
  margin: 0;
  inset: 0 auto 0 0;
  cursor: pointer;
}

.ui-check-box {
  width: 18px;
  height: 18px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border: 2px solid var(--border-strong);
  border-radius: var(--radius-sm);
  background: transparent;
  -ms-flex: 0 0 18px;
      flex: 0 0 18px;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
  color: var(--btn-primary-fg);
}

.ui-check-input:checked + .ui-check-box {
  background: var(--btn-primary-bg);
  border-color: var(--btn-primary-bg);
}

.ui-check-mark {
  width: 12px;
  height: 12px;
  display: block;
}

.ui-check-input:focus-visible + .ui-check-box {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

.ui-check-label {
  font-size: var(--fs-body-sm);
  line-height: var(--lh-body-sm);
  color: var(--text);
}

/* ---- Footer ---------------------------------------------------------- */

.ui-filter-footer {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  gap: var(--space-2);
  min-height: var(--control-h);
  padding: var(--space-2) 0;
}

.ui-filter-footer-actions {
  margin-left: auto;
  display: -ms-flexbox;
  display: flex;
  gap: var(--space-2);
}

.ui-filter-clear-default {
  border: 0;
  background: transparent;
  padding: 0;
  color: var(--text-brand);
  font-size: var(--fs-caption);
  cursor: pointer;
}

.ui-datasets-count {
  font-family: var(--font-mono);
  font-size: var(--fs-body-sm);
  font-variant-numeric: tabular-nums;
  color: var(--text);
}

.ui-datasets-select {
  min-width: 0 !important;
  height: var(--control-h-sm) !important;
  padding-left: var(--space-3) !important;
  padding-right: var(--space-3) !important;
}

.ui-add-filter-item {
  display: block;
  width: 100%;
  padding: var(--space-2) var(--space-4);
  border: 0;
  background: transparent;
  color: var(--text);
  text-align: left;
  font-family: var(--font-mono);
  font-size: var(--fs-label-sm);
  line-height: var(--lh-label-sm);
  letter-spacing: var(--ls-label-sm);
  text-transform: uppercase;
  cursor: pointer;
}

.ui-add-filter-item:hover,
.ui-add-filter-item:focus-visible {
  background: var(--surface-sunken);
}

.ui-chip-grid {
  display: grid;
  -ms-flex-pack: stretch;
      justify-content: stretch;
  gap: var(--space-2);
}

.ui-chip-row.is-comfortable .ui-chip {
  height: var(--control-h-sm);
}

.ui-month-grid-footer {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-3);
}

.ui-month-grid-count {
  margin-left: auto;
  font-family: var(--font-mono);
  font-size: var(--fs-caption);
  font-variant-numeric: tabular-nums;
  color: var(--text-muted);
}

.ui-year-range-presets {
  display: -ms-flexbox;
  display: flex;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}

.ui-year-range-fields {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  gap: var(--space-3);
  margin-top: var(--space-3);
}

.ui-year-range-count {
  font-family: var(--font-mono);
  font-size: var(--fs-caption);
  font-variant-numeric: tabular-nums;
  color: var(--text-muted);
}

.ui-year-range-note {
  margin: var(--space-2) 0 0;
  font-size: var(--fs-caption);
  line-height: var(--lh-caption);
  color: var(--text-muted);
}

.ui-year-range.is-individual .ui-dual {
  opacity: 0.45;
  pointer-events: none;
}

.ui-text-link {
  display: -ms-inline-flexbox;
  display: inline-flex;
  margin-top: var(--space-3);
  border: 0;
  background: transparent;
  padding: 0;
  color: var(--text-brand);
  font-family: var(--font-mono);
  font-size: var(--fs-label-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}

.ui-repeat-pair {
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-align: center;
      align-items: center;
  gap: 6px;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
}

.ui-filter-row-label {
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-align: center;
      align-items: center;
  gap: 2px;
}

.ui-help {
  display: -ms-inline-flexbox;
  display: inline-flex;
  position: relative;
}

.ui-help-btn {
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 14px;
  height: 14px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--text-subtle);
  cursor: pointer;
}

.ui-help-icon {
  display: block;
}

.ui-help-btn:hover,
.ui-help-btn:focus-visible {
  color: var(--text-brand);
}

.ui-help-btn:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

@media (max-width: 767px) {
  .ui-help-btn {
    width: 18px;
    height: 18px;
  }

  .ui-filter-row {
    grid-template-columns: auto 1fr auto;
    gap: 6px;
  }

  .ui-popover-body .ui-filter-row:not(.has-no-control) {
    grid-template-columns: auto 1fr;
    gap: 8px;
  }

  .ui-filter-row-label {
    overflow: visible;
    min-width: 0;
  }

  .ui-number-pair .ui-number-input {
    width: 2em;
  }

  .ui-filter-row.has-no-control {
    grid-template-columns: 1fr;
    height: auto;
    padding-block: 8px;
  }

  .ui-filter-row.has-no-control .ui-filter-row-value {
    grid-column: 1 / -1;
  }

  .ui-filter-row .ui-chip-row,
  .ui-filter-row.has-no-control .ui-chip-row {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -ms-flex-pack: start;
        justify-content: flex-start;
    width: 100%;
  }

  .ui-chip {
    padding: 0 8px;
    -ms-flex: 1 1 auto;
        flex: 1 1 auto;
    -ms-flex-pack: center;
        justify-content: center;
    min-width: 0;
  }

  .ui-chip .ui-help {
    display: none;
  }

  .ui-date-fields {
    height: auto;
    min-height: calc(var(--control-h) + var(--space-3));
  }

  .ui-date-field-input {
    min-width: 7.2em;
  }
}

.ui-help-body {
  margin: 0;
  padding: var(--space-3) var(--space-4);
  font-size: var(--fs-body-sm);
  line-height: var(--lh-body-sm);
  color: var(--text);
  max-width: 280px;
}

.ui-row-opener {
  display: grid;
  grid-template-columns: 104px 1fr auto;
  -ms-flex-align: center;
      align-items: center;
  gap: 14px;
  width: 100%;
  height: calc(var(--control-h) + var(--space-3));
  padding: 0 var(--space-2);
  margin: 0;
  border: 0;
  border-radius: var(--radius-md);
  background: transparent;
  text-align: left;
  cursor: pointer;
  color: inherit;
}

.ui-row-opener:hover {
  background: var(--surface-sunken);
}

.ui-row-opener:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: -2px;
}

.ui-row-opener.is-set .ui-filter-row-label {
  color: var(--text);
}

.ui-row-opener-value {
  font-family: var(--font-mono);
  font-size: var(--fs-body-sm);
  font-variant-numeric: tabular-nums;
  color: var(--text);
  min-width: 0;
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis;
  white-space: nowrap;
}

.ui-row-opener-chevron {
  font-size: var(--fs-body);
  line-height: 1;
  color: var(--text-muted);
}

.ui-row-opener:hover .ui-row-opener-chevron {
  color: var(--text);
}

.ui-popover {
  position: relative;
  background: var(--surface);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  -webkit-box-shadow: var(--shadow-lg);
          box-shadow: var(--shadow-lg);
}

.ui-popover-arrow {
  position: absolute;
  width: 8px;
  height: 8px;
  background: var(--surface);
  border: 1px solid var(--border);
  -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
          transform: rotate(45deg);
}

.ui-popover-arrow-top {
  bottom: -5px;
  border-top: 0;
  border-left: 0;
}

.ui-popover-arrow-bottom {
  top: -5px;
  border-bottom: 0;
  border-right: 0;
}

.ui-popover-body {
  padding: var(--space-4);
}

.ui-popover-footer {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: end;
      justify-content: flex-end;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  border-top: 1px solid var(--border);
}

.ui-popover-kicker {
  font-family: var(--font-mono);
  font-size: var(--fs-label-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 0 0 var(--space-4);
}

.ui-pill-select {
  height: var(--control-h-sm);
  padding: 0 var(--space-3);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-pill);
  background: var(--surface-raised);
  color: var(--text);
  font-family: var(--font-mono);
  font-size: var(--fs-body-sm);
}

.ui-pill-select:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

.ui-date-field {
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex: 1 1;
      flex: 1 1;
  min-width: 0;
  height: 38px;
  padding: 0 4px 0 12px;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-pill);
  background: var(--surface-raised);
}

.ui-date-field-input {
  -ms-flex: 1 1 auto;
      flex: 1 1 auto;
  min-width: 0;
  border: 0;
  background: transparent;
  color: var(--text);
  font-family: var(--font-mono);
  font-size: var(--fs-body-sm);
  font-variant-numeric: tabular-nums;
}

.ui-date-field-cal {
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
}

.ui-date-field-cal:hover,
.ui-date-field-cal:focus-visible {
  color: var(--text);
}

.ui-date-field-cal:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

.ui-cal {
  padding: var(--space-3) var(--space-4) 0;
}

.ui-cal-nav {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}

.ui-cal-nav-btn {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--text);
  font-size: var(--fs-h5);
  cursor: pointer;
}

.ui-cal-nav-btn:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

.ui-cal-week,
.ui-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, var(--control-h-sm));
  -ms-flex-pack: center;
      justify-content: center;
}

.ui-cal-week span {
  height: var(--control-h-sm);
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
  font-family: var(--font-mono);
  font-size: var(--fs-label-xs);
  letter-spacing: var(--ls-label-xs);
  text-transform: uppercase;
  color: var(--text-muted);
}

.ui-cal-day {
  width: var(--control-h-sm);
  height: var(--control-h-sm);
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--text);
  font-size: var(--fs-body-sm);
  font-variant-numeric: tabular-nums;
  cursor: pointer;
}

.ui-cal-day.is-selected {
  background: var(--surface-brand);
  color: var(--text-on-brand);
}

.ui-cal-day.is-today:not(.is-selected) {
  -webkit-box-shadow: inset 0 0 0 2px var(--border-strong);
          box-shadow: inset 0 0 0 2px var(--border-strong);
}

.ui-cal-day.is-outside {
  color: var(--text-subtle);
}

.ui-cal-day:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

.ui-field {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  gap: var(--space-1);
  margin-bottom: var(--space-4);
}

.ui-field-label {
  font-family: var(--font-mono);
  font-size: var(--fs-label-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.ui-field-input {
  height: var(--control-h);
  padding: 0 var(--space-4);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-pill);
  background: var(--surface-raised);
  color: var(--text);
  font-size: var(--fs-body-sm);
}

.ui-field-area .ui-field-input {
  height: auto;
  min-height: 120px;
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-lg);
  resize: vertical;
}

.ui-field-input.is-error {
  border-color: var(--danger);
}

.ui-radio {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  gap: var(--space-2);
  min-height: var(--control-h);
  cursor: pointer;
}

.ui-radio input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}

.ui-radio-dot {
  width: 18px;
  height: 18px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border: 2px solid var(--border-strong);
  border-radius: 50%;
  -ms-flex: 0 0 18px;
      flex: 0 0 18px;
}

.ui-radio input:checked + .ui-radio-dot {
  border-color: var(--surface-brand);
  -webkit-box-shadow: inset 0 0 0 4px var(--surface-brand);
          box-shadow: inset 0 0 0 4px var(--surface-brand);
}

.ui-radio input:focus-visible + .ui-radio-dot {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

.ui-radio-label {
  font-size: var(--fs-body-sm);
  color: var(--text);
}

.ui-radio.is-disabled {
  opacity: 0.45;
}

.ui-undo {
  position: fixed;
  left: 50%;
  bottom: calc(24px + var(--space-4));
  -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
          transform: translateX(-50%);
  z-index: 1600;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  gap: var(--space-4);
  min-height: var(--control-h);
  padding: 0 var(--space-4);
  background: var(--surface);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  -webkit-box-shadow: var(--shadow-lg);
          box-shadow: var(--shadow-lg);
  font-size: var(--fs-body-sm);
}

.ui-undo-action {
  border: 0;
  background: transparent;
  color: var(--text-brand);
  font-family: var(--font-mono);
  font-size: var(--fs-label-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}

.ih-data-alert {
  max-width: 640px;
  background: var(--surface);
  color: var(--text);
  border-radius: var(--radius-xl);
  border: 1px solid var(--border);
  -webkit-box-shadow: var(--shadow-xl);
          box-shadow: var(--shadow-xl);
}

.ih-data-alert-eyebrow {
  font-family: var(--font-mono);
  font-size: var(--fs-label-sm);
  letter-spacing: var(--ls-label-sm);
  text-transform: uppercase;
  color: var(--text-brand);
  margin: 0 0 var(--space-1);
}

.ih-data-alert-title {
  font-size: var(--fs-h4);
  line-height: var(--lh-h4);
  margin: 0 0 var(--space-4);
}

.ih-data-alert-footer {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: end;
      justify-content: flex-end;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  background: var(--surface-sunken);
  border-top: 1px solid var(--border);
}

.mapboxgl-map{-webkit-tap-highlight-color:rgb(0 0 0/0);font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative}.mapboxgl-canvas{left:0;position:absolute;top:0}.mapboxgl-map:-webkit-full-screen{height:100%;width:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:-webkit-grabbing;cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{-ms-touch-action:pinch-zoom;touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{-ms-touch-action:none;touch-action:none}.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.mapboxgl-ctrl-top-left{left:0;top:0}.mapboxgl-ctrl-top-right{right:0;top:0}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-bottom-right{bottom:0;right:0}.mapboxgl-ctrl{clear:both;pointer-events:auto;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{float:left;margin:10px 0 0 10px}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{float:right;margin:10px 10px 0 0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl{float:left;margin:0 0 10px 10px}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl{float:right;margin:0 10px 10px 0}.mapboxgl-ctrl-group{background:#fff;border-radius:4px}.mapboxgl-ctrl-group:not(:empty){-webkit-box-shadow:0 0 0 2px rgba(0,0,0,.1);box-shadow:0 0 0 2px rgba(0,0,0,.1)}@media (-ms-high-contrast:active){.mapboxgl-ctrl-group:not(:empty){-webkit-box-shadow:0 0 0 2px ButtonText;box-shadow:0 0 0 2px ButtonText}}.mapboxgl-ctrl-group button{background-color:transparent;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;overflow:hidden;padding:0;width:29px}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media (-ms-high-contrast:active){.mapboxgl-ctrl-icon{background-color:transparent}.mapboxgl-ctrl-group button+button{border-top:1px solid ButtonText}}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{-webkit-box-shadow:0 0 2px 2px #0096ff;box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl-group button:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:only-child{border-radius:inherit}.mapboxgl-ctrl button:not(:disabled):hover{background-color:rgb(0 0 0/5%)}.mapboxgl-ctrl-group button:focus:focus-visible{-webkit-box-shadow:0 0 2px 2px #0096ff;box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){-webkit-box-shadow:none;box-shadow:none}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{-webkit-animation:mapboxgl-spin 2s linear infinite;animation:mapboxgl-spin 2s linear infinite}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}}@-webkit-keyframes mapboxgl-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes mapboxgl-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='0.9' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}@media (-ms-high-contrast:active){a.mapboxgl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23000'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{background-color:hsla(0,0%,100%,.5);margin:0;padding:0 5px}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{background-color:#fff;border-radius:12px;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{background-color:hsla(0,0%,100%,.5);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:rgb(0 0 0/5%)}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0;top:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{left:0;top:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.mapboxgl-ctrl-attrib a{color:rgba(0,0,0,.75);text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{background-color:hsla(0,0%,100%,.75);border:2px solid #333;border-top:#333;-webkit-box-sizing:border-box;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px;white-space:nowrap}.mapboxgl-popup{display:-ms-flexbox;display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{-ms-flex-direction:column;flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{-ms-flex-direction:column-reverse;flex-direction:column-reverse}.mapboxgl-popup-anchor-left{-ms-flex-direction:row;flex-direction:row}.mapboxgl-popup-anchor-right{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.mapboxgl-popup-tip{border:10px solid transparent;height:0;width:0;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{-ms-flex-item-align:center;align-self:center;border-bottom-color:#fff;border-top:none}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{-ms-flex-item-align:start;align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{-ms-flex-item-align:end;align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{-ms-flex-item-align:center;align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{-ms-flex-item-align:start;align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{-ms-flex-item-align:end;align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{-ms-flex-item-align:center;align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{-ms-flex-item-align:center;align-self:center;border-left-color:#fff;border-right:none}.mapboxgl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.mapboxgl-popup-close-button:hover{background-color:rgb(0 0 0/5%)}.mapboxgl-popup-content{background:#fff;border-radius:3px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1);padding:10px 10px 15px;pointer-events:auto;position:relative}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer{display:none}.mapboxgl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mapboxgl-map:hover .mapboxgl-popup-track-pointer{display:-ms-flexbox;display:flex}.mapboxgl-map:active .mapboxgl-popup-track-pointer{display:none}.mapboxgl-marker{left:0;opacity:1;position:absolute;top:0;-webkit-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s;will-change:transform}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.mapboxgl-user-location-dot:before{-webkit-animation:mapboxgl-user-location-dot-pulse 2s infinite;animation:mapboxgl-user-location-dot-pulse 2s infinite;content:"";position:absolute}.mapboxgl-user-location-dot:after{border:2px solid #fff;border-radius:50%;-webkit-box-shadow:0 0 3px rgba(0,0,0,.35);box-shadow:0 0 3px rgba(0,0,0,.35);-webkit-box-sizing:border-box;box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading{height:0;width:0}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-bottom:7.5px solid #4aa1eb;content:"";position:absolute}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-left:7.5px solid transparent;-webkit-transform:translateY(-28px) skewY(-20deg);-ms-transform:translateY(-28px) skewY(-20deg);transform:translateY(-28px) skewY(-20deg)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after{border-right:7.5px solid transparent;-webkit-transform:translate(7.5px,-28px) skewY(20deg);-ms-transform:translate(7.5px,-28px) skewY(20deg);transform:translate(7.5px,-28px) skewY(20deg)}@-webkit-keyframes mapboxgl-user-location-dot-pulse{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}70%{opacity:0;-webkit-transform:scale(3);transform:scale(3)}to{opacity:0;-webkit-transform:scale(1);transform:scale(1)}}@keyframes mapboxgl-user-location-dot-pulse{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}70%{opacity:0;-webkit-transform:scale(3);transform:scale(3)}to{opacity:0;-webkit-transform:scale(1);transform:scale(1)}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}@media print{.mapbox-improve-map{display:none}}.mapboxgl-scroll-zoom-blocker,.mapboxgl-touch-pan-blocker{-ms-flex-align:center;align-items:center;background:rgba(0,0,0,.7);color:#fff;display:-ms-flexbox;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;height:100%;-ms-flex-pack:center;justify-content:center;left:0;opacity:0;pointer-events:none;position:absolute;text-align:center;top:0;-webkit-transition:opacity .75s ease-in-out;-o-transition:opacity .75s ease-in-out;transition:opacity .75s ease-in-out;-webkit-transition-delay:1s;-o-transition-delay:1s;transition-delay:1s;width:100%}.mapboxgl-scroll-zoom-blocker-show,.mapboxgl-touch-pan-blocker-show{opacity:1;-webkit-transition:opacity .1s ease-in-out;-o-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out}.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page,.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page .mapboxgl-canvas{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}
/* roboto-100normal - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-display: swap;
  font-weight: 100;
  src:
    local('Roboto Thin '),
    local('Roboto-Thin'),
    url([object Module]) format('woff2'), 
    url([object Module]) format('woff'); /* Modern Browsers */
}

/* roboto-100italic - latin */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-display: swap;
  font-weight: 100;
  src:
    local('Roboto Thin italic'),
    local('Roboto-Thinitalic'),
    url([object Module]) format('woff2'), 
    url([object Module]) format('woff'); /* Modern Browsers */
}

/* roboto-300normal - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-display: swap;
  font-weight: 300;
  src:
    local('Roboto Light '),
    local('Roboto-Light'),
    url([object Module]) format('woff2'), 
    url([object Module]) format('woff'); /* Modern Browsers */
}

/* roboto-300italic - latin */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-display: swap;
  font-weight: 300;
  src:
    local('Roboto Light italic'),
    local('Roboto-Lightitalic'),
    url([object Module]) format('woff2'), 
    url([object Module]) format('woff'); /* Modern Browsers */
}

/* roboto-400normal - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src:
    local('Roboto Regular '),
    local('Roboto-Regular'),
    url([object Module]) format('woff2'), 
    url([object Module]) format('woff'); /* Modern Browsers */
}

/* roboto-400italic - latin */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-display: swap;
  font-weight: 400;
  src:
    local('Roboto Regular italic'),
    local('Roboto-Regularitalic'),
    url([object Module]) format('woff2'), 
    url([object Module]) format('woff'); /* Modern Browsers */
}

/* roboto-500normal - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src:
    local('Roboto Medium '),
    local('Roboto-Medium'),
    url([object Module]) format('woff2'), 
    url([object Module]) format('woff'); /* Modern Browsers */
}

/* roboto-500italic - latin */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-display: swap;
  font-weight: 500;
  src:
    local('Roboto Medium italic'),
    local('Roboto-Mediumitalic'),
    url([object Module]) format('woff2'), 
    url([object Module]) format('woff'); /* Modern Browsers */
}

/* roboto-700normal - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src:
    local('Roboto Bold '),
    local('Roboto-Bold'),
    url([object Module]) format('woff2'), 
    url([object Module]) format('woff'); /* Modern Browsers */
}

/* roboto-700italic - latin */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-display: swap;
  font-weight: 700;
  src:
    local('Roboto Bold italic'),
    local('Roboto-Bolditalic'),
    url([object Module]) format('woff2'), 
    url([object Module]) format('woff'); /* Modern Browsers */
}

/* roboto-900normal - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-display: swap;
  font-weight: 900;
  src:
    local('Roboto Black '),
    local('Roboto-Black'),
    url([object Module]) format('woff2'), 
    url([object Module]) format('woff'); /* Modern Browsers */
}

/* roboto-900italic - latin */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-display: swap;
  font-weight: 900;
  src:
    local('Roboto Black italic'),
    local('Roboto-Blackitalic'),
    url([object Module]) format('woff2'), 
    url([object Module]) format('woff'); /* Modern Browsers */
}


/* required styles */

.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
	position: absolute;
	left: 0;
	top: 0;
	}
.leaflet-container {
	overflow: hidden;
	}
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
	-webkit-user-select: none;
	   -moz-user-select: none;
	        -ms-user-select: none;
	    user-select: none;
	  -webkit-user-drag: none;
	}
/* Prevents IE11 from highlighting tiles in blue */
.leaflet-tile::-moz-selection {
	background: transparent;
}
.leaflet-tile::selection {
	background: transparent;
}
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
.leaflet-safari .leaflet-tile {
	image-rendering: -webkit-optimize-contrast;
	}
/* hack that prevents hw layers "stretching" when loading new tiles */
.leaflet-safari .leaflet-tile-container {
	width: 1600px;
	height: 1600px;
	-webkit-transform-origin: 0 0;
	}
.leaflet-marker-icon,
.leaflet-marker-shadow {
	display: block;
	}
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
.leaflet-container .leaflet-overlay-pane svg {
	max-width: none !important;
	max-height: none !important;
	}
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile {
	max-width: none !important;
	max-height: none !important;
	width: auto;
	padding: 0;
	}

.leaflet-container img.leaflet-tile {
	/* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */
	mix-blend-mode: plus-lighter;
}

.leaflet-container.leaflet-touch-zoom {
	-ms-touch-action: pan-x pan-y;
	touch-action: pan-x pan-y;
	}
.leaflet-container.leaflet-touch-drag {
	-ms-touch-action: pinch-zoom;
	/* Fallback for FF which doesn't support pinch-zoom */
	touch-action: none;
	touch-action: pinch-zoom;
}
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
	-ms-touch-action: none;
	touch-action: none;
}
.leaflet-container {
	-webkit-tap-highlight-color: transparent;
}
.leaflet-container a {
	-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
}
.leaflet-tile {
	-webkit-filter: inherit;
	        filter: inherit;
	visibility: hidden;
	}
.leaflet-tile-loaded {
	visibility: inherit;
	}
.leaflet-zoom-box {
	width: 0;
	height: 0;
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
	z-index: 800;
	}
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
.leaflet-overlay-pane svg {
	-moz-user-select: none;
	}

.leaflet-pane         { z-index: 400; }

.leaflet-tile-pane    { z-index: 200; }
.leaflet-overlay-pane { z-index: 400; }
.leaflet-shadow-pane  { z-index: 500; }
.leaflet-marker-pane  { z-index: 600; }
.leaflet-tooltip-pane   { z-index: 650; }
.leaflet-popup-pane   { z-index: 700; }

.leaflet-map-pane canvas { z-index: 100; }
.leaflet-map-pane svg    { z-index: 200; }

.leaflet-vml-shape {
	width: 1px;
	height: 1px;
	}
.lvml {
	behavior: url(#default#VML);
	display: inline-block;
	position: absolute;
	}


/* control positioning */

.leaflet-control {
	position: relative;
	z-index: 800;
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}
.leaflet-top,
.leaflet-bottom {
	position: absolute;
	z-index: 1000;
	pointer-events: none;
	}
.leaflet-top {
	top: 0;
	}
.leaflet-right {
	right: 0;
	}
.leaflet-bottom {
	bottom: 0;
	}
.leaflet-left {
	left: 0;
	}
.leaflet-control {
	float: left;
	clear: both;
	}
.leaflet-right .leaflet-control {
	float: right;
	}
.leaflet-top .leaflet-control {
	margin-top: 10px;
	}
.leaflet-bottom .leaflet-control {
	margin-bottom: 10px;
	}
.leaflet-left .leaflet-control {
	margin-left: 10px;
	}
.leaflet-right .leaflet-control {
	margin-right: 10px;
	}


/* zoom and fade animations */

.leaflet-fade-anim .leaflet-popup {
	opacity: 0;
	-webkit-transition: opacity 0.2s linear;
	        -o-transition: opacity 0.2s linear;
	        transition: opacity 0.2s linear;
	}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
	opacity: 1;
	}
.leaflet-zoom-animated {
	-webkit-transform-origin: 0 0;
	    -ms-transform-origin: 0 0;
	        transform-origin: 0 0;
	}
svg.leaflet-zoom-animated {
	will-change: transform;
}

.leaflet-zoom-anim .leaflet-zoom-animated {
	-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
	        transition:         -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
	        -o-transition:         transform 0.25s cubic-bezier(0,0,0.25,1);
	        transition:         transform 0.25s cubic-bezier(0,0,0.25,1);
	        transition:         transform 0.25s cubic-bezier(0,0,0.25,1), -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
	}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile {
	-webkit-transition: none;
	        -o-transition: none;
	        transition: none;
	}

.leaflet-zoom-anim .leaflet-zoom-hide {
	visibility: hidden;
	}


/* cursors */

.leaflet-interactive {
	cursor: pointer;
	}
.leaflet-grab {
	cursor: -webkit-grab;
	cursor:         grab;
	}
.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive {
	cursor: crosshair;
	}
.leaflet-popup-pane,
.leaflet-control {
	cursor: auto;
	}
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable {
	cursor: move;
	cursor: -webkit-grabbing;
	cursor:         grabbing;
	}

/* marker & overlays interactivity */
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container {
	pointer-events: none;
	}

.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive,
svg.leaflet-image-layer.leaflet-interactive path {
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}

/* visual tweaks */

.leaflet-container {
	background: #ddd;
	outline-offset: 1px;
	}
.leaflet-container a {
	color: #0078A8;
	}
.leaflet-zoom-box {
	border: 2px dotted #38f;
	background: rgba(255,255,255,0.5);
	}


/* general typography */
.leaflet-container {
	font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-size: 0.75rem;
	line-height: 1.5;
	}


/* general toolbar styles */

.leaflet-bar {
	-webkit-box-shadow: 0 1px 5px rgba(0,0,0,0.65);
	        box-shadow: 0 1px 5px rgba(0,0,0,0.65);
	border-radius: 4px;
	}
.leaflet-bar a {
	background-color: #fff;
	border-bottom: 1px solid #ccc;
	width: 26px;
	height: 26px;
	line-height: 26px;
	display: block;
	text-align: center;
	text-decoration: none;
	color: black;
	}
.leaflet-bar a,
.leaflet-control-layers-toggle {
	background-position: 50% 50%;
	background-repeat: no-repeat;
	display: block;
	}
.leaflet-bar a:hover,
.leaflet-bar a:focus {
	background-color: #f4f4f4;
	}
.leaflet-bar a:first-child {
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
	}
.leaflet-bar a:last-child {
	border-bottom-left-radius: 4px;
	border-bottom-right-radius: 4px;
	border-bottom: none;
	}
.leaflet-bar a.leaflet-disabled {
	cursor: default;
	background-color: #f4f4f4;
	color: #bbb;
	}

.leaflet-touch .leaflet-bar a {
	width: 30px;
	height: 30px;
	line-height: 30px;
	}
.leaflet-touch .leaflet-bar a:first-child {
	border-top-left-radius: 2px;
	border-top-right-radius: 2px;
	}
.leaflet-touch .leaflet-bar a:last-child {
	border-bottom-left-radius: 2px;
	border-bottom-right-radius: 2px;
	}

/* zoom control */

.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
	font: bold 18px 'Lucida Console', Monaco, monospace;
	text-indent: 1px;
	}

.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out  {
	font-size: 22px;
	}


/* layers control */

.leaflet-control-layers {
	-webkit-box-shadow: 0 1px 5px rgba(0,0,0,0.4);
	        box-shadow: 0 1px 5px rgba(0,0,0,0.4);
	background: #fff;
	border-radius: 5px;
	}
.leaflet-control-layers-toggle {
	background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);
	width: 36px;
	height: 36px;
	}
.leaflet-retina .leaflet-control-layers-toggle {
	background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);
	background-size: 26px 26px;
	}
.leaflet-touch .leaflet-control-layers-toggle {
	width: 44px;
	height: 44px;
	}
.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
	display: none;
	}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
	display: block;
	position: relative;
	}
.leaflet-control-layers-expanded {
	padding: 6px 10px 6px 6px;
	color: #333;
	background: #fff;
	}
.leaflet-control-layers-scrollbar {
	overflow-y: scroll;
	overflow-x: hidden;
	padding-right: 5px;
	}
.leaflet-control-layers-selector {
	margin-top: 2px;
	position: relative;
	top: 1px;
	}
.leaflet-control-layers label {
	display: block;
	font-size: 13px;
	font-size: 1.08333em;
	}
.leaflet-control-layers-separator {
	height: 0;
	border-top: 1px solid #ddd;
	margin: 5px -10px 5px -6px;
	}

/* Default icon URLs */
.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */
	background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=);
	}


/* attribution and scale controls */

.leaflet-container .leaflet-control-attribution {
	background: #fff;
	background: rgba(255, 255, 255, 0.8);
	margin: 0;
	}
.leaflet-control-attribution,
.leaflet-control-scale-line {
	padding: 0 5px;
	color: #333;
	line-height: 1.4;
	}
.leaflet-control-attribution a {
	text-decoration: none;
	}
.leaflet-control-attribution a:hover,
.leaflet-control-attribution a:focus {
	text-decoration: underline;
	}
.leaflet-attribution-flag {
	display: inline !important;
	vertical-align: baseline !important;
	width: 1em;
	height: 0.6669em;
	}
.leaflet-left .leaflet-control-scale {
	margin-left: 5px;
	}
.leaflet-bottom .leaflet-control-scale {
	margin-bottom: 5px;
	}
.leaflet-control-scale-line {
	border: 2px solid #777;
	border-top: none;
	line-height: 1.1;
	padding: 2px 5px 1px;
	white-space: nowrap;
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
	background: rgba(255, 255, 255, 0.8);
	text-shadow: 1px 1px #fff;
	}
.leaflet-control-scale-line:not(:first-child) {
	border-top: 2px solid #777;
	border-bottom: none;
	margin-top: -2px;
	}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
	border-bottom: 2px solid #777;
	}

.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	-webkit-box-shadow: none;
	        box-shadow: none;
	}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	border: 2px solid rgba(0,0,0,0.2);
	background-clip: padding-box;
	}


/* popup */

.leaflet-popup {
	position: absolute;
	text-align: center;
	margin-bottom: 20px;
	}
.leaflet-popup-content-wrapper {
	padding: 1px;
	text-align: left;
	border-radius: 12px;
	}
.leaflet-popup-content {
	margin: 13px 24px 13px 20px;
	line-height: 1.3;
	font-size: 13px;
	font-size: 1.08333em;
	min-height: 1px;
	}
.leaflet-popup-content p {
	margin: 17px 0;
	margin: 1.3em 0;
	}
.leaflet-popup-tip-container {
	width: 40px;
	height: 20px;
	position: absolute;
	left: 50%;
	margin-top: -1px;
	margin-left: -20px;
	overflow: hidden;
	pointer-events: none;
	}
.leaflet-popup-tip {
	width: 17px;
	height: 17px;
	padding: 1px;

	margin: -10px auto 0;
	pointer-events: auto;

	-webkit-transform: rotate(45deg);
	    -ms-transform: rotate(45deg);
	        transform: rotate(45deg);
	}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
	background: white;
	color: #333;
	-webkit-box-shadow: 0 3px 14px rgba(0,0,0,0.4);
	        box-shadow: 0 3px 14px rgba(0,0,0,0.4);
	}
.leaflet-container a.leaflet-popup-close-button {
	position: absolute;
	top: 0;
	right: 0;
	border: none;
	text-align: center;
	width: 24px;
	height: 24px;
	font: 16px/24px Tahoma, Verdana, sans-serif;
	color: #757575;
	text-decoration: none;
	background: transparent;
	}
.leaflet-container a.leaflet-popup-close-button:hover,
.leaflet-container a.leaflet-popup-close-button:focus {
	color: #585858;
	}
.leaflet-popup-scrolled {
	overflow: auto;
	}

.leaflet-oldie .leaflet-popup-content-wrapper {
	-ms-zoom: 1;
	}
.leaflet-oldie .leaflet-popup-tip {
	width: 24px;
	margin: 0 auto;

	-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
	filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
	}

.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip {
	border: 1px solid #999;
	}


/* div icon */

.leaflet-div-icon {
	background: #fff;
	border: 1px solid #666;
	}


/* Tooltip */
/* Base styles for the element that has a tooltip */
.leaflet-tooltip {
	position: absolute;
	padding: 6px;
	background-color: #fff;
	border: 1px solid #fff;
	border-radius: 3px;
	color: #222;
	white-space: nowrap;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	pointer-events: none;
	-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.4);
	        box-shadow: 0 1px 3px rgba(0,0,0,0.4);
	}
.leaflet-tooltip.leaflet-interactive {
	cursor: pointer;
	pointer-events: auto;
	}
.leaflet-tooltip-top:before,
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	position: absolute;
	pointer-events: none;
	border: 6px solid transparent;
	background: transparent;
	content: "";
	}

/* Directions */

.leaflet-tooltip-bottom {
	margin-top: 6px;
}
.leaflet-tooltip-top {
	margin-top: -6px;
}
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-top:before {
	left: 50%;
	margin-left: -6px;
	}
.leaflet-tooltip-top:before {
	bottom: 0;
	margin-bottom: -12px;
	border-top-color: #fff;
	}
.leaflet-tooltip-bottom:before {
	top: 0;
	margin-top: -12px;
	margin-left: -6px;
	border-bottom-color: #fff;
	}
.leaflet-tooltip-left {
	margin-left: -6px;
}
.leaflet-tooltip-right {
	margin-left: 6px;
}
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	top: 50%;
	margin-top: -6px;
	}
.leaflet-tooltip-left:before {
	right: 0;
	margin-right: -12px;
	border-left-color: #fff;
	}
.leaflet-tooltip-right:before {
	left: 0;
	margin-left: -12px;
	border-right-color: #fff;
	}

/* Printing */

@media print {
	/* Prevent printers from removing background-images of controls. */
	.leaflet-control {
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
		}
	}

body {
  font-family: var(--font-sans);
  background: var(--bg);
  color: var(--text);
}

p {
  line-height: 1.42;
}

.no-style-scrollbar {
  overflow-y: scroll;
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* Internet Explorer 10+ */
}

.no-style-scrollbar::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.scene-dialog {
  font-size: 12pt !important;
}

.scene-dialog .dl-horizontal dt {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  width: 130px;
  padding-right: 6px;
  line-height: 23px;
  font-weight: 500;
  color: var(--text-brand);
}

.scene-dialog .dl-horizontal dd {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  line-height: 23px;
  overflow-wrap: break-word;
  color: var(--text);
  font-style: italic;
}

.ih-info-row-line {
  display: -ms-inline-flexbox;
  display: inline-flex;
  width: 100%;
}

.ih-info-row-label {
  width: 140px;
  min-width: 140px;
  color: var(--text-brand);
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-weight: 500;
}

.ih-info-row-value {
  color: var(--text);
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-style: italic;
  overflow-wrap: anywhere;
  word-break: break-word;
  white-space: pre-line;
  width: calc(100% - 160px);
  min-width: 0;
}

.ih-info-row-stacked {
  margin-top: 6px;
}

.ih-scene-dialog-split {
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-align: start;
      align-items: flex-start;
  width: 100%;
  gap: 4px;
  padding-bottom: 12px;
}

.ih-scene-dialog-meta {
  width: 50%;
  min-width: 0;
}

.ih-scene-dialog-fields {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  gap: 4px;
}

.ih-scene-dialog-preview {
  width: 50%;
  min-width: 0;
}

.ih-scene-dialog-preview-inner {
  position: relative;
  float: right;
  max-width: 100%;
}

.ih-scene-dialog-preview-inner img {
  width: auto;
  height: auto;
  max-height: 360px;
  max-width: 100%;
  display: block;
}

.ih-scene-dialog-preview-error {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
  height: 200px;
  color: var(--text-muted);
  text-align: center;
  padding: 20px;
  border: 2px dashed var(--border-strong);
  border-radius: 8px;
  background-color: var(--surface-sunken);
}

.ih-scene-dialog-preview-error-title {
  font-size: 14px;
  margin-bottom: 8px;
}

.ih-scene-dialog-preview-error-sub {
  font-size: 12px;
  color: var(--text-subtle);
}

.scene-dialog .image-container {
  height: 360px;
}

.ih-scene-dialog-actions {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 8px;
  padding: 4px 0 8px;
}

.ih-scene-dialog-actions .ih-btn {
  margin: 0 !important;
}

/* Footer action bar, restyle §4.4. Status + buttons + hint with room between. */
.search-results-footer {
  min-height: 80px;
  height: auto;
  background-color: var(--surface-sunken);
  position: relative;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  /* Below the expanded filter sheet so Apply can cover this bar when short. */
  z-index: 1;
  width: 100%;
  max-width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;

  border-top: 1px solid var(--border);
  padding: 10px 10px 10px;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-pack: start;
      justify-content: flex-start;
  gap: 0;
}

.search-results-footer .buttons {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: stretch;
      align-items: stretch;
  -ms-flex-pack: center;
      justify-content: center;
  gap: 6px;
  width: auto;
  max-width: 100%;
  -ms-flex-item-align: center;
      align-self: center;
  margin-top: 10px;
  margin-bottom: 10px;
}

.search-results-footer .buttons > span {
  -ms-flex: 0 0 auto;
      flex: 0 0 auto;
  display: -ms-flexbox;
  display: flex;
}

.search-results-footer .buttons > .ih-btn,
.search-results-footer .buttons > span > .ih-btn {
  -ms-flex: 0 0 auto;
      flex: 0 0 auto;
  width: auto;
  margin: 0 !important;
  height: 34px;
  padding: 0 14px !important;
  font-size: 13px !important;
}

/* Clear is tertiary and short — keep it content-sized so the row stays narrow. */
.search-results-footer .buttons > .ih-btn-tertiary {
  padding: 0 10px !important;
  min-width: 0;
}

.search-results-footer .buttons > .ih-btn-secondary,
.search-results-footer .buttons > span > .ih-btn-primary {
  min-width: 148px;
  padding: 0 24px !important;
}

.search-selected {
  margin: 0;
  padding: 0;
  text-align: center;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.search-results-footer-hint {
  margin: auto 0 0;
  padding: 0;
  text-align: center;
  font-size: 11px;
  line-height: 14px;
  color: var(--text-muted);
}

/*
 * Buttons — restyle §4.1. Shared by the drawer footer and reusable elsewhere.
 * !important is required to beat MUI's own MuiButton-contained rules, which are
 * injected into the head after this stylesheet; the pre-existing .button-green
 * and .button-orange classes do the same.
 */
.ih-btn {
  height: 36px;
  padding: 0 18px !important;
  border-radius: var(--radius-pill) !important;
  font-family: var(--font-mono) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
  -webkit-transition: background-color var(--dur-fast) var(--ease),
    color var(--dur-fast) var(--ease);
  -o-transition: background-color var(--dur-fast) var(--ease),
    color var(--dur-fast) var(--ease);
  transition: background-color var(--dur-fast) var(--ease),
    color var(--dur-fast) var(--ease);
}

.ih-btn:active {
  -webkit-transform: translateY(1px);
      -ms-transform: translateY(1px);
          transform: translateY(1px);
}

.ih-btn:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

/* Opacity rather than a grey fill, so each variant stays recognisable. */
.ih-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.ih-btn-primary {
  background-color: var(--btn-primary-bg) !important;
  color: var(--btn-primary-fg) !important;
}

.ih-btn-primary:hover {
  background-color: var(--btn-primary-bg-hover) !important;
}

.ih-btn-secondary {
  background-color: transparent !important;
  color: var(--text) !important;
  border: 1px solid var(--text) !important;
}

.ih-btn-secondary:hover {
  background-color: var(--surface-sunken) !important;
}

.ih-btn-tertiary {
  background-color: transparent !important;
  color: var(--text-brand) !important;
}

.ih-btn-tertiary:hover {
  background-color: var(--surface-sunken) !important;
}

/* --surface, not --n-0: white reads on the light theme's deep red but only 2.4:1
   on the dark theme's salmon --danger. --surface flips to ink there. */
.ih-btn-danger {
  background-color: var(--danger) !important;
  color: var(--surface) !important;
}

.ih-btn-danger:hover {
  -webkit-filter: brightness(0.92);
          filter: brightness(0.92);
}

/*
 * MUI paints form controls and table cells from its own palette, which is
 * pinned light and does not follow the token theme. These scoped rules put the
 * drawer's controls back on tokens so dark mode is legible.
 *
 * Chip popovers, dataset dialogs, and month/year menus render in a portal
 * (outside .scene-filter-bar), so they need the same treatment or labels stay
 * rgba(0,0,0,.87) on --surface.
 */
.scene-filter-bar .MuiFormLabel-root,
.scene-filter-bar .MuiSelect-icon,
.scene-filter-bar .MuiIconButton-root,
.ih-filter-chip-popover .MuiFormLabel-root,
.ih-filter-chip-popover .MuiSelect-icon,
.ih-filter-chip-popover .MuiIconButton-root,
.ih-token-popover .MuiFormLabel-root,
.ih-token-popover .MuiSelect-icon,
.MuiDialog-root .MuiFormLabel-root,
.MuiDialog-root .MuiSelect-icon {
  color: var(--text-muted);
}

.scene-filter-bar .MuiFormLabel-root.Mui-focused,
.ih-filter-chip-popover .MuiFormLabel-root.Mui-focused,
.MuiDialog-root .MuiFormLabel-root.Mui-focused {
  color: var(--text-brand);
}

.scene-filter-bar .MuiInputBase-input,
.scene-filter-bar .MuiSelect-select,
.scene-filter-bar .MuiTypography-root,
.scene-filter-bar .MuiFormControlLabel-label,
.ih-filter-chip-popover .MuiInputBase-input,
.ih-filter-chip-popover .MuiSelect-select,
.ih-filter-chip-popover .MuiTypography-root,
.ih-filter-chip-popover .MuiFormControlLabel-label,
.ih-token-popover .MuiTypography-root,
.ih-token-popover .MuiListItemText-primary,
.ih-token-popover .MuiInputBase-input,
.MuiDialog-root .MuiInputBase-input,
.MuiDialog-root .MuiSelect-select,
.MuiDialog-root .MuiFormControlLabel-label,
.MuiDialog-root .MuiListItemText-primary,
.MuiDialog-root .MuiTypography-root {
  color: var(--text);
}

.scene-filter-bar .MuiInput-underline:before,
.ih-filter-chip-popover .MuiInput-underline:before,
.ih-token-popover .MuiInput-underline:before,
.MuiDialog-root .MuiInput-underline:before {
  border-bottom-color: var(--border-strong);
}

.scene-filter-bar .MuiInput-underline:after,
.ih-filter-chip-popover .MuiInput-underline:after,
.ih-token-popover .MuiInput-underline:after,
.MuiDialog-root .MuiInput-underline:after {
  border-bottom-color: var(--text-brand);
}

.ih-token-popover .MuiCheckbox-root,
.MuiDialog-root .MuiCheckbox-root:not(.Mui-checked) {
  color: var(--border-strong);
}

.ih-token-popover .MuiCheckbox-root.Mui-checked,
.MuiDialog-root .MuiCheckbox-root.Mui-checked {
  color: var(--surface-brand);
}

.Filterable-scene-table .MuiTableCell-root {
  color: var(--text);
  border-bottom-color: var(--border-table);
}

.Filterable-scene-table thead .MuiTableCell-root {
  background-color: var(--surface-sunken);
  color: var(--text-brand);
  border-bottom: 1px solid var(--border-rule);
}

.Filterable-scene-table thead .MuiTableSortLabel-root,
.Filterable-scene-table thead .MuiTableSortLabel-root.MuiTableSortLabel-active,
.Filterable-scene-table thead .MuiTableSortLabel-icon {
  color: var(--text-brand) !important;
}

/* Only the active/hovered column shows a caret, so labels are not crowded. */
.Filterable-scene-table thead .MuiTableSortLabel-icon {
  margin-left: 4px !important;
  margin-right: 0 !important;
  width: 14px;
  height: 14px;
}

/*
 * Dense table rows, §4.6. Hover and selected fills come from tokens; MUI's own
 * hover is a fixed rgba(0,0,0,.04) that is invisible in dark theme. The extra
 * classes out-weigh MUI's runtime JSS.
 */
.Filterable-scene-table .MuiTableRow-root.MuiTableRow-hover:hover {
  background-color: var(--surface-sunken);
}

.Filterable-scene-table .MuiTableRow-root.ih-row-selected,
.Filterable-scene-table .MuiTableRow-root.ih-row-selected:hover {
  background-color: var(--row-selected);
  -webkit-box-shadow: inset 3px 0 0 0 var(--text-brand);
          box-shadow: inset 3px 0 0 0 var(--text-brand);
}

/* Row checkboxes use MUI's `primary`, which is dark and vanishes against the
   olive-900 selected fill in dark theme. */
.Filterable-scene-table .MuiCheckbox-root {
  color: var(--border-strong);
}

.Filterable-scene-table .MuiCheckbox-root.Mui-checked {
  color: var(--text-brand);
}

/* Sensor names are metadata keys, so mono brand per the §2.6 mono rule. */
.Filterable-scene-table .MuiTableCell-root.ih-cell-id {
  font-family: var(--font-mono);
  color: var(--text-brand);
}

/* Date / Res / Cloud / Off-Nadir. Tabular figures line the columns up; alignment
   stays left so the numbers still sit under their left-aligned headers. The xs
   step is required, not cosmetic: mono is wider than the sans it replaces and at
   13px "08-24-2026" overruns the 80px Date column into Res. */
.Filterable-scene-table .MuiTableCell-root.ih-cell-num {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-size: var(--fs-label-xs) !important;
}

/* Child rows of a stereo bundle, §4.6: a 1px rule instead of the parent's 3px
   brand border, so the hierarchy is readable without a second fill color. */
.Filterable-scene-table .ih-bundle-child {
  background-color: var(--surface-sunken);
  -webkit-box-shadow: inset 1px 0 0 0 var(--border);
          box-shadow: inset 1px 0 0 0 var(--border);
}

.Filterable-scene-table .ih-bundle-child .MuiTableCell-root {
  color: var(--text-muted);
}

/* Empty results, §4.6: one quiet centered line rather than a blank body. */
.Filterable-scene-table .MuiTableCell-root.ih-empty-results {
  padding: var(--space-4);
  text-align: center;
  color: var(--text-muted);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  border-bottom: none;
  display: block;
  width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* Vertically + horizontally center the empty state in the scrollable table body. */
#scene-table-body.ih-empty-body {
  display: -ms-flexbox !important;
  display: flex !important;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
}

#scene-table-body.ih-empty-body > tr {
  display: block;
  width: 100%;
}

.ih-empty-results-block {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-align: center;
      align-items: center;
  gap: var(--space-3);
  max-width: 360px;
  margin: 0 auto;
  text-align: center;
}

.ih-empty-results-block p {
  margin: 0;
  text-align: center;
}

.ih-empty-results-actions {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-pack: center;
      justify-content: center;
  gap: var(--space-2);
}

.ih-empty-results-actions .ih-btn {
  height: var(--control-h-xs);
  padding: 0 12px !important;
  font-size: 11px !important;
}

.bottom-map-bar .area-large-warning {
  color: var(--danger);
  font-weight: 500;
  margin-left: 6px;
}

/* Switches: MUI's checked state uses its own primary, which is near-invisible
   on the dark surface — a problem for the control that enables dark mode. */
.user-panel .MuiSwitch-track {
  background-color: var(--text-subtle);
}

.user-panel .MuiSwitch-switchBase.Mui-checked {
  color: var(--text-brand);
}

.user-panel .MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track {
  background-color: var(--surface-brand);
  opacity: 0.55;
}

/*
 * Checkbox and radio, restyle §4.5: a 20px visual box. MUI draws these as a
 * 24px icon font inside a padded button, so the box is sized by font-size and
 * the hit target by the button's padding — the two are independent, which is
 * what the spec's "44px hit target, 20px box" asks for.
 */
.MuiCheckbox-root .MuiSvgIcon-root,
.MuiRadio-root .MuiSvgIcon-root {
  font-size: 20px;
}

/* Numeric fields, §4.2: mono and tabular-nums so digits align down a column,
   right-aligned so the magnitude is readable at a glance. */
input[type="number"] {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  text-align: right;
}

/* Filter row labels ("Cloud Cover:", "Resolution:", ...), §4.5: mono uppercase.
   Scoped to .form-group so the Remember checkbox's own label is left alone.
   The xs size is deliberate: at label-sm, "CLOUD COVER:" wraps in the drawer's
   33% label column and knocks the slider out of alignment with its label. */
.scene-filter-bar .row:not(.text-center) > .form-group.col-xs-4 .MuiTypography-root {
  font-family: var(--font-mono);
  font-size: var(--fs-label-xs);
  line-height: var(--lh-label-xs);
  letter-spacing: var(--ls-label-xs);
  text-transform: uppercase;
  color: var(--text-muted);
  white-space: nowrap;
}

.gradient-button:hover {
  opacity: 0.75;
}

.gradient-button:disabled {
  background: var(--surface-sunken) !important;
  color: var(--text-subtle);
}

/* Legacy semantic buttons. The label is --surface, not white: that resolves to
   near-white on the light theme's deep fills and to ink on the dark theme's
   lighter fills, which is the light/dark label split §4.1 asks for. */
.button-orange {
  background-color: var(--warning) !important;
  color: var(--surface);
  -webkit-box-shadow: var(--shadow-sm);
          box-shadow: var(--shadow-sm);
}

.button-orange:hover {
  opacity: 0.85;
}

.button-green {
  background-color: var(--success) !important;
  border-radius: var(--radius-sm);
  border: 0;
  color: var(--surface);
  -webkit-box-shadow: var(--shadow-sm);
          box-shadow: var(--shadow-sm);
}

.button-green:hover {
  opacity: 0.85;
}

.button-red {
  background: var(--danger);
  border-radius: var(--radius-sm);
  border: 0;
  color: var(--surface);
  height: 22px;
  min-height: 22px !important;
  padding: 0px 0px !important;
  font-size: var(--fs-label-xs);
  font-weight: 500 !important;
}

.button-red:hover {
  opacity: 0.85;
}

.SceneTable {
  font-size: 12px;
  display: block;
}

.scene-table-body {
  display: block;
  overflow-y: scroll;
}

label {
  font-size: 10pt;
  text-align: left;
}

.Scene-table-wrapper {
  width: 100%;
}

/* Flex column fills the swipe pane. The results footer is in-flow (not fixed)
   so pagination sits fully above it instead of being clipped. */
.Filterable-scene-table {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.filterable-scene-main {
  -ms-flex: 1 1 auto;
      flex: 1 1 auto;
  min-height: 0;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  /* Visible so the expanded filter sheet can paint over the results footer. */
  overflow: visible;
}

.filterable-scene-main > :last-child {
  -ms-flex: 1 1 auto;
      flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.scene-filter-bar {
  -ms-flex: 0 0 auto;
      flex: 0 0 auto;
  position: relative;
  z-index: 5;
}

/* Keep the Filters strip in flow; the expanded body overlays the table and
   the Clear / Review / Get pricing footer when space is tight. Collapse the
   panel to use those controls again. */
.scene-filter-bar .MuiExpansionPanel-root {
  margin: 0;
}

.scene-filter-bar .ih-filter-expansion {
  overflow: visible;
}

.scene-filter-bar .ih-filter-expansion > .MuiCollapse-root {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  z-index: 6;
  /* Reach the bottom of the drawer (covers pagination + quote footer). */
  max-height: calc(100vh - 100px);
}

.scene-filter-bar .ih-filter-expansion > .MuiCollapse-root > .MuiCollapse-wrapper,
.scene-filter-bar .ih-filter-expansion > .MuiCollapse-root > .MuiCollapse-wrapper > .MuiCollapse-wrapperInner {
  max-height: inherit;
}

.scene-filter-bar .row {
  margin-bottom: 4px;
}

.scene-filter-bar .MuiExpansionPanel-root:before {
  display: none;
}

.scene-filter-bar .MuiExpansionPanel-root.Mui-expanded {
  margin: 0;
}

/* MUI v4 defaults ExpansionPanelSummary to min-height: 64px; keep drawer filter strip compact */
#root .scene-filter-bar .MuiExpansionPanelSummary-root,
#root .scene-filter-bar .MuiExpansionPanelSummary-root.Mui-expanded {
  min-height: 0;
  padding: var(--space-2) var(--space-3) var(--space-2) var(--space-4);
  -ms-flex-align: center;
      align-items: center;
}

.ih-filter-header {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-align: stretch;
      align-items: stretch;
  gap: var(--space-2);
  width: 100%;
  padding-right: var(--space-2);
}

.ih-filter-header.has-chips {
  padding-bottom: var(--space-4);
}

.ih-filter-header-top {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: row;
      flex-direction: row;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -ms-flex-align: center;
      align-items: center;
  width: 100%;
  min-height: 34px;
  gap: var(--space-3);
}

.ih-filter-header-actions {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  gap: 6px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

.ih-filter-chip-row {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: start;
      align-items: flex-start;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 6px;
  width: 100%;
  min-width: 0;
}

#root .scene-filter-bar .MuiExpansionPanelSummary-expandIcon {
  display: none;
}

.scene-filter-bar .MuiExpansionPanelSummary-content,
.scene-filter-bar .MuiExpansionPanelSummary-content.Mui-expanded {
  margin: 0;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-align: stretch;
      align-items: stretch;
}

.ih-filter-kicker {
  font-family: var(--font-mono);
  font-size: var(--fs-label-xs);
  line-height: var(--lh-label-xs);
  letter-spacing: var(--ls-label-xs);
  text-transform: uppercase;
  color: var(--text-muted);
}

.ih-filter-header-tools {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-item-align: center;
      align-self: center;
  margin-left: auto;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  gap: var(--space-4);
}

.ih-filter-bell {
  color: var(--text) !important;
  width: 34px !important;
  height: 34px !important;
  padding: 0 !important;
}

.ih-filter-header-rule {
  width: 1px;
  height: 20px;
  background: var(--border);
  margin: 0;
}

.ih-filter-chevron {
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text);
  cursor: pointer;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
}

.ih-filter-chevron:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

.ih-filter-more {
  height: var(--control-h-xs);
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: transparent;
  color: var(--text-muted);
  font-family: var(--font-mono);
  font-size: var(--fs-label-xs);
  letter-spacing: var(--ls-label-xs);
  cursor: pointer;
}

.ih-filter-chips-wrap {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-align: start;
      align-items: flex-start;
  gap: 6px;
  -ms-flex: 1 1 auto;
      flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
}

.ih-filter-chips {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-align: center;
      align-items: center;
  gap: 6px;
  -ms-flex: 1 1 auto;
      flex: 1 1 auto;
  min-width: 0;
}

.ih-filter-more-list {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 6px;
}

.ih-filter-chip {
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-align: stretch;
      align-items: stretch;
  height: var(--control-h-xs);
  max-height: var(--control-h-xs);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border-radius: 999px;
  background: var(--olive-100);
  color: var(--olive-700);
  border: 1px solid var(--olive-300);
  overflow: hidden;
  vertical-align: middle;
}

/* Author display:inline-flex above beats the UA [hidden] { display: none }. */
.ih-filter-chip[hidden],
.ih-filter-chip.is-overflow {
  display: none !important;
}

:root[data-theme="dark"] .ih-filter-chip {
  background: var(--olive-900);
  color: var(--olive-300);
  border-color: var(--olive-800);
}

.ih-filter-chip-body,
.ih-filter-chip-reset {
  border: 0;
  background: transparent;
  color: inherit;
  font-family: var(--font-mono);
  font-size: var(--fs-label-xs);
  line-height: var(--lh-label-xs);
  letter-spacing: var(--ls-label-xs);
  cursor: pointer;
}

.ih-filter-chip-body {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  padding: 0 10px;
  font-weight: 500;
  min-height: 0;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-align: center;
      align-items: center;
}

.ih-filter-chip.is-pinned .ih-filter-chip-body {
  padding: 0 12px;
}

.ih-filter-chip-reset {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  min-width: 24px;
  width: 24px;
  min-height: 0;
  height: auto;
  max-height: 100%;
  padding: 0;
  margin: 0;
  line-height: 1;
  font-size: 14px;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
  -ms-flex-item-align: stretch;
      align-self: stretch;
  -ms-flex: 0 0 auto;
      flex: 0 0 auto;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  overflow: hidden;
  color: var(--olive-600);
}

.ih-filter-chip-reset:hover,
.ih-filter-chip-reset:focus-visible {
  color: var(--olive-800);
  background: var(--brand-tint);
}

:root[data-theme="dark"] .ih-filter-chip-reset {
  color: var(--olive-400);
}

:root[data-theme="dark"] .ih-filter-chip-reset:hover,
:root[data-theme="dark"] .ih-filter-chip-reset:focus-visible {
  color: var(--olive-200);
}

.ih-add-filter {
  height: var(--control-h-xs);
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: transparent;
  color: var(--text-muted);
  font-family: var(--font-mono);
  font-size: var(--fs-label-xs);
  line-height: var(--lh-label-xs);
  letter-spacing: var(--ls-label-xs);
  cursor: pointer;
}

.ih-add-filter:hover,
.ih-add-filter:focus-visible {
  color: var(--text);
  border-color: var(--border-strong);
}

.ih-filter-chip-popover,
.ih-token-popover {
  background: var(--surface) !important;
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl) !important;
  -webkit-box-shadow: var(--shadow-lg) !important;
          box-shadow: var(--shadow-lg) !important;
}

.ih-filter-chip-popover {
  border-radius: var(--radius-xl) !important;
  max-width: 430px;
  padding: 0;
}

.ih-token-popover .MuiButton-root {
  color: var(--text);
}

.ih-token-popover .MuiMenuItem-root,
.ih-token-popover .MuiListItem-root {
  color: var(--text);
}

.ih-token-popover .MuiMenuItem-root:hover,
.ih-token-popover .MuiListItem-button:hover {
  background-color: var(--surface-sunken);
}

.ih-filter-chip-popover-body {
  padding: var(--space-4);
  min-width: 280px;
}

.ih-filter-chip-popover-footer {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: end;
      justify-content: flex-end;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  border-top: 1px solid var(--border);
}

.ih-filter-panel {
  display: block !important;
  padding: var(--space-2) var(--space-4) var(--space-3) !important;
  background-color: var(--surface-sunken);
  -webkit-box-shadow: var(--shadow-lg);
          box-shadow: var(--shadow-lg);
  border-bottom: 1px solid var(--border);
  max-height: calc(100vh - 100px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.ih-filter-panel .ui-filter-footer {
  position: sticky;
  bottom: 0;
  z-index: 1;
  margin: 0 calc(-1 * var(--space-4));
  padding-left: var(--space-4);
  padding-right: var(--space-4);
  background: var(--surface-sunken);
  border-top: 1px solid var(--border);
}

.ih-filter-group {
  margin-bottom: var(--space-3);
}

.ih-filter-slider {
  margin-bottom: var(--space-3);
}

.ih-filter-slider-head {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: baseline;
      align-items: baseline;
  -ms-flex-pack: justify;
      justify-content: space-between;
  gap: var(--space-2);
  margin-bottom: 4px;
}

.ih-filter-slider-label {
  font-family: var(--font-mono);
  font-size: var(--fs-label-xs);
  line-height: var(--lh-label-xs);
  letter-spacing: var(--ls-label-xs);
  text-transform: uppercase;
  color: var(--text-muted);
}

.ih-filter-slider-numerics {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  gap: 6px;
}

.ih-filter-numeric-wrap {
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-align: center;
      align-items: center;
  gap: 2px;
}

.ih-filter-numeric {
  width: 52px;
  height: var(--control-h-xs);
  padding: 0 6px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface-raised);
  color: var(--text);
  font-family: var(--font-mono);
  font-size: var(--fs-label-xs);
  line-height: var(--lh-label-xs);
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.ih-slider-at-default .ih-filter-numeric {
  background: var(--surface-sunken);
  color: var(--text-muted);
}

.ih-filter-numeric-suffix {
  font-family: var(--font-mono);
  font-size: var(--fs-label-xs);
  color: var(--text-muted);
}

.ih-slider-at-default .rc-slider-track {
  background-color: transparent !important;
}

.ih-slider-at-default .rc-slider-handle {
  background-color: var(--surface-sunken) !important;
  color: var(--text-muted) !important;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
  border: 1px solid var(--border) !important;
}

.ih-data-type-row {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 6px;
  margin-top: 4px;
}

.ih-data-type-chip,
.ih-seg-btn {
  height: var(--control-h-xs);
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  color: var(--text-muted);
  font-family: var(--font-mono);
  font-size: var(--fs-label-xs);
  line-height: var(--lh-label-xs);
  letter-spacing: var(--ls-label-xs);
  cursor: pointer;
}

.ih-data-type-chip.is-on,
.ih-seg-btn.is-on {
  background: var(--btn-primary-bg);
  color: var(--btn-primary-fg);
  border-color: var(--btn-primary-bg);
}

.ih-date-filter {
  margin-bottom: var(--space-3);
}

.ih-date-pickers {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-2);
}

.ih-recurring {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  gap: var(--space-2);
}

.ih-seg {
  display: -ms-inline-flexbox;
  display: inline-flex;
  gap: 4px;
}

.ih-seasonal-days {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: end;
      align-items: flex-end;
  gap: var(--space-2);
}

.ih-seasonal-day {
  display: -ms-flexbox;
  display: flex;
  gap: 4px;
  -ms-flex: 1 1;
      flex: 1 1;
}

.ih-seasonal-to {
  color: var(--text-muted);
  padding-bottom: 8px;
}

.ih-month-year-field {
  margin-bottom: var(--space-2);
}

.ih-filter-footer {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  gap: var(--space-2);
  margin-top: var(--space-3);
}

.ih-filter-remember-help {
  margin: 0;
  font-size: var(--fs-caption);
  line-height: var(--lh-caption);
  color: var(--text-muted);
}

.ih-filter-clear-default {
  border: 0;
  background: transparent;
  padding: 0;
  color: var(--text-brand);
  font-size: var(--fs-caption);
  cursor: pointer;
}

.ih-filter-footer-actions {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: end;
      justify-content: flex-end;
  gap: var(--space-2);
}

.ih-ds-title-row {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: baseline;
      align-items: baseline;
  gap: var(--space-3);
  padding-right: 36px;
  font-size: var(--fs-body);
}

.ih-ds-count {
  font-family: var(--font-mono);
  font-size: var(--fs-label-xs);
  letter-spacing: var(--ls-label-xs);
  text-transform: uppercase;
  color: var(--text-muted);
}

.ih-ds-toolbar {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-align: center;
      align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-3);
}

.ih-ds-sort-row {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  gap: var(--space-2);
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -ms-flex: 0 0 auto;
      flex: 0 0 auto;
  white-space: nowrap;
}

.ih-ds-search {
  -ms-flex: 1 1 220px;
      flex: 1 1 220px;
}

#scene-table-body.ih-empty-body.ih-empty-no-aoi {
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
  padding-top: 0;
}

#scene-table-body.ih-empty-body.ih-empty-zero {
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
}

.leaflet-container {
  height: 100vh;
  height: 100dvh;
  -ms-interpolation-mode: nearest-neighbor;
      image-rendering: -webkit-optimize-contrast;
      image-rendering: -moz-crisp-edges;
      image-rendering: -o-pixelated;
      image-rendering: pixelated;
  background-color: var(--map-canvas);
}

/* Covers Google's Gulf name and reads as a native water label. */
.leaflet-marker-icon.gulf-label,
.leaflet-div-icon.gulf-label {
  background: transparent !important;
  border: none !important;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
  width: auto !important;
  height: auto !important;
}

.gulf-label-inner {
  font-family: Roboto, Arial, sans-serif;
  font-weight: 400;
  text-align: center;
  line-height: 1.15;
  letter-spacing: 0.02em;
  white-space: nowrap;
  padding: 8px 44px;
  min-width: 168px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.leaflet-bar {
  border: 1px solid var(--border) !important;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
}

.leaflet-bar a,
.leaflet-bar a:hover {
  background-color: var(--surface-raised) !important;
  color: var(--text) !important;
  border-bottom-color: var(--border) !important;
}

.leaflet-bar a.leaflet-disabled {
  background-color: var(--surface-sunken) !important;
  color: var(--text-subtle) !important;
}

.leaflet-control-layers {
  background: var(--surface-raised) !important;
  color: var(--text) !important;
  border: 1px solid var(--border) !important;
}

.leaflet-control-layers-expanded {
  background: var(--surface-raised) !important;
  color: var(--text) !important;
}

.leaflet-control-layers-expanded label,
.leaflet-control-layers-expanded span,
.leaflet-control-layers-base label,
.leaflet-control-layers-overlays label {
  color: var(--text) !important;
}

.leaflet-control-layers-separator {
  border-top-color: var(--border) !important;
}

.leaflet-control-scale-line {
  background: var(--surface-raised) !important;
  color: var(--text) !important;
  border-color: var(--border-strong) !important;
  text-shadow: none !important;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
  -webkit-text-stroke: 0 !important;
}

.leaflet-control-scale-line:not(:first-child) {
  margin-top: 0 !important;
}

.map-container {
  height: 90vh;
}

.popup-normal {
  font-size: 14px;
  background-color: var(--surface);
  -ms-flex: 1 1 auto;
      flex: 1 1 auto;
  padding: 0px 24px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/*noinspection CssInvalidPropertyValue*/

.white-popup {
  font-size: var(--fs-body-sm);
  width: 770px;
  max-width: -webkit-fill-available;
  max-width: -moz-available;
  max-width: stretch;
  background-color: var(--surface);
  color: var(--text);
  padding-top: 0px !important;
}

.white-popup p {
  text-align: center;
  font-size: 14px;
}

.white-popup h4 {
  text-align: center;
  font-size: 16pt;
}

.white-popup > h4 {
  color: var(--text-brand);
  font-weight: 500;
}

.white-popup hr {
  margin-top: 0;
  margin-bottom: var(--space-4);
  border: 0;
  border-top: 1px solid var(--border);
  width: 100%;
}

/*noinspection CssInvalidPropertyValue*/
.new-popup {
  width: 770px;
  max-width: -webkit-fill-available;
  max-width: -moz-available;
  max-width: stretch;
  background-color: var(--surface);
  color: var(--text);
  padding-top: 0px !important;
}

.new-popup hr {
  margin-top: 0;
  border-top-color: var(--border);
  border-bottom: none;
  width: 96%;
}

.new-popup ul {
  padding-left: 20px;
}

.new-popup ul li {
  margin-bottom: 0.5em;
}

/*
 * Dialogs, §4.7. Both a shadow and a 1px border: the shadow does the work in
 * light theme, the border in dark, where a shadow over near-black is invisible.
 * overflow is clipped so the sunken footer band cannot square off the corners;
 * safe for scroll="paper" dialogs, where DialogContent owns the scrolling.
 * MUI injects its own JSS into <head> after this file loads, so an equal-weight
 * selector loses the tie — every rule here is deliberately one class heavier.
 */
.MuiDialog-root .MuiDialog-paper {
  background-color: var(--surface);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  -webkit-box-shadow: var(--shadow-xl);
          box-shadow: var(--shadow-xl);
}

.MuiDialog-root .MuiDialog-paperScrollPaper {
  overflow: hidden;
}

.MuiDialog-root .MuiBackdrop-root {
  background-color: rgba(0, 0, 18, 0.5);
  backdrop-filter: blur(2px);
}

:root[data-theme="dark"] .MuiDialog-root .MuiBackdrop-root {
  background-color: rgba(0, 0, 0, 0.7);
}

.MuiDialog-root .MuiDialogActions-root {
  background-color: var(--surface);
  border-top: 1px solid var(--border);
  padding: var(--space-3) var(--space-4);
}

.MuiDialog-root .MuiDialogActions-root .MuiButton-root {
  min-height: 36px;
  height: 36px;
  padding: 0 14px;
  font-size: 12px;
  line-height: 1;
  white-space: nowrap;
}

/* Leftover square MUI buttons in dialogs — match .ih-btn even when a
   component still uses the old inline borderRadius: 2 + contained look. */
.MuiDialog-root .MuiButton-contained:not(.ih-btn):not(.MuiIconButton-root),
.dialog-button-group .MuiButton-root:not(.ih-btn) {
  height: 36px;
  padding: 0 18px !important;
  border-radius: var(--radius-pill) !important;
  font-family: var(--font-mono) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
}

.MuiDialog-root .MuiButton-contained:not(.ih-btn):not(.ih-btn-secondary):not(.ih-btn-tertiary):not(.ih-btn-danger),
.dialog-button-group .MuiButton-contained:not(.ih-btn) {
  background-color: var(--btn-primary-bg) !important;
  color: var(--btn-primary-fg) !important;
}

.ih-dialog-tabs.MuiAppBar-root,
.MuiDialog-root .ih-dialog-tabs {
  background: var(--surface-sunken) !important;
  color: var(--text);
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
  border-radius: var(--radius-pill);
  overflow: hidden;
}

.ih-dialog-tabs .MuiTabs-indicator {
  display: none;
}

.ih-dialog-tabs .MuiTab-root {
  min-height: 36px;
  text-transform: uppercase;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--text-muted) !important;
}

.ih-dialog-tabs .MuiTab-root.Mui-selected {
  background: var(--btn-primary-bg);
  color: var(--btn-primary-fg) !important;
}

.ih-preview-actions {
  gap: 8px;
}

.ih-preview-actions-spacer {
  -ms-flex: 1 0;
      flex: 1 0;
}

.ih-review-action-btns {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: end;
      justify-content: flex-end;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 8px;
}

.Filterable-scene-table .MuiTablePagination-root,
.Filterable-scene-table .MuiTablePagination-caption,
.Filterable-scene-table .MuiTablePagination-selectIcon,
.Filterable-scene-table .MuiTablePagination-actions .MuiIconButton-root {
  color: var(--text-muted);
}

/* §4.5: company groups read as --radius-lg cards. MUI pins 4px through
   .MuiExpansionPanel-rounded:first-child/:last-child, so match that weight. */
.MuiDialog-root .MuiDialogContent-root .MuiExpansionPanel-rounded:first-child,
.MuiDialog-root .MuiDialogContent-root .MuiExpansionPanel-rounded:last-child {
  border-radius: var(--radius-lg);
}

/* Dialog title, §4.7: sans --fs-h4 in brand. */
.dialog-title {
  background-color: var(--surface);
}

.dialog-title h2 {
  color: var(--text-brand) !important;
  font-family: var(--font-sans);
  font-size: var(--fs-h4);
  line-height: var(--lh-h4);
  font-weight: 700;
  text-align: center;
}

.submit-quote table td,
.submit-quote table th {
  text-align: center;
  font-size: 1em;
}

.submit-quote table tbody td {
  color: var(--text-brand);
  font-style: italic;
}

.review-dialog .description {
  line-height: 1.8;
  font-size: 10pt;
}

.review-dialog .description .btn {
  margin-top: 10px;
}

.review-dialog .scroll-container {
  height: 350px;
  padding: 0 15px;
  margin-bottom: 60px;
  overflow-y: auto;
}

.review-dialog .row-fluid {
  margin-bottom: 20px;
}

.review-dialog .form-actions {
  text-align: right;
}

.review-dialog .form-actions .btn,
.review-dialog .form-actions p {
  display: inline-block;
}

.review-dialog .form-actions p {
  margin-right: 10px;
}

.review-dialog {
  padding: 15px 0;
}

.review-dialog .image-container {
  height: 150px;
}

.review-dialog img {
  max-height: 130px;
  max-width: 100px;
  height: auto;
  width: auto;
}

.review-item {
  border-bottom: 1px solid var(--border);
  margin-bottom: 30px;
}

#save-selected {
  display: inline-block;
  margin-top: 15px;
}

.imagehunter-logo {
  height: 32px;
  width: 142px;
  margin-top: 0;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  color: var(--text);
}

/* The logo and tool SVGs ship with hardcoded white fills (.st0 / inline fill).
   They are injected inline so the fills can be repainted with the theme color;
   without this the header chrome is invisible on a light surface. */
.imagehunter-logo path,
.imagehunter-logo polygon,
.imagehunter-logo rect,
.imagehunter-logo circle,
.imagehunter-logo g {
  fill: currentColor !important;
}

/* ReactSVG puts this class on the injected <svg> itself, not a wrapper. */
.ih-tool-icon {
  width: 30px;
  height: 30px;
  color: inherit;
  /* block, like MuiSvgIcon — as inline-block the baseline lifts it ~5px and it
     stops sharing a centerline with the MUI icons beside it. */
  display: block;
}

/* Repaint only the shapes the artwork marks as white (.st0), so any background
   or spacer shape in the icon is left alone. */
.ih-tool-icon .st0 {
  fill: currentColor !important;
}

.left-cell {
  text-align: left !important;
  -ms-flex-direction: row !important;
      flex-direction: row !important;
  font-size: 0.8125rem !important;
}

.table-header-cell {
  text-align: left !important;
  -ms-flex-direction: row !important;
      flex-direction: row !important;
  font-size: var(--fs-label-xs) !important;
}

/* Column headers, §4.6: mono uppercase. The xs step rather than label-sm because
   eight columns share a 470px drawer and mono is wider than the sans it replaces.
   Two classes deep so it outweighs MUI's .MuiTableCell-root font stack. Tracking
   is dropped here — with it, "OFF-NADIR" plus its sort arrow wraps to two lines
   and the header row stops matching the 40px body rows. */
.Filterable-scene-table thead .table-header-cell {
  text-transform: uppercase;
  font-family: var(--font-mono);
  white-space: nowrap;
  overflow: hidden;
}

.Filterable-scene-table thead .MuiTableSortLabel-root {
  min-height: 0;
  overflow: hidden;
}

.data-alert-dialog .dialog-form-control {
  width: 300px;
  margin-top: 22px;
}

.data-alert-dialog .filter-slider {
  width: 300px;
}

.hidden-input {
  display: none;
}

.select-area-bubble {
  border-radius: 12px;
  color: var(--text-on-brand);
  font-style: bold;
  font-size: 12px;
  padding: 0 6px;
  position: fixed;
  z-index: 500;
}

.map-tool-helper {
  padding: 0 6px;
  position: fixed;
  z-index: 500;
  top: 72px;
  right: 84px;
  width: 350px;

  font-size: 14px;
  background-color: var(--surface);
  border: 1px solid var(--border);
  -webkit-box-shadow: var(--shadow-md);
          box-shadow: var(--shadow-md);
}

.map-start-tip {
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-lg);
}

/* On phones there's no fixed top-right corner to dock to, so center the tip
   over the map instead. Desktop/tablet keep the .map-tool-helper top-right
   position. */
@media (max-width: 767px) {
  .map-start-tip {
    position: absolute;
    top: 50%;
    left: 50%;
    right: auto;
    width: min(350px, calc(100% - 32px));
    -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
  }
}

/* Beat .map-tool-helper h4 { line-height: 0 }, which parked the hr on the title. */
.map-start-tip h4 {
  margin: var(--space-2) 0 0;
  line-height: var(--lh-h5) !important;
  font-size: var(--fs-h5);
}

.map-start-tip hr {
  margin: var(--space-3) auto var(--space-2);
  width: 96%;
  border: 0;
  border-top: 1px solid var(--border);
}

.map-start-tip p {
  margin: 0 var(--space-1) var(--space-3);
  color: var(--text);
  font-size: var(--fs-body-sm);
  line-height: var(--lh-body-sm);
  text-align: center;
}

.map-tool-helper h4 {
  text-align: center;
  font-size: 16pt;
  line-height: 0;
}

.map-tool-helper > h4 {
  color: var(--text-brand);
  font-weight: 500;
}

.map-tool-helper hr {
  margin-top: 0;
  border-top-color: var(--border);
  border-bottom: none;
  width: 96%;
}

.map-loading-spinner {
  position: absolute;
  left: 48%;
  top: 47%;
  z-index: 500;
}

/* Suppress the ring for mouse clicks only. Blanket `button:focus { outline:0 }`
   also removed it for keyboard users, which §4.1 forbids. */
button:focus:not(:focus-visible) {
  outline: 0 !important;
}

.coordinate-column-header {
  font-size: var(--fs-label-xs);
  line-height: var(--lh-label-xs);
  letter-spacing: var(--ls-label-xs);
  text-transform: uppercase;
  text-align: center;
  font-family: var(--font-mono);
  color: var(--text-muted);
}

.dialog-button-group {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: end;
      justify-content: flex-end;
  gap: var(--space-2);
  margin-top: var(--space-5);
  float: none;
}

.MuiExpansionPanelDetails-root .ih-btn + .ih-btn,
.MuiExpansionPanelActions-root .ih-btn + .ih-btn {
  margin-left: 8px;
}

.flex-align-center {
  -ms-flex-pack: center;
      justify-content: center;
}

.error-text {
  color: var(--danger);
}

.text-center {
  text-align: center;
}
.text-left {
  text-align: left !important;
}

/* Override rc-slider base styles */
.rc-slider {
  position: relative;
  height: 14px;
  padding: 5px 0;
  width: 100%;
  border-radius: 6px;
  -ms-touch-action: none;
      touch-action: none;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

/* Sliders, restyle §4.5: unfilled track in --border, filled portion brand.
   Previously both were the same amber, so the slider showed no fill level. */
.rc-slider-rail {
  position: absolute;
  width: 100%;
  height: 4px;
  background-color: var(--border);
  border-radius: 0;
}

.rc-slider-track {
  position: absolute;
  left: 0;
  height: 4px;
  border-radius: 0;
  background-color: var(--surface-brand);
}

/* Override rc-slider handle styles */
.rc-slider-handle {
  position: absolute !important;
  margin-left: -7px !important;
  margin-top: -7px !important;
  width: 35px !important;
  height: 16px !important;
  cursor: pointer !important;
  border-radius: var(--radius-sm) !important;
  border: none !important;
  /* The handle doubles as the always-visible value bubble (§4.5), so it uses
     the inverse surface rather than a plain circular thumb. */
  background-color: var(--surface-inverse) !important;
  -ms-touch-action: pan-x !important;
      touch-action: pan-x !important;
  text-align: center !important;
  color: var(--bg) !important;
  font-family: var(--font-mono) !important;
  font-size: var(--fs-label-xs) !important;
  line-height: 16px !important;
  -webkit-box-shadow: var(--shadow-sm) !important;
          box-shadow: var(--shadow-sm) !important;
}

/* Resolution Slider Specific */
.resolution-slider-handle.ih-slider-handle0 .rc-slider-handle {
  background-color: var(--text-subtle) !important;
}

.rc-slider-handle:hover {
  -webkit-box-shadow: var(--shadow-md) !important;
          box-shadow: var(--shadow-md) !important;
}

.rc-slider-handle:active {
  -webkit-box-shadow: var(--shadow-lg) !important;
          box-shadow: var(--shadow-lg) !important;
  cursor: -webkit-grabbing !important;
  cursor: grabbing !important;
}

.multi-select-description {
  font-size: 8pt;
  color: var(--text-brand);
  margin-top: 4px;
  text-align: center;
}

.unselectable {
  -moz-user-select: -moz-none;
  -webkit-user-select: none;
  -o-user-select: none;
  -ms-user-select: none;
      user-select: none;
}

.bottom-map-bar {
  position: fixed;
  bottom: 0px;
  padding: 2px 3px 1px;
  z-index: 500;
  text-align: center;
  width: 100%;
  height: 20px;
  /* Restyle §5: --surface-inverse at 80% with a blur, so it stays legible over
     any basemap. The solid value is the fallback where color-mix is missing. */
  color: var(--bg);
  background-color: var(--surface-inverse);
  background-color: color-mix(in srgb, var(--surface-inverse) 80%, transparent);
  backdrop-filter: blur(8px);
  font-size: 9pt;
  white-space: nowrap;
}

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .bottom-map-bar ul {
    text-align: right;
  }
}

.bottom-map-bar ul {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr auto auto auto 2fr;
  grid-template-columns: 1fr repeat(3, auto) 1fr;
  grid-column-gap: 5px;
  justify-items: center;

  padding: 0;
  margin: 0;
  list-style: none;
}

.bottom-map-bar li:nth-child(1) {
  grid-column-start: 2;
}

.bottom-map-bar li:nth-child(4) {
  margin-left: auto;
}

.bottom-map-bar .seperator:after {
  content: "\2022";
  margin-right: 5px;
  margin-left: 5px;
}

.menu-button-link,
.menu-button-link:link,
.menu-button-link:visited {
  text-decoration: none;
  color: inherit;
}

.menu-button-link:hover {
  color: var(--text-brand);
  text-decoration: none;
}

.scene-dialog-spinner {
  position: absolute;
  top: 50%;
  left: 50%;
}

.ih-move-arrows {
  color: var(--text-subtle);
}

.Filterable-scene-table .ih-zindex-cell {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: end;
      justify-content: flex-end;
  gap: 6px;
}

.recaptcha-iframe iframe {
  height: 64px;
}

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .ie-flex-basis-hack {
    -ms-flex-preferred-size: auto !important;
        flex-basis: auto !important;
  }
}

.react-swipeable-view-container {
  height: 100%;
}

/* Tighter search drawer: remove default swipe-pane vertical margins */
.react-swipeable-view-container > div[data-swipeable="true"] {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  height: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* Hidden Search pane is still in the DOM and was eating Signup/Login clicks. */
.react-swipeable-view-container > div[aria-hidden="true"] {
  pointer-events: none !important;
}

/* Manage Account tab root — restyle §4.4 drawer body. */
.user-panel {
  float: left;
  overflow-y: auto;
  width: 100%;
  height: 100%;
  background-color: var(--bg);
  color: var(--text);
}

.user-buttons-div {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
      justify-content: center;
  width: inherit;
  padding-top: 16px;
}

.user-buttons {
  position: static;
}

.searchSat {
  display: inline-block;
}

.leaflet-google-mutant {
  width: 100%;
}

.leaflet-control-scale {
  position: relative !important;
  z-index: 0 !important;
  right: 40px !important;
}

.leaflet-control-layers {
  position: absolute !important;
  right: 0;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
}

.leaflet-control-layers-expanded {
  width: 175px;
  bottom: 10px;
  position: absolute;
}

/*
 * Scene-row markers, §4.6. Each is a letter or count in a ringed circle; the
 * ring color is the semantic meaning, so it comes from a token and the fill is
 * --surface-raised so the marker reads on both a normal and a selected row.
 */
.stereo-circle {
  background-color: var(--surface-raised);
  border: 1.5px solid var(--text-accent);
  border-radius: 50%;
  -moz-border-radius: 50%;
  -webkit-border-radius: 50%;
}

.stereo-circle:hover {
  cursor: default;
}

.sar-circle {
  background-color: var(--surface-raised);
  border: 1.5px solid var(--text-brand);
  border-radius: 50%;
  -moz-border-radius: 50%;
  -webkit-border-radius: 50%;
}

.sar-circle:hover {
  cursor: default;
}

.image-band-count-circle {
  background-color: var(--surface-raised);
  border: 1.5px solid var(--warning);
  border-radius: 50%;
  -moz-border-radius: 50%;
  -webkit-border-radius: 50%;
}

.image-band-pan-circle {
}

.image-band-count-circle:hover {
  cursor: default;
}

.info-circle {
  background-color: var(--surface-raised);
  border: 1.5px solid var(--success);
  border-radius: 50%;
  -moz-border-radius: 50%;
  -webkit-border-radius: 50%;
}

.info-circle:hover {
  background-color: var(--surface-sunken);
  cursor: pointer;
}

.tri-stereo-circle {
  background-color: var(--surface-raised);
  border: 1.5px solid var(--text-accent);
  border-radius: 50%;
  -moz-border-radius: 50%;
  -webkit-border-radius: 50%;
}

.tri-stereo-circle:hover {
  cursor: default;
}

.ih-clip-choice {
  position: fixed;
  inset: 0;
  z-index: 1300;
  background-color: var(--surface);
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
}

.ih-clip-choice-header {
  background-color: var(--bg);
  border-bottom: 1px solid var(--border);
  -ms-flex-negative: 0;
      flex-shrink: 0;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  padding: 16px 24px;
  gap: 16px;
}

.ih-clip-choice-header-title {
  color: var(--text-brand);
  font-weight: 700;
  font-size: 1.1rem;
}

.ih-clip-choice-close {
  background: none;
  border: none;
  color: var(--text-muted);
  font-size: 20px;
  cursor: pointer;
  padding: 2px 6px;
  line-height: 1;
}

.ih-clip-choice-body {
  -ms-flex: 1 1;
      flex: 1 1;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
  gap: 32px;
  padding: 40px;
  position: relative;
  min-height: 0;
}

.ih-clip-choice-heading {
  text-align: center;
}

.ih-clip-choice-title {
  color: var(--text);
  font-size: 1.15rem;
  font-weight: 600;
  margin-bottom: 6px;
}

.ih-clip-choice-sub {
  color: var(--text-subtle);
  font-size: 0.85rem;
}

.ih-clip-choice-cards {
  display: -ms-flexbox;
  display: flex;
  gap: 24px;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-pack: center;
      justify-content: center;
}

.ih-clip-choice-card {
  background: var(--surface-raised);
  border: 2px solid var(--border);
  border-radius: 10px;
  padding: 32px 36px;
  text-align: left;
  color: var(--text);
  width: 280px;
  -webkit-transition: border-color 0.15s;
  -o-transition: border-color 0.15s;
  transition: border-color 0.15s;
}

.ih-clip-choice-card-icon {
  font-size: 2rem;
  margin-bottom: 10px;
  color: var(--text-brand);
}

.ih-clip-choice-card-title {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 8px;
  color: var(--text);
}

.ih-clip-choice-card-desc {
  font-size: 0.82rem;
  color: var(--text-muted);
  line-height: 1.5;
}

/* ---- Mobile (phone ≤767px). Desktop layout stays unchanged. ---- */
@media (max-width: 767px) {
  .MuiDrawer-paper {
    height: 100vh;
    height: 100dvh;
    width: 100vw !important;
    max-width: 100vw !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -ms-flex-direction: column;
        flex-direction: column;
    overflow: hidden !important;
  }

  .ih-mobile-drawer-body {
    -ms-flex: 1 1 auto;
        flex: 1 1 auto;
    min-height: 0;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    overflow: hidden;
  }

  .ih-mobile-drawer-body .Filterable-scene-table {
    -ms-flex: 1 1 auto;
        flex: 1 1 auto;
    min-height: 0;
    height: auto;
  }

  .ih-mobile-drawer-body .user-panel {
    float: none;
    -ms-flex: 1 1 auto;
        flex: 1 1 auto;
    min-height: 0;
    height: auto;
  }

  .MuiDrawer-paper > .MuiAppBar-root,
  .ih-mobile-drawer-tabs,
  .scene-filter-bar {
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }

  .MuiDialog-paper {
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    border-radius: 0 !important;
  }

  .white-popup,
  .new-popup {
    width: 100% !important;
    max-width: 100% !important;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }

  .dialog-title .MuiIconButton-root {
    position: absolute;
    right: 4px;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    margin-left: 0 !important;
    width: var(--tap-min) !important;
    height: var(--tap-min) !important;
    min-width: var(--tap-min);
    padding: 0 !important;
  }

  .scene-dialog {
    font-size: var(--fs-body-sm) !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    overflow-x: hidden;
  }

  .ih-scene-dialog-split {
    display: -ms-flexbox !important;
    display: flex !important;
    -ms-flex-direction: column;
        flex-direction: column;
    gap: 12px;
  }

  .ih-scene-dialog-preview {
    width: 100% !important;
    -ms-flex-order: -1;
        order: -1;
  }

  .ih-scene-dialog-preview-inner {
    float: none;
    width: 100%;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
        justify-content: center;
    min-height: 140px;
  }

  .ih-scene-dialog-preview-inner img {
    width: 100%;
    height: auto;
    max-height: 38vh;
    -o-object-fit: contain;
       object-fit: contain;
  }

  .ih-scene-dialog-preview-error {
    width: 100%;
    height: 160px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }

  .ih-scene-dialog-meta {
    width: 100% !important;
  }

  .ih-info-row-line {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.15fr);
    gap: 0 8px;
    -ms-flex-align: baseline;
        align-items: baseline;
  }

  .ih-info-row-label,
  .ih-info-row-value {
    width: auto !important;
    min-width: 0 !important;
    line-height: 1.35;
  }

  .ih-info-row-label {
    font-size: 11px;
  }

  .ih-info-row-value {
    font-size: 12px;
  }

  .ih-info-row-stacked {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.15fr);
    gap: 0 8px;
  }

  .ih-scene-dialog-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    width: 100%;
    padding: 8px 0 16px;
  }

  .ih-scene-dialog-actions .MuiButton-root {
    width: 100%;
    margin: 0 !important;
    min-height: var(--tap-min);
    height: auto !important;
    white-space: normal;
  }

  .ih-scene-dialog-actions .MuiButton-root:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  .ih-preview-setting {
    -ms-flex-direction: column !important;
        flex-direction: column !important;
    -ms-flex-align: stretch;
        align-items: stretch;
    gap: 4px;
    margin-bottom: 12px;
  }

  .ih-preview-setting-label {
    width: auto !important;
    padding-right: 0 !important;
    line-height: 1.3 !important;
  }

  .ih-preview-setting .MuiInput-root {
    width: 100%;
  }

  .new-popup .MuiDialogActions-root {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    padding: 8px 0 0;
  }

  .new-popup .ih-preview-actions-spacer {
    display: none;
  }

  .new-popup .MuiDialogActions-root .MuiButton-root {
    width: 100%;
    margin: 0 !important;
    min-height: var(--tap-min);
    height: auto !important;
    white-space: normal;
  }

  .MuiTable-root thead {
    display: none;
  }

  .search-results-footer {
    width: 100% !important;
  }

  .search-results-footer .buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
    max-width: 100%;
    align-self: stretch;
    gap: 8px;
  }

  .search-results-footer .buttons > span {
    display: -ms-flexbox;
    display: flex;
    min-width: 0;
  }

  .search-results-footer .buttons > span:last-child {
    grid-column: 1 / -1;
  }

  .search-results-footer .buttons > .ih-btn,
  .search-results-footer .buttons > span > .ih-btn {
    width: 100%;
    min-width: 0 !important;
    height: var(--tap-min);
    padding: 0 10px !important;
  }

  .ih-filter-chip {
    height: var(--control-h-xs);
    max-height: var(--control-h-xs);
    overflow: hidden;
    -ms-flex-align: stretch;
        align-items: stretch;
  }

  .ih-filter-chip-body,
  .ih-filter-chip-reset {
    min-height: 0 !important;
    max-height: 100%;
    line-height: 1;
  }

  .ih-filter-chip-reset {
    width: 22px;
    min-width: 22px;
    padding: 0;
    font-size: 13px;
  }

  .info-circle {
    width: var(--tap-min);
    height: var(--tap-min);
    line-height: var(--tap-min);
    font-size: 16px;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
  }

  .ih-mobile-drawer-tabs {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: stretch;
        align-items: stretch;
    border-bottom: 1px solid var(--border);
    background: var(--bg);
    min-height: var(--tap-min);
  }

  .ih-mobile-drawer-tab,
  .ih-mobile-drawer-map {
    -ms-flex: 1 1;
        flex: 1 1;
    min-height: var(--tap-min);
    border: 0;
    background: transparent;
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: var(--fs-label-xs);
    letter-spacing: var(--ls-label-xs);
    text-transform: uppercase;
    cursor: pointer;
  }

  .ih-mobile-drawer-tab.is-on {
    color: var(--text-brand);
    -webkit-box-shadow: inset 0 -2px 0 var(--text-brand);
            box-shadow: inset 0 -2px 0 var(--text-brand);
  }

  .ih-mobile-drawer-map {
    color: var(--text);
    font-weight: 600;
  }

  .ih-tool-sheet-backdrop {
    position: fixed;
    inset: 0;
    background: var(--scrim);
    z-index: 1250;
  }

  .ih-tool-sheet {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    max-height: 70vh;
    overflow: auto;
    padding: 12px 12px 8px;
  }

  .ih-tool-sheet-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px 4px;
    padding-bottom: 8px;
  }

  .ih-tool-sheet-item {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex-align: center;
        align-items: center;
    min-height: var(--tap-min);
  }

  .ih-tool-sheet-label {
    font-size: 10px;
    line-height: 12px;
    color: var(--text-muted);
    text-align: center;
    margin-top: 2px;
  }

  .ih-tool-sheet-account {
    padding: 8px 4px 4px;
    border-top: 1px solid var(--border);
  }

  .ih-scene-list {
    display: -ms-flexbox !important;
    display: flex !important;
    -ms-flex-direction: column;
        flex-direction: column;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }

  .ih-scene-card-row {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }

  .ih-scene-card {
    border-bottom: 1px solid var(--border);
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    -webkit-box-sizing: border-box !important;
            box-sizing: border-box !important;
    padding: 0 !important;
  }

  .Filterable-scene-table .MuiTable-root {
    display: -ms-flexbox !important;
    display: flex !important;
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex: 1 1;
        flex: 1 1;
    min-height: 0 !important;
    overflow: hidden;
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
  }

  .Filterable-scene-table .MuiTableBody-root,
  #scene-table-body {
    display: block !important;
    -ms-flex: 1 1;
        flex: 1 1;
    min-height: 0 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    width: 100% !important;
    max-width: 100% !important;
  }

  .Filterable-scene-table .MuiPaper-root {
    width: 100% !important;
    max-width: 100% !important;
    -webkit-box-sizing: border-box !important;
            box-sizing: border-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex: 1 1 auto;
        flex: 1 1 auto;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  .Filterable-scene-table .MuiTablePagination-root {
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }

  .search-results-footer {
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }

  .ih-scene-card-inner {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 8px;
    padding: 10px 8px;
    min-height: var(--tap-min);
    width: 100%;
    max-width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }

  .ih-scene-card-body {
    -ms-flex: 1 1;
        flex: 1 1;
    min-width: 0;
  }

  .ih-scene-card-title,
  .ih-scene-card-meta {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 6px 10px;
  }

  .ih-scene-card-title {
    font-weight: 600;
    font-size: var(--fs-body-sm);
  }

  .ih-scene-card-meta {
    font-size: var(--fs-caption);
    color: var(--text-muted);
    margin-top: 2px;
  }

  .ih-scene-card-meta-label {
    opacity: 0.7;
  }

  .ih-scene-card-actions {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 2px;
  }

  .ih-tap-icon {
    width: var(--tap-min) !important;
    height: var(--tap-min) !important;
    padding: 0 !important;
  }

  .ih-empty-results-actions {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    gap: 8px;
  }

  .ih-empty-results-actions .ih-btn {
    min-height: var(--tap-min);
    width: 100%;
  }

  .map-tool-helper.ih-tap-place-helper {
    top: 80px;
    left: 50%;
    right: auto;
    width: min(260px, calc(100vw - 24px));
    max-width: calc(100vw - 24px);
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%);
    padding: 10px 12px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    border-radius: var(--radius-lg);
  }

  .ih-tap-place-title {
    font-size: var(--fs-body-sm);
    margin-bottom: 8px;
    text-align: center;
    line-height: 1.3;
  }

  .ih-tap-place-sizes {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: stretch;
        justify-content: stretch;
    gap: 6px;
    width: 100%;
  }

  .ih-tap-place-size {
    -ms-flex: 1 1;
        flex: 1 1;
    min-height: var(--tap-min);
    min-width: 0;
    padding: 0 8px;
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    background: var(--surface-raised);
    color: var(--text);
    cursor: pointer;
    font-size: 12px;
  }

  .ih-tap-place-size.is-on {
    background: var(--btn-primary-bg);
    color: var(--btn-primary-fg);
    border-color: var(--btn-primary-bg);
  }

  .ui-popover-sheet {
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    top: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;
    max-height: 85vh;
    overflow: auto;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    -webkit-box-shadow: var(--shadow-xl);
            box-shadow: var(--shadow-xl);
  }

  .ui-popover-sheet .ui-popover-arrow {
    display: none;
  }

  .ih-clip-split {
    -ms-flex-direction: column !important;
        flex-direction: column !important;
  }

  .ih-clip-split > div {
    -ms-flex-preferred-size: auto !important;
        flex-basis: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    border-right: none !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  .ih-clip-sidebar {
    width: 100% !important;
    -ms-flex: 1 1 45% !important;
        flex: 1 1 45% !important;
    max-height: 50%;
    padding-right: 0 !important;
  }

  .ih-clip-resize {
    display: none !important;
  }

  .ih-clip-map {
    min-height: 220px;
    -ms-flex: 1 1 55% !important;
        flex: 1 1 55% !important;
  }

  .ih-clip-page .MuiStepper-root {
    padding: 8px 8px 4px !important;
    overflow-x: auto;
  }

  .ih-clip-choice {
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
  }

  .ih-clip-choice-header {
    padding: 10px 12px;
  }

  .ih-clip-choice-header-title {
    font-size: 1rem;
  }

  .ih-clip-choice-close {
    width: var(--tap-min);
    height: var(--tap-min);
  }

  .ih-clip-choice-body {
    -ms-flex-pack: start;
        justify-content: flex-start;
    -ms-flex-align: stretch;
        align-items: stretch;
    gap: 10px;
    padding: 12px;
    overflow: hidden;
  }

  .ih-clip-choice-heading {
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }

  .ih-clip-choice-title {
    font-size: 1rem;
    margin-bottom: 4px;
  }

  .ih-clip-choice-sub {
    font-size: 0.75rem;
  }

  .ih-clip-choice-cards {
    -ms-flex: 1 1 auto;
        flex: 1 1 auto;
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    gap: 8px;
    width: 100%;
    min-height: 0;
    overflow: hidden;
  }

  .ih-clip-choice-card {
    width: 100%;
    max-width: 100%;
    -ms-flex: 1 1;
        flex: 1 1;
    min-height: 0;
    padding: 10px 12px;
    display: grid;
    grid-template-columns: 2rem 1fr;
    grid-template-rows: auto 1fr;
    -webkit-column-gap: 10px;
       -moz-column-gap: 10px;
            column-gap: 10px;
    row-gap: 2px;
    overflow: hidden;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }

  .ih-clip-choice-card-icon {
    grid-row: 1 / span 2;
    -ms-flex-item-align: start;
        align-self: start;
    font-size: 1.35rem;
    margin-bottom: 0;
    line-height: 1.2;
  }

  .ih-clip-choice-card-title {
    font-size: 0.95rem;
    margin-bottom: 0;
  }

  .ih-clip-choice-card-desc {
    font-size: 0.72rem;
    line-height: 1.3;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 4;
  }

  .ih-move-to {
    max-width: 140px;
    min-height: 32px;
    font-size: 12px;
  }

  .ih-priority-move {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
  }

  .ih-ds-title.MuiDialogTitle-root,
  .ih-ds-title {
    padding-right: 12px !important;
    padding-left: 12px !important;
  }

  .ih-ds-title-row {
    padding-right: 40px;
  }

  .ih-ds-toolbar {
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex-align: stretch;
        align-items: stretch;
    width: 100%;
  }

  .ih-ds-search {
    -ms-flex: none;
        flex: none;
    width: 100%;
  }

  .ih-ds-search .MuiInput-root {
    width: 100%;
  }

  .ih-ds-sort-row {
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex-align: stretch;
        align-items: stretch;
    width: 100%;
    white-space: normal;
    gap: 8px;
  }

  .ih-ds-sort-row .ih-seg {
    width: 100%;
    display: -ms-flexbox;
    display: flex;
  }

  .ih-ds-sort-row .ih-seg-btn {
    -ms-flex: 1 1;
        flex: 1 1;
    min-height: var(--tap-min);
  }

  .ih-ds-sort-row .ih-btn {
    width: 100%;
    min-height: var(--tap-min);
  }

  .ih-review-actions,
  .MuiDialog-root .MuiDialogActions-root.ih-review-actions,
  .ih-ds-actions,
  .MuiDialog-root .MuiDialogActions-root.ih-ds-actions {
    display: -ms-flexbox !important;
    display: flex !important;
    -ms-flex-direction: column !important;
        flex-direction: column !important;
    -ms-flex-align: stretch !important;
        align-items: stretch !important;
    -ms-flex-pack: start !important;
        justify-content: flex-start !important;
    -ms-flex-wrap: nowrap !important;
        flex-wrap: nowrap !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    -webkit-box-sizing: border-box !important;
            box-sizing: border-box !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .ih-review-actions > p,
  .MuiDialog-root .MuiDialogActions-root.ih-review-actions > p {
    width: 100%;
    text-align: center;
    margin: 0 !important;
    -ms-flex: none;
        flex: none;
  }

  .ih-review-action-btns,
  .ih-review-actions .ih-review-action-btns {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    width: 100%;
    max-width: 100%;
    gap: 8px;
    margin: 0 !important;
    position: relative;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }

  .ih-ds-actions,
  .MuiDialog-root .MuiDialogActions-root.ih-ds-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
  }

  .ih-review-actions .MuiButton-root,
  .ih-ds-actions .MuiButton-root,
  .MuiDialog-root .MuiDialogActions-root.ih-review-actions .MuiButton-root,
  .MuiDialog-root .MuiDialogActions-root.ih-ds-actions .MuiButton-root {
    width: 100%;
    max-width: 100%;
    margin: 0 !important;
    min-width: 0 !important;
    min-height: var(--tap-min);
    height: auto !important;
    white-space: normal;
  }

  .ih-review-action-btns .MuiButton-root:last-child {
    grid-column: 1 / -1;
  }

  .ih-bundle-child .ih-scene-card-inner {
    padding-left: 20px;
  }
}

.ih-clip-choice {
  position: fixed;
  inset: 0;
  z-index: 1300;
  background-color: var(--surface);
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
}

.ih-clip-choice-header {
  background-color: var(--bg);
  border-bottom: 1px solid var(--border);
  -ms-flex-negative: 0;
      flex-shrink: 0;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  padding: 16px 24px;
  gap: 16px;
}

.ih-clip-choice-header-title {
  color: var(--text-brand);
  font-weight: 700;
  font-size: 1.1rem;
}

.ih-clip-choice-close {
  background: none;
  border: none;
  color: var(--text-muted);
  font-size: 20px;
  cursor: pointer;
  padding: 2px 6px;
  line-height: 1;
}

.ih-clip-choice-body {
  -ms-flex: 1 1;
      flex: 1 1;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
  gap: 32px;
  padding: 40px;
  position: relative;
  min-height: 0;
}

.ih-clip-choice-heading {
  text-align: center;
}

.ih-clip-choice-title {
  color: var(--text);
  font-size: 1.15rem;
  font-weight: 600;
  margin-bottom: 6px;
}

.ih-clip-choice-sub {
  color: var(--text-subtle);
  font-size: 0.85rem;
}

.ih-clip-choice-cards {
  display: -ms-flexbox;
  display: flex;
  gap: 24px;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-pack: center;
      justify-content: center;
}

.ih-clip-choice-card {
  background: var(--surface-raised);
  border: 2px solid var(--border);
  border-radius: 10px;
  padding: 32px 36px;
  text-align: left;
  color: var(--text);
  width: 280px;
  -webkit-transition: border-color 0.15s;
  -o-transition: border-color 0.15s;
  transition: border-color 0.15s;
}

.ih-clip-choice-card-icon {
  font-size: 2rem;
  margin-bottom: 10px;
  color: var(--text-brand);
}

.ih-clip-choice-card-title {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 8px;
  color: var(--text);
}

.ih-clip-choice-card-desc {
  font-size: 0.82rem;
  color: var(--text-muted);
  line-height: 1.5;
}

.ih-move-to {
  margin-left: 8px;
  max-width: 180px;
  font-size: 12px;
  color: var(--text);
  background: var(--surface-raised);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 4px 6px;
}


/*!
 * Bootstrap v3.3.7 (http://getbootstrap.com)
 * Copyright 2011-2018 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */

/*!
 * Generated using the Bootstrap Customizer (https://getbootstrap.com/docs/3.3/customize/?id=27e114fe045dc1bd9d0cfba52a440072)
 * Config saved to config.json and https://gist.github.com/27e114fe045dc1bd9d0cfba52a440072
 */
/*!
 * Bootstrap v3.3.7 (http://getbootstrap.com)
 * Copyright 2011-2016 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
b,
strong {
  font-weight: bold;
}
dfn {
  font-style: italic;
}
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
mark {
  background: #ff0;
  color: #000;
}

code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
*:before,
*:after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
input,
button,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
a {
  color: #337ab7;
  text-decoration: none;
}
a:hover,
a:focus {
  color: #23527c;
  text-decoration: underline;
}
a:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
figure {
  margin: 0;
}
img {
  vertical-align: middle;
}
.img-responsive {
  display: block;
  max-width: 100%;
  height: auto;
}
.img-rounded {
  border-radius: 6px;
}
.img-thumbnail {
  padding: 4px;
  line-height: 1.42857143;
  background-color: #ffffff;
  border: 1px solid #dddddd;
  border-radius: 4px;
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  display: inline-block;
  max-width: 100%;
  height: auto;
}
.img-circle {
  border-radius: 50%;
}
hr {
  margin-top: 20px;
  margin-bottom: 20px;
  border: 0;
  border-top: 1px solid #eeeeee;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}
[role="button"] {
  cursor: pointer;
}
.container {
  margin-right: auto;
  margin-left: auto;
  padding-left: 15px;
  padding-right: 15px;
}
@media (min-width: 768px) {
  .container {
    width: 750px;
  }
}
@media (min-width: 992px) {
  .container {
    width: 970px;
  }
}
@media (min-width: 1200px) {
  .container {
    width: 1170px;
  }
}
.container-fluid {
  margin-right: auto;
  margin-left: auto;
  padding-left: 15px;
  padding-right: 15px;
}
.row {
  margin-left: -15px;
  margin-right: -15px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
  position: relative;
  min-height: 1px;
  padding-left: 15px;
  padding-right: 15px;
}
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
  float: left;
}
.col-xs-12 {
  width: 100%;
}
.col-xs-11 {
  width: 91.66666667%;
}
.col-xs-10 {
  width: 83.33333333%;
}
.col-xs-9 {
  width: 75%;
}
.col-xs-8 {
  width: 66.66666667%;
}
.col-xs-7 {
  width: 58.33333333%;
}
.col-xs-6 {
  width: 50%;
}
.col-xs-5 {
  width: 41.66666667%;
}
.col-xs-4 {
  width: 33.33333333%;
}
.col-xs-3 {
  width: 25%;
}
.col-xs-2 {
  width: 16.66666667%;
}
.col-xs-1 {
  width: 8.33333333%;
}
.col-xs-pull-12 {
  right: 100%;
}
.col-xs-pull-11 {
  right: 91.66666667%;
}
.col-xs-pull-10 {
  right: 83.33333333%;
}
.col-xs-pull-9 {
  right: 75%;
}
.col-xs-pull-8 {
  right: 66.66666667%;
}
.col-xs-pull-7 {
  right: 58.33333333%;
}
.col-xs-pull-6 {
  right: 50%;
}
.col-xs-pull-5 {
  right: 41.66666667%;
}
.col-xs-pull-4 {
  right: 33.33333333%;
}
.col-xs-pull-3 {
  right: 25%;
}
.col-xs-pull-2 {
  right: 16.66666667%;
}
.col-xs-pull-1 {
  right: 8.33333333%;
}
.col-xs-pull-0 {
  right: auto;
}
.col-xs-push-12 {
  left: 100%;
}
.col-xs-push-11 {
  left: 91.66666667%;
}
.col-xs-push-10 {
  left: 83.33333333%;
}
.col-xs-push-9 {
  left: 75%;
}
.col-xs-push-8 {
  left: 66.66666667%;
}
.col-xs-push-7 {
  left: 58.33333333%;
}
.col-xs-push-6 {
  left: 50%;
}
.col-xs-push-5 {
  left: 41.66666667%;
}
.col-xs-push-4 {
  left: 33.33333333%;
}
.col-xs-push-3 {
  left: 25%;
}
.col-xs-push-2 {
  left: 16.66666667%;
}
.col-xs-push-1 {
  left: 8.33333333%;
}
.col-xs-push-0 {
  left: auto;
}
.col-xs-offset-12 {
  margin-left: 100%;
}
.col-xs-offset-11 {
  margin-left: 91.66666667%;
}
.col-xs-offset-10 {
  margin-left: 83.33333333%;
}
.col-xs-offset-9 {
  margin-left: 75%;
}
.col-xs-offset-8 {
  margin-left: 66.66666667%;
}
.col-xs-offset-7 {
  margin-left: 58.33333333%;
}
.col-xs-offset-6 {
  margin-left: 50%;
}
.col-xs-offset-5 {
  margin-left: 41.66666667%;
}
.col-xs-offset-4 {
  margin-left: 33.33333333%;
}
.col-xs-offset-3 {
  margin-left: 25%;
}
.col-xs-offset-2 {
  margin-left: 16.66666667%;
}
.col-xs-offset-1 {
  margin-left: 8.33333333%;
}
.col-xs-offset-0 {
  margin-left: 0%;
}
@media (min-width: 768px) {
  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
    float: left;
  }
  .col-sm-12 {
    width: 100%;
  }
  .col-sm-11 {
    width: 91.66666667%;
  }
  .col-sm-10 {
    width: 83.33333333%;
  }
  .col-sm-9 {
    width: 75%;
  }
  .col-sm-8 {
    width: 66.66666667%;
  }
  .col-sm-7 {
    width: 58.33333333%;
  }
  .col-sm-6 {
    width: 50%;
  }
  .col-sm-5 {
    width: 41.66666667%;
  }
  .col-sm-4 {
    width: 33.33333333%;
  }
  .col-sm-3 {
    width: 25%;
  }
  .col-sm-2 {
    width: 16.66666667%;
  }
  .col-sm-1 {
    width: 8.33333333%;
  }
  .col-sm-pull-12 {
    right: 100%;
  }
  .col-sm-pull-11 {
    right: 91.66666667%;
  }
  .col-sm-pull-10 {
    right: 83.33333333%;
  }
  .col-sm-pull-9 {
    right: 75%;
  }
  .col-sm-pull-8 {
    right: 66.66666667%;
  }
  .col-sm-pull-7 {
    right: 58.33333333%;
  }
  .col-sm-pull-6 {
    right: 50%;
  }
  .col-sm-pull-5 {
    right: 41.66666667%;
  }
  .col-sm-pull-4 {
    right: 33.33333333%;
  }
  .col-sm-pull-3 {
    right: 25%;
  }
  .col-sm-pull-2 {
    right: 16.66666667%;
  }
  .col-sm-pull-1 {
    right: 8.33333333%;
  }
  .col-sm-pull-0 {
    right: auto;
  }
  .col-sm-push-12 {
    left: 100%;
  }
  .col-sm-push-11 {
    left: 91.66666667%;
  }
  .col-sm-push-10 {
    left: 83.33333333%;
  }
  .col-sm-push-9 {
    left: 75%;
  }
  .col-sm-push-8 {
    left: 66.66666667%;
  }
  .col-sm-push-7 {
    left: 58.33333333%;
  }
  .col-sm-push-6 {
    left: 50%;
  }
  .col-sm-push-5 {
    left: 41.66666667%;
  }
  .col-sm-push-4 {
    left: 33.33333333%;
  }
  .col-sm-push-3 {
    left: 25%;
  }
  .col-sm-push-2 {
    left: 16.66666667%;
  }
  .col-sm-push-1 {
    left: 8.33333333%;
  }
  .col-sm-push-0 {
    left: auto;
  }
  .col-sm-offset-12 {
    margin-left: 100%;
  }
  .col-sm-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-sm-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-sm-offset-9 {
    margin-left: 75%;
  }
  .col-sm-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-sm-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-sm-offset-6 {
    margin-left: 50%;
  }
  .col-sm-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-sm-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-sm-offset-3 {
    margin-left: 25%;
  }
  .col-sm-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-sm-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-sm-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 992px) {
  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
    float: left;
  }
  .col-md-12 {
    width: 100%;
  }
  .col-md-11 {
    width: 91.66666667%;
  }
  .col-md-10 {
    width: 83.33333333%;
  }
  .col-md-9 {
    width: 75%;
  }
  .col-md-8 {
    width: 66.66666667%;
  }
  .col-md-7 {
    width: 58.33333333%;
  }
  .col-md-6 {
    width: 50%;
  }
  .col-md-5 {
    width: 41.66666667%;
  }
  .col-md-4 {
    width: 33.33333333%;
  }
  .col-md-3 {
    width: 25%;
  }
  .col-md-2 {
    width: 16.66666667%;
  }
  .col-md-1 {
    width: 8.33333333%;
  }
  .col-md-pull-12 {
    right: 100%;
  }
  .col-md-pull-11 {
    right: 91.66666667%;
  }
  .col-md-pull-10 {
    right: 83.33333333%;
  }
  .col-md-pull-9 {
    right: 75%;
  }
  .col-md-pull-8 {
    right: 66.66666667%;
  }
  .col-md-pull-7 {
    right: 58.33333333%;
  }
  .col-md-pull-6 {
    right: 50%;
  }
  .col-md-pull-5 {
    right: 41.66666667%;
  }
  .col-md-pull-4 {
    right: 33.33333333%;
  }
  .col-md-pull-3 {
    right: 25%;
  }
  .col-md-pull-2 {
    right: 16.66666667%;
  }
  .col-md-pull-1 {
    right: 8.33333333%;
  }
  .col-md-pull-0 {
    right: auto;
  }
  .col-md-push-12 {
    left: 100%;
  }
  .col-md-push-11 {
    left: 91.66666667%;
  }
  .col-md-push-10 {
    left: 83.33333333%;
  }
  .col-md-push-9 {
    left: 75%;
  }
  .col-md-push-8 {
    left: 66.66666667%;
  }
  .col-md-push-7 {
    left: 58.33333333%;
  }
  .col-md-push-6 {
    left: 50%;
  }
  .col-md-push-5 {
    left: 41.66666667%;
  }
  .col-md-push-4 {
    left: 33.33333333%;
  }
  .col-md-push-3 {
    left: 25%;
  }
  .col-md-push-2 {
    left: 16.66666667%;
  }
  .col-md-push-1 {
    left: 8.33333333%;
  }
  .col-md-push-0 {
    left: auto;
  }
  .col-md-offset-12 {
    margin-left: 100%;
  }
  .col-md-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-md-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-md-offset-9 {
    margin-left: 75%;
  }
  .col-md-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-md-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-md-offset-6 {
    margin-left: 50%;
  }
  .col-md-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-md-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-md-offset-3 {
    margin-left: 25%;
  }
  .col-md-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-md-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-md-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 1200px) {
  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
    float: left;
  }
  .col-lg-12 {
    width: 100%;
  }
  .col-lg-11 {
    width: 91.66666667%;
  }
  .col-lg-10 {
    width: 83.33333333%;
  }
  .col-lg-9 {
    width: 75%;
  }
  .col-lg-8 {
    width: 66.66666667%;
  }
  .col-lg-7 {
    width: 58.33333333%;
  }
  .col-lg-6 {
    width: 50%;
  }
  .col-lg-5 {
    width: 41.66666667%;
  }
  .col-lg-4 {
    width: 33.33333333%;
  }
  .col-lg-3 {
    width: 25%;
  }
  .col-lg-2 {
    width: 16.66666667%;
  }
  .col-lg-1 {
    width: 8.33333333%;
  }
  .col-lg-pull-12 {
    right: 100%;
  }
  .col-lg-pull-11 {
    right: 91.66666667%;
  }
  .col-lg-pull-10 {
    right: 83.33333333%;
  }
  .col-lg-pull-9 {
    right: 75%;
  }
  .col-lg-pull-8 {
    right: 66.66666667%;
  }
  .col-lg-pull-7 {
    right: 58.33333333%;
  }
  .col-lg-pull-6 {
    right: 50%;
  }
  .col-lg-pull-5 {
    right: 41.66666667%;
  }
  .col-lg-pull-4 {
    right: 33.33333333%;
  }
  .col-lg-pull-3 {
    right: 25%;
  }
  .col-lg-pull-2 {
    right: 16.66666667%;
  }
  .col-lg-pull-1 {
    right: 8.33333333%;
  }
  .col-lg-pull-0 {
    right: auto;
  }
  .col-lg-push-12 {
    left: 100%;
  }
  .col-lg-push-11 {
    left: 91.66666667%;
  }
  .col-lg-push-10 {
    left: 83.33333333%;
  }
  .col-lg-push-9 {
    left: 75%;
  }
  .col-lg-push-8 {
    left: 66.66666667%;
  }
  .col-lg-push-7 {
    left: 58.33333333%;
  }
  .col-lg-push-6 {
    left: 50%;
  }
  .col-lg-push-5 {
    left: 41.66666667%;
  }
  .col-lg-push-4 {
    left: 33.33333333%;
  }
  .col-lg-push-3 {
    left: 25%;
  }
  .col-lg-push-2 {
    left: 16.66666667%;
  }
  .col-lg-push-1 {
    left: 8.33333333%;
  }
  .col-lg-push-0 {
    left: auto;
  }
  .col-lg-offset-12 {
    margin-left: 100%;
  }
  .col-lg-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-lg-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-lg-offset-9 {
    margin-left: 75%;
  }
  .col-lg-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-lg-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-lg-offset-6 {
    margin-left: 50%;
  }
  .col-lg-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-lg-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-lg-offset-3 {
    margin-left: 25%;
  }
  .col-lg-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-lg-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-lg-offset-0 {
    margin-left: 0%;
  }
}
table {
  background-color: transparent;
}
caption {
  padding-top: 8px;
  padding-bottom: 8px;
  color: #777777;
  text-align: left;
}
th {
  text-align: left;
}
.table {
  width: 100%;
  max-width: 100%;
  margin-bottom: 20px;
}
.table > thead > tr > th,
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > td,
.table > tbody > tr > td,
.table > tfoot > tr > td {
  padding: 8px;
  line-height: 1.42857143;
  vertical-align: top;
  border-top: 1px solid #dddddd;
}
.table > thead > tr > th {
  vertical-align: bottom;
  border-bottom: 2px solid #dddddd;
}
.table > caption + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > th,
.table > thead:first-child > tr:first-child > th,
.table > caption + thead > tr:first-child > td,
.table > colgroup + thead > tr:first-child > td,
.table > thead:first-child > tr:first-child > td {
  border-top: 0;
}
.table > tbody + tbody {
  border-top: 2px solid #dddddd;
}
.table .table {
  background-color: #ffffff;
}
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > th,
.table-condensed > tfoot > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > td {
  padding: 5px;
}
.table-bordered {
  border: 1px solid #dddddd;
}
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
  border: 1px solid #dddddd;
}
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
  border-bottom-width: 2px;
}
.table-striped > tbody > tr:nth-of-type(odd) {
  background-color: #f9f9f9;
}
.table-hover > tbody > tr:hover {
  background-color: #f5f5f5;
}
table col[class*="col-"] {
  position: static;
  float: none;
  display: table-column;
}
table td[class*="col-"],
table th[class*="col-"] {
  position: static;
  float: none;
  display: table-cell;
}
.table > thead > tr > td.active,
.table > tbody > tr > td.active,
.table > tfoot > tr > td.active,
.table > thead > tr > th.active,
.table > tbody > tr > th.active,
.table > tfoot > tr > th.active,
.table > thead > tr.active > td,
.table > tbody > tr.active > td,
.table > tfoot > tr.active > td,
.table > thead > tr.active > th,
.table > tbody > tr.active > th,
.table > tfoot > tr.active > th {
  background-color: #f5f5f5;
}
.table-hover > tbody > tr > td.active:hover,
.table-hover > tbody > tr > th.active:hover,
.table-hover > tbody > tr.active:hover > td,
.table-hover > tbody > tr:hover > .active,
.table-hover > tbody > tr.active:hover > th {
  background-color: #e8e8e8;
}
.table > thead > tr > td.success,
.table > tbody > tr > td.success,
.table > tfoot > tr > td.success,
.table > thead > tr > th.success,
.table > tbody > tr > th.success,
.table > tfoot > tr > th.success,
.table > thead > tr.success > td,
.table > tbody > tr.success > td,
.table > tfoot > tr.success > td,
.table > thead > tr.success > th,
.table > tbody > tr.success > th,
.table > tfoot > tr.success > th {
  background-color: #dff0d8;
}
.table-hover > tbody > tr > td.success:hover,
.table-hover > tbody > tr > th.success:hover,
.table-hover > tbody > tr.success:hover > td,
.table-hover > tbody > tr:hover > .success,
.table-hover > tbody > tr.success:hover > th {
  background-color: #d0e9c6;
}
.table > thead > tr > td.info,
.table > tbody > tr > td.info,
.table > tfoot > tr > td.info,
.table > thead > tr > th.info,
.table > tbody > tr > th.info,
.table > tfoot > tr > th.info,
.table > thead > tr.info > td,
.table > tbody > tr.info > td,
.table > tfoot > tr.info > td,
.table > thead > tr.info > th,
.table > tbody > tr.info > th,
.table > tfoot > tr.info > th {
  background-color: #d9edf7;
}
.table-hover > tbody > tr > td.info:hover,
.table-hover > tbody > tr > th.info:hover,
.table-hover > tbody > tr.info:hover > td,
.table-hover > tbody > tr:hover > .info,
.table-hover > tbody > tr.info:hover > th {
  background-color: #c4e3f3;
}
.table > thead > tr > td.warning,
.table > tbody > tr > td.warning,
.table > tfoot > tr > td.warning,
.table > thead > tr > th.warning,
.table > tbody > tr > th.warning,
.table > tfoot > tr > th.warning,
.table > thead > tr.warning > td,
.table > tbody > tr.warning > td,
.table > tfoot > tr.warning > td,
.table > thead > tr.warning > th,
.table > tbody > tr.warning > th,
.table > tfoot > tr.warning > th {
  background-color: #fcf8e3;
}
.table-hover > tbody > tr > td.warning:hover,
.table-hover > tbody > tr > th.warning:hover,
.table-hover > tbody > tr.warning:hover > td,
.table-hover > tbody > tr:hover > .warning,
.table-hover > tbody > tr.warning:hover > th {
  background-color: #faf2cc;
}
.table > thead > tr > td.danger,
.table > tbody > tr > td.danger,
.table > tfoot > tr > td.danger,
.table > thead > tr > th.danger,
.table > tbody > tr > th.danger,
.table > tfoot > tr > th.danger,
.table > thead > tr.danger > td,
.table > tbody > tr.danger > td,
.table > tfoot > tr.danger > td,
.table > thead > tr.danger > th,
.table > tbody > tr.danger > th,
.table > tfoot > tr.danger > th {
  background-color: #f2dede;
}
.table-hover > tbody > tr > td.danger:hover,
.table-hover > tbody > tr > th.danger:hover,
.table-hover > tbody > tr.danger:hover > td,
.table-hover > tbody > tr:hover > .danger,
.table-hover > tbody > tr.danger:hover > th {
  background-color: #ebcccc;
}
.table-responsive {
  overflow-x: auto;
  min-height: 0.01%;
}
@media screen and (max-width: 767px) {
  .table-responsive {
    width: 100%;
    margin-bottom: 15px;
    overflow-y: hidden;
    -ms-overflow-style: -ms-autohiding-scrollbar;
    border: 1px solid #dddddd;
  }
  .table-responsive > .table {
    margin-bottom: 0;
  }
  .table-responsive > .table > thead > tr > th,
  .table-responsive > .table > tbody > tr > th,
  .table-responsive > .table > tfoot > tr > th,
  .table-responsive > .table > thead > tr > td,
  .table-responsive > .table > tbody > tr > td,
  .table-responsive > .table > tfoot > tr > td {
    white-space: nowrap;
  }
  .table-responsive > .table-bordered {
    border: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:first-child,
  .table-responsive > .table-bordered > tbody > tr > th:first-child,
  .table-responsive > .table-bordered > tfoot > tr > th:first-child,
  .table-responsive > .table-bordered > thead > tr > td:first-child,
  .table-responsive > .table-bordered > tbody > tr > td:first-child,
  .table-responsive > .table-bordered > tfoot > tr > td:first-child {
    border-left: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:last-child,
  .table-responsive > .table-bordered > tbody > tr > th:last-child,
  .table-responsive > .table-bordered > tfoot > tr > th:last-child,
  .table-responsive > .table-bordered > thead > tr > td:last-child,
  .table-responsive > .table-bordered > tbody > tr > td:last-child,
  .table-responsive > .table-bordered > tfoot > tr > td:last-child {
    border-right: 0;
  }
  .table-responsive > .table-bordered > tbody > tr:last-child > th,
  .table-responsive > .table-bordered > tfoot > tr:last-child > th,
  .table-responsive > .table-bordered > tbody > tr:last-child > td,
  .table-responsive > .table-bordered > tfoot > tr:last-child > td {
    border-bottom: 0;
  }
}
.clearfix:before,
.clearfix:after,
.container:before,
.container:after,
.container-fluid:before,
.container-fluid:after,
.row:before,
.row:after {
  content: " ";
  display: table;
}
.clearfix:after,
.container:after,
.container-fluid:after,
.row:after {
  clear: both;
}
.center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.pull-right {
  float: right !important;
}
.pull-left {
  float: left !important;
}
.hide {
  display: none !important;
}
.show {
  display: block !important;
}
.invisible {
  visibility: hidden;
}
.text-hide {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
.hidden {
  display: none !important;
}
.affix {
  position: fixed;
}

body {
  margin: 0;
  padding: 0;
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
}

.leaflet-control-attribution {
    opacity: .6;
    bottom: 2px
}

.leaflet-vertex-icon {
    max-width: 10px;
    max-height: 10px;
    margin-left: -5px !important;
    margin-top: -5px !important;
    z-index: 5000 !important;
}

.leaflet-middle-icon {
    max-width: 10px;
    max-height: 10px;
    margin-left: -5px !important;
    margin-top: -5px !important;
}

@media (max-width: 767px) {
    .leaflet-vertex-icon,
    .leaflet-middle-icon {
        max-width: 22px;
        max-height: 22px;
        margin-left: -11px !important;
        margin-top: -11px !important;
    }
}

.leaflet-control-layers-toggle {
    width: 28px !important;
    height: 28px !important;
}

.leaflet-control-layers {
    background: var(--surface-raised) !important;
    border: 1px solid var(--border) !important;
    color: var(--text) !important;
    padding-bottom: 10px;
}

.leaflet-control-layers-expanded {
    background: var(--surface-raised) !important;
    border: 1px solid var(--border) !important;
    color: var(--text) !important;
}

.leaflet-marker-pane {
    z-index: 5000 !important;
}

/* Clip overlap preview: A/B labels on cut regions (transparent divIcon) */
.clip-cut-letter-marker {
    background: transparent !important;
    border: none !important;
}
@-webkit-keyframes react-loading-skeleton {
  100% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
}

@keyframes react-loading-skeleton {
  100% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
}

.react-loading-skeleton {
  --base-color: #ebebeb;
  --highlight-color: #f5f5f5;
  --animation-duration: 1.5s;
  --animation-direction: normal;
  --pseudo-element-display: block; /* Enable animation */

  background-color: var(--base-color);

  width: 100%;
  border-radius: 0.25rem;
  display: -ms-inline-flexbox;
  display: inline-flex;
  line-height: 1;

  position: relative;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  overflow: hidden;
}

.react-loading-skeleton::after {
  content: ' ';
  display: var(--pseudo-element-display);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 100%;
  background-repeat: no-repeat;
  background-image: var(
    --custom-highlight-background,
    linear-gradient(
      90deg,
      var(--base-color) 0%,
      var(--highlight-color) 50%,
      var(--base-color) 100%
    )
  );
  -webkit-transform: translateX(-100%);
      -ms-transform: translateX(-100%);
          transform: translateX(-100%);

  -webkit-animation-name: react-loading-skeleton;

          animation-name: react-loading-skeleton;
  -webkit-animation-direction: var(--animation-direction);
          animation-direction: var(--animation-direction);
  -webkit-animation-duration: var(--animation-duration);
          animation-duration: var(--animation-duration);
  -webkit-animation-timing-function: ease-in-out;
          animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
}

@media (prefers-reduced-motion) {
  .react-loading-skeleton {
    --pseudo-element-display: none; /* Disable animation */
  }
}

