/* ibm-plex-sans-cyrillic-ext-wght-normal */
@font-face {
  font-family: 'IBM Plex Sans Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 700;
  src: url(/assets/ibm-plex-sans-cyrillic-ext-wght-normal-d45eAU9y.woff2) format('woff2-variations');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* ibm-plex-sans-cyrillic-wght-normal */
@font-face {
  font-family: 'IBM Plex Sans Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 700;
  src: url(/assets/ibm-plex-sans-cyrillic-wght-normal-BAAhND-U.woff2) format('woff2-variations');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* ibm-plex-sans-greek-wght-normal */
@font-face {
  font-family: 'IBM Plex Sans Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 700;
  src: url(/assets/ibm-plex-sans-greek-wght-normal-CmyJS8uq.woff2) format('woff2-variations');
  unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;
}

/* ibm-plex-sans-vietnamese-wght-normal */
@font-face {
  font-family: 'IBM Plex Sans Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 700;
  src: url(/assets/ibm-plex-sans-vietnamese-wght-normal-Dg1JeJN0.woff2) format('woff2-variations');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* ibm-plex-sans-latin-ext-wght-normal */
@font-face {
  font-family: 'IBM Plex Sans Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 700;
  src: url(/assets/ibm-plex-sans-latin-ext-wght-normal-CIII54If.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ibm-plex-sans-latin-wght-normal */
@font-face {
  font-family: 'IBM Plex Sans Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 700;
  src: url(/assets/ibm-plex-sans-latin-wght-normal-IvpUvPa2.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* ibm-plex-mono-cyrillic-ext-400-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format('woff2'), url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* ibm-plex-mono-cyrillic-400-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format('woff2'), url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* ibm-plex-mono-vietnamese-400-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format('woff2'), url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* ibm-plex-mono-latin-ext-400-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format('woff2'), url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ibm-plex-mono-latin-400-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format('woff2'), url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* ibm-plex-mono-cyrillic-ext-700-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/assets/ibm-plex-mono-cyrillic-ext-700-normal-BDQ-w_bc.woff2) format('woff2'), url(/assets/ibm-plex-mono-cyrillic-ext-700-normal-CtgKGIh5.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* ibm-plex-mono-cyrillic-700-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/assets/ibm-plex-mono-cyrillic-700-normal-Bp80XfeI.woff2) format('woff2'), url(/assets/ibm-plex-mono-cyrillic-700-normal-O_YjL27c.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* ibm-plex-mono-vietnamese-700-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/assets/ibm-plex-mono-vietnamese-700-normal-apsD3J7v.woff2) format('woff2'), url(/assets/ibm-plex-mono-vietnamese-700-normal-Bs14ezHR.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* ibm-plex-mono-latin-ext-700-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/assets/ibm-plex-mono-latin-ext-700-normal-Dhimjc7-.woff2) format('woff2'), url(/assets/ibm-plex-mono-latin-ext-700-normal-Cwsjk1Jb.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ibm-plex-mono-latin-700-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/assets/ibm-plex-mono-latin-700-normal-7sUh57Bg.woff2) format('woff2'), url(/assets/ibm-plex-mono-latin-700-normal-CNHXzs6v.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}.vantor-panel {
  /* Layout */
  --vantor-panel-width: 380px;
  --vantor-panel-max-height: calc(100vh - 40px);

  /* Light theme (default) */
  --vantor-primary: #1976d2;
  --vantor-primary-hover: #1565c0;
  --vantor-success: #388e3c;
  --vantor-success-hover: #2e7d32;
  --vantor-warning: #f57c00;
  --vantor-warning-hover: #ef6c00;
  --vantor-error: #f44336;
  --vantor-bg: #ffffff;
  --vantor-bg-alt: #f5f5f5;
  --vantor-text: #333333;
  --vantor-text-muted: #707070;
  --vantor-border: #e0e0e0;
  --vantor-hover: #e0e0e0;
  --vantor-row-hover: #e3f2fd;
  --vantor-th-hover: #ebebeb;
  --vantor-highlight-bg: #fff9c4;
  --vantor-highlight-outline: #ffc107;
  --vantor-disabled: #bdbdbd;
}

/* Tell the browser which color scheme native form controls (select option
   popups, scrollbars) should use, so they match the panel theme instead of
   inheriting a host app's color-scheme (e.g. GeoLibre's dark scheme would
   otherwise render dropdown popups dark with the panel's dark text on them). */
.vantor-panel {
  color-scheme: light;
}

/* Dark theme — applied explicitly via theme: 'dark' */
.vantor-panel--theme-dark {
  color-scheme: dark;
  --vantor-bg: #1e1e1e;
  --vantor-bg-alt: #2a2a2a;
  --vantor-text: #e6e6e6;
  --vantor-text-muted: #9e9e9e;
  --vantor-border: #3a3a3a;
  --vantor-hover: #3a3a3a;
  --vantor-row-hover: #2d3a4a;
  --vantor-th-hover: #333333;
  --vantor-highlight-bg: #4a4327;
  --vantor-highlight-outline: #ffc107;
  --vantor-disabled: #555555;
}

/* Dark theme — follow the OS preference when theme: 'auto' (default) */
@media (prefers-color-scheme: dark) {
  .vantor-panel--theme-auto {
    color-scheme: dark;
    --vantor-bg: #1e1e1e;
    --vantor-bg-alt: #2a2a2a;
    --vantor-text: #e6e6e6;
    --vantor-text-muted: #9e9e9e;
    --vantor-border: #3a3a3a;
    --vantor-hover: #3a3a3a;
    --vantor-row-hover: #2d3a4a;
    --vantor-th-hover: #333333;
    --vantor-highlight-bg: #4a4327;
    --vantor-highlight-outline: #ffc107;
    --vantor-disabled: #555555;
  }
}

.maplibregl-ctrl-vantor {
  max-width: none !important;
  /* Sit above map raster overlays that share this control corner. In GeoLibre
     the COG deck.gl overlay (#deckgl-overlay) is an absolutely positioned,
     full-map canvas mounted as a sibling control at z-index 1, so a static
     control paints under it. Give the panel a stacking context above it,
     mirroring GeoLibre's own .geolibre-stac-search-control (z-index: 3). */
  position: relative;
  z-index: 3;
}

.vantor-panel {
  /* Fit the viewport on narrow screens, never overflow horizontally */
  width: min(var(--vantor-panel-width), calc(100vw - 20px));
  max-height: var(--vantor-panel-max-height);
  background: var(--vantor-bg);
  border-radius: 8px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size: 13px;
  color: var(--vantor-text);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  position: relative;
}

.vantor-panel--collapsed .vantor-panel__content,
.vantor-panel--collapsed .vantor-panel__toggle {
  display: none;
}

/* Resizable: once the user drags a handle, the panel takes an explicit size
   and the results table fills the remaining height instead of capping at its
   default max-height. */
.vantor-panel--resized {
  height: var(--vantor-panel-height);
  max-height: var(--vantor-panel-height);
}

.vantor-panel--resized .vantor-panel__table-container {
  max-height: none;
}

.vantor-panel--resizing {
  user-select: none;
}

.vantor-panel__resize-handle {
  position: absolute;
  bottom: 0;
  width: 18px;
  height: 18px;
  z-index: 5;
  touch-action: none;
}

.vantor-panel--collapsed .vantor-panel__resize-handle {
  display: none;
}

.vantor-panel__resize-handle--bl {
  left: 0;
  cursor: nesw-resize;
}

.vantor-panel__resize-handle--br {
  right: 0;
  cursor: nwse-resize;
}

/* Subtle corner grip lines */
.vantor-panel__resize-handle::after {
  content: "";
  position: absolute;
  bottom: 3px;
  width: 8px;
  height: 8px;
  opacity: 0.5;
}

.vantor-panel__resize-handle--bl::after {
  left: 3px;
  border-left: 2px solid var(--vantor-text-muted);
  border-bottom: 2px solid var(--vantor-text-muted);
}

.vantor-panel__resize-handle--br::after {
  right: 3px;
  border-right: 2px solid var(--vantor-text-muted);
  border-bottom: 2px solid var(--vantor-text-muted);
}

.vantor-panel--collapsed {
  width: auto;
  max-height: none;
  box-shadow: none;
  background: transparent;
}

/* Open button (visible when collapsed) */
.vantor-panel__open-btn {
  display: none;
  width: 29px;
  height: 29px;
  padding: 0;
  border: 0;
  background: var(--vantor-bg);
  cursor: pointer;
  border-radius: 4px;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
}

/* Use an opaque, theme-aware hover shade. A translucent hover color let the
   basemap show through the collapsed button, which made the icon disappear on
   hover (e.g. a light icon over a light basemap in dark mode). */
.maplibregl-ctrl-vantor .vantor-panel__open-btn:hover:not(:disabled) {
  background-color: var(--vantor-bg-alt);
}

/* Dark theme: keep the collapsed icon button readable on a dark basemap —
   light icon fill (below) plus a light ring so the button doesn't blend in. */
.vantor-panel--theme-dark .vantor-panel__open-btn {
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.25);
}

@media (prefers-color-scheme: dark) {
  .vantor-panel--theme-auto .vantor-panel__open-btn {
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.25);
  }
}

.vantor-panel__open-btn:focus {
  outline: none;
  box-shadow: 0 0 2px 2px #0096ff;
}

.vantor-panel--collapsed .vantor-panel__open-btn {
  display: flex;
}

.vantor-panel__open-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cg fill='%23333'%3E%3Cpath d='M10 11h9v7h-9z'/%3E%3Cpath d='M6 11h3v7H6z'/%3E%3Cpath d='M20 11h3v7h-3z'/%3E%3Cpath d='M13.2 8.5h2.6V10h-2.6z'/%3E%3Cpath d='M14.5 18.5 12 22h1.9l.6-.9h1l.6.9H17z'/%3E%3Ccircle cx='14.5' cy='14.5' r='1.5'/%3E%3C/g%3E%3C/svg%3E");
}

/* Lighter icon for dark theme (explicit) */
.vantor-panel--theme-dark .vantor-panel__open-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cg fill='%23e6e6e6'%3E%3Cpath d='M10 11h9v7h-9z'/%3E%3Cpath d='M6 11h3v7H6z'/%3E%3Cpath d='M20 11h3v7h-3z'/%3E%3Cpath d='M13.2 8.5h2.6V10h-2.6z'/%3E%3Cpath d='M14.5 18.5 12 22h1.9l.6-.9h1l.6.9H17z'/%3E%3Ccircle cx='14.5' cy='14.5' r='1.5'/%3E%3C/g%3E%3C/svg%3E");
}

/* Lighter icon for dark theme (auto / OS preference) */
@media (prefers-color-scheme: dark) {
  .vantor-panel--theme-auto .vantor-panel__open-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cg fill='%23e6e6e6'%3E%3Cpath d='M10 11h9v7h-9z'/%3E%3Cpath d='M6 11h3v7H6z'/%3E%3Cpath d='M20 11h3v7h-3z'/%3E%3Cpath d='M13.2 8.5h2.6V10h-2.6z'/%3E%3Cpath d='M14.5 18.5 12 22h1.9l.6-.9h1l.6.9H17z'/%3E%3Ccircle cx='14.5' cy='14.5' r='1.5'/%3E%3C/g%3E%3C/svg%3E");
  }
}

/* Close button (visible when expanded) */
.vantor-panel__toggle {
  position: absolute;
  top: 8px;
  inset-inline-end: 8px;
  width: 28px;
  height: 28px;
  border: none;
  background: transparent;
  cursor: pointer;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  color: var(--vantor-text-muted);
  z-index: 1;
}

.maplibregl-ctrl-vantor .vantor-panel__toggle:hover:not(:disabled) {
  background-color: var(--vantor-hover);
  color: var(--vantor-text);
}

/* Header */
.vantor-panel__header {
  padding: 12px 16px;
  border-bottom: 1px solid var(--vantor-border);
}

.vantor-panel__header h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
}

/* Content */
.vantor-panel__content {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  flex: 1;
}

/* Sections */
.vantor-panel__search,
.vantor-panel__results,
.vantor-panel__actions {
  padding: 10px 16px;
}

.vantor-panel__search {
  border-bottom: 1px solid var(--vantor-border);
}

/* Labels */
.vantor-panel__section-title {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--vantor-text-muted);
  margin: 0 0 8px 0;
}

/* Fields */
.vantor-panel__field {
  margin-bottom: 8px;
}

.vantor-panel__field label {
  display: block;
  font-size: 12px;
  font-weight: 500;
  margin-bottom: 3px;
  color: var(--vantor-text);
}

.vantor-panel__select-row {
  display: flex;
  gap: 6px;
  align-items: center;
}

.vantor-panel__select-row select {
  flex: 1;
  min-width: 0;
}

/* Select & Input styling. MapLibre ships `.maplibregl-ctrl select { color: #000
   !important }`, which would force black text on the dark-theme dropdowns in a
   host like GeoLibre. Match its `!important` and cover both the original map
   control wrapper and GeoLibre's native dock-panel wrapper. */
.maplibregl-ctrl-vantor .vantor-panel select,
.maplibregl-ctrl-vantor .vantor-panel input[type="text"],
.geolibre-docked-map-control .vantor-panel select,
.geolibre-docked-map-control .vantor-panel input[type="text"] {
  width: 100%;
  padding: 6px 8px;
  border: 1px solid var(--vantor-border);
  border-radius: 4px;
  font-size: 12px;
  background: var(--vantor-bg);
  color: var(--vantor-text) !important;
  box-sizing: border-box;
}

.vantor-panel select option {
  background-color: var(--vantor-bg);
  color: var(--vantor-text);
}

.vantor-panel select:focus,
.vantor-panel input[type="text"]:focus {
  outline: none;
  border-color: var(--vantor-primary);
  box-shadow: 0 0 0 2px rgba(25, 118, 210, 0.2);
}

/* Checkbox */
.vantor-panel__checkbox-label {
  display: flex !important;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  font-size: 12px;
}

.vantor-panel__checkbox-label input[type="checkbox"] {
  margin: 0;
  cursor: pointer;
}

/* BBox controls */
.vantor-panel__bbox-controls {
  display: flex;
  gap: 6px;
  align-items: center;
  margin-bottom: 4px;
}

.vantor-panel__bbox-info {
  font-size: 10px;
  color: var(--vantor-text-muted);
  word-break: break-all;
  margin-bottom: 4px;
  min-height: 14px;
}

/* Buttons */
.vantor-panel__btn {
  padding: 6px 12px;
  border: 1px solid var(--vantor-border);
  border-radius: 4px;
  background: var(--vantor-bg);
  color: var(--vantor-text);
  font-size: 12px;
  cursor: pointer;
  white-space: nowrap;
}

.maplibregl-ctrl-vantor .vantor-panel__btn:hover:not(:disabled) {
  background-color: var(--vantor-hover);
}

.vantor-panel__btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.vantor-panel__btn--primary {
  background: var(--vantor-primary);
  color: white;
  border-color: var(--vantor-primary);
  font-weight: 600;
  width: 100%;
}

.maplibregl-ctrl-vantor .vantor-panel__btn--primary:hover:not(:disabled) {
  background-color: var(--vantor-primary-hover);
}

.vantor-panel__btn--primary:disabled {
  background: var(--vantor-disabled);
  border-color: var(--vantor-disabled);
}

.vantor-panel__btn--success {
  background: var(--vantor-success);
  color: white;
  border-color: var(--vantor-success);
  font-weight: 600;
  flex: 1;
}

.maplibregl-ctrl-vantor .vantor-panel__btn--success:hover:not(:disabled) {
  background-color: var(--vantor-success-hover);
}

.vantor-panel__btn--success:disabled {
  background: var(--vantor-disabled);
  border-color: var(--vantor-disabled);
}

.vantor-panel__btn--warning {
  background: var(--vantor-warning);
  color: white;
  border-color: var(--vantor-warning);
  font-weight: 600;
  flex: 1;
}

.maplibregl-ctrl-vantor .vantor-panel__btn--warning:hover:not(:disabled) {
  background-color: var(--vantor-warning-hover);
}

.vantor-panel__btn--warning:disabled {
  background: var(--vantor-disabled);
  border-color: var(--vantor-disabled);
}

.vantor-panel__btn--active {
  background: var(--vantor-primary);
  color: white;
  border-color: var(--vantor-primary);
}

.maplibregl-ctrl-vantor .vantor-panel__btn--active:hover:not(:disabled) {
  background-color: var(--vantor-primary-hover);
  border-color: var(--vantor-primary-hover);
}

.vantor-panel__btn--small {
  padding: 4px 8px;
  font-size: 11px;
}

.vantor-panel__btn--refresh {
  padding: 5px 8px;
  font-size: 14px;
  line-height: 1;
}

/* Results */
.vantor-panel__results {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 0;
  border-bottom: 1px solid var(--vantor-border);
}

.vantor-panel__results-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}

.vantor-panel__count {
  font-size: 12px;
  color: var(--vantor-text-muted);
}

.vantor-panel__select-controls {
  display: flex;
  gap: 4px;
}

/* Table */
.vantor-panel__table-container {
  flex: 1;
  overflow-y: auto;
  overflow-x: auto;
  min-height: 100px;
  max-height: 300px;
  border: 1px solid var(--vantor-border);
  border-radius: 4px;
}

.vantor-panel__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11px;
}

.vantor-panel__table thead {
  position: sticky;
  top: 0;
  z-index: 1;
}

.vantor-panel__table th {
  background: var(--vantor-bg-alt);
  padding: 6px 4px;
  text-align: start;
  font-weight: 600;
  font-size: 11px;
  border-bottom: 2px solid var(--vantor-border);
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
}

.vantor-panel__table th:hover {
  background: var(--vantor-th-hover);
}

.vantor-panel__table th.vantor-sort-asc::after {
  content: " \25B2";
  font-size: 9px;
}

.vantor-panel__table th.vantor-sort-desc::after {
  content: " \25BC";
  font-size: 9px;
}

.vantor-panel__table td {
  padding: 5px 4px;
  border-bottom: 1px solid var(--vantor-border);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 120px;
}

.vantor-panel__table tbody tr {
  cursor: pointer;
}

.vantor-panel__table tbody tr:hover {
  background: var(--vantor-row-hover);
}

.vantor-panel__table tbody tr:nth-child(even) {
  background: var(--vantor-bg-alt);
}

.vantor-panel__table tbody tr:nth-child(even):hover {
  background: var(--vantor-row-hover);
}

.vantor-panel__table-row--highlighted {
  background: var(--vantor-highlight-bg) !important;
  outline: 2px solid var(--vantor-highlight-outline);
  outline-offset: -2px;
}

.vantor-panel__table td:first-child,
.vantor-panel__table th:first-child {
  width: 24px;
  text-align: center;
  padding: 4px 2px;
}

.vantor-panel__table input[type="checkbox"] {
  margin: 0;
  cursor: pointer;
}

/* Phase badge */
.vantor-phase--pre {
  color: #1976d2;
  font-weight: 500;
}

.vantor-phase--post {
  color: #f44336;
  font-weight: 500;
}

/* Actions */
.vantor-panel__actions {
  display: flex;
  gap: 8px;
  border-bottom: 1px solid var(--vantor-border);
}

/* Progress */
.vantor-panel__progress-container {
  padding: 8px 16px;
  display: none;
}

.vantor-panel__progress-container--visible {
  display: flex;
  gap: 8px;
  align-items: center;
}

.vantor-panel__progress {
  flex: 1;
  height: 6px;
  border-radius: 3px;
  overflow: hidden;
  background: var(--vantor-border);
}

.vantor-panel__progress-bar {
  height: 100%;
  background: var(--vantor-primary);
  transition: width 0.3s ease;
  border-radius: 3px;
}

/* Status */
.vantor-panel__status {
  padding: 6px 16px 10px;
  font-size: 11px;
  color: var(--vantor-text-muted);
  min-height: 18px;
}

.vantor-panel__status--info {
  color: #5cabff;
}

.vantor-panel__status--success {
  color: #4ccd6a;
}

.vantor-panel__status--warning {
  color: #f0a030;
}

.vantor-panel__status--error {
  color: #ff6b6b;
}

/* Responsive — the base `width: min(...)` already fits narrow screens and the
   panel grows to its content (scrolling internally) up to the max-height. The
   width override must NOT apply when collapsed, or the icon button stretches
   full-width and floats over neighboring controls. */
@media (max-width: 480px) {
  .vantor-panel:not(.vantor-panel--collapsed) {
    max-height: min(var(--vantor-panel-max-height), calc(100vh - 20px));
  }
}
.three-d-tiles-control {
  background: #fff;
  border-radius: 4px;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.three-d-tiles-control-toggle {
  background: none;
  border: none;
  padding: 0;
  width: 29px;
  height: 29px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  outline: none;
  color: #1f2a37;
}

.three-d-tiles-control-toggle:hover {
  background-color: rgba(0, 0, 0, 0.05);
}

.three-d-tiles-control-icon {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.three-d-tiles-control-icon svg {
  width: 22px;
  height: 22px;
  display: block;
  stroke: currentColor;
  fill: none;
}

.three-d-tiles-control-panel {
  position: absolute;
  background: #fff;
  border-radius: 4px;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
  min-width: 260px;
  max-width: min(420px, calc(100% - 20px));
  /* JS (_updatePanelPosition) sets maxHeight to the room available between the
     anchored corner and the opposite map edge, so the panel sizes to content
     and grows up to that room. The content area scrolls when it overflows. The
     panel clips so the resize handle (an absolutely-positioned child) stays
     pinned to the corner and never scrolls away with the content. */
  max-height: min(80vh, 720px);
  overflow: hidden;
  z-index: 1000;
  padding: 8px;
  font-size: 12px;
  line-height: 1.4;
  display: none;
}

/* Flex column so the header keeps its height and the content flexes to fill
   the panel (whether the panel auto-sizes to content up to maxHeight, or the
   user has set an explicit size via the resize handle). */
.three-d-tiles-control-panel.expanded {
  display: flex;
  flex-direction: column;
}

/* Engine-independent resize affordance (CSS `resize` is unreliable in
   WebKitGTK). Two handles sit in the panel's bottom corners, added by
   _addResizeHandles(). */
.three-d-tiles-control-resize-handle {
  position: absolute;
  bottom: 0;
  width: 16px;
  height: 16px;
  z-index: 5;
  touch-action: none;
}

.three-d-tiles-control-resize-handle::after {
  content: '';
  position: absolute;
  bottom: 3px;
  width: 7px;
  height: 7px;
  border-color: #6b7280;
  border-style: solid;
  opacity: 0.7;
}

.three-d-tiles-control-resize-handle:hover::after {
  opacity: 1;
}

.three-d-tiles-control-resize-right {
  right: 0;
  cursor: nwse-resize;
}

.three-d-tiles-control-resize-right::after {
  right: 3px;
  border-width: 0 2px 2px 0;
}

.three-d-tiles-control-resize-left {
  left: 0;
  cursor: nesw-resize;
}

.three-d-tiles-control-resize-left::after {
  left: 3px;
  border-width: 0 0 2px 2px;
}

.three-d-tiles-control-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-weight: 600;
  color: #1f2937;
  padding: 4px 0 8px;
  border-bottom: 1px solid #e5e7eb;
  margin-bottom: 10px;
}

.three-d-tiles-control-title {
  flex: 1 1 auto;
  font-size: 13px;
}

.three-d-tiles-control-close {
  width: 20px;
  height: 20px;
  border: none;
  background: transparent;
  color: #6b7280;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.three-d-tiles-control-close:hover {
  color: #111827;
}

.three-d-tiles-control-content {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  /* Flex column so the form fills the content area; extra vertical space (from
     auto-sizing or a user resize) flows into the growable field rather than
     pooling as empty whitespace below the form. */
  display: flex;
  flex-direction: column;
}

.three-d-tiles-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
  /* Fill the content area so the growable field can absorb spare height. */
  flex: 1 1 auto;
  min-height: 0;
}

.three-d-tiles-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  color: #374151;
  font-size: 12px;
  font-weight: 500;
}

/* The field flagged growable (Request headers) expands to take any vertical
   space the panel has beyond the other fields, so a taller panel enlarges its
   textarea instead of adding whitespace. */
.three-d-tiles-field-grow {
  flex: 1 1 auto;
  min-height: 0;
}

.three-d-tiles-field-grow .three-d-tiles-textarea {
  flex: 1 1 auto;
  height: auto;
}

.three-d-tiles-input {
  width: 100%;
  box-sizing: border-box;
  padding: 7px 9px;
  font-size: 12px;
  border: 1px solid #d1d5db;
  border-radius: 4px;
  outline: none;
  color: #111827;
  background: #fff;
}

/* Sample-data dropdown (custom, so the menu themes correctly in dark mode) */
.three-d-tiles-sample-dropdown {
  position: relative;
}

.three-d-tiles-sample-trigger {
  width: 100%;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 9px;
  font-size: 12px;
  font-family: inherit;
  font-weight: 400;
  text-align: left;
  border: 1px solid #d1d5db;
  border-radius: 4px;
  background: #fff;
  color: #6b7280;
  cursor: pointer;
  outline: none;
}

.three-d-tiles-sample-trigger:hover,
.three-d-tiles-sample-trigger.open,
.three-d-tiles-sample-trigger:focus-visible {
  border-color: #2563eb;
}

.three-d-tiles-sample-trigger-label {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.three-d-tiles-sample-caret {
  flex: 0 0 auto;
  font-size: 10px;
}

.three-d-tiles-sample-menu {
  position: absolute;
  top: calc(100% + 2px);
  left: 0;
  right: 0;
  z-index: 10;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 4px;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
  max-height: 220px;
  overflow-y: auto;
}

.three-d-tiles-sample-menu[hidden] {
  display: none;
}

.three-d-tiles-sample-option {
  width: 100%;
  box-sizing: border-box;
  padding: 6px 8px;
  font-size: 12px;
  font-family: inherit;
  font-weight: 400;
  text-align: left;
  border: none;
  border-radius: 3px;
  background: none;
  color: #111827;
  cursor: pointer;
}

.three-d-tiles-sample-option:hover,
.three-d-tiles-sample-option:focus-visible {
  outline: none;
  background: rgba(37, 99, 235, 0.1);
}

.three-d-tiles-input[type='number'] {
  min-height: 36px;
  padding-right: 4px;
}

.three-d-tiles-input[type='number']::-webkit-inner-spin-button,
.three-d-tiles-input[type='number']::-webkit-outer-spin-button {
  min-height: 30px;
  opacity: 1;
  width: 22px;
}

.three-d-tiles-input:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.three-d-tiles-textarea {
  min-height: 48px;
  resize: vertical;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.three-d-tiles-field-hint {
  color: #6b7280;
  font-size: 11px;
  font-weight: 400;
}

.three-d-tiles-checkbox {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #374151;
  font-size: 12px;
  line-height: 1.2;
}

.three-d-tiles-checkbox input {
  margin: 0;
}

.three-d-tiles-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.three-d-tiles-actions.two-columns {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.three-d-tiles-button {
  min-height: 30px;
  border: 1px solid #d1d5db;
  background: #f9fafb;
  color: #111827;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
  padding: 6px 8px;
}

.three-d-tiles-button:hover:not(:disabled) {
  background: #eef2ff;
  border-color: #93c5fd;
}

.three-d-tiles-button:disabled {
  color: #9ca3af;
  cursor: not-allowed;
}

.three-d-tiles-status {
  border-top: 1px solid #e5e7eb;
  color: #4b5563;
  min-height: 18px;
  padding-top: 8px;
  word-break: break-word;
}

.three-d-tiles-status[data-status='loaded'] {
  color: #047857;
}

.three-d-tiles-status[data-status='error'] {
  color: #b91c1c;
}

.three-d-tiles-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.three-d-tiles-empty {
  color: #6b7280;
  margin: 0;
  padding: 2px 0;
}

.three-d-tiles-list-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  border: 1px solid #e5e7eb;
  border-radius: 4px;
  padding: 8px;
}

.three-d-tiles-list-item.active {
  border-color: #93c5fd;
  background: #eff6ff;
}

.three-d-tiles-list-meta {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.three-d-tiles-list-title {
  border: none;
  background: transparent;
  color: #111827;
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
  padding: 0;
  text-align: left;
}

.three-d-tiles-list-url {
  color: #4b5563;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.three-d-tiles-list-status {
  color: #6b7280;
  text-transform: capitalize;
}

.three-d-tiles-list-status[data-status='loaded'] {
  color: #047857;
}

.three-d-tiles-list-status[data-status='error'] {
  color: #b91c1c;
  text-transform: none;
}

.three-d-tiles-list-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 96px;
}

.three-d-tiles-list-actions input {
  margin: 0;
}

.three-d-tiles-opacity {
  width: 58px;
}

.three-d-tiles-small-button {
  border: 1px solid #d1d5db;
  background: #fff;
  color: #111827;
  border-radius: 4px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 600;
  min-height: 24px;
  padding: 3px 6px;
}

.three-d-tiles-small-button:hover:not(:disabled) {
  background: #f9fafb;
}

.three-d-tiles-small-button:disabled {
  color: #9ca3af;
  cursor: not-allowed;
}

.three-d-tiles-control-content::-webkit-scrollbar {
  width: 6px;
}

.three-d-tiles-control-content::-webkit-scrollbar-track {
  background: transparent;
}

.three-d-tiles-control-content::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 3px;
}
/* MapLibre GL Basemap Control */

.basemap-control {
  background: #fff;
  border-radius: 4px;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
  color-scheme: light;
  color: #1f2933;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.basemap-control-toggle {
  width: 29px;
  height: 29px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  background: none;
  color: #1f2933;
  cursor: pointer;
  outline: none;
}

.basemap-control-toggle:hover {
  background-color: rgba(0, 0, 0, 0.05);
}

.basemap-control-toggle:focus-visible,
.basemap-control-close:focus-visible,
.basemap-control-result:focus-visible {
  outline: 2px solid #2563eb;
  outline-offset: 2px;
}

.basemap-control-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  line-height: 0;
}

.basemap-control-icon svg {
  width: 22px;
  height: 22px;
  display: block;
  fill: none;
  stroke: currentColor;
}

.basemap-control-panel {
  position: absolute;
  min-width: 240px;
  max-width: min(420px, calc(100vw - 24px));
  max-height: min(560px, calc(100vh - 24px));
  display: none;
  overflow: hidden;
  padding: 8px;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 8px 28px rgba(15, 23, 42, 0.22), 0 0 0 1px rgba(15, 23, 42, 0.12);
  z-index: 1000;
  font-size: 12px;
  line-height: 1.4;
}

.basemap-control-panel.expanded {
  display: flex;
  flex-direction: column;
}

/* When the user has resized the panel, honour the explicit width/height set
   inline (already clamped to the map bounds in JS) instead of letting the
   default caps shrink it back down. */
.basemap-control-panel.is-resized {
  max-width: none;
  max-height: none;
}

/* When the user has resized the panel to an explicit height, let the content
   and results area flex to fill it instead of fitting the content. */
.basemap-control-panel.is-resized .basemap-control-content {
  flex: 1 1 auto;
}

.basemap-control-panel.is-resized .basemap-control-results {
  flex: 1 1 auto;
  max-height: none;
}

.basemap-control-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 4px 0 8px;
  border-bottom: 1px solid #e5e7eb;
}

.basemap-control-title {
  flex: 1 1 auto;
  font-size: 13px;
  font-weight: 650;
  color: #111827;
}

.basemap-control-settings-toggle {
  width: 22px;
  height: 22px;
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  border-radius: 4px;
  background: transparent;
  color: #6b7280;
  cursor: pointer;
}

.basemap-control-settings-toggle[hidden] {
  display: none;
}

.basemap-control-settings-toggle:hover {
  color: #111827;
  background: rgba(0, 0, 0, 0.05);
}

.basemap-control-settings-toggle.is-active {
  color: #2563eb;
  background: #eff6ff;
}

.basemap-control-settings-toggle:focus-visible {
  outline: 2px solid #2563eb;
  outline-offset: 2px;
}

.basemap-control-close {
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  background: transparent;
  color: #6b7280;
  cursor: pointer;
  font-size: 20px;
  line-height: 1;
}

.basemap-control-close:hover {
  color: #111827;
}

.basemap-control-content {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 0;
  padding-top: 8px;
}

.basemap-control-search-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.basemap-control-search,
.basemap-control-before-id,
.basemap-control-maptiler-key,
.basemap-control-mapbox-token,
.basemap-control-amazon-key,
.basemap-control-aws-region {
  position: relative;
}

.basemap-control-multiple-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 2px 1px;
  color: #374151;
  cursor: pointer;
  font-size: 12px;
  user-select: none;
}

.basemap-control-multiple-checkbox {
  width: 14px;
  height: 14px;
  margin: 0;
  flex: 0 0 auto;
  accent-color: #2563eb;
  cursor: pointer;
}

.basemap-control-multiple-toggle-text {
  flex: 1 1 auto;
}

.basemap-control-settings-view {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 0;
  overflow-y: auto;
  padding-right: 2px;
}

.basemap-control-settings-head {
  display: flex;
  align-items: center;
  gap: 8px;
}

.basemap-control-settings-back {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 3px 8px 3px 5px;
  border: 1px solid #d1d5db;
  border-radius: 4px;
  background: #fff;
  color: #374151;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  font-weight: 600;
}

.basemap-control-settings-back:hover {
  border-color: #9ca3af;
  background: #f9fafb;
}

.basemap-control-settings-back:focus-visible {
  outline: 2px solid #2563eb;
  outline-offset: 2px;
}

.basemap-control-settings-heading {
  font-size: 13px;
  font-weight: 650;
  color: #111827;
}

.basemap-control-settings-intro {
  margin: 0;
  color: #6b7280;
  font-size: 12px;
}

.basemap-control-provider-settings-fields {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.basemap-control-provider-group {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
}

.basemap-control-provider-group-label {
  color: #374151;
  font-size: 11px;
  font-weight: 650;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.basemap-control-input,
.basemap-control-select {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  border: 1px solid #d1d5db;
  border-radius: 4px;
  background: #fff;
  color: #111827;
  font: inherit;
  outline: none;
}

.basemap-control-select option {
  background: #fff;
  color: #111827;
}

.basemap-control-input {
  height: 34px;
  padding: 7px 9px;
  font-size: 13px;
}

.basemap-control-select {
  height: 30px;
  padding: 4px 6px;
}

.basemap-control-input:focus,
.basemap-control-select:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.14);
}

.basemap-control-filters {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.basemap-control-status {
  flex: 0 0 auto;
  min-height: 17px;
  color: #6b7280;
  font-size: 12px;
}

.basemap-control-status.is-error {
  color: #b91c1c;
}

/* The error message wraps freely so the full text is always readable, never
   clipped to a single fixed-height line (#837). `overflow-wrap: anywhere`
   keeps long unbroken strings (encoded keys/URLs) from forcing an overflow. */
.basemap-control-status-message {
  display: block;
  overflow-wrap: anywhere;
  white-space: normal;
}

.basemap-control-status-actions {
  display: block;
  margin-top: 2px;
  overflow-wrap: anywhere;
}

.basemap-control-status-fields {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
  margin-top: 8px;
}

.basemap-control-status-link {
  color: inherit;
  font-weight: 650;
  text-decoration: underline;
}

.basemap-control-status-link:hover {
  text-decoration: none;
}

.basemap-control-status-link:focus-visible {
  outline: 2px solid currentcolor;
  outline-offset: 2px;
}

.basemap-control-status-hint {
  color: inherit;
}

/* The status region gains a little breathing room when it hosts the optional
   key prompt, so the input is not cramped against the results list. */
.basemap-control-status.has-optional-key {
  margin-bottom: 4px;
}

/* Optional, non-error prompt offering an API key upgrade after a basemap falls
   back to its keyless public tiles. Styled as a subtle info callout, distinct
   from the red error state, so it reads as an opt-in tip rather than a problem. */
.basemap-control-optional-key {
  margin-top: 8px;
  padding: 8px;
  border: 1px solid #d6dbe4;
  border-radius: 6px;
  background: #f5f7fa;
}

.basemap-control-optional-key-message {
  display: block;
  overflow-wrap: anywhere;
  color: #475569;
  line-height: 1.4;
}

.basemap-control-results {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 400px;
  overflow-y: auto;
  padding-right: 2px;
}

.basemap-control-result {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 4px 8px;
  width: 100%;
  padding: 8px;
  border: 1px solid #e5e7eb;
  border-radius: 4px;
  background: #fff;
  color: #111827;
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.basemap-control-result:hover {
  border-color: #9ca3af;
  background: #f9fafb;
}

.basemap-control-result.is-active {
  border-color: #2563eb;
  background: #eff6ff;
}

.basemap-control-result:disabled {
  cursor: wait;
  opacity: 0.7;
}

.basemap-control-result-main {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}

.basemap-control-result-name {
  overflow: hidden;
  color: #111827;
  font-size: 13px;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.basemap-control-result-meta,
.basemap-control-result-attribution {
  overflow: hidden;
  color: #6b7280;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.basemap-control-result-type {
  align-self: start;
  padding: 2px 5px;
  border-radius: 3px;
  background: #eef2ff;
  color: #3730a3;
  font-size: 10px;
  font-weight: 650;
  text-transform: uppercase;
}

.basemap-control-result-attribution {
  grid-column: 1 / -1;
}

.basemap-control-empty {
  padding: 18px 8px;
  color: #6b7280;
  text-align: center;
}

.basemap-control-results::-webkit-scrollbar {
  width: 6px;
}

.basemap-control-results::-webkit-scrollbar-track {
  background: transparent;
}

.basemap-control-results::-webkit-scrollbar-thumb {
  border-radius: 3px;
  background: #d1d5db;
}

.basemap-control-resize-handle {
  position: absolute;
  bottom: 0;
  width: 18px;
  height: 18px;
  z-index: 2;
  touch-action: none;
}

.basemap-control-resize-bottom-right {
  right: 0;
  cursor: nwse-resize;
}

.basemap-control-resize-bottom-left {
  left: 0;
  cursor: nesw-resize;
}

.basemap-control-resize-handle::after {
  content: '';
  position: absolute;
  bottom: 3px;
  width: 7px;
  height: 7px;
  border-color: #cbd5e1;
  border-style: solid;
}

.basemap-control-resize-bottom-right::after {
  right: 3px;
  border-width: 0 2px 2px 0;
}

.basemap-control-resize-bottom-left::after {
  left: 3px;
  border-width: 0 0 2px 2px;
}

.basemap-control-resize-handle:hover::after {
  border-color: #94a3b8;
}

@media (max-width: 420px) {
  .basemap-control-panel:not(.is-resized) {
    width: calc(100vw - 24px) !important;
  }

  .basemap-control-filters {
    grid-template-columns: 1fr;
  }
}
.duckdb-control{color:#1f2933;background:#fff;border-radius:4px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;box-shadow:0 0 0 2px #0000001a}.duckdb-control-toggle{color:#1f2933;cursor:pointer;background:0 0;border:none;outline:none;justify-content:center;align-items:center;width:29px;height:29px;padding:0;display:flex}.duckdb-control-toggle:hover{background-color:#0000000d}.duckdb-control-icon{justify-content:center;align-items:center;width:100%;height:100%;line-height:0;display:flex}.duckdb-control-icon svg{fill:none;stroke:currentColor;width:22px;height:22px;display:block}.duckdb-control-panel{z-index:1000;background:#fff;border-radius:4px;min-width:300px;max-width:min(460px,100% - 20px);padding:0;font-size:12px;line-height:1.4;display:none;position:absolute;overflow:hidden;box-shadow:0 0 0 2px #0000001a}.duckdb-control-panel.expanded{flex-direction:column;display:flex}.duckdb-control-resize-handle{z-index:5;touch-action:none;width:16px;height:16px;position:absolute;bottom:0}.duckdb-control-resize-handle:after{content:"";opacity:.7;border-style:solid;border-color:#9aa5b1;width:7px;height:7px;position:absolute;bottom:3px}.duckdb-control-resize-handle:hover:after{opacity:1}.duckdb-control-resize-right{cursor:nwse-resize;right:0}.duckdb-control-resize-right:after{border-width:0 2px 2px 0;right:3px}.duckdb-control-resize-left{cursor:nesw-resize;left:0}.duckdb-control-resize-left:after{border-width:0 0 2px 2px;left:3px}.duckdb-control-header{border-bottom:1px solid #e5e7eb;flex:none;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-weight:600;display:flex}.duckdb-control-title{flex:auto;font-size:13px}.duckdb-control-close{color:#6b7280;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:18px;line-height:1;display:flex}.duckdb-control-close:hover{color:#111827}.duckdb-control-content{scrollbar-gutter:stable;flex:auto;min-height:0;padding:10px 12px 12px;overflow-y:auto}.duckdb-control-section{border-bottom:1px solid #edf0f2;flex-direction:column;gap:8px;padding:0 0 10px;display:flex}.duckdb-control-section+.duckdb-control-section{padding-top:10px}.duckdb-control-section:last-child{border-bottom:none;padding-bottom:0}.duckdb-control-section-title{color:#111827;font-size:12px;font-weight:700}.duckdb-control-label{color:#4b5563;font-size:12px;font-weight:600;display:block}.duckdb-control-row{grid-template-columns:minmax(0,1fr) auto;gap:6px;display:grid}.duckdb-control-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.duckdb-control-input,.duckdb-control-file,.duckdb-control-textarea{box-sizing:border-box;font:inherit;border:1px solid #d1d5db;border-radius:4px;width:100%;min-width:0;padding:7px 8px}.duckdb-control-textarea{resize:vertical;margin-top:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;line-height:1.35}.duckdb-control-input:focus,.duckdb-control-textarea:focus{border-color:#287e9b;outline:none;box-shadow:0 0 0 3px #287e9b26}.duckdb-sample-dropdown{position:relative}.duckdb-sample-trigger{box-sizing:border-box;width:100%;font:inherit;text-align:left;color:#6b7280;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;outline:none;justify-content:space-between;align-items:center;gap:8px;padding:7px 8px;font-weight:400;display:flex}.duckdb-sample-trigger:hover,.duckdb-sample-trigger.open,.duckdb-sample-trigger:focus-visible{border-color:#287e9b}.duckdb-sample-trigger-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.duckdb-sample-caret{flex:none;font-size:10px}.duckdb-sample-menu{z-index:10;box-sizing:border-box;background:#fff;border:1px solid #d1d5db;border-radius:4px;flex-direction:column;gap:2px;max-height:220px;padding:4px;display:flex;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #0000002e}.duckdb-sample-menu[hidden]{display:none}.duckdb-sample-option{box-sizing:border-box;width:100%;font:inherit;text-align:left;color:#111827;cursor:pointer;background:0 0;border:none;border-radius:3px;padding:6px 8px;font-weight:400}.duckdb-sample-option:hover,.duckdb-sample-option:focus-visible{background:#287e9b1a;outline:none}.duckdb-control-button,.duckdb-control-secondary-button{cursor:pointer;font:inherit;border:none;border-radius:4px;justify-content:center;align-items:center;min-height:32px;padding:7px 10px;font-weight:600;display:inline-flex}.duckdb-control-button{color:#fff;background:#287e9b}.duckdb-control-button:hover{background:#1f5469}.duckdb-control-secondary-button{color:#1f2933;background:#eef2f7}.duckdb-control-secondary-button:hover{background:#e1e7ef}.duckdb-control-button:disabled,.duckdb-control-secondary-button:disabled,.duckdb-control-input:disabled,.duckdb-control-file:disabled,.duckdb-control-textarea:disabled{cursor:not-allowed;opacity:.55}.duckdb-control-placeholder,.duckdb-control-status,.duckdb-control-error{border-radius:4px;margin:0;padding:8px}.duckdb-control-placeholder{color:#6b7280;text-align:center}.duckdb-control-status{color:#155e75;background:#ecfeff}.duckdb-control-error{color:#b91c1c;background:#fef2f2}.duckdb-control-summary-row{grid-template-columns:78px minmax(0,1fr);align-items:start;gap:8px;display:grid}.duckdb-control-summary-row span{color:#6b7280}.duckdb-control-summary-row strong{color:#111827;overflow-wrap:anywhere;font-weight:600}.duckdb-control-check{align-items:center;gap:6px;min-height:24px;display:flex}.duckdb-control-check span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.duckdb-control-properties{grid-template-columns:minmax(72px,max-content) minmax(0,1fr);gap:4px 8px;margin:0;display:grid}.duckdb-control-properties dt{color:#6b7280;text-overflow:ellipsis;font-weight:600;overflow:hidden}.duckdb-control-properties dd{overflow-wrap:anywhere;margin:0}.duckdb-control-content::-webkit-scrollbar{width:6px}.duckdb-control-content::-webkit-scrollbar-track{background:0 0}.duckdb-control-content::-webkit-scrollbar-thumb{background:#c7ced8;border-radius:3px}.duckdb-popup{color:#1f2933;font:12px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.maplibregl-popup.duckdb-attribute-popup,.maplibregl-popup.duckdb-attribute-popup.maplibregl-popup{z-index:10000;max-width:min(320px,100vw - 24px)!important}.maplibregl-popup.duckdb-attribute-popup .maplibregl-popup-content{box-sizing:border-box;max-width:min(320px,100vw - 24px);overflow:hidden}.duckdb-popup strong{overflow-wrap:anywhere;margin-bottom:6px;display:block}.duckdb-popup table{border-collapse:collapse;table-layout:fixed;width:100%;max-width:100%}.duckdb-popup th,.duckdb-popup td{overflow-wrap:anywhere;text-align:left;vertical-align:top;word-break:break-word;border-top:1px solid #e5e7eb;max-width:0;padding:3px 5px}.duckdb-popup th{color:#6b7280;width:34%;font-weight:600}
/**
 * MapLibre GL EnviroAtlas Control Styles
 *
 * Theming is driven by CSS custom properties. The light palette is
 * the default; the dark palette applies automatically through
 * prefers-color-scheme when the control theme is 'auto', or
 * explicitly through [data-theme="dark"]. Explicit data-theme
 * attributes always win over the media query.
 */

/* Light palette (default) */
.enviroatlas-control,
.enviroatlas-panel {
  --ea-bg: #ffffff;
  --ea-fg: #1f2a37;
  --ea-muted: #6b7280;
  --ea-border: #e0e0e0;
  --ea-accent: #4a90d9;
  --ea-accent-fg: #ffffff;
  --ea-hover: rgba(0, 0, 0, 0.05);
  --ea-input-bg: #ffffff;
  --ea-scrollbar: #cccccc;
  --ea-scrollbar-hover: #aaaaaa;
  --ea-shadow: rgba(0, 0, 0, 0.1);
  --ea-error: #c0392b;
  --ea-notice-bg: #eef5fc;
}

/* Dark palette via OS preference (theme: 'auto') */
@media (prefers-color-scheme: dark) {
  .enviroatlas-control:not([data-theme='light']),
  .enviroatlas-panel:not([data-theme='light']) {
    --ea-bg: #1f2937;
    --ea-fg: #e5e7eb;
    --ea-muted: #9ca3af;
    --ea-border: #374151;
    --ea-accent: #5ba3e8;
    --ea-accent-fg: #0f1722;
    --ea-hover: rgba(255, 255, 255, 0.08);
    --ea-input-bg: #111827;
    --ea-scrollbar: #4b5563;
    --ea-scrollbar-hover: #6b7280;
    --ea-shadow: rgba(0, 0, 0, 0.45);
    --ea-error: #f1948a;
    --ea-notice-bg: #1d2c40;
  }
}

/* Explicit dark theme (theme: 'dark') overrides the media query */
.enviroatlas-control[data-theme='dark'],
.enviroatlas-panel[data-theme='dark'] {
  --ea-bg: #1f2937;
  --ea-fg: #e5e7eb;
  --ea-muted: #9ca3af;
  --ea-border: #374151;
  --ea-accent: #5ba3e8;
  --ea-accent-fg: #0f1722;
  --ea-hover: rgba(255, 255, 255, 0.08);
  --ea-input-bg: #111827;
  --ea-scrollbar: #4b5563;
  --ea-scrollbar-hover: #6b7280;
  --ea-shadow: rgba(0, 0, 0, 0.45);
  --ea-error: #f1948a;
  --ea-notice-bg: #1d2c40;
}

/* Container - matches maplibregl-ctrl styling. The doubled class bumps
   specificity above maplibre-gl.css's .maplibregl-ctrl-group background
   regardless of stylesheet import order, so the button follows the
   theme palette in dark mode. */
.enviroatlas-control.enviroatlas-control {
  background: var(--ea-bg);
  border-radius: 4px;
  box-shadow: 0 0 0 2px var(--ea-shadow);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* Toggle button - 29x29 to match navigation control */
.enviroatlas-toggle {
  background: none;
  border: none;
  padding: 0;
  width: 29px;
  height: 29px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  outline: none;
  color: var(--ea-fg);
  border-radius: 4px;
}

.enviroatlas-toggle:hover {
  background-color: var(--ea-hover);
}

.enviroatlas-toggle .enviroatlas-icon {
  width: 100%;
  height: 100%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.enviroatlas-toggle .enviroatlas-icon svg {
  width: 22px;
  height: 22px;
  display: block;
  stroke: currentColor;
  fill: none;
}

/* Panel - positioned dynamically by JavaScript for floating behavior */
.enviroatlas-panel {
  position: absolute;
  /* Position is set dynamically by _updatePanelPosition() */
  background: var(--ea-bg);
  color: var(--ea-fg);
  border-radius: 4px;
  box-shadow: 0 0 0 2px var(--ea-shadow);
  width: min(var(--ea-panel-width, 360px), var(--ea-panel-max-w, calc(100vw - 20px)));
  min-width: 200px;
  max-height: var(--ea-panel-max-h, 70vh);
  overflow: hidden;
  z-index: 1000;
  padding: 8px;
  font-size: 12px;
  line-height: 1.4;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  display: none;
  flex-direction: column;
}

.enviroatlas-panel.expanded {
  display: flex;
}

/* Panel header */
.enviroatlas-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-weight: 600;
  color: var(--ea-fg);
  padding: 4px 0 8px 0;
  border-bottom: 1px solid var(--ea-border);
  margin-bottom: 8px;
  flex: 0 0 auto;
}

.enviroatlas-title {
  flex: 1 1 auto;
  font-size: 13px;
}

.enviroatlas-close {
  width: 20px;
  height: 20px;
  border: none;
  background: transparent;
  color: var(--ea-muted);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  transition: color 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.enviroatlas-close:hover {
  color: var(--ea-fg);
}

/* Search */
.enviroatlas-search {
  flex: 0 0 auto;
  margin-bottom: 8px;
}

.enviroatlas-search-input {
  width: 100%;
  box-sizing: border-box;
  padding: 7px 10px;
  font-size: 12px;
  color: var(--ea-fg);
  background: var(--ea-input-bg);
  border: 1px solid var(--ea-border);
  border-radius: 4px;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.enviroatlas-search-input::placeholder {
  color: var(--ea-muted);
}

.enviroatlas-search-input:focus {
  border-color: var(--ea-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ea-accent) 18%, transparent);
}

/* "Insert before" row */
.enviroatlas-before-row {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
}

.enviroatlas-before-label {
  flex: 0 0 auto;
  color: var(--ea-muted);
  font-size: 11px;
}

.enviroatlas-before-select {
  flex: 1 1 auto;
  min-width: 0;
  padding: 4px 6px;
  font-size: 11px;
  color: var(--ea-fg);
  background: var(--ea-input-bg);
  border: 1px solid var(--ea-border);
  border-radius: 4px;
  outline: none;
}

.enviroatlas-before-select:focus {
  border-color: var(--ea-accent);
}

/* Inline notice */
.enviroatlas-notice {
  flex: 0 0 auto;
  margin-bottom: 8px;
  padding: 6px 8px;
  border-radius: 4px;
  background: var(--ea-notice-bg);
  color: var(--ea-fg);
  font-size: 11px;
}

.enviroatlas-notice-error {
  color: var(--ea-error);
}

/* Browse region (tree or search results) - scrolls vertically */
.enviroatlas-browse {
  flex: 1 1 auto;
  min-height: 60px;
  overflow-y: auto;
  overflow-x: hidden;
}

/* Rows shared by tree, results, and added layers */
.enviroatlas-row {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 3px 4px;
  border-radius: 4px;
  min-width: 0;
}

.enviroatlas-row:hover {
  background: var(--ea-hover);
}

.enviroatlas-row-name {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--ea-fg);
  cursor: pointer;
}

.enviroatlas-leaf {
  cursor: default;
}

.enviroatlas-folder-row .enviroatlas-row-name {
  font-weight: 600;
}

.enviroatlas-count {
  flex: 0 0 auto;
  min-width: 18px;
  text-align: center;
  font-size: 10px;
  font-weight: 600;
  color: var(--ea-muted);
  background: var(--ea-hover);
  border-radius: 8px;
  padding: 0 5px;
  line-height: 15px;
}

.enviroatlas-badge {
  flex: 0 0 auto;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.4px;
  color: var(--ea-muted);
  border: 1px solid var(--ea-border);
  border-radius: 3px;
  padding: 0 4px;
  line-height: 14px;
}

/* Caret (expand/collapse) and small icon buttons */
.enviroatlas-caret,
.enviroatlas-icon-btn,
.enviroatlas-add-btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--ea-muted);
  cursor: pointer;
  border-radius: 4px;
  line-height: 0;
}

.enviroatlas-caret svg {
  transition: transform 0.15s ease;
}

.enviroatlas-caret.expanded svg {
  transform: rotate(90deg);
}

.enviroatlas-caret:hover,
.enviroatlas-icon-btn:hover {
  color: var(--ea-fg);
  background: var(--ea-hover);
}

.enviroatlas-add-btn {
  color: var(--ea-accent);
  border: 1px solid var(--ea-border);
}

.enviroatlas-add-btn:hover {
  background: var(--ea-accent);
  color: var(--ea-accent-fg);
  border-color: var(--ea-accent);
}

.enviroatlas-legend-btn.active {
  color: var(--ea-accent);
}

/* Tree nesting */
.enviroatlas-services {
  margin-left: 14px;
}

.enviroatlas-sublayers {
  margin-left: 18px;
}

/* Search results */
.enviroatlas-result-row {
  align-items: flex-start;
  padding: 5px 4px;
}

.enviroatlas-result-text {
  flex: 1 1 auto;
  min-width: 0;
}

.enviroatlas-result-text .enviroatlas-row-name {
  cursor: default;
  display: block;
}

.enviroatlas-breadcrumb {
  color: var(--ea-muted);
  font-size: 10px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Status / placeholder rows */
.enviroatlas-status {
  margin: 4px 0;
  padding: 4px;
  color: var(--ea-muted);
  font-size: 11px;
}

.enviroatlas-status-error {
  color: var(--ea-error);
  cursor: pointer;
}

/* Added layers section */
.enviroatlas-added-slot {
  flex: 0 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.enviroatlas-added {
  display: flex;
  flex-direction: column;
  min-height: 0;
  border-top: 1px solid var(--ea-border);
  margin-top: 8px;
  padding-top: 6px;
}

.enviroatlas-section-title {
  flex: 0 0 auto;
  font-weight: 600;
  font-size: 12px;
  color: var(--ea-fg);
  margin-bottom: 4px;
}

.enviroatlas-added-list {
  overflow-y: auto;
  max-height: 180px;
}

.enviroatlas-added-item {
  border-bottom: 1px solid var(--ea-border);
  padding-bottom: 4px;
  margin-bottom: 4px;
}

.enviroatlas-added-item:last-child {
  border-bottom: none;
  margin-bottom: 0;
}

.enviroatlas-visibility {
  flex: 0 0 auto;
  margin: 0;
  accent-color: var(--ea-accent);
  cursor: pointer;
}

.enviroatlas-added-controls {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 2px 4px 2px 24px;
}

.enviroatlas-opacity-label {
  flex: 0 0 auto;
  color: var(--ea-muted);
  font-size: 10px;
}

.enviroatlas-opacity {
  flex: 1 1 auto;
  min-width: 0;
  height: 4px;
  accent-color: var(--ea-accent);
  cursor: pointer;
}

.enviroatlas-opacity-value {
  flex: 0 0 auto;
  width: 32px;
  text-align: right;
  color: var(--ea-muted);
  font-size: 10px;
  font-variant-numeric: tabular-nums;
}

/* Legend */
.enviroatlas-legend {
  padding: 2px 4px 4px 24px;
}

.enviroatlas-legend-layer {
  font-weight: 600;
  font-size: 11px;
  color: var(--ea-fg);
  margin: 4px 0 2px;
}

.enviroatlas-legend-item {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 1px 0;
}

.enviroatlas-legend-swatch {
  flex: 0 0 auto;
  border-radius: 2px;
}

.enviroatlas-legend-label {
  color: var(--ea-fg);
  font-size: 11px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Scrollbar styling */
.enviroatlas-browse,
.enviroatlas-added-list,
.enviroatlas-panel {
  scrollbar-width: thin;
  scrollbar-color: var(--ea-scrollbar) transparent;
}

.enviroatlas-browse::-webkit-scrollbar,
.enviroatlas-added-list::-webkit-scrollbar {
  width: 6px;
}

.enviroatlas-browse::-webkit-scrollbar-track,
.enviroatlas-added-list::-webkit-scrollbar-track {
  background: transparent;
}

.enviroatlas-browse::-webkit-scrollbar-thumb,
.enviroatlas-added-list::-webkit-scrollbar-thumb {
  background: var(--ea-scrollbar);
  border-radius: 3px;
}

.enviroatlas-browse::-webkit-scrollbar-thumb:hover,
.enviroatlas-added-list::-webkit-scrollbar-thumb:hover {
  background: var(--ea-scrollbar-hover);
}

/* Form elements kept for custom panel content */
.enviroatlas-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 500;
  color: var(--ea-accent-fg);
  background: var(--ea-accent);
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: filter 0.15s;
}

.enviroatlas-button:hover {
  filter: brightness(0.92);
}

.enviroatlas-button:disabled {
  background: var(--ea-border);
  cursor: not-allowed;
}

.enviroatlas-divider {
  height: 1px;
  background: var(--ea-border);
  margin: 12px 0;
}

/* Resize handle - sits on the panel's free edge (right by default,
   left when the panel is right-anchored) */
.enviroatlas-resizer {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 6px;
  cursor: ew-resize;
  touch-action: none;
  border-radius: 3px;
}

.enviroatlas-panel.enviroatlas-resize-left .enviroatlas-resizer {
  right: auto;
  left: 0;
}

.enviroatlas-resizer:hover,
.enviroatlas-panel.enviroatlas-resizing .enviroatlas-resizer {
  background: color-mix(in srgb, var(--ea-accent) 35%, transparent);
}

.enviroatlas-panel.enviroatlas-resizing {
  user-select: none;
}

/* Small screens: tighten padding so more content fits */
@media (max-width: 480px) {
  .enviroatlas-panel {
    font-size: 11px;
    padding: 6px;
  }
}
/*$vite$:1*/.esri-wayback-control {
  background: #fff;
  border-radius: 4px;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
  color: #1f2933;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.esri-wayback-control-toggle {
  align-items: center;
  background: none;
  border: none;
  color: #1f2933;
  cursor: pointer;
  display: flex;
  height: 29px;
  justify-content: center;
  outline: none;
  padding: 0;
  width: 29px;
}

.esri-wayback-control-toggle:hover {
  background-color: rgba(0, 0, 0, 0.05);
}

.esri-wayback-control-icon {
  align-items: center;
  display: flex;
  height: 100%;
  justify-content: center;
  line-height: 0;
  position: relative;
  width: 100%;
}

.esri-wayback-control-icon svg {
  display: block;
  fill: none;
  height: 22px;
  stroke: currentColor;
  width: 22px;
}

.esri-wayback-control-panel {
  background: #fff;
  border-radius: 4px;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
  display: none;
  font-size: 12px;
  line-height: 1.4;
  max-height: 540px;
  max-width: calc(100% - 16px);
  min-width: 260px;
  overflow: hidden;
  padding: 8px;
  position: absolute;
  z-index: 1000;
}

.esri-wayback-control-resize-handle {
  bottom: 0;
  cursor: ew-resize;
  position: absolute;
  top: 0;
  touch-action: none;
  width: 6px;
  z-index: 1;
}

.esri-wayback-control-resize-handle-left {
  left: 0;
}

.esri-wayback-control-resize-handle-right {
  right: 0;
}

.esri-wayback-control-resize-handle::after {
  background: transparent;
  bottom: 8px;
  content: '';
  left: 50%;
  position: absolute;
  top: 8px;
  transform: translateX(-50%);
  transition: background-color 0.15s ease;
  width: 2px;
}

.esri-wayback-control-resize-handle:hover::after {
  background: #2b7bb9;
}

.esri-wayback-control-panel.expanded {
  display: flex;
  flex-direction: column;
}

.esri-wayback-control-header {
  align-items: center;
  border-bottom: 1px solid #dde3ea;
  color: #24313f;
  display: flex;
  font-weight: 700;
  gap: 10px;
  justify-content: space-between;
  margin-bottom: 8px;
  padding: 4px 0 8px;
}

.esri-wayback-control-title {
  flex: 1 1 auto;
  font-size: 13px;
}

.esri-wayback-control-close {
  align-items: center;
  background: transparent;
  border: none;
  color: #697586;
  cursor: pointer;
  display: flex;
  font-size: 18px;
  height: 20px;
  justify-content: center;
  line-height: 1;
  padding: 0;
  width: 20px;
}

.esri-wayback-control-close:hover {
  color: #1f2933;
}

.esri-wayback-control-content {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 8px;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
}

.esri-wayback-status {
  color: #5f6b7a;
  margin: 0;
  padding: 8px 0;
}

.esri-wayback-status-error {
  color: #a33120;
  font-weight: 600;
}

.esri-wayback-summary {
  background: #f4f7f9;
  border: 1px solid #dde3ea;
  border-radius: 4px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px;
}

.esri-wayback-summary-label,
.esri-wayback-summary-detail,
.esri-wayback-release-count {
  color: #697586;
  font-size: 11px;
}

.esri-wayback-summary-value {
  color: #14212d;
  font-size: 15px;
}

.esri-wayback-label {
  color: #3f4e5d;
  font-weight: 600;
}

.esri-wayback-local-changes {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: 8px;
}

.esri-wayback-local-changes-checkbox {
  accent-color: #2b7bb9;
  cursor: pointer;
  flex: none;
  height: 14px;
  margin: 0;
  width: 14px;
}

.esri-wayback-local-changes-checkbox:disabled {
  cursor: not-allowed;
}

.esri-wayback-local-changes-label {
  color: #3f4e5d;
  font-weight: 600;
}

.esri-wayback-local-changes-status {
  color: #697586;
  font-size: 11px;
  margin-left: auto;
}

.esri-wayback-slider {
  border: 1px solid #dde3ea;
  border-radius: 4px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 8px;
  background: #fff;
}

.esri-wayback-slider-label-row,
.esri-wayback-slider-endpoints,
.esri-wayback-slider-controls {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.esri-wayback-range {
  accent-color: #2b7bb9;
  cursor: pointer;
  margin: 2px 0;
  width: 100%;
}

.esri-wayback-slider-endpoints {
  color: #697586;
  font-size: 11px;
}

.esri-wayback-slider-controls {
  gap: 8px;
}

.esri-wayback-slider-button {
  background: #f4f7f9;
  border: 1px solid #ccd6e0;
  border-radius: 4px;
  color: #24313f;
  cursor: pointer;
  flex: 1 1 0;
  font-size: 13px;
  font-weight: 700;
  height: 28px;
}

.esri-wayback-slider-button:hover:not(:disabled) {
  background: #e8f3fb;
  border-color: #2b7bb9;
}

.esri-wayback-slider-button:disabled {
  color: #9aa6b2;
  cursor: not-allowed;
}

.esri-wayback-persistent {
  border: 1px solid #dde3ea;
  border-radius: 4px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 8px;
}

.esri-wayback-persistent-label {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.esri-wayback-input {
  border: 1px solid #ccd6e0;
  border-radius: 4px;
  box-sizing: border-box;
  font-size: 13px;
  outline: none;
  padding: 7px 9px;
  width: 100%;
}

.esri-wayback-input:focus {
  border-color: #2b7bb9;
  box-shadow: 0 0 0 3px rgba(43, 123, 185, 0.16);
}

.esri-wayback-add-layer-button {
  background: #24313f;
  border: none;
  border-radius: 4px;
  color: #fff;
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
  min-height: 30px;
  padding: 7px 10px;
}

.esri-wayback-add-layer-button:hover:not(:disabled) {
  background: #324456;
}

.esri-wayback-add-layer-button:disabled {
  background: #ccd6e0;
  cursor: not-allowed;
}

.esri-wayback-persistent-status {
  color: #5f6b7a;
  font-size: 11px;
  margin: 0;
  overflow-wrap: anywhere;
}

.esri-wayback-metadata {
  border-top: 1px solid #dde3ea;
  padding-top: 8px;
}

.esri-wayback-metadata h3 {
  color: #24313f;
  font-size: 12px;
  margin: 0 0 6px;
}

.esri-wayback-metadata dl {
  display: grid;
  grid-template-columns: minmax(72px, 0.75fr) minmax(0, 1.25fr);
  margin: 0;
  row-gap: 4px;
}

.esri-wayback-metadata dt {
  color: #697586;
  font-weight: 600;
}

.esri-wayback-metadata dd {
  color: #1f2933;
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
}
/*$vite$:1*/.earth-engine-control .plugin-control-toggle { background:none; border:none; width:29px; height:29px; cursor:pointer; }
.earth-engine-control .plugin-control-icon { font-size:18px; }
.plugin-control-panel.earth-engine-panel { --ee-panel-bg:#fff; --ee-panel-elevated:#f8fafc; --ee-panel-muted:#fafafa; --ee-panel-text:#111827; --ee-panel-subtle:#475569; --ee-panel-placeholder:#666; --ee-panel-border:#e5e7eb; --ee-panel-border-strong:#d1d5db; --ee-input-bg:#fff; --ee-input-text:#111827; --ee-item-bg:#fff; --ee-active-bg:#eff6ff; --ee-active-border:#1d4ed8; --ee-button-primary:#1d4ed8; --ee-button-muted:#475569; --ee-button-danger:#b91c1c; --ee-shadow:0 8px 30px rgba(0,0,0,.2); position:absolute; top:40px; right:0; background:var(--ee-panel-bg); color:var(--ee-panel-text); color-scheme:light; border:1px solid var(--ee-panel-border); border-radius:8px; box-shadow:var(--ee-shadow); max-height:78vh; min-width:min(320px, calc(100vw - 24px)); min-height:320px; max-width:calc(100vw - 24px); overflow:hidden; display:none; flex-direction:column; z-index:1000; }
@media (prefers-color-scheme: dark) {
  .plugin-control-panel.earth-engine-panel { --ee-panel-bg:#111827; --ee-panel-elevated:#1f2937; --ee-panel-muted:#0f172a; --ee-panel-text:#e5e7eb; --ee-panel-subtle:#cbd5e1; --ee-panel-placeholder:#cbd5e1; --ee-panel-border:#374151; --ee-panel-border-strong:#4b5563; --ee-input-bg:#0f172a; --ee-input-text:#f8fafc; --ee-item-bg:#1f2937; --ee-active-bg:#1e3a5f; --ee-active-border:#60a5fa; --ee-button-primary:#2563eb; --ee-button-muted:#64748b; --ee-button-danger:#dc2626; --ee-shadow:0 12px 34px rgba(0,0,0,.5); color-scheme:dark; }
}
.plugin-control-panel.earth-engine-panel.plugin-control-dark, .maplibre-gl-earth-engine-dark .plugin-control-panel.earth-engine-panel { --ee-panel-bg:#111827; --ee-panel-elevated:#1f2937; --ee-panel-muted:#0f172a; --ee-panel-text:#e5e7eb; --ee-panel-subtle:#cbd5e1; --ee-panel-placeholder:#cbd5e1; --ee-panel-border:#374151; --ee-panel-border-strong:#4b5563; --ee-input-bg:#0f172a; --ee-input-text:#f8fafc; --ee-item-bg:#1f2937; --ee-active-bg:#1e3a5f; --ee-active-border:#60a5fa; --ee-button-primary:#2563eb; --ee-button-muted:#64748b; --ee-button-danger:#dc2626; --ee-shadow:0 12px 34px rgba(0,0,0,.5); color-scheme:dark; }
.plugin-control-panel.earth-engine-panel.expanded { display:flex; }
.earth-engine-panel .plugin-resize-handle { position:absolute; width:18px; height:18px; z-index:2; opacity:.55; }
.earth-engine-panel .plugin-resize-handle::after { content:""; position:absolute; inset:5px; border-right:2px solid var(--ee-panel-subtle); border-bottom:2px solid var(--ee-panel-subtle); }
.earth-engine-panel .plugin-resize-left { left:0; }
.earth-engine-panel .plugin-resize-right { right:0; }
.earth-engine-panel .plugin-resize-top { top:0; }
.earth-engine-panel .plugin-resize-bottom { bottom:0; }
.earth-engine-panel .plugin-resize-left.plugin-resize-bottom, .earth-engine-panel .plugin-resize-right.plugin-resize-top { cursor:nesw-resize; }
.earth-engine-panel .plugin-resize-right.plugin-resize-bottom, .earth-engine-panel .plugin-resize-left.plugin-resize-top { cursor:nwse-resize; }
.earth-engine-panel .plugin-resize-left::after { transform:scaleX(-1); }
.earth-engine-panel .plugin-resize-top::after { transform:scaleY(-1); }
.earth-engine-panel .plugin-resize-left.plugin-resize-top::after { transform:scale(-1); }
.earth-engine-panel .plugin-control-header { display:flex; justify-content:space-between; align-items:center; padding:8px 10px; border-bottom:1px solid var(--ee-panel-border); }
.earth-engine-panel .plugin-control-title { font-weight:600; }
.earth-engine-panel .plugin-control-close { border:none; background:transparent; color:var(--ee-panel-text); font-size:18px; cursor:pointer; }
.earth-engine-panel .plugin-control-tabs { display:flex; flex-wrap:wrap; gap:4px; padding:8px; border-bottom:1px solid var(--ee-panel-border); }
.earth-engine-panel .plugin-control-tab { border:1px solid var(--ee-panel-border-strong); background:var(--ee-panel-elevated); color:var(--ee-panel-text); border-radius:5px; padding:4px 8px; font-size:12px; cursor:pointer; }
.earth-engine-panel .plugin-control-tab.active { background:var(--ee-panel-text); color:var(--ee-panel-bg); border-color:var(--ee-panel-text); }
.earth-engine-panel .plugin-control-content { flex:1 1 auto; min-height:0; overflow:auto; padding:8px; }
.earth-engine-panel .plugin-tab-panel { display:none; }
.earth-engine-panel .plugin-tab-panel.active { display:block; }
.earth-engine-panel .plugin-tab-heading { margin:0 0 8px; font-size:13px; }
.earth-engine-panel .plugin-control-group { margin-bottom:8px; }
.earth-engine-panel .plugin-control-label { display:block; margin-bottom:3px; font-size:12px; }
.earth-engine-panel .plugin-control-input { width:100%; box-sizing:border-box; padding:6px; border:1px solid var(--ee-panel-border-strong); border-radius:5px; background:var(--ee-input-bg); color:var(--ee-input-text); font-size:12px; margin-bottom:6px; }
.earth-engine-panel .plugin-control-input::placeholder { color:var(--ee-panel-placeholder); opacity:1; }
.earth-engine-panel .plugin-control-button { border:none; background:var(--ee-button-primary); color:#fff; border-radius:5px; padding:7px 10px; cursor:pointer; font-size:12px; margin-right:6px; margin-top:4px; }
.earth-engine-panel .plugin-control-button-muted { background:var(--ee-button-muted); }
.earth-engine-panel .plugin-control-button-danger { background:var(--ee-button-danger); }
.earth-engine-panel .plugin-control-placeholder { font-size:12px; color:var(--ee-panel-placeholder); white-space:pre-wrap; }
.earth-engine-panel .plugin-control-status { border-top:1px solid var(--ee-panel-border); padding:8px; font-size:12px; color:var(--ee-panel-text); background:var(--ee-panel-muted); }
.earth-engine-panel .plugin-list { display:flex; flex-direction:column; gap:4px; max-height:280px; overflow:auto; margin-top:8px; }
.earth-engine-panel .plugin-list-item { text-align:left; border:1px solid var(--ee-panel-border-strong); background:var(--ee-item-bg); color:var(--ee-panel-text); border-radius:5px; padding:6px; font-size:11px; cursor:pointer; }
.earth-engine-panel .plugin-list-item.active { border-color:var(--ee-active-border); background:var(--ee-active-bg); }
.earth-engine-panel .plugin-code { min-height:120px; font-family:ui-monospace, SFMono-Regular, Menlo, monospace; }
.earth-engine-panel .plugin-group { border:1px solid var(--ee-panel-border); border-radius:6px; padding:6px; }
.earth-engine-panel .plugin-group-title { font-size:11px; color:var(--ee-panel-subtle); margin-bottom:4px; font-weight:600; }
.earth-engine-panel .plugin-detail { border:1px solid var(--ee-panel-border); border-radius:6px; padding:8px; font-size:12px; margin-top:8px; background:var(--ee-panel-elevated); color:var(--ee-panel-text); }
.earth-engine-panel .plugin-layer-list { display:flex; flex-direction:column; gap:8px; }
.earth-engine-panel .plugin-layer-item { border:1px solid var(--ee-panel-border); border-radius:6px; padding:8px; background:var(--ee-item-bg); }
.earth-engine-panel .plugin-layer-item.active { border-color:var(--ee-active-border); background:var(--ee-active-bg); }
.earth-engine-panel .plugin-layer-row { display:flex; align-items:center; gap:8px; width:100%; min-height:24px; box-sizing:border-box; }
.earth-engine-panel .plugin-layer-checkbox { margin:0; flex:0 0 auto; cursor:pointer; }
.earth-engine-panel .plugin-layer-title { flex:1 1 0; min-width:0; border:none; background:transparent; padding:0; font-size:12px; font-weight:600; text-align:left; cursor:pointer; color:var(--ee-panel-text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.earth-engine-panel .plugin-layer-opacity { flex:0 0 auto; width:100px; min-width:100px; max-width:100px; height:16px; margin:0; cursor:pointer; }
.earth-engine-panel .plugin-layer-icon-button { width:24px; height:24px; border:1px solid var(--ee-panel-border-strong); border-radius:5px; background:var(--ee-input-bg); color:var(--ee-button-danger); line-height:1; cursor:pointer; }
.earth-engine-panel .plugin-inspector-output { max-height:220px; overflow:auto; border:1px solid var(--ee-panel-border); border-radius:6px; padding:8px; background:var(--ee-panel-elevated); color:var(--ee-panel-text); }
/*$vite$:1*//**
 * MapLibre GL FEMA WMS Control Styles
 *
 * Theming uses CSS custom properties. Light values are the defaults;
 * dark values apply automatically via prefers-color-scheme, or can be
 * forced with a `dark` class (and back with a `light` class) on the
 * control/panel/popup elements or any ancestor.
 */

/* ---------------------------------------------------------------------------
 * Theme tokens
 * ------------------------------------------------------------------------ */

.plugin-control.fema-wms-control,
.plugin-control-panel.fema-wms-panel,
.fema-wms-popup {
  --fw-bg: #ffffff;
  --fw-fg: #1f2a37;
  --fw-muted: #6b7280;
  --fw-border: #e0e0e0;
  --fw-accent: #2f7cc4;
  --fw-accent-hover: #2565a3;
  --fw-accent-contrast: #ffffff;
  --fw-input-bg: #ffffff;
  --fw-input-border: #d0d5dd;
  --fw-row-hover: rgba(0, 0, 0, 0.045);
  --fw-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
  --fw-scroll-thumb: #c7cdd4;
  --fw-scroll-thumb-hover: #aab2bb;
  --fw-error: #b3261e;
  /* Legends are dark-on-transparent images; keep their backdrop light in
     both themes so they stay readable. */
  --fw-legend-bg: #ffffff;
}

@media (prefers-color-scheme: dark) {
  .plugin-control.fema-wms-control:not(.light):not(.light *),
  .plugin-control-panel.fema-wms-panel:not(.light):not(.light *),
  .fema-wms-popup:not(.light):not(.light *) {
    --fw-bg: #20262e;
    --fw-fg: #e5e7eb;
    --fw-muted: #9aa3af;
    --fw-border: #3a4350;
    --fw-accent: #6ab0f3;
    --fw-accent-hover: #8ec2f6;
    --fw-accent-contrast: #10151c;
    --fw-input-bg: #161b22;
    --fw-input-border: #3a4350;
    --fw-row-hover: rgba(255, 255, 255, 0.07);
    --fw-shadow: 0 0 0 2px rgba(0, 0, 0, 0.45);
    --fw-scroll-thumb: #4b5563;
    --fw-scroll-thumb-hover: #5f6b7a;
    --fw-error: #ff8a80;
  }
}

.plugin-control.fema-wms-control.dark,
.plugin-control-panel.fema-wms-panel.dark,
.fema-wms-popup.dark,
.dark .plugin-control.fema-wms-control:not(.light):not(.light *),
.dark .plugin-control-panel.fema-wms-panel:not(.light):not(.light *),
.dark .fema-wms-popup:not(.light):not(.light *) {
  --fw-bg: #20262e;
  --fw-fg: #e5e7eb;
  --fw-muted: #9aa3af;
  --fw-border: #3a4350;
  --fw-accent: #6ab0f3;
  --fw-accent-hover: #8ec2f6;
  --fw-accent-contrast: #10151c;
  --fw-input-bg: #161b22;
  --fw-input-border: #3a4350;
  --fw-row-hover: rgba(255, 255, 255, 0.07);
  --fw-shadow: 0 0 0 2px rgba(0, 0, 0, 0.45);
  --fw-scroll-thumb: #4b5563;
  --fw-scroll-thumb-hover: #5f6b7a;
  --fw-error: #ff8a80;
}

/* ---------------------------------------------------------------------------
 * Container and toggle button
 * ------------------------------------------------------------------------ */

/* Container - matches maplibregl-ctrl styling.
   The compound selectors out-specify maplibre-gl's own
   `.maplibregl-ctrl-group` background and `:not(:empty)` box-shadow rules,
   which would otherwise force a white button in dark mode regardless of
   stylesheet load order. */
.plugin-control.fema-wms-control,
.maplibregl-ctrl.plugin-control.fema-wms-control,
.maplibregl-ctrl-group.plugin-control.fema-wms-control:not(:empty) {
  background: var(--fw-bg);
  border-radius: 4px;
  box-shadow: var(--fw-shadow);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* Toggle button - 29x29 to match navigation control */
.fema-wms-control .plugin-control-toggle {
  background: none;
  border: none;
  padding: 0;
  width: 29px;
  height: 29px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  outline: none;
  /* The icon uses currentColor, so this keeps it readable in both themes */
  color: var(--fw-fg);
}

.fema-wms-control .plugin-control-toggle:hover,
.maplibregl-ctrl.plugin-control.fema-wms-control button.plugin-control-toggle:not(:disabled):hover {
  background-color: var(--fw-row-hover);
}

.fema-wms-control .plugin-control-toggle:focus-visible {
  outline: 2px solid var(--fw-accent);
  outline-offset: -2px;
  border-radius: 4px;
}

.fema-wms-control .plugin-control-toggle .plugin-control-icon {
  width: 100%;
  height: 100%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.fema-wms-control .plugin-control-toggle .plugin-control-icon svg {
  width: 22px;
  height: 22px;
  display: block;
  stroke: currentColor;
  fill: none;
}

/* ---------------------------------------------------------------------------
 * Panel
 * ------------------------------------------------------------------------ */

/* Panel - positioned dynamically by JavaScript for floating behavior */
.plugin-control-panel.fema-wms-panel {
  position: absolute;
  /* Position is set dynamically by _updatePanelPosition() */
  background: var(--fw-bg);
  color: var(--fw-fg);
  border-radius: 4px;
  box-shadow: var(--fw-shadow);
  box-sizing: border-box;
  min-width: 240px;
  /* Stay usable on small screens: never exceed the viewport.
     The height cap is refined per position by _updatePanelPosition();
     the width is user-resizable via the drag handle. */
  max-width: calc(100vw - 20px);
  max-height: min(500px, calc(100vh - 80px));
  z-index: 1000;
  padding: 8px;
  font-size: 12px;
  line-height: 1.4;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  display: none;
}

.plugin-control-panel.fema-wms-panel.expanded {
  /* Flex column so the header stays pinned and only the content scrolls */
  display: flex;
  flex-direction: column;
}

/* Panel header */
.fema-wms-panel .plugin-control-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-weight: 600;
  color: var(--fw-fg);
  padding: 4px 0 8px 0;
  border-bottom: 1px solid var(--fw-border);
  margin-bottom: 8px;
  flex: 0 0 auto;
}

.fema-wms-panel .plugin-control-title {
  flex: 1 1 auto;
  font-size: 13px;
}

.fema-wms-panel .plugin-control-close {
  width: 20px;
  height: 20px;
  border: none;
  background: transparent;
  color: var(--fw-muted);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  transition: color 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.fema-wms-panel .plugin-control-close:hover {
  color: var(--fw-fg);
}

/* Width drag-resize handle, positioned by JS on the edge facing away
   from the control's anchor corner */
.fema-wms-panel .plugin-control-resize-handle {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 8px;
  cursor: ew-resize;
  touch-action: none;
  border-radius: 4px;
  transition: background-color 0.15s;
}

.fema-wms-panel .plugin-control-resize-handle-right {
  right: -3px;
}

.fema-wms-panel .plugin-control-resize-handle-left {
  left: -3px;
}

.fema-wms-panel .plugin-control-resize-handle:hover,
.plugin-control-panel-resizing.fema-wms-panel .plugin-control-resize-handle {
  background: color-mix(in srgb, var(--fw-accent) 40%, transparent);
}

.plugin-control-panel-resizing.fema-wms-panel {
  user-select: none;
}

/* Content scrolls within the panel; header stays visible */
.fema-wms-panel .plugin-control-content {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}

.fema-wms-panel .plugin-control-placeholder {
  margin: 0;
  color: var(--fw-muted);
  font-size: 12px;
  text-align: center;
  padding: 16px 0;
}

/* Scrollbar styling */
.fema-wms-panel .plugin-control-content::-webkit-scrollbar,
.fema-wms-popup-body::-webkit-scrollbar {
  width: 6px;
}

.fema-wms-panel .plugin-control-content::-webkit-scrollbar-track,
.fema-wms-popup-body::-webkit-scrollbar-track {
  background: transparent;
}

.fema-wms-panel .plugin-control-content::-webkit-scrollbar-thumb,
.fema-wms-popup-body::-webkit-scrollbar-thumb {
  background: var(--fw-scroll-thumb);
  border-radius: 3px;
}

.fema-wms-panel .plugin-control-content::-webkit-scrollbar-thumb:hover,
.fema-wms-popup-body::-webkit-scrollbar-thumb:hover {
  background: var(--fw-scroll-thumb-hover);
}

/* ---------------------------------------------------------------------------
 * Generic form elements
 * ------------------------------------------------------------------------ */

.fema-wms-panel .plugin-control-group {
  margin-bottom: 12px;
}

.fema-wms-panel .plugin-control-group:last-child {
  margin-bottom: 0;
}

.fema-wms-panel .plugin-control-label {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  font-weight: 500;
  color: var(--fw-muted);
}

.fema-wms-panel .plugin-control-input {
  width: 100%;
  box-sizing: border-box;
  padding: 6px 8px;
  font-size: 12px;
  color: var(--fw-fg);
  background: var(--fw-input-bg);
  border: 1px solid var(--fw-input-border);
  border-radius: 4px;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.fema-wms-panel .plugin-control-input::placeholder {
  color: var(--fw-muted);
}

.fema-wms-panel .plugin-control-input:focus {
  border-color: var(--fw-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--fw-accent) 20%, transparent);
}

.fema-wms-panel .plugin-control-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 500;
  color: var(--fw-accent-contrast);
  background: var(--fw-accent);
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.15s;
}

.fema-wms-panel .plugin-control-button:hover {
  background: var(--fw-accent-hover);
}

.fema-wms-panel .plugin-control-button:focus {
  outline: 2px solid var(--fw-accent);
  outline-offset: 2px;
}

.fema-wms-panel .plugin-control-button:disabled {
  background: var(--fw-scroll-thumb);
  cursor: not-allowed;
}

/* Utility classes */
.fema-wms-panel .plugin-control-flex {
  display: flex;
  gap: 8px;
}

.fema-wms-panel .plugin-control-flex-col {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.fema-wms-panel .plugin-control-divider {
  height: 1px;
  background: var(--fw-border);
  margin: 12px 0;
}

/* ---------------------------------------------------------------------------
 * FEMA WMS panel content
 * ------------------------------------------------------------------------ */

.fema-wms-content {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.fema-wms-search {
  flex: 0 0 auto;
}

.fema-wms-status {
  flex: 0 0 auto;
  color: var(--fw-muted);
  font-size: 11px;
  padding: 0 2px;
}

.fema-wms-status-error {
  color: var(--fw-error);
}

.fema-wms-before {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--fw-border);
}

.fema-wms-before-label {
  flex: 0 0 auto;
  color: var(--fw-muted);
  font-size: 11px;
  white-space: nowrap;
}

.fema-wms-before-select {
  flex: 1 1 auto;
  min-width: 0;
  cursor: pointer;
}

/* Keep native dropdown options readable in dark mode */
.fema-wms-before-select option {
  background: var(--fw-input-bg);
  color: var(--fw-fg);
}

.fema-wms-layer-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.fema-wms-layer-row {
  border-radius: 4px;
  padding: 2px 4px;
}

.fema-wms-layer-row:hover {
  background: var(--fw-row-hover);
}

.fema-wms-layer-row[hidden] {
  display: none;
}

.fema-wms-layer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  min-height: 24px;
}

.fema-wms-layer-label {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1 1 auto;
  min-width: 0;
  cursor: pointer;
}

.fema-wms-layer-checkbox {
  flex: 0 0 auto;
  margin: 0;
  accent-color: var(--fw-accent);
  cursor: pointer;
}

.fema-wms-layer-title {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--fw-fg);
}

.fema-wms-layer-actions {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: 0 0 auto;
}

.fema-wms-action {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  border: none;
  border-radius: 4px;
  background: transparent;
  color: var(--fw-muted);
  cursor: pointer;
  transition: color 0.15s, background-color 0.15s;
}

.fema-wms-action svg {
  stroke: currentColor;
  fill: none;
}

.fema-wms-action:hover:not(:disabled) {
  color: var(--fw-accent);
  background: var(--fw-row-hover);
}

.fema-wms-action[aria-expanded='true'] {
  color: var(--fw-accent);
}

.fema-wms-action:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.fema-wms-layer-body {
  padding: 2px 0 6px 22px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.fema-wms-layer-body[hidden] {
  display: none;
}

.fema-wms-opacity {
  display: flex;
  align-items: center;
  gap: 6px;
}

.fema-wms-opacity-label {
  flex: 0 0 auto;
  color: var(--fw-muted);
  font-size: 11px;
}

.fema-wms-opacity-slider {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  accent-color: var(--fw-accent);
  cursor: pointer;
}

.fema-wms-opacity-value {
  flex: 0 0 auto;
  width: 32px;
  text-align: right;
  color: var(--fw-muted);
  font-variant-numeric: tabular-nums;
  font-size: 11px;
}

/* Legend images are dark-on-transparent PNGs; always show them on a light
   backdrop so they remain readable in dark mode. */
.fema-wms-legend {
  background: var(--fw-legend-bg);
  border: 1px solid var(--fw-border);
  border-radius: 4px;
  padding: 4px;
  overflow-x: auto;
}

.fema-wms-legend[hidden] {
  display: none;
}

.fema-wms-legend-img {
  display: block;
  max-width: 100%;
}

/* ---------------------------------------------------------------------------
 * Feature info popup
 * ------------------------------------------------------------------------ */

.fema-wms-popup {
  position: absolute;
  /* left/top are set per click; anchor the box above the point */
  transform: translate(-50%, calc(-100% - 10px));
  background: var(--fw-bg);
  color: var(--fw-fg);
  border-radius: 6px;
  box-shadow: var(--fw-shadow);
  width: max-content;
  min-width: 160px;
  max-width: min(320px, calc(100vw - 20px));
  z-index: 1001;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 12px;
  line-height: 1.4;
}

.fema-wms-popup-arrow {
  position: absolute;
  left: 50%;
  bottom: -6px;
  width: 12px;
  height: 12px;
  transform: translateX(-50%) rotate(45deg);
  background: var(--fw-bg);
}

/* Flipped variant: popup opens below the clicked point */
.fema-wms-popup-below {
  transform: translate(-50%, 14px);
}

.fema-wms-popup-below .fema-wms-popup-arrow {
  bottom: auto;
  top: -6px;
}

.fema-wms-popup-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 6px 8px;
  border-bottom: 1px solid var(--fw-border);
  font-weight: 600;
}

.fema-wms-popup-close {
  width: 20px;
  height: 20px;
  border: none;
  background: transparent;
  color: var(--fw-muted);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.fema-wms-popup-close:hover {
  color: var(--fw-fg);
}

.fema-wms-popup-body {
  padding: 6px 8px;
  max-height: min(240px, 40vh);
  overflow-y: auto;
  position: relative;
  background: var(--fw-bg);
  border-radius: 0 0 6px 6px;
}

.fema-wms-popup-table {
  border-collapse: collapse;
  width: 100%;
}

.fema-wms-popup-table th,
.fema-wms-popup-table td {
  text-align: left;
  vertical-align: top;
  padding: 2px 6px 2px 0;
  border-bottom: 1px solid var(--fw-border);
  font-weight: 400;
  overflow-wrap: anywhere;
}

.fema-wms-popup-table th {
  color: var(--fw-muted);
  white-space: nowrap;
}

.fema-wms-popup-table tr:last-child th,
.fema-wms-popup-table tr:last-child td {
  border-bottom: none;
}

.fema-wms-popup-empty {
  margin: 4px 0;
  color: var(--fw-muted);
}

.fema-wms-popup-pre {
  margin: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font-size: 11px;
}

.fema-wms-popup-html {
  overflow-x: auto;
}
/*$vite$:1*/.geoagent-control {
  background: #fff;
  border-radius: 4px;
  box-shadow: 0 0 0 2px rgb(0 0 0 / 10%);
  color: #17202a;
  color-scheme: light;
  font-family:
    Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
    "Segoe UI", sans-serif;
}

.geoagent-control-toggle {
  display: grid;
  place-items: center;
  width: 29px;
  height: 29px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #17202a;
  cursor: pointer;
}

.geoagent-control-toggle:hover {
  background-color: rgb(0 0 0 / 5%);
}

.geoagent-control-icon,
.geoagent-control-icon svg {
  width: 22px;
  height: 22px;
}

.geoagent-control-icon {
  display: grid;
  place-items: center;
  line-height: 0;
}

.geoagent-control-icon svg {
  stroke: currentColor;
}

.geoagent-panel {
  position: absolute;
  z-index: 1000;
  display: none;
  max-width: calc(100% - 20px);
  max-height: calc(100% - 20px);
  padding: 14px;
  border: 1px solid #d7dde5;
  border-radius: 8px;
  background: color-mix(in srgb, #ffffff 94%, transparent);
  box-shadow: 0 18px 50px rgb(15 23 42 / 18%);
  color: #17202a;
  color-scheme: light;
  font-family:
    Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
    "Segoe UI", sans-serif;
  font-size: 13px;
  line-height: 1.4;
}

.geoagent-panel.expanded {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 12px;
}

.geoagent-panel-resize-handle {
  position: absolute;
  bottom: -3px;
  z-index: 3;
  width: 18px;
  height: 18px;
  touch-action: none;
}

.geoagent-panel-resize-handle-bl {
  left: -3px;
  cursor: nesw-resize;
}

.geoagent-panel-resize-handle-br {
  right: -3px;
  cursor: nwse-resize;
}

.geoagent-panel-resize-handle::before {
  position: absolute;
  bottom: 4px;
  width: 9px;
  height: 9px;
  border-color: #c7d2df;
  border-style: solid;
  content: "";
  opacity: 0;
  transition: opacity 0.15s ease;
}

.geoagent-panel-resize-handle-bl::before {
  left: 4px;
  border-width: 0 0 2px 2px;
  border-bottom-left-radius: 3px;
}

.geoagent-panel-resize-handle-br::before {
  right: 4px;
  border-width: 0 2px 2px 0;
  border-bottom-right-radius: 3px;
}

.geoagent-panel-resize-handle:hover::before,
.geoagent-panel.resizing .geoagent-panel-resize-handle::before {
  opacity: 1;
}

body.geoagent-panel-resizing {
  cursor: ew-resize;
  user-select: none;
}

.geoagent-panel * {
  box-sizing: border-box;
}

.geoagent-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}

.geoagent-panel-title {
  overflow: hidden;
  color: #17202a;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.geoagent-title-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
}

.geoagent-status {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  background: #edf2f7;
  color: #5f6b7a;
  font-size: 12px;
  font-weight: 650;
}

.geoagent-status.connected {
  background: #dff6ee;
  color: #076448;
}

.geoagent-status.setup {
  background: #fef0c7;
  color: #b54708;
}

.geoagent-status.connecting {
  background: #e0eaff;
  color: #1d4ed8;
}

.geoagent-status.error {
  background: #fee4e2;
  color: #b42318;
}

.geoagent-icon-button {
  display: inline-grid;
  place-items: center;
  width: 28px;
  min-width: 28px;
  height: 28px;
  min-height: 28px;
  padding: 0;
  border: 1px solid #d7dde5;
  border-radius: 6px;
  background: #fff;
  color: #5f6b7a;
  cursor: pointer;
}

.geoagent-icon-button svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
}

.geoagent-panel-content {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
  /* The log flexes to absorb spare/short space; if the panel is still too short
     for the fixed sections, the whole content scrolls so nothing is clipped. */
  overflow-x: hidden;
  overflow-y: auto;
}

/* Settings, Earth Engine, toggles and the prompt form keep their natural size;
   only the conversation log flexes to fill (and scrolls) so the form and its
   action buttons stay visible instead of being pushed past the panel. */
.geoagent-settings,
.geoagent-earth-engine,
.geoagent-toggle-row,
.geoagent-form {
  flex: 0 0 auto;
}

.geoagent-panel label {
  display: grid;
  gap: 5px;
  color: #5f6b7a;
  font-size: 12px;
  font-weight: 650;
}

.geoagent-panel input,
.geoagent-panel select,
.geoagent-panel textarea,
.geoagent-panel button {
  font: inherit;
}

.geoagent-panel input,
.geoagent-panel select,
.geoagent-panel textarea {
  width: 100%;
  border: 1px solid #d7dde5;
  border-radius: 6px;
  background: #fff;
  color: #17202a;
}

.geoagent-panel input,
.geoagent-panel select {
  height: 36px;
  padding: 0 10px;
}

.geoagent-panel select {
  cursor: pointer;
}

.geoagent-panel textarea {
  min-height: 86px;
  max-height: min(180px, 24vh);
  resize: vertical;
  overflow: auto;
  padding: 9px 10px;
  line-height: 1.35;
}

.geoagent-settings {
  border: 1px solid #d7dde5;
  border-radius: 6px;
  background: #f8fafc;
}

.geoagent-settings > summary {
  padding: 8px 10px;
  color: #17202a;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.geoagent-settings-grid {
  display: grid;
  grid-template-columns: 1fr minmax(110px, 0.55fr);
  gap: 8px;
  align-items: end;
  padding: 0 10px 10px;
}

/* The model cell, optional base URL / region rows, and the inline config note
   each occupy their own full-width row beneath the provider + key row. */
.geoagent-settings-grid .geoagent-model-cell,
.geoagent-settings-grid .geoagent-base-url-row,
.geoagent-settings-grid .geoagent-bedrock-region-row,
.geoagent-settings-grid .geoagent-config-note {
  grid-column: 1 / -1;
}

.geoagent-bedrock-region-row[hidden],
.geoagent-base-url-row[hidden],
.geoagent-config-note[hidden] {
  display: none;
}

.geoagent-model-row {
  display: flex;
  gap: 8px;
  align-items: center;
}

.geoagent-model-row .geoagent-model-id {
  flex: 1 1 auto;
  /* Allow the input to shrink in the resizable panel instead of overflowing the
     row next to the fixed-width Use latest button. */
  min-width: 0;
}

.geoagent-panel button.geoagent-load-models {
  flex: 0 0 auto;
  min-height: 36px;
  padding: 0 12px;
  white-space: nowrap;
}

/* Custom model suggestion dropdown (replaces a native <datalist>, whose popup
   hangs Chrome on long lists). In-flow so it cannot be clipped by the panel's
   scroll container; it pushes the rest of the settings down while open. */
.geoagent-model-suggestions {
  margin: 4px 0 0;
  padding: 4px;
  max-height: 180px;
  overflow-y: auto;
  list-style: none;
  border: 1px solid #d7dde5;
  border-radius: 6px;
  background: #fff;
  scrollbar-color: #8a96a6 #e6ebf1;
  scrollbar-width: thin;
}

.geoagent-model-suggestions[hidden] {
  display: none;
}

.geoagent-model-suggestion {
  padding: 6px 8px;
  border-radius: 4px;
  color: #17202a;
  font-size: 13px;
  line-height: 1.3;
  cursor: pointer;
  overflow-wrap: anywhere;
}

.geoagent-model-suggestion:hover,
.geoagent-model-suggestion.active {
  background: #e8edf3;
}

.geoagent-config-note {
  padding: 6px 9px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
}

.geoagent-config-note.success {
  background: #dff6ee;
  color: #076448;
}

.geoagent-config-note.error {
  background: #fee4e2;
  color: #b42318;
}

.geoagent-config-note.info {
  background: #eef2f7;
  color: #475569;
}

.geoagent-earth-engine {
  border: 1px solid #d7dde5;
  border-radius: 6px;
  background: #f8fafc;
}

.geoagent-earth-engine[hidden] {
  display: none;
}

.geoagent-earth-engine summary {
  padding: 8px 10px;
  color: #17202a;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.geoagent-earth-engine-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 0 10px 8px;
}

.geoagent-earth-engine-status {
  padding: 0 10px 10px;
  color: #64748b;
  font-size: 12px;
  line-height: 1.35;
}

.geoagent-toggle-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.geoagent-toggle-row[hidden] {
  display: none;
}

.geoagent-panel .geoagent-checkbox-row {
  display: inline-flex;
  grid-template-columns: none;
  align-items: center;
  gap: 7px;
  min-height: 30px;
  padding: 0 9px;
  border: 1px solid #d7dde5;
  border-radius: 6px;
  background: #fff;
  color: #17202a;
  font-size: 12px;
  font-weight: 700;
}

.geoagent-panel .geoagent-checkbox-row input {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin: 0;
  accent-color: #0f766e;
}

.geoagent-panel .geoagent-checkbox-row span {
  display: inline-block;
  line-height: 1;
  white-space: nowrap;
}

.geoagent-log {
  flex: 1 1 160px;
  min-height: 0;
  overflow: auto;
  padding: 10px;
  border: 1px solid #d7dde5;
  border-radius: 6px;
  background: #f6f8fb;
  scrollbar-color: #8a96a6 #e6ebf1;
  scrollbar-width: thin;
  font-size: 13px;
  line-height: 1.4;
}

.geoagent-panel textarea,
.geoagent-text.markdown pre,
.geoagent-text.markdown table {
  scrollbar-color: #8a96a6 #e6ebf1;
  scrollbar-width: thin;
}

.geoagent-log::-webkit-scrollbar,
.geoagent-panel textarea::-webkit-scrollbar,
.geoagent-text.markdown pre::-webkit-scrollbar,
.geoagent-text.markdown table::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}

.geoagent-log::-webkit-scrollbar-track,
.geoagent-panel textarea::-webkit-scrollbar-track,
.geoagent-text.markdown pre::-webkit-scrollbar-track,
.geoagent-text.markdown table::-webkit-scrollbar-track {
  background: #e6ebf1;
}

.geoagent-log::-webkit-scrollbar-thumb,
.geoagent-panel textarea::-webkit-scrollbar-thumb,
.geoagent-text.markdown pre::-webkit-scrollbar-thumb,
.geoagent-text.markdown table::-webkit-scrollbar-thumb {
  border: 3px solid #e6ebf1;
  border-radius: 999px;
  background: #8a96a6;
}

.geoagent-log::-webkit-scrollbar-thumb:hover,
.geoagent-panel textarea::-webkit-scrollbar-thumb:hover,
.geoagent-text.markdown pre::-webkit-scrollbar-thumb:hover,
.geoagent-text.markdown table::-webkit-scrollbar-thumb:hover {
  background: #647386;
}

.geoagent-entry {
  margin: 0 0 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid #e3e8ef;
}

.geoagent-entry:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

.geoagent-role {
  margin-bottom: 3px;
  color: #5f6b7a;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.geoagent-text {
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.geoagent-text.markdown {
  white-space: normal;
}

.geoagent-text.markdown > :first-child {
  margin-top: 0;
}

.geoagent-text.markdown > :last-child {
  margin-bottom: 0;
}

.geoagent-text.markdown p,
.geoagent-text.markdown ul,
.geoagent-text.markdown ol,
.geoagent-text.markdown pre,
.geoagent-text.markdown blockquote,
.geoagent-text.markdown table {
  margin: 0 0 8px;
}

.geoagent-text.markdown ul,
.geoagent-text.markdown ol {
  padding-left: 18px;
}

.geoagent-text.markdown li {
  margin: 2px 0;
}

.geoagent-text.markdown a {
  color: #0f766e;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.geoagent-text.markdown code {
  padding: 1px 4px;
  border-radius: 4px;
  background: #e8edf3;
  color: #111827;
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
  font-size: 0.92em;
}

.geoagent-text.markdown pre {
  max-width: 100%;
  overflow: auto;
  padding: 8px;
  border: 1px solid #d8dee8;
  border-radius: 6px;
  background: #111827;
  color: #f8fafc;
}

.geoagent-text.markdown pre code {
  padding: 0;
  background: transparent;
  color: inherit;
  white-space: pre;
}

.geoagent-text.markdown blockquote {
  padding-left: 10px;
  border-left: 3px solid #c7d2df;
  color: #5f6b7a;
}

.geoagent-text.markdown table {
  display: block;
  max-width: 100%;
  overflow: auto;
  border-collapse: collapse;
}

.geoagent-text.markdown th,
.geoagent-text.markdown td {
  padding: 4px 6px;
  border: 1px solid #d8dee8;
  text-align: left;
  vertical-align: top;
}

.geoagent-form {
  display: grid;
  min-height: 0;
}

.geoagent-form label {
  min-height: 0;
}

.geoagent-actions {
  display: flex;
  flex: 0 0 auto;
  gap: 8px;
  margin-top: 8px;
}

.geoagent-panel button.geoagent-send,
.geoagent-panel button.geoagent-cancel,
.geoagent-panel button.geoagent-copy,
.geoagent-panel button.geoagent-clear {
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: #0f766e;
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}

.geoagent-panel button.secondary {
  border-color: #d7dde5;
  background: #fff;
  color: #17202a;
}

.geoagent-panel button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

@media (max-width: 700px) {
  .geoagent-panel {
    right: 10px !important;
    left: 10px !important;
    width: auto !important;
    max-height: min(72vh, 620px);
  }

  .geoagent-settings-grid {
    grid-template-columns: 1fr;
  }

  .geoagent-earth-engine-grid {
    grid-template-columns: 1fr;
  }

  .geoagent-panel-resize-handle {
    display: none;
  }
}
/**
 * maplibre-gl-nasa-earthdata control styles
 *
 * Theme-aware via CSS custom properties. Light is the default; dark values
 * apply automatically with `prefers-color-scheme: dark` and can be forced
 * with the `ne-theme-dark` / `ne-theme-light` classes (set by the `theme`
 * control option).
 */

/* Theme variables (light defaults) */
.maplibre-gl-nasa-earthdata {
  --ne-bg: #ffffff;
  --ne-fg: #1f2a37;
  --ne-fg-muted: #6b7280;
  --ne-border: #e0e0e0;
  --ne-input-border: #d1d5db;
  --ne-input-bg: #ffffff;
  --ne-accent: #2563eb;
  --ne-accent-hover: #1d4ed8;
  --ne-accent-fg: #ffffff;
  --ne-danger: #dc2626;
  --ne-danger-hover: #b91c1c;
  --ne-hover: rgba(0, 0, 0, 0.05);
  --ne-row-bg: #f8fafc;
  --ne-badge-bg: #eef2f7;
  --ne-badge-fg: #4b5563;
  --ne-scrollbar: #c7cdd4;
  --ne-scrollbar-hover: #9aa3ad;
  --ne-shadow: rgba(0, 0, 0, 0.1);
  color-scheme: light;
}

/* Dark theme: follow OS preference unless explicitly forced light */
@media (prefers-color-scheme: dark) {
  .maplibre-gl-nasa-earthdata:not(.ne-theme-light) {
    --ne-bg: #1f2937;
    --ne-fg: #f3f4f6;
    --ne-fg-muted: #9ca3af;
    --ne-border: #374151;
    --ne-input-border: #4b5563;
    --ne-input-bg: #111827;
    --ne-accent: #3b82f6;
    --ne-accent-hover: #60a5fa;
    --ne-accent-fg: #ffffff;
    --ne-danger: #ef4444;
    --ne-danger-hover: #f87171;
    --ne-hover: rgba(255, 255, 255, 0.08);
    --ne-row-bg: #111827;
    --ne-badge-bg: #374151;
    --ne-badge-fg: #d1d5db;
    --ne-scrollbar: #4b5563;
    --ne-scrollbar-hover: #6b7280;
    --ne-shadow: rgba(0, 0, 0, 0.4);
    color-scheme: dark;
  }
}

/* Explicit dark theme (overrides OS preference) */
.maplibre-gl-nasa-earthdata.ne-theme-dark {
  --ne-bg: #1f2937;
  --ne-fg: #f3f4f6;
  --ne-fg-muted: #9ca3af;
  --ne-border: #374151;
  --ne-input-border: #4b5563;
  --ne-input-bg: #111827;
  --ne-accent: #3b82f6;
  --ne-accent-hover: #60a5fa;
  --ne-accent-fg: #ffffff;
  --ne-danger: #ef4444;
  --ne-danger-hover: #f87171;
  --ne-hover: rgba(255, 255, 255, 0.08);
  --ne-row-bg: #111827;
  --ne-badge-bg: #374151;
  --ne-badge-fg: #d1d5db;
  --ne-scrollbar: #4b5563;
  --ne-scrollbar-hover: #6b7280;
  --ne-shadow: rgba(0, 0, 0, 0.4);
  color-scheme: dark;
}

/* Container - matches maplibregl-ctrl styling. The compound selector beats
   maplibre's own .maplibregl-ctrl-group background rule so the toggle button
   stays dark (with a light icon) in dark mode. */
.maplibregl-ctrl-group.plugin-control.maplibre-gl-nasa-earthdata,
.plugin-control.maplibre-gl-nasa-earthdata {
  background: var(--ne-bg, #fff);
  border-radius: 4px;
  box-shadow: 0 0 0 2px var(--ne-shadow, rgba(0, 0, 0, 0.1));
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* Toggle button - 29x29 to match navigation control */
.maplibre-gl-nasa-earthdata .plugin-control-toggle {
  background: none;
  border: none;
  padding: 0;
  width: 29px;
  height: 29px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  outline: none;
  color: var(--ne-fg, #1f2a37);
}

.maplibre-gl-nasa-earthdata .plugin-control-toggle:hover {
  background-color: var(--ne-hover, rgba(0, 0, 0, 0.05));
}

.maplibre-gl-nasa-earthdata .plugin-control-toggle .plugin-control-icon {
  width: 100%;
  height: 100%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.maplibre-gl-nasa-earthdata .plugin-control-toggle .plugin-control-icon svg {
  width: 22px;
  height: 22px;
  display: block;
  stroke: currentColor;
  fill: none;
}

/* Panel - positioned dynamically by JavaScript for floating behavior */
.plugin-control-panel.maplibre-gl-nasa-earthdata {
  position: absolute;
  /* Position is set dynamically by _updatePanelPosition() */
  box-sizing: border-box;
  background: var(--ne-bg, #fff);
  color: var(--ne-fg, #1f2a37);
  border-radius: 4px;
  box-shadow: 0 0 0 2px var(--ne-shadow, rgba(0, 0, 0, 0.1));
  min-width: 240px;
  max-width: calc(100vw - 20px);
  max-height: min(70vh, 520px);
  z-index: 1000;
  padding: 8px;
  font-size: 12px;
  line-height: 1.4;
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  display: none;
}

.plugin-control-panel.maplibre-gl-nasa-earthdata.expanded {
  display: flex;
  flex-direction: column;
}

/* Resize handle - sits on the panel's outer edge; the control flips it to
   the right edge (.nasa-resize-handle-right) when the panel is anchored to
   the left side of the map */
.nasa-resize-handle {
  position: absolute;
  top: 0;
  bottom: 0;
  left: -3px;
  width: 8px;
  cursor: ew-resize;
  touch-action: none;
  border-radius: 4px;
  z-index: 1;
}

.nasa-resize-handle-right {
  left: auto;
  right: -3px;
}

.nasa-resize-handle:hover,
.nasa-resizing .nasa-resize-handle {
  background: color-mix(in srgb, var(--ne-accent, #2563eb) 35%, transparent);
}

.plugin-control-panel.maplibre-gl-nasa-earthdata.nasa-resizing {
  user-select: none;
}

/* Small screens: let the panel fill the viewport width */
@media (max-width: 480px) {
  .plugin-control-panel.maplibre-gl-nasa-earthdata {
    width: calc(100vw - 20px) !important;
    max-height: 60vh;
  }

  /* Width is pinned to the viewport, so resizing is disabled */
  .nasa-resize-handle {
    display: none;
  }
}

/* Panel header */
.maplibre-gl-nasa-earthdata .plugin-control-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-weight: 600;
  color: var(--ne-fg, #333);
  padding: 4px 0 8px 0;
  border-bottom: 1px solid var(--ne-border, #e0e0e0);
  margin-bottom: 8px;
  flex: 0 0 auto;
}

.maplibre-gl-nasa-earthdata .plugin-control-title {
  flex: 1 1 auto;
  font-size: 13px;
}

.maplibre-gl-nasa-earthdata .plugin-control-close {
  width: 20px;
  height: 20px;
  border: none;
  background: transparent;
  color: var(--ne-fg-muted, #999);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  transition: color 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.maplibre-gl-nasa-earthdata .plugin-control-close:hover {
  color: var(--ne-fg, #333);
}

/* Content - column flex so the results list is the scrollable region */
.maplibre-gl-nasa-earthdata .plugin-control-content {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1 1 auto;
}

/* Search input */
.maplibre-gl-nasa-earthdata .plugin-control-input {
  width: 100%;
  box-sizing: border-box;
  padding: 8px 10px;
  font-size: 13px;
  color: var(--ne-fg, #1f2a37);
  background: var(--ne-input-bg, #fff);
  border: 1px solid var(--ne-input-border, #ddd);
  border-radius: 4px;
  outline: none;
  transition:
    border-color 0.15s,
    box-shadow 0.15s;
}

.maplibre-gl-nasa-earthdata .plugin-control-input::placeholder {
  color: var(--ne-fg-muted, #888);
}

.maplibre-gl-nasa-earthdata .plugin-control-input:focus {
  border-color: var(--ne-accent, #4a90d9);
  box-shadow: 0 0 0 3px
    color-mix(in srgb, var(--ne-accent, #4a90d9) 20%, transparent);
}

.nasa-search {
  flex: 0 0 auto;
}

/* Meta line ("Showing X of Y layers") */
.nasa-meta {
  flex: 0 0 auto;
  color: var(--ne-fg-muted, #888);
  font-size: 11px;
  padding: 6px 2px;
}

/* "Insert before" row */
.nasa-insert-row {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
}

.nasa-insert-label {
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: 500;
  color: var(--ne-fg-muted, #555);
  white-space: nowrap;
}

.nasa-insert-select {
  flex: 1 1 auto;
  min-width: 0;
  padding: 5px 6px;
  font-size: 12px;
  color: var(--ne-fg, #1f2a37);
  background: var(--ne-input-bg, #fff);
  border: 1px solid var(--ne-input-border, #ddd);
  border-radius: 4px;
  outline: none;
  font-family: inherit;
}

.nasa-insert-select:focus {
  border-color: var(--ne-accent, #4a90d9);
}

/* Scrollable body holding the categories and the added-layers section */
.nasa-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  scrollbar-width: thin;
  scrollbar-color: var(--ne-scrollbar, #ccc) transparent;
}

.nasa-body::-webkit-scrollbar {
  width: 6px;
}

.nasa-body::-webkit-scrollbar-track {
  background: transparent;
}

.nasa-body::-webkit-scrollbar-thumb {
  background: var(--ne-scrollbar, #ccc);
  border-radius: 3px;
}

.nasa-body::-webkit-scrollbar-thumb:hover {
  background: var(--ne-scrollbar-hover, #aaa);
}

/* Category groups */
.nasa-results {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.nasa-category-header {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 7px 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--ne-fg, #1f2a37);
  background: transparent;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
}

.nasa-category-header:hover {
  background: var(--ne-hover, rgba(0, 0, 0, 0.05));
}

.nasa-category-chevron {
  display: flex;
  align-items: center;
  color: var(--ne-fg-muted, #888);
  transition: transform 0.15s ease;
}

.nasa-category-chevron svg {
  stroke: currentColor;
  fill: none;
}

.nasa-category-header.expanded .nasa-category-chevron {
  transform: rotate(90deg);
}

.nasa-category-name {
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nasa-category-count {
  flex: 0 0 auto;
  padding: 1px 8px;
  font-size: 10px;
  font-weight: 600;
  border-radius: 8px;
  background: var(--ne-badge-bg, #eef2f7);
  color: var(--ne-badge-fg, #4b5563);
}

.nasa-category-layers {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 2px 0 8px 18px;
}

/* Added layers section */
.nasa-added-section {
  flex: 0 0 auto;
}

.nasa-added-heading {
  font-size: 12px;
  font-weight: 600;
  color: var(--ne-fg, #1f2a37);
  padding: 8px 2px 6px;
  margin-top: 4px;
  border-top: 1px solid var(--ne-border, #e0e0e0);
}

.nasa-added-card {
  background: var(--ne-row-bg, #f8fafc);
  border: 1px solid var(--ne-border, #e0e0e0);
  border-radius: 4px;
  padding: 6px 8px;
  margin-bottom: 6px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.nasa-added-head {
  display: flex;
  align-items: center;
  gap: 8px;
}

.nasa-added-vis {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}

.nasa-added-checkbox {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin: 0;
  accent-color: var(--ne-accent, #2563eb);
  cursor: pointer;
}

.nasa-added-title {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 12px;
  font-weight: 500;
  color: var(--ne-fg, #1f2a37);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nasa-added-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 2px;
}

.nasa-icon-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  border: none;
  border-radius: 4px;
  background: transparent;
  color: var(--ne-fg-muted, #888);
  cursor: pointer;
}

.nasa-icon-button svg {
  stroke: currentColor;
  fill: none;
}

.nasa-icon-button:hover {
  background: var(--ne-hover, rgba(0, 0, 0, 0.05));
  color: var(--ne-fg, #1f2a37);
}

.nasa-icon-button.active {
  color: var(--ne-accent, #2563eb);
}

.nasa-icon-button-danger:hover {
  color: var(--ne-danger, #dc2626);
}

.nasa-opacity-value {
  flex: 0 0 auto;
  font-size: 11px;
  color: var(--ne-fg-muted, #888);
  min-width: 32px;
  text-align: right;
}

.nasa-legend-image {
  display: block;
  max-width: 100%;
  border-radius: 4px;
  background: #fff;
  padding: 2px;
}

/* Status messages (loading, error, empty) */
.nasa-status {
  margin: 0;
  color: var(--ne-fg-muted, #888);
  font-size: 12px;
  text-align: center;
  padding: 16px 4px;
}

.nasa-status-error {
  color: var(--ne-danger, #dc2626);
}

/* Layer row */
.nasa-layer-row {
  background: var(--ne-row-bg, #f8fafc);
  border: 1px solid var(--ne-border, #e0e0e0);
  border-radius: 4px;
  padding: 6px 8px;
  flex: 0 0 auto;
}

.nasa-layer-row-added {
  border-color: var(--ne-accent, #2563eb);
}

.nasa-layer-main {
  display: flex;
  align-items: center;
  gap: 8px;
}

.nasa-layer-info {
  flex: 1 1 auto;
  min-width: 0;
}

.nasa-layer-title {
  color: var(--ne-fg, #1f2a37);
  font-size: 12px;
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nasa-layer-badges {
  display: flex;
  gap: 4px;
  margin-top: 2px;
}

.nasa-badge {
  display: inline-block;
  padding: 1px 6px;
  font-size: 10px;
  border-radius: 8px;
  background: var(--ne-badge-bg, #eef2f7);
  color: var(--ne-badge-fg, #4b5563);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.nasa-badge-time {
  background: color-mix(in srgb, var(--ne-accent, #2563eb) 15%, transparent);
  color: var(--ne-accent, #2563eb);
}

/* Add/Remove button */
.nasa-layer-action {
  flex: 0 0 auto;
  padding: 4px 10px;
  font-size: 11px;
  font-weight: 600;
  color: var(--ne-accent-fg, #fff);
  background: var(--ne-accent, #2563eb);
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.15s;
}

.nasa-layer-action:hover {
  background: var(--ne-accent-hover, #1d4ed8);
}

.nasa-layer-action-remove {
  background: var(--ne-danger, #dc2626);
}

.nasa-layer-action-remove:hover {
  background: var(--ne-danger-hover, #b91c1c);
}

/* Per-layer controls (date, opacity) */
.nasa-layer-controls {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--ne-border, #e0e0e0);
}

.nasa-control-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 500;
  color: var(--ne-fg-muted, #555);
}

.nasa-date {
  flex: 1 1 auto;
  min-width: 0;
  padding: 4px 6px;
  font-size: 12px;
  color: var(--ne-fg, #1f2a37);
  background: var(--ne-input-bg, #fff);
  border: 1px solid var(--ne-input-border, #ddd);
  border-radius: 4px;
  outline: none;
  font-family: inherit;
}

.nasa-date:focus {
  border-color: var(--ne-accent, #4a90d9);
}

.nasa-opacity {
  flex: 1 1 auto;
  min-width: 0;
  accent-color: var(--ne-accent, #2563eb);
}

/* Generic form helpers (kept from the template for consumer use) */
.maplibre-gl-nasa-earthdata .plugin-control-group {
  margin-bottom: 12px;
}

.maplibre-gl-nasa-earthdata .plugin-control-group:last-child {
  margin-bottom: 0;
}

.maplibre-gl-nasa-earthdata .plugin-control-label {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  font-weight: 500;
  color: var(--ne-fg-muted, #555);
}

.maplibre-gl-nasa-earthdata .plugin-control-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 500;
  color: var(--ne-accent-fg, white);
  background: var(--ne-accent, #4a90d9);
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.15s;
}

.maplibre-gl-nasa-earthdata .plugin-control-button:hover {
  background: var(--ne-accent-hover, #3a7bc8);
}

.maplibre-gl-nasa-earthdata .plugin-control-button:focus {
  outline: 2px solid var(--ne-accent, #4a90d9);
  outline-offset: 2px;
}

.maplibre-gl-nasa-earthdata .plugin-control-button:disabled {
  background: var(--ne-fg-muted, #ccc);
  cursor: not-allowed;
}

.maplibre-gl-nasa-earthdata .plugin-control-flex {
  display: flex;
  gap: 8px;
}

.maplibre-gl-nasa-earthdata .plugin-control-flex-col {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.maplibre-gl-nasa-earthdata .plugin-control-divider {
  height: 1px;
  background: var(--ne-border, #e0e0e0);
  margin: 12px 0;
}
/*$vite$:1*//**
 * MapLibre GL National Map Control Styles
 *
 * Theming is driven by CSS custom properties. Light values are the defaults;
 * dark values apply automatically via prefers-color-scheme (theme: 'auto')
 * or explicitly via the .national-map-theme-dark class. The
 * .national-map-theme-light class re-declares light values so a forced light
 * theme wins over the dark media query.
 */

.national-map,
.national-map-panel {
  --nm-bg: #fff;
  --nm-fg: #1f2a37;
  --nm-fg-strong: #333;
  --nm-muted: #888;
  --nm-border: #e0e0e0;
  --nm-input-border: #ddd;
  --nm-accent: #4a90d9;
  --nm-accent-hover: #3a7bc8;
  --nm-accent-ring: rgba(74, 144, 217, 0.15);
  --nm-row-hover: rgba(0, 0, 0, 0.04);
  --nm-btn-hover: rgba(0, 0, 0, 0.05);
  --nm-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
  --nm-scroll-thumb: #ccc;
  --nm-scroll-thumb-hover: #aaa;
  --nm-disabled: #ccc;
  --nm-disabled-fg: #f7f7f7;
}

@media (prefers-color-scheme: dark) {
  .national-map:not(.national-map-theme-light),
  .national-map-panel:not(.national-map-theme-light) {
    --nm-bg: #1f2933;
    --nm-fg: #e5e7eb;
    --nm-fg-strong: #f3f4f6;
    --nm-muted: #9ca3af;
    --nm-border: #374151;
    --nm-input-border: #4b5563;
    --nm-accent: #5aa0e6;
    --nm-accent-hover: #6cb0f0;
    --nm-accent-ring: rgba(90, 160, 230, 0.25);
    --nm-row-hover: rgba(255, 255, 255, 0.06);
    --nm-btn-hover: rgba(255, 255, 255, 0.08);
    --nm-shadow: 0 0 0 2px rgba(0, 0, 0, 0.5);
    --nm-scroll-thumb: #4b5563;
    --nm-scroll-thumb-hover: #6b7280;
    --nm-disabled: #4b5563;
    --nm-disabled-fg: #9ca3af;
  }
}

.national-map.national-map-theme-dark,
.national-map-panel.national-map-theme-dark {
  --nm-bg: #1f2933;
  --nm-fg: #e5e7eb;
  --nm-fg-strong: #f3f4f6;
  --nm-muted: #9ca3af;
  --nm-border: #374151;
  --nm-input-border: #4b5563;
  --nm-accent: #5aa0e6;
  --nm-accent-hover: #6cb0f0;
  --nm-accent-ring: rgba(90, 160, 230, 0.25);
  --nm-row-hover: rgba(255, 255, 255, 0.06);
  --nm-btn-hover: rgba(255, 255, 255, 0.08);
  --nm-shadow: 0 0 0 2px rgba(0, 0, 0, 0.5);
  --nm-scroll-thumb: #4b5563;
  --nm-scroll-thumb-hover: #6b7280;
  --nm-disabled: #4b5563;
  --nm-disabled-fg: #9ca3af;
}

/* Container - matches maplibregl-ctrl styling. The extra .maplibregl-ctrl-group
 * selector outweighs MapLibre's own background rule regardless of CSS import
 * order, so the button follows the theme (dark icon on light, light on dark). */
.national-map,
.national-map.maplibregl-ctrl-group {
  background: var(--nm-bg);
  border-radius: 4px;
  box-shadow: var(--nm-shadow);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* Toggle button - 29x29 to match navigation control */
.national-map-toggle {
  background: none;
  border: none;
  padding: 0;
  width: 29px;
  height: 29px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  outline: none;
  color: var(--nm-fg);
}

.national-map-toggle:hover {
  background-color: var(--nm-btn-hover);
}

/* Visible keyboard focus for icon-only and group toggle buttons */
.national-map-toggle:focus-visible,
.national-map-close:focus-visible,
.national-map-remove-btn:focus-visible,
.national-map-group-toggle:focus-visible {
  outline: 2px solid var(--nm-accent);
  outline-offset: -2px;
}

.national-map-toggle .national-map-icon {
  width: 100%;
  height: 100%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.national-map-toggle .national-map-icon svg {
  width: 22px;
  height: 22px;
  display: block;
  stroke: currentcolor;
  fill: none;
}

/* Panel - positioned dynamically by JavaScript for floating behavior.
 * Flex column: fixed header, scrollable content. JS constrains max-height to
 * the map height so small screens get a vertical scrollbar. */
.national-map-panel {
  position: absolute;
  /* Position is set dynamically by _updatePanelPosition() */
  background: var(--nm-bg);
  color: var(--nm-fg);
  border-radius: 4px;
  box-shadow: var(--nm-shadow);
  min-width: 240px;
  max-width: calc(100% - 20px);
  max-height: calc(100% - 60px); /* safety net; refined by JS */
  z-index: 1000;
  padding: 8px;
  font-size: 12px;
  line-height: 1.4;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  display: none;
  flex-direction: column;
  box-sizing: border-box;
}

.national-map-panel.expanded {
  display: flex;
}

/* Panel header */
.national-map-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-weight: 600;
  color: var(--nm-fg-strong);
  padding: 4px 0 8px 0;
  border-bottom: 1px solid var(--nm-border);
  margin-bottom: 8px;
  flex: 0 0 auto;
}

.national-map-title {
  flex: 1 1 auto;
  font-size: 13px;
}

.national-map-close {
  width: 20px;
  height: 20px;
  border: none;
  background: transparent;
  color: var(--nm-muted);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  transition: color 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.national-map-close:hover {
  color: var(--nm-fg-strong);
}

/* Content - scrollable area below the header */
.national-map-content {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}

/* Scrollbar styling */
.national-map-content::-webkit-scrollbar {
  width: 6px;
}

.national-map-content::-webkit-scrollbar-track {
  background: transparent;
}

.national-map-content::-webkit-scrollbar-thumb {
  background: var(--nm-scroll-thumb);
  border-radius: 3px;
}

.national-map-content::-webkit-scrollbar-thumb:hover {
  background: var(--nm-scroll-thumb-hover);
}

/* Search box */
.national-map-search {
  width: 100%;
  padding: 6px 10px;
  margin-bottom: 8px;
  font-size: 12px;
  font-family: inherit;
  color: var(--nm-fg);
  background: var(--nm-bg);
  border: 1px solid var(--nm-input-border);
  border-radius: 4px;
  outline: none;
  box-sizing: border-box;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.national-map-search::placeholder {
  color: var(--nm-muted);
}

.national-map-search:focus {
  border-color: var(--nm-accent);
  box-shadow: 0 0 0 3px var(--nm-accent-ring);
}

/* Insert-before selector */
.national-map-beforeid-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
}

.national-map-beforeid-label {
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: 500;
  color: var(--nm-muted);
  white-space: nowrap;
}

.national-map-beforeid-select {
  flex: 1 1 auto;
  min-width: 0;
  padding: 4px 6px;
  font-size: 11px;
  font-family: inherit;
  color: var(--nm-fg);
  background: var(--nm-bg);
  border: 1px solid var(--nm-input-border);
  border-radius: 4px;
  cursor: pointer;
}

.national-map-beforeid-select:focus-visible {
  outline: 2px solid var(--nm-accent);
  outline-offset: -2px;
}

/* Catalog groups */
.national-map-group {
  margin-bottom: 4px;
}

.national-map-group:last-child {
  margin-bottom: 0;
}

.national-map-group-title {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--nm-muted);
  padding: 4px 0;
}

/* Collapsible group header */
.national-map-group-toggle {
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  padding: 2px 4px;
  border: none;
  background: transparent;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  border-radius: 4px;
}

.national-map-group-toggle:hover {
  background: var(--nm-row-hover);
}

.national-map-group-toggle .national-map-group-title {
  flex: 1 1 auto;
  padding: 2px 0;
}

.national-map-chevron {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--nm-muted);
  transition: transform 0.15s ease;
}

.national-map-chevron.expanded {
  transform: rotate(90deg);
}

.national-map-chevron svg {
  stroke: currentcolor;
  fill: none;
  display: block;
}

.national-map-group-count {
  font-size: 10px;
  font-weight: 600;
  color: var(--nm-muted);
  background: var(--nm-row-hover);
  border-radius: 8px;
  padding: 1px 6px;
}

/* Catalog rows */
.national-map-service-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 4px;
  border-radius: 4px;
}

.national-map-service-row:hover {
  background: var(--nm-row-hover);
}

.national-map-service-info {
  flex: 1 1 auto;
  min-width: 0;
}

.national-map-service-title {
  font-size: 12px;
  font-weight: 500;
  color: var(--nm-fg);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.national-map-service-desc {
  font-size: 11px;
  color: var(--nm-muted);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.national-map-add-btn {
  flex: 0 0 auto;
  padding: 4px 10px;
  font-size: 11px;
  font-weight: 500;
  font-family: inherit;
  color: #fff;
  background: var(--nm-accent);
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.15s;
}

.national-map-add-btn:hover {
  background: var(--nm-accent-hover);
}

.national-map-add-btn:focus-visible {
  outline: 2px solid var(--nm-accent);
  outline-offset: 2px;
}

.national-map-add-btn:disabled {
  background: var(--nm-disabled);
  color: var(--nm-disabled-fg);
  cursor: not-allowed;
}

/* Active layers */
.national-map-active.has-layers {
  padding-bottom: 8px;
  border-bottom: 1px solid var(--nm-border);
  margin-bottom: 8px;
}

.national-map-active-row {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px;
  border-radius: 4px;
}

.national-map-active-row:hover {
  background: var(--nm-row-hover);
}

.national-map-visibility {
  flex: 0 0 auto;
  margin: 0;
  accent-color: var(--nm-accent);
  cursor: pointer;
}

.national-map-active-name {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 12px;
  color: var(--nm-fg);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.national-map-opacity {
  flex: 0 0 70px;
  width: 70px;
  margin: 0;
  accent-color: var(--nm-accent);
  cursor: pointer;
}

.national-map-remove-btn {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  border: none;
  background: transparent;
  color: var(--nm-muted);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  border-radius: 4px;
  transition: color 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.national-map-remove-btn:hover {
  color: var(--nm-fg-strong);
  background: var(--nm-btn-hover);
}

/* Resize handle - vertical strip on the panel edge facing away from the
 * anchored corner (left edge for right corners, right edge for left corners) */
.national-map-resize-handle {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 6px;
  cursor: ew-resize;
  touch-action: none;
  border-radius: 4px;
}

.national-map-resize-handle.handle-left {
  left: -2px;
}

.national-map-resize-handle.handle-right {
  right: -2px;
}

.national-map-resize-handle:hover,
.national-map-panel.resizing .national-map-resize-handle {
  background: var(--nm-accent-ring);
}

.national-map-panel.resizing {
  user-select: none;
}

/* Empty search result */
.national-map-empty {
  margin: 0;
  color: var(--nm-muted);
  font-size: 12px;
  text-align: center;
  padding: 16px 0;
}
/*$vite$:1*//**
 * MapLibre GL Overture Maps Control Styles
 *
 * Colors are driven by CSS custom properties so the control adapts to
 * light and dark color schemes. The scheme follows `prefers-color-scheme`
 * by default and can be forced with the `.ovt-theme-light` /
 * `.ovt-theme-dark` classes (set via the `theme` option).
 */

.overture-control,
.overture-control-panel,
.overture-popup-content {
  --ovt-bg: #ffffff;
  --ovt-fg: #1f2a37;
  --ovt-text: #333333;
  --ovt-muted: #888888;
  --ovt-border: #e0e0e0;
  --ovt-input-border: #dddddd;
  --ovt-input-bg: #ffffff;
  --ovt-hover: rgba(0, 0, 0, 0.05);
  --ovt-accent: #4a90d9;
  --ovt-scrollbar: #cccccc;
  --ovt-scrollbar-hover: #aaaaaa;
  --ovt-error-bg: #fdecea;
  --ovt-error-fg: #b3261e;
  --ovt-success-fg: #1a7f37;
}

/* Dark scheme via system preference (unless a scheme is forced) */
@media (prefers-color-scheme: dark) {
  .overture-control:not(.ovt-theme-light),
  .overture-control-panel:not(.ovt-theme-light),
  .overture-popup-content:not(.ovt-theme-light) {
    --ovt-bg: #1f2733;
    --ovt-fg: #e8edf3;
    --ovt-text: #dde3ea;
    --ovt-muted: #9aa5b1;
    --ovt-border: #38424e;
    --ovt-input-border: #46515e;
    --ovt-input-bg: #2a3441;
    --ovt-hover: rgba(255, 255, 255, 0.08);
    --ovt-accent: #6aaae4;
    --ovt-scrollbar: #4a5663;
    --ovt-scrollbar-hover: #5d6b7a;
    --ovt-error-bg: #43292b;
    --ovt-error-fg: #f2b8b5;
    --ovt-success-fg: #5fd28b;
  }
}

/* Forced dark scheme */
.overture-control.ovt-theme-dark,
.overture-control-panel.ovt-theme-dark,
.overture-popup-content.ovt-theme-dark {
  --ovt-bg: #1f2733;
  --ovt-fg: #e8edf3;
  --ovt-text: #dde3ea;
  --ovt-muted: #9aa5b1;
  --ovt-border: #38424e;
  --ovt-input-border: #46515e;
  --ovt-input-bg: #2a3441;
  --ovt-hover: rgba(255, 255, 255, 0.08);
  --ovt-accent: #6aaae4;
  --ovt-scrollbar: #4a5663;
  --ovt-scrollbar-hover: #5d6b7a;
  --ovt-error-bg: #43292b;
  --ovt-error-fg: #f2b8b5;
  --ovt-success-fg: #5fd28b;
}

/* Container - matches maplibregl-ctrl styling.
   The compound selector raises specificity above maplibre's default
   .maplibregl-ctrl-group white background so the icon (currentColor)
   keeps good contrast in dark mode regardless of stylesheet order. */
.maplibregl-ctrl-group.overture-control {
  background: var(--ovt-bg);
}

.overture-control {
  background: var(--ovt-bg);
  border-radius: 4px;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* Toggle button - 29x29 to match navigation control */
.overture-control-toggle {
  background: none;
  border: none;
  padding: 0;
  width: 29px;
  height: 29px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--ovt-fg);
}

.overture-control-toggle:hover {
  background-color: var(--ovt-hover);
}

.overture-control-toggle:focus-visible,
.overture-control-close:focus-visible {
  outline: 2px solid var(--ovt-accent);
  outline-offset: 2px;
}

.overture-control-toggle .overture-control-icon {
  width: 100%;
  height: 100%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.overture-control-toggle .overture-control-icon svg {
  width: 22px;
  height: 22px;
  display: block;
  stroke: currentcolor;
  fill: none;
}

/* Panel - positioned dynamically by JavaScript for floating behavior */
.overture-control-panel {
  position: absolute;
  box-sizing: border-box;
  /* Position is set dynamically by _updatePanelPosition() */
  background: var(--ovt-bg);
  color: var(--ovt-text);
  border-radius: 4px;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
  min-width: 240px;
  max-width: min(600px, calc(100vw - 20px));
  max-height: min(500px, calc(100vh - 80px));
  overflow-y: auto;
  z-index: 1000;
  padding: 8px;
  font-size: 12px;
  line-height: 1.4;
  display: none;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.overture-control-panel.expanded {
  /* Flex column so the content area absorbs overflow and scrolls */
  display: flex;
  flex-direction: column;
}

.overture-control-panel.resizing {
  user-select: none;
}

/* Panel resize handle - sits on the edge away from the anchored side */
.overture-resize-handle {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 8px;
  cursor: ew-resize;
  touch-action: none;
  z-index: 2;
}

.overture-control-panel.ovt-anchor-left .overture-resize-handle {
  right: 0;
}

.overture-control-panel.ovt-anchor-right .overture-resize-handle {
  left: 0;
}

.overture-resize-handle::before {
  content: '';
  position: absolute;
  top: 50%;
  width: 2px;
  height: 28px;
  border-radius: 2px;
  background: var(--ovt-border);
  transform: translateY(-50%);
}

.overture-control-panel.ovt-anchor-left .overture-resize-handle::before {
  right: 2px;
}

.overture-control-panel.ovt-anchor-right .overture-resize-handle::before {
  left: 2px;
}

.overture-resize-handle:hover::before {
  background: var(--ovt-accent);
}

/* Panel header */
.overture-control-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-weight: 600;
  color: var(--ovt-text);
  padding: 4px 0 8px 0;
  border-bottom: 1px solid var(--ovt-border);
  margin-bottom: 8px;
}

.overture-control-title {
  flex: 1 1 auto;
  font-size: 13px;
}

.overture-control-close {
  width: 20px;
  height: 20px;
  border: none;
  background: transparent;
  color: var(--ovt-muted);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  transition: color 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.overture-control-close:hover {
  color: var(--ovt-text);
}

/* Content */
.overture-control-content {
  flex: 1 1 auto;
  min-height: 0;
  max-height: min(400px, calc(100vh - 160px));
  overflow-y: auto;
}

/* Scrollbar styling */
.overture-control-content::-webkit-scrollbar,
.overture-control-panel::-webkit-scrollbar,
.overture-popup-content::-webkit-scrollbar {
  width: 6px;
}

.overture-control-content::-webkit-scrollbar-track,
.overture-control-panel::-webkit-scrollbar-track,
.overture-popup-content::-webkit-scrollbar-track {
  background: transparent;
}

.overture-control-content::-webkit-scrollbar-thumb,
.overture-control-panel::-webkit-scrollbar-thumb,
.overture-popup-content::-webkit-scrollbar-thumb {
  background: var(--ovt-scrollbar);
  border-radius: 3px;
}

.overture-control-content::-webkit-scrollbar-thumb:hover,
.overture-control-panel::-webkit-scrollbar-thumb:hover,
.overture-popup-content::-webkit-scrollbar-thumb:hover {
  background: var(--ovt-scrollbar-hover);
}

/* Release selector */
.overture-release-row {
  margin-bottom: 10px;
}

.overture-control-label {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: var(--ovt-text);
}

.overture-release-select {
  display: block;
  width: 100%;
  margin-top: 4px;
  padding: 5px 8px;
  font-size: 12px;
  color: var(--ovt-text);
  background: var(--ovt-input-bg);
  border: 1px solid var(--ovt-input-border);
  border-radius: 4px;
  outline: none;
}

.overture-release-select:focus {
  border-color: var(--ovt-accent);
}

/* Error message */
.overture-control-error {
  margin: 0 0 10px 0;
  padding: 6px 8px;
  border-radius: 4px;
  background: var(--ovt-error-bg);
  color: var(--ovt-error-fg);
  font-size: 11px;
}

/* Transient notice (e.g. export feedback). Kept as an aria-live region in
   the DOM; collapses when empty so screen readers still announce updates. */
.overture-control-notice {
  margin: 0 0 10px 0;
  padding: 6px 8px;
  border-radius: 4px;
  background: var(--ovt-hover);
  color: var(--ovt-text);
  font-size: 11px;
  border-left: 3px solid var(--ovt-accent);
}

.overture-control-notice:empty {
  display: none;
}

/* Feature inspection toggle */
.overture-inspect-row {
  margin: 0 0 10px 0;
}

.overture-inspect-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  color: var(--ovt-text);
  font-size: 12px;
  font-weight: 500;
}

.overture-inspect-checkbox {
  margin: 0;
  accent-color: var(--ovt-accent);
  cursor: pointer;
}

/* Theme groups */
.overture-control-themes {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.overture-theme-group {
  border-radius: 4px;
}

.overture-theme-header {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px;
  border-radius: 4px;
}

.overture-theme-header:hover {
  background: var(--ovt-hover);
}

.overture-theme-caret {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--ovt-muted);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.15s ease;
}

.overture-theme-group.expanded .overture-theme-caret {
  transform: rotate(90deg);
}

.overture-theme-caret:focus-visible {
  outline: 2px solid var(--ovt-accent);
  outline-offset: 1px;
}

.overture-theme-toggle {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  color: var(--ovt-text);
}

.overture-theme-checkbox {
  margin: 0;
  accent-color: var(--ovt-accent);
  cursor: pointer;
}

.overture-theme-name {
  flex: 1 1 auto;
  font-size: 12px;
  font-weight: 600;
}

/* Layer rows (shown when the theme group is expanded) */
.overture-theme-layers {
  display: none;
  flex-direction: column;
  gap: 4px;
  padding: 2px 4px 6px 22px;
}

.overture-theme-group.expanded .overture-theme-layers {
  display: flex;
}

.overture-layer-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 3px 4px;
  border-radius: 4px;
}

.overture-layer-row:hover {
  background: var(--ovt-hover);
}

.overture-layer-head {
  display: flex;
  align-items: center;
  gap: 6px;
}

.overture-layer-toggle {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  color: var(--ovt-text);
  min-width: 0;
}

.overture-layer-checkbox {
  margin: 0;
  accent-color: var(--ovt-accent);
  cursor: pointer;
}

.overture-layer-swatch {
  flex: 0 0 auto;
  width: 12px;
  height: 12px;
  border-radius: 3px;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.25);
}

.overture-layer-name {
  flex: 1 1 auto;
  font-size: 12px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.overture-layer-style-btn,
.overture-layer-export-btn {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  padding: 0;
  border: none;
  border-radius: 4px;
  background: transparent;
  color: var(--ovt-muted);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.overture-layer-style-btn svg,
.overture-layer-export-btn svg {
  stroke: currentcolor;
  fill: none;
}

.overture-layer-style-btn:hover,
.overture-layer-export-btn:hover:not(:disabled) {
  background: var(--ovt-hover);
  color: var(--ovt-text);
}

.overture-layer-row.editing .overture-layer-style-btn {
  color: var(--ovt-accent);
}

.overture-layer-export-btn:disabled {
  opacity: 0.35;
  cursor: default;
}

.overture-layer-style-btn:focus-visible,
.overture-layer-export-btn:focus-visible {
  outline: 2px solid var(--ovt-accent);
  outline-offset: 1px;
}

/* Inline per-layer style editor (shown when the row is editing) */
.overture-layer-editor {
  display: none;
  flex-direction: column;
  gap: 4px;
  padding: 4px 4px 6px 24px;
}

.overture-layer-row.editing .overture-layer-editor {
  display: flex;
}

.overture-style-field {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--ovt-muted);
  font-size: 11px;
}

.overture-style-field > span {
  flex: 0 0 48px;
}

.overture-style-field input[type='range'] {
  flex: 1 1 auto;
  margin: 0;
  accent-color: var(--ovt-accent);
  cursor: pointer;
}

.overture-style-field input[type='range']:disabled {
  opacity: 0.4;
  cursor: default;
}

.overture-layer-color {
  flex: 0 0 auto;
  width: 28px;
  height: 18px;
  padding: 0;
  border: none;
  border-radius: 3px;
  background: none;
  cursor: pointer;
}

.overture-layer-color::-webkit-color-swatch-wrapper {
  padding: 0;
}

.overture-layer-color::-webkit-color-swatch {
  border: 1px solid var(--ovt-border);
  border-radius: 3px;
}

.overture-layer-color::-moz-color-swatch {
  border: 1px solid var(--ovt-border);
  border-radius: 3px;
}

.overture-layer-color:focus-visible {
  outline: 2px solid var(--ovt-accent);
  outline-offset: 1px;
}

/* Hint text */
.overture-control-hint {
  margin: 10px 0 0 0;
  color: var(--ovt-muted);
  font-size: 11px;
}

/* Positive confirmation once the detail-theme zoom threshold is met */
.overture-control-hint--active {
  color: var(--ovt-success-fg);
}

.overture-control-hint--active::before {
  content: '\2713\00a0';
}

/* Inspect popup */
.overture-popup .maplibregl-popup-content {
  padding: 0;
  background: transparent;
  box-shadow: none;
  border-radius: 6px;
  overflow: hidden;
}

.overture-popup-content {
  background: var(--ovt-bg);
  color: var(--ovt-text);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 12px;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
  padding: 8px 10px;
  max-height: 240px;
  overflow-y: auto;
  min-width: 180px;
}

.overture-popup-heading {
  font-weight: 600;
  font-size: 12px;
  margin-bottom: 6px;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--ovt-border);
}

.overture-popup-table {
  border-collapse: collapse;
  width: 100%;
}

.overture-popup-table td {
  padding: 2px 4px;
  vertical-align: top;
  overflow-wrap: anywhere;
  word-break: normal;
}

.overture-popup-key {
  color: var(--ovt-muted);
  white-space: nowrap;
}

.overture-popup-value {
  color: var(--ovt-text);
}

.overture-popup-empty {
  color: var(--ovt-muted);
}

/* Form elements (generic, kept for custom panel content) */
.overture-control-group {
  margin-bottom: 12px;
}

.overture-control-group:last-child {
  margin-bottom: 0;
}

.overture-control-input {
  width: 100%;
  padding: 8px 10px;
  font-size: 14px;
  color: var(--ovt-text);
  background: var(--ovt-input-bg);
  border: 1px solid var(--ovt-input-border);
  border-radius: 4px;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.overture-control-input:focus {
  border-color: var(--ovt-accent);
  box-shadow: 0 0 0 3px rgba(74, 144, 217, 0.15);
}

.overture-control-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 500;
  color: white;
  background: var(--ovt-accent);
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.15s;
}

.overture-control-button:hover {
  filter: brightness(0.92);
}

.overture-control-button:focus {
  outline: 2px solid var(--ovt-accent);
  outline-offset: 2px;
}

.overture-control-button:disabled {
  background: var(--ovt-scrollbar);
  cursor: not-allowed;
}

/* Utility classes */
.overture-control-flex {
  display: flex;
  gap: 8px;
}

.overture-control-flex-col {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.overture-control-divider {
  height: 1px;
  background: var(--ovt-border);
  margin: 12px 0;
}

/* Small screens: keep the panel inside the viewport with vertical scrolling */
@media (max-width: 480px) {
  .overture-control-panel {
    min-width: 200px;
    max-width: calc(100vw - 20px);
    max-height: calc(100vh - 100px);
  }

  .overture-control-content {
    max-height: calc(100vh - 150px);
  }
}
/*$vite$:1*//**
 * Planetary Computer Control Styles
 */

/* ============ Control Container ============ */
.pc-control {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  font-size: 13px;
  line-height: 1.4;
}

.pc-control-toggle {
  width: 29px;
  height: 29px;
  padding: 0;
  border: none;
  background: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  transition: background-color 0.15s;
}

.pc-control-toggle:hover {
  background-color: #f0f0f0;
}

.pc-control-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}

.pc-control-icon svg {
  stroke: #333;
}

/* ============ Panel ============ */
.pc-control-panel {
  position: absolute;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  z-index: 1000;
  display: none;
  flex-direction: column;
  overflow: hidden;
  box-sizing: border-box;
  /* Height shrinks to fit the content, bounded by the max-height set in JS. */
  height: auto;
  max-width: calc(100% - 20px);
}

.pc-control-panel.expanded {
  display: flex;
}

/* ============ Resize Handles ============ */
.pc-resize-handle {
  position: absolute;
  bottom: 0;
  width: 16px;
  height: 16px;
  z-index: 2;
  touch-action: none;
}

.pc-resize-handle::after {
  content: '';
  position: absolute;
  bottom: 3px;
  width: 7px;
  height: 7px;
  border-bottom: 2px solid #c4c4c4;
  opacity: 0;
  transition: opacity 0.15s;
}

.pc-control-panel:hover .pc-resize-handle::after,
.pc-control-panel.pc-resizing .pc-resize-handle::after {
  opacity: 1;
}

.pc-resize-handle-se {
  right: 0;
  cursor: nwse-resize;
}

.pc-resize-handle-se::after {
  right: 3px;
  border-right: 2px solid #c4c4c4;
}

.pc-resize-handle-sw {
  left: 0;
  cursor: nesw-resize;
}

.pc-resize-handle-sw::after {
  left: 3px;
  border-left: 2px solid #c4c4c4;
}

.pc-control-panel.pc-resizing {
  user-select: none;
}

/* ============ Header ============ */
.pc-control-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid #e5e5e5;
  background: #f8f9fa;
  border-radius: 8px 8px 0 0;
}

.pc-control-title {
  font-weight: 600;
  font-size: 14px;
  color: #1a1a1a;
}

.pc-control-close {
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 20px;
  color: #666;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  transition: all 0.15s;
}

.pc-control-close:hover {
  background: #e5e5e5;
  color: #333;
}

/* ============ Navigation ============ */
.pc-control-nav {
  display: flex;
  padding: 8px 12px;
  gap: 8px;
  border-bottom: 1px solid #e5e5e5;
  background: #fafafa;
}

.pc-nav-btn {
  padding: 6px 12px;
  border: 1px solid #ddd;
  background: #fff;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
  color: #666;
  transition: all 0.15s;
}

.pc-nav-btn:hover {
  background: #f5f5f5;
  border-color: #ccc;
}

.pc-nav-btn.active {
  background: #0078d4;
  border-color: #0078d4;
  color: #fff;
}

/* ============ Content Area ============ */
.pc-control-content {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 12px;
}

.pc-control-content::-webkit-scrollbar {
  width: 6px;
}

.pc-control-content::-webkit-scrollbar-track {
  background: #f1f1f1;
}

.pc-control-content::-webkit-scrollbar-thumb {
  background: #ccc;
  border-radius: 3px;
}

.pc-control-content::-webkit-scrollbar-thumb:hover {
  background: #aaa;
}

/* ============ Loading & Error States ============ */
.pc-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  color: #666;
  gap: 12px;
}

.pc-spinner {
  width: 24px;
  height: 24px;
  border: 3px solid #e5e5e5;
  border-top-color: #0078d4;
  border-radius: 50%;
  animation: pc-spin 0.8s linear infinite;
}

@keyframes pc-spin {
  to { transform: rotate(360deg); }
}

.pc-error {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 20px;
  color: #d13438;
  text-align: center;
}

/* ============ Collection Browser ============ */
.pc-collection-browser {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.pc-search-box {
  position: sticky;
  top: 0;
  background: #fff;
  z-index: 1;
}

.pc-search-input {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 13px;
  outline: none;
  transition: border-color 0.15s;
}

.pc-search-input:focus {
  border-color: #0078d4;
}

.pc-collection-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pc-collection-item {
  padding: 12px;
  border: 1px solid #e5e5e5;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s;
}

.pc-collection-item:hover {
  border-color: #0078d4;
  background: #f8f9fa;
}

.pc-collection-title {
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 4px;
}

.pc-collection-description {
  font-size: 12px;
  color: #666;
  margin-bottom: 8px;
}

.pc-collection-keywords {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.pc-tag {
  display: inline-block;
  padding: 2px 8px;
  background: #e8f4fd;
  color: #0078d4;
  font-size: 11px;
  border-radius: 10px;
}

/* ============ Search Panel ============ */
.pc-search-panel {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.pc-btn-back {
  background: none;
  border: none;
  padding: 0;
  color: #0078d4;
  cursor: pointer;
  font-size: 13px;
  text-align: left;
}

.pc-btn-back:hover {
  text-decoration: underline;
}

.pc-selected-collection {
  padding: 12px;
  background: #f8f9fa;
  border-radius: 6px;
}

.pc-collection-name {
  display: block;
  font-weight: 600;
  margin-top: 4px;
}

.pc-open-collection-page {
  margin-top: 8px;
}

.pc-form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.pc-label {
  font-size: 12px;
  color: #666;
  font-weight: 500;
}

.pc-input {
  padding: 8px 12px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 13px;
  outline: none;
  transition: border-color 0.15s;
}

.pc-input:focus {
  border-color: #0078d4;
}

.pc-bbox-display {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  padding: 8px 12px;
  background: #f5f5f5;
  border-radius: 4px;
}

.pc-bbox-text {
  font-size: 12px;
  color: #666;
  font-family: monospace;
  word-break: break-word;
}

.pc-bbox-actions {
  display: flex;
  gap: 6px;
  justify-content: flex-start;
  white-space: nowrap;
}

.pc-bbox-coordinates {
  min-width: 0;
}

.pc-date-inputs {
  display: flex;
  align-items: center;
  gap: 8px;
}

.pc-date-inputs .pc-input {
  flex: 1;
}

.pc-date-separator {
  color: #999;
  font-size: 12px;
}

/* ============ Buttons ============ */
.pc-btn {
  padding: 8px 16px;
  border: 1px solid #ddd;
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
  font-size: 13px;
  transition: all 0.15s;
}

.pc-btn:hover {
  background: #f5f5f5;
}

.pc-btn:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.pc-btn:disabled:hover {
  background: #fff;
}

.pc-btn-primary {
  background: #0078d4;
  border-color: #0078d4;
  color: #fff;
}

.pc-btn-primary:hover {
  background: #006cbd;
}

.pc-search-btn {
  width: 100%;
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-weight: 600;
}

.pc-search-btn-loading,
.pc-search-btn-loading:disabled,
.pc-search-btn-loading:disabled:hover {
  background: #005a9e;
  border-color: #005a9e;
  color: #fff;
  opacity: 1;
}

.pc-search-spinner {
  width: 14px;
  height: 14px;
  border: 2px solid rgba(255, 255, 255, 0.45);
  border-top-color: #fff;
  border-radius: 50%;
  animation: pc-spin 0.8s linear infinite;
}

.pc-btn-small {
  padding: 4px 10px;
  font-size: 12px;
}

.pc-btn-active {
  background: #e8f4fd;
  border-color: #0078d4;
  color: #005a9e;
}

.pc-btn-active:hover {
  background: #d7ecfb;
}

/* ============ Bounding Box Drawing ============ */
.pc-bbox-drawing,
.pc-bbox-drawing canvas,
.pc-inspector-active,
.pc-inspector-active canvas {
  cursor: crosshair !important;
}

.pc-bbox-overlay {
  position: absolute;
  inset: 0;
  z-index: 999;
  pointer-events: none;
}

.pc-bbox-box {
  position: absolute;
  display: none;
  border: 2px solid #0078d4;
  background: rgba(0, 120, 212, 0.16);
  box-sizing: border-box;
}

.pc-bbox-instructions {
  position: absolute;
  top: 12px;
  left: 50%;
  transform: translateX(-50%);
  padding: 6px 10px;
  border-radius: 4px;
  background: rgba(26, 26, 26, 0.82);
  color: #fff;
  font-size: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
  white-space: nowrap;
}

.pc-btn-icon {
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  color: #666;
  transition: all 0.15s;
}

.pc-btn-icon:hover {
  background: #e5e5e5;
  color: #333;
}

.pc-inspect-active {
  background: #0078d4;
  color: #fff;
}

.pc-inspect-active:hover {
  background: #006cbd;
  color: #fff;
}

.pc-layer-controls-active {
  background: #e8f4fd;
  color: #005a9e;
}

.pc-layer-controls-active:hover {
  background: #d7ecfb;
  color: #005a9e;
}

/* ============ Results ============ */
.pc-results {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.pc-results-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.pc-results-count {
  font-size: 12px;
  color: #666;
}

.pc-results-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.pc-results-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pc-results-empty {
  padding: 30px 20px;
  text-align: center;
  color: #666;
}

.pc-result-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px;
  border: 1px solid #e5e5e5;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s;
}

.pc-result-item:hover {
  border-color: #0078d4;
  background: #f8f9fa;
}

.pc-result-selected {
  border-color: #ff8c00;
  background: #fff8e5;
  box-shadow: inset 3px 0 0 #ff8c00;
}

.pc-result-selected:hover {
  border-color: #ff8c00;
  background: #fff4d6;
}

.pc-result-thumbnail {
  width: 60px;
  height: 60px;
  border-radius: 4px;
  overflow: hidden;
  flex-shrink: 0;
  background: #f5f5f5;
}

.pc-result-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pc-result-info {
  flex: 1;
  min-width: 0;
}

.pc-result-title {
  font-weight: 500;
  color: #1a1a1a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 12px;
}

.pc-result-date,
.pc-result-cloud {
  font-size: 11px;
  color: #666;
  margin-top: 2px;
}

.pc-result-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

/* ============ Item Details ============ */
.pc-item-details {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.pc-details-header {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pc-details-title {
  font-size: 14px;
  font-weight: 600;
  margin: 0;
  word-break: break-all;
}

.pc-details-meta {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  padding: 12px;
  background: #f8f9fa;
  border-radius: 6px;
}

.pc-meta-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.pc-meta-item .pc-value {
  font-weight: 500;
  color: #1a1a1a;
}

.pc-details-section {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pc-section-title {
  font-size: 12px;
  font-weight: 600;
  color: #333;
  margin: 0;
}

.pc-assets-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 150px;
  overflow-y: auto;
}

.pc-asset-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px;
  background: #f8f9fa;
  border-radius: 4px;
}

.pc-asset-info {
  flex: 1;
  min-width: 0;
}

.pc-asset-name {
  font-weight: 500;
  font-size: 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pc-asset-type {
  font-size: 11px;
  color: #666;
}

.pc-details-actions {
  padding-top: 8px;
  border-top: 1px solid #e5e5e5;
}

.pc-details-actions .pc-btn {
  width: 100%;
}

/* ============ Data API Tools ============ */
.pc-tool-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.pc-tool-output {
  min-height: 0;
}

.pc-tool-loading,
.pc-tool-success,
.pc-tool-error {
  padding: 8px;
  border-radius: 4px;
  font-size: 12px;
}

.pc-tool-loading {
  background: #f5f5f5;
  color: #666;
}

.pc-tool-success {
  margin-bottom: 8px;
  background: #edf7ed;
  color: #107c10;
}

.pc-tool-error {
  background: #fde7e9;
  color: #a4262c;
}

.pc-stats-card {
  padding: 10px;
  border: 1px solid #e5e5e5;
  border-radius: 6px;
  background: #fff;
}

.pc-stats-title {
  font-weight: 600;
  font-size: 12px;
  margin-bottom: 8px;
  color: #333;
}

.pc-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.pc-stats-grid > div,
.pc-point-values > div {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 12px;
}

.pc-stats-grid > div > span,
.pc-point-values > div > span {
  color: #666;
}

.pc-stats-grid > div > strong,
.pc-point-values > div > strong {
  color: #1a1a1a;
  font-weight: 600;
}

.pc-histogram {
  display: flex;
  align-items: flex-end;
  gap: 2px;
  height: 42px;
  margin-top: 10px;
  padding-top: 6px;
  border-top: 1px solid #f0f0f0;
}

.pc-histogram span {
  flex: 1;
  min-width: 2px;
  background: #0078d4;
  border-radius: 1px 1px 0 0;
}

.pc-legend-card {
  grid-column: 1 / -1;
  width: 100%;
  margin-top: 6px;
  padding: 6px;
  border: 1px solid #e5e5e5;
  border-radius: 4px;
  background: #fff;
}

.pc-legend-title {
  margin-bottom: 4px;
  font-size: 11px;
  font-weight: 600;
  color: #333;
}

.pc-legend-ramp {
  width: 100%;
  height: 12px;
  border: 1px solid #ddd;
  border-radius: 2px;
}

.pc-legend-labels {
  display: flex;
  justify-content: space-between;
  margin-top: 2px;
  font-size: 10px;
  color: #666;
}

.pc-tilejson-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px;
  border: 1px solid #e5e5e5;
  border-radius: 6px;
  background: #fff;
}

.pc-tilejson-card > div {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 12px;
}

.pc-tilejson-card > div > span {
  flex-shrink: 0;
  color: #666;
}

.pc-tilejson-card > div > strong {
  min-width: 0;
  overflow-wrap: anywhere;
  color: #1a1a1a;
  text-align: right;
}

/* ============ Layers ============ */
.pc-layers-empty {
  padding: 30px 20px;
  text-align: center;
  color: #666;
}

.pc-layers-empty p {
  margin: 0 0 8px;
}

.pc-layers-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.pc-layer-item {
  padding: 8px;
  border: 1px solid #e5e5e5;
  border-radius: 4px;
}

.pc-layer-header {
  display: flex;
  align-items: center;
  gap: 6px;
}

.pc-layer-visibility {
  flex-shrink: 0;
}

.pc-layer-name {
  flex: 1;
  font-weight: 500;
  font-size: 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pc-layer-controls {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid #f0f0f0;
}

.pc-layer-controls-hidden {
  display: none;
}

.pc-inspector-panel {
  padding: 10px;
  border: 1px solid #cfe8ff;
  border-radius: 6px;
  background: #f3f9ff;
}

.pc-inspector-title {
  font-weight: 600;
  font-size: 12px;
  color: #1a1a1a;
  margin-bottom: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pc-inspector-hint,
.pc-inspector-coords {
  font-size: 12px;
  color: #666;
  margin-bottom: 8px;
}

.pc-point-values {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.pc-point-json {
  max-height: 120px;
  overflow: auto;
  margin: 0;
  padding: 8px;
  border-radius: 4px;
  background: #fff;
  color: #333;
  font-size: 11px;
}

.pc-opacity-label {
  display: block;
  font-size: 11px;
  color: #666;
  margin-bottom: 0;
  white-space: nowrap;
}

.pc-opacity-value {
  font-weight: 500;
  color: #333;
}

.pc-opacity-slider {
  width: 100%;
  height: 3px;
  -webkit-appearance: none;
  appearance: none;
  background: #e5e5e5;
  border-radius: 2px;
  outline: none;
}

.pc-opacity-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #0078d4;
  cursor: pointer;
}

.pc-opacity-slider::-moz-range-thumb {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #0078d4;
  cursor: pointer;
  border: none;
}

/* ============ Cloud Cover Slider ============ */
.pc-cloud-cover-input {
  display: flex;
  align-items: center;
  gap: 12px;
}

.pc-cloud-slider {
  flex: 1;
  height: 4px;
  -webkit-appearance: none;
  appearance: none;
  background: #e5e5e5;
  border-radius: 2px;
  outline: none;
}

.pc-cloud-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #0078d4;
  cursor: pointer;
}

.pc-cloud-slider::-moz-range-thumb {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #0078d4;
  cursor: pointer;
  border: none;
}

.pc-cloud-value {
  font-size: 12px;
  font-weight: 500;
  color: #333;
  min-width: 40px;
  text-align: right;
}

/* ============ Rescale Inputs ============ */
.pc-rescale-inputs {
  display: flex;
  align-items: center;
  gap: 8px;
}

.pc-rescale-inputs .pc-input {
  flex: 1;
  min-width: 0;
}

.pc-rescale-separator {
  color: #999;
  font-size: 12px;
  flex-shrink: 0;
}

/* ============ Custom Visualization ============ */
.pc-custom-viz {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 12px;
  background: #f8f9fa;
  border-radius: 6px;
  border: 1px solid #e5e5e5;
}

.pc-advanced-render {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.pc-advanced-render summary {
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
  color: #333;
}

.pc-advanced-render[open] summary {
  margin-bottom: 10px;
}

.pc-advanced-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.pc-checkbox-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.pc-checkbox-group label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #333;
}

.pc-hint {
  font-size: 11px;
  color: #666;
  margin-top: 4px;
  display: block;
}
/**
 * MapLibre GL Raster Control Styles
 *
 * All colors flow through the --mlr-* custom properties below; the dark
 * theme only swaps the variable values (and the native widget color-scheme),
 * following the user's prefers-color-scheme setting automatically.
 */

.mlr-control,
.mlr-control-panel,
.mlr-inspect-popup,
.mlr-colorbar {
  --mlr-bg: #fff;
  --mlr-surface-muted: #f1f3f5;
  --mlr-surface-soft: #f7f8f9;
  --mlr-text: #333;
  --mlr-text-strong: #1f2a37;
  --mlr-text-soft: #555;
  --mlr-text-muted: #777;
  --mlr-text-faint: #999;
  --mlr-border: #ddd;
  --mlr-border-soft: #e0e0e0;
  --mlr-border-faint: #eee;
  --mlr-border-strong: #c4c9d0;
  --mlr-accent: #4a90d9;
  --mlr-accent-strong: #3a7bc8;
  --mlr-accent-soft: rgba(74, 144, 217, 0.12);
  --mlr-hover: rgba(0, 0, 0, 0.05);
  --mlr-error: #c0392b;
  --mlr-disabled-bg: #ccc;
  --mlr-disabled-text: #ccc;
  --mlr-scrollbar: #ccc;
  --mlr-scrollbar-hover: #aaa;
  --mlr-shadow: rgba(0, 0, 0, 0.1);
  --mlr-histogram-neutral: #1f2a37;

  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  .mlr-control,
  .mlr-control-panel,
  .mlr-inspect-popup,
  .mlr-colorbar {
    --mlr-bg: #23282e;
    --mlr-surface-muted: #2e343b;
    --mlr-surface-soft: #2a3036;
    --mlr-text: #e3e6e9;
    --mlr-text-strong: #f0f2f4;
    --mlr-text-soft: #c4cad0;
    --mlr-text-muted: #9aa3ab;
    --mlr-text-faint: #828b93;
    --mlr-border: #454d55;
    --mlr-border-soft: #3a4148;
    --mlr-border-faint: #343b42;
    --mlr-border-strong: #525a63;
    --mlr-accent: #5b9ce0;
    --mlr-accent-strong: #6faae6;
    --mlr-accent-soft: rgba(91, 156, 224, 0.2);
    --mlr-hover: rgba(255, 255, 255, 0.08);
    --mlr-error: #e07b6e;
    --mlr-disabled-bg: #4a5158;
    --mlr-disabled-text: #5f666d;
    --mlr-scrollbar: #4a5158;
    --mlr-scrollbar-hover: #5f666d;
    --mlr-shadow: rgba(0, 0, 0, 0.35);
    --mlr-histogram-neutral: #cfd6dd;

    color-scheme: dark;
  }
}

/* Host-controlled dark theme: an app that toggles a `.dark` class (e.g.
   GeoLibre, which sets it on <html>) themes the controls and colorbar to
   match, overriding the OS prefers-color-scheme default above. */
.dark .mlr-control,
.dark .mlr-control-panel,
.dark .mlr-inspect-popup,
.dark .mlr-colorbar {
  --mlr-bg: #23282e;
  --mlr-surface-muted: #2e343b;
  --mlr-surface-soft: #2a3036;
  --mlr-text: #e3e6e9;
  --mlr-text-strong: #f0f2f4;
  --mlr-text-soft: #c4cad0;
  --mlr-text-muted: #9aa3ab;
  --mlr-text-faint: #828b93;
  --mlr-border: #454d55;
  --mlr-border-soft: #3a4148;
  --mlr-border-faint: #343b42;
  --mlr-border-strong: #525a63;
  --mlr-accent: #5b9ce0;
  --mlr-accent-strong: #6faae6;
  --mlr-accent-soft: rgba(91, 156, 224, 0.2);
  --mlr-hover: rgba(255, 255, 255, 0.08);
  --mlr-error: #e07b6e;
  --mlr-disabled-bg: #4a5158;
  --mlr-disabled-text: #5f666d;
  --mlr-scrollbar: #4a5158;
  --mlr-scrollbar-hover: #5f666d;
  --mlr-shadow: rgba(0, 0, 0, 0.35);
  --mlr-histogram-neutral: #cfd6dd;

  color-scheme: dark;
}

/* Container - matches maplibregl-ctrl styling. The doubled selector
   outranks maplibre-gl's `.maplibregl-ctrl-group { background: #fff }`
   regardless of stylesheet order, so the button follows the theme (a white
   button with a light icon has no contrast in dark mode). */
.mlr-control,
.maplibregl-ctrl.mlr-control {
  background: var(--mlr-bg);
  border-radius: 4px;
  box-shadow: 0 0 0 2px var(--mlr-shadow);
  font-family:
    -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* Toggle button - 29x29 to match navigation control */
.mlr-control-toggle {
  background: none;
  border: none;
  padding: 0;
  width: 29px;
  height: 29px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  outline: none;
  color: var(--mlr-text-strong);
}

.mlr-control-toggle:hover {
  background-color: var(--mlr-hover);
}

.mlr-control-toggle .mlr-control-icon {
  width: 100%;
  height: 100%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.mlr-control-toggle .mlr-control-icon svg {
  width: 22px;
  height: 22px;
  display: block;
  stroke: currentcolor;
  fill: none;
}

/* Panel - positioned dynamically by JavaScript for floating behavior */
.mlr-control-panel {
  position: absolute;
  /* Position is set dynamically by _updatePanelPosition() */
  background: var(--mlr-bg);
  border-radius: 4px;
  box-shadow: 0 0 0 2px var(--mlr-shadow);
  min-width: 240px;
  max-width: 420px;
  max-height: min(80vh, 720px);
  /* The content area is the scroller; the panel clips so the resize handle
     (an absolutely-positioned child) stays pinned to the corner and never
     scrolls away with the content. */
  overflow: hidden;
  z-index: 1000;
  padding: 8px;
  font-size: 12px;
  line-height: 1.4;
  display: none;
}

/* Flex column so the header keeps its height and the content flexes to fill
   the panel (whether the panel auto-sizes to content up to max-height, or the
   user has set an explicit size via the resize handle). */
.mlr-control-panel.expanded {
  display: flex;
  flex-direction: column;
}

/* Engine-independent resize affordance (CSS `resize` is unreliable in
   WebKitGTK). Placed at the panel's inward corner by _addResizeHandle(). */
.mlr-control-resize {
  position: absolute;
  width: 16px;
  height: 16px;
  z-index: 5;
  color: var(--mlr-text-faint);
  opacity: 0.55;
  touch-action: none;
  background-image: repeating-linear-gradient(
    135deg,
    currentcolor 0 1px,
    transparent 1px 3px
  );
}

.mlr-control-resize:hover {
  opacity: 0.9;
}

/* Panel header */
.mlr-control-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-weight: 600;
  color: var(--mlr-text);
  padding: 4px 0 8px 0;
  border-bottom: 1px solid var(--mlr-border-soft);
  margin-bottom: 8px;
}

.mlr-control-title {
  flex: 1 1 auto;
  font-size: 13px;
}

.mlr-control-close {
  width: 20px;
  height: 20px;
  border: none;
  background: transparent;
  color: var(--mlr-text-faint);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  transition: color 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mlr-control-close:hover {
  color: var(--mlr-text);
}

/* Content */
.mlr-control-content {
  /* Flex child of the panel column: fill the remaining height and scroll.
     min-height: 0 lets it shrink below its content so the scrollbar engages
     instead of overflowing the panel. */
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  /* Histogram drag handles are centered on the chart edges and poke a few
     pixels past the content box; clip them instead of growing a horizontal
     scrollbar. */
  overflow-x: hidden;
  /* Keep the vertical scrollbar off the controls: reserve its track space
     and add a small gap so right edges stay fully visible while scrolling. */
  scrollbar-gutter: stable;
  padding-right: 6px;
}

.mlr-control-placeholder {
  margin: 0;
  color: var(--mlr-text-muted);
  font-size: 12px;
  text-align: center;
  padding: 16px 0;
}

/* Scrollbar styling */
.mlr-control-content::-webkit-scrollbar {
  width: 6px;
}

.mlr-control-content::-webkit-scrollbar-track {
  background: transparent;
}

.mlr-control-content::-webkit-scrollbar-thumb {
  background: var(--mlr-scrollbar);
  border-radius: 3px;
}

.mlr-control-content::-webkit-scrollbar-thumb:hover {
  background: var(--mlr-scrollbar-hover);
}

/* Form elements */
.mlr-control-group {
  margin-bottom: 12px;
}

.mlr-control-group:last-child {
  margin-bottom: 0;
}

.mlr-control-label {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  font-weight: 500;
  color: var(--mlr-text-soft);
}

.mlr-control-input {
  width: 100%;
  padding: 8px 10px;
  font-size: 14px;
  border: 1px solid var(--mlr-border);
  border-radius: 4px;
  background: var(--mlr-bg);
  color: var(--mlr-text);
  outline: none;
  transition:
    border-color 0.15s,
    box-shadow 0.15s;
}

.mlr-control-input:focus {
  border-color: var(--mlr-accent);
  box-shadow: 0 0 0 3px var(--mlr-accent-soft);
}

.mlr-control-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 500;
  color: white;
  background: var(--mlr-accent);
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.15s;
}

.mlr-control-button:hover {
  background: var(--mlr-accent-strong);
}

.mlr-control-button:focus {
  outline: 2px solid var(--mlr-accent);
  outline-offset: 2px;
}

.mlr-control-button:disabled {
  background: var(--mlr-disabled-bg);
  cursor: not-allowed;
}

/* Utility classes */
.mlr-control-flex {
  display: flex;
  gap: 8px;
}

.mlr-control-flex-col {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mlr-control-divider {
  height: 1px;
  background: var(--mlr-border-soft);
  margin: 12px 0;
}

/* ------------------------------------------------------------------ */
/* Raster panel UI (.mlr-*)                                            */
/* ------------------------------------------------------------------ */

.mlr-panel {
  display: flex;
  flex-direction: column;
  gap: 14px;
  color: var(--mlr-text);
}

.mlr-section {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mlr-section-title {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--mlr-text-muted);
  border-bottom: 1px solid var(--mlr-border-faint);
  padding-bottom: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mlr-section-title-row {
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  border-bottom: 1px solid var(--mlr-border-faint);
  padding-bottom: 4px;
}

.mlr-section-title-row > .mlr-section-title {
  flex: 1;
  min-width: 0;
  border-bottom: 0;
  padding-bottom: 0;
}

.mlr-info-button {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  padding: 0;
  border: 1px solid var(--mlr-border);
  border-radius: 50%;
  background: var(--mlr-bg);
  color: var(--mlr-text-muted);
  font-family: inherit;
  font-size: 11px;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
  cursor: help;
}

.mlr-info-button:hover,
.mlr-info-button:focus-visible,
.mlr-info-button[aria-expanded='true'] {
  outline: none;
  border-color: var(--mlr-accent);
  color: var(--mlr-text);
}

.mlr-tooltip {
  margin-top: -4px;
  padding: 6px 8px;
  border: 1px solid var(--mlr-border);
  border-radius: 4px;
  background: var(--mlr-bg);
  color: var(--mlr-text);
  font-size: 11px;
  line-height: 1.35;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
}

.mlr-tooltip[hidden] {
  display: none;
}

/* TiTiler endpoint input, revealed only while the titiler engine is active. */
.mlr-engine-endpoint {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 6px;
}

.mlr-engine-endpoint[hidden] {
  display: none;
}

.mlr-engine-endpoint > .mlr-input {
  width: 100%;
  box-sizing: border-box;
}

.mlr-row {
  display: flex;
  gap: 6px;
  align-items: center;
}

.mlr-row > .mlr-input {
  flex: 1;
  min-width: 0;
}

.mlr-row > .mlr-select {
  flex: 1;
  min-width: 0;
}

/* Sample-data dropdown (custom, so the menu themes correctly in dark mode) */
.mlr-sample-row {
  position: relative;
}

.mlr-sample-trigger {
  width: 100%;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 5px 8px;
  font-size: 12px;
  font-family: inherit;
  text-align: left;
  border: 1px solid var(--mlr-border);
  border-radius: 4px;
  background: var(--mlr-bg);
  color: var(--mlr-text-muted);
  cursor: pointer;
  outline: none;
}

.mlr-sample-trigger:hover,
.mlr-sample-trigger.open,
.mlr-sample-trigger:focus-visible {
  border-color: var(--mlr-accent);
}

.mlr-sample-trigger-label {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mlr-sample-caret {
  flex: 0 0 auto;
  font-size: 10px;
  color: var(--mlr-text-muted);
}

.mlr-sample-menu {
  position: absolute;
  top: calc(100% + 2px);
  left: 0;
  right: 0;
  z-index: 10;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 4px;
  box-sizing: border-box;
  background: var(--mlr-bg);
  border: 1px solid var(--mlr-border);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
  max-height: 220px;
  overflow-y: auto;
}

.mlr-sample-menu[hidden] {
  display: none;
}

.mlr-sample-option {
  width: 100%;
  box-sizing: border-box;
  padding: 5px 8px;
  font-size: 12px;
  font-family: inherit;
  text-align: left;
  border: none;
  border-radius: 3px;
  background: none;
  color: var(--mlr-text);
  cursor: pointer;
}

.mlr-sample-option:hover,
.mlr-sample-option:focus-visible {
  outline: none;
  background: var(--mlr-hover);
}

.mlr-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 10px;
}

.mlr-field:last-child {
  margin-bottom: 0;
}

.mlr-field-label {
  font-size: 11px;
  font-weight: 500;
  color: var(--mlr-text-soft);
}

/* Inline checkbox row (e.g. Reverse colormap): box and label on one line. */
.mlr-check {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 500;
  color: var(--mlr-text-soft);
  cursor: pointer;
}

.mlr-check input[type='checkbox'] {
  margin: 0;
  cursor: pointer;
}

/* Collapsible field (e.g. Rescale) */
.mlr-collapsible > summary {
  cursor: pointer;
  user-select: none;
  list-style-position: inside;
}

.mlr-collapsible > summary:hover {
  color: var(--mlr-text);
}

.mlr-collapsible[open] > summary {
  margin-bottom: 4px;
}

.mlr-input {
  width: 100%;
  box-sizing: border-box;
  padding: 5px 8px;
  font-size: 12px;
  border: 1px solid var(--mlr-border);
  border-radius: 4px;
  background: var(--mlr-bg);
  color: var(--mlr-text);
  outline: none;
  transition:
    border-color 0.15s,
    box-shadow 0.15s;
}

.mlr-input:focus {
  border-color: var(--mlr-accent);
  box-shadow: 0 0 0 3px var(--mlr-accent-soft);
}

.mlr-select {
  width: 100%;
  box-sizing: border-box;
  padding: 5px 6px;
  font-size: 12px;
  border: 1px solid var(--mlr-border);
  border-radius: 4px;
  background: var(--mlr-bg);
  color: var(--mlr-text);
  outline: none;
}

.mlr-select:focus {
  border-color: var(--mlr-accent);
}

.mlr-button {
  padding: 5px 14px;
  font-size: 12px;
  font-weight: 500;
  color: white;
  background: var(--mlr-accent);
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.15s;
  flex-shrink: 0;
}

.mlr-button:hover {
  background: var(--mlr-accent-strong);
}

.mlr-button:disabled {
  background: var(--mlr-disabled-bg);
  cursor: not-allowed;
}

/* Add data */
.mlr-drop-zone {
  border: 1.5px dashed var(--mlr-border-strong);
  border-radius: 4px;
  padding: 12px;
  text-align: center;
  cursor: pointer;
  background: var(--mlr-surface-soft);
  color: var(--mlr-text-muted);
  font-size: 11px;
  transition:
    border-color 0.15s,
    background-color 0.15s;
}

.mlr-drop-zone:hover,
.mlr-drop-zone.dragover {
  border-color: var(--mlr-accent);
  background: var(--mlr-accent-soft);
  color: var(--mlr-accent);
}

/* Layer list */
.mlr-layer-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.mlr-layer-row {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 3px 4px;
  border-radius: 4px;
}

.mlr-layer-row:hover {
  background: var(--mlr-hover);
}

.mlr-layer-row.selected {
  background: var(--mlr-accent-soft);
}

.mlr-layer-row.errored .mlr-layer-name {
  color: var(--mlr-error);
}

.mlr-layer-row input[type='checkbox'] {
  margin: 0;
  flex-shrink: 0;
  cursor: pointer;
  accent-color: var(--mlr-accent);
}

.mlr-layer-name {
  flex: 1;
  min-width: 0;
  border: none;
  background: none;
  text-align: left;
  font-size: 12px;
  color: var(--mlr-text);
  cursor: pointer;
  padding: 2px 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mlr-layer-row.selected .mlr-layer-name {
  font-weight: 600;
}

.mlr-icon-button {
  width: 20px;
  height: 20px;
  border: none;
  background: transparent;
  color: var(--mlr-text-muted);
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  border-radius: 3px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition:
    color 0.15s,
    background-color 0.15s;
}

.mlr-icon-button:hover {
  color: var(--mlr-text);
  background: var(--mlr-hover);
}

.mlr-icon-button:disabled {
  color: var(--mlr-disabled-text);
  cursor: default;
  background: transparent;
}

.mlr-empty {
  color: var(--mlr-text-faint);
  font-size: 11px;
  text-align: center;
  padding: 6px 0;
}

.mlr-error {
  color: var(--mlr-error);
  font-size: 11px;
  padding: 4px 0;
  overflow-wrap: anywhere;
}

/* Settings */
.mlr-band-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.mlr-rescale {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mlr-rescale-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.mlr-preset-row {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.mlr-preset-button {
  padding: 2px 8px;
  font-size: 11px;
  border: 1px solid var(--mlr-border);
  border-radius: 4px;
  background: var(--mlr-bg);
  color: var(--mlr-text-soft);
  cursor: pointer;
  transition:
    background-color 0.15s,
    border-color 0.15s;
}

.mlr-preset-button:hover {
  border-color: var(--mlr-accent);
}

.mlr-preset-button.active {
  background: var(--mlr-accent);
  border-color: var(--mlr-accent);
  color: #fff;
}

.mlr-slider {
  width: 100%;
  margin: 0;
  accent-color: var(--mlr-accent);
}

/* Histogram */
.mlr-histogram {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.mlr-histogram-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
}

.mlr-histogram-wrap {
  position: relative;
  cursor: crosshair;
  touch-action: none;
  user-select: none;
}

.mlr-histogram-wrap.dragging {
  cursor: grabbing;
}

.mlr-histogram-svg {
  position: absolute;
  inset: 0;
  display: block;
  pointer-events: none;
  width: 100%;
}

.mlr-histogram-bg {
  fill: var(--mlr-surface-muted);
}

.mlr-histogram-handle {
  position: absolute;
  top: 50%;
  border-radius: 50%;
  background: var(--mlr-bg);
  border: 1.5px solid currentcolor;
  transform: translate(-50%, -50%);
  cursor: ew-resize;
  box-sizing: border-box;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

/* Colormap picker */
.mlr-colormap-picker {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.mlr-colormap-preview {
  display: block;
  width: 100%;
  border-radius: 2px;
  image-rendering: auto;
}

/* Colorbar legend (a standalone IControl docked in a map corner). It shares
   the --mlr-* theme variables defined above, so it follows both the OS
   prefers-color-scheme and a host `.dark` class. */
.mlr-colorbar {
  box-sizing: border-box;
  padding: 8px 10px;
  background: var(--mlr-bg);
  color: var(--mlr-text);
  border: 1px solid var(--mlr-border-faint);
  border-radius: 4px;
  box-shadow: 0 1px 4px var(--mlr-shadow);
  font:
    11px/1.3 system-ui,
    sans-serif;
  user-select: none;
}

.mlr-colorbar-title {
  margin-bottom: 6px;
  font-weight: 600;
  color: var(--mlr-text);
}

.mlr-colorbar-track {
  display: flex;
  gap: 6px;
}

.mlr-colorbar-horizontal .mlr-colorbar-track {
  flex-direction: column;
}

.mlr-colorbar-vertical .mlr-colorbar-track {
  flex-direction: row;
}

.mlr-colorbar-bar {
  border: 1px solid var(--mlr-border);
  border-radius: 2px;
}

.mlr-colorbar-ticks {
  display: flex;
  justify-content: space-between;
  color: var(--mlr-text-soft);
  white-space: nowrap;
}

.mlr-colorbar-horizontal .mlr-colorbar-ticks {
  flex-direction: row;
}

/* Pull the first/last labels inward so they don't overflow the bar ends. */
.mlr-colorbar-horizontal .mlr-colorbar-tick:first-child {
  margin-left: -2px;
}

.mlr-colorbar-horizontal .mlr-colorbar-tick:last-child {
  margin-right: -2px;
}

.mlr-colorbar-vertical .mlr-colorbar-ticks {
  flex-direction: column;
}

/* Settings header + inspect toggle */
.mlr-settings-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border-bottom: 1px solid var(--mlr-border-faint);
  padding-bottom: 4px;
}

.mlr-settings-header .mlr-section-title {
  border-bottom: none;
  padding-bottom: 0;
  flex: 1;
  min-width: 0;
}

.mlr-inspect-toggle {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
  border: 1px solid var(--mlr-border);
  border-radius: 4px;
  background: var(--mlr-bg);
  color: var(--mlr-text-soft);
  cursor: pointer;
  transition:
    background-color 0.15s,
    border-color 0.15s,
    color 0.15s;
}

.mlr-inspect-toggle:hover {
  background: var(--mlr-hover);
}

.mlr-inspect-toggle.active {
  background: var(--mlr-accent);
  border-color: var(--mlr-accent-strong);
  color: #fff;
}

/* Inspector popup */
.mlr-inspect-popup .maplibregl-popup-content {
  background: var(--mlr-bg);
  color: var(--mlr-text);
  border-radius: 6px;
  box-shadow: 0 1px 4px var(--mlr-shadow);
  padding: 8px 24px 8px 10px;
}

.mlr-inspect-popup .maplibregl-popup-close-button {
  color: var(--mlr-text-muted);
  font-size: 16px;
  padding: 0 4px;
}

.mlr-inspect-popup .maplibregl-popup-close-button:hover {
  background: var(--mlr-hover);
  color: var(--mlr-text);
}

/* Tip color must follow the popup anchor so the triangle matches the bg. */
.mlr-inspect-popup.maplibregl-popup-anchor-top .maplibregl-popup-tip,
.mlr-inspect-popup.maplibregl-popup-anchor-top-left .maplibregl-popup-tip,
.mlr-inspect-popup.maplibregl-popup-anchor-top-right .maplibregl-popup-tip {
  border-bottom-color: var(--mlr-bg);
}

.mlr-inspect-popup.maplibregl-popup-anchor-bottom .maplibregl-popup-tip,
.mlr-inspect-popup.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip,
.mlr-inspect-popup.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip {
  border-top-color: var(--mlr-bg);
}

.mlr-inspect-popup.maplibregl-popup-anchor-left .maplibregl-popup-tip {
  border-right-color: var(--mlr-bg);
}

.mlr-inspect-popup.maplibregl-popup-anchor-right .maplibregl-popup-tip {
  border-left-color: var(--mlr-bg);
}

.mlr-inspect-content {
  font-size: 12px;
  line-height: 1.4;
  min-width: 130px;
}

.mlr-inspect-title {
  font-weight: 600;
  color: var(--mlr-text-strong);
  margin-bottom: 2px;
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mlr-inspect-coord {
  color: var(--mlr-text-muted);
  font-variant-numeric: tabular-nums;
  margin-bottom: 6px;
}

.mlr-inspect-bands {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.mlr-inspect-band {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.mlr-inspect-band-label {
  color: var(--mlr-text-soft);
}

.mlr-inspect-band-value {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  color: var(--mlr-text-strong);
}

.mlr-inspect-band-nodata .mlr-inspect-band-value {
  font-weight: 400;
  color: var(--mlr-text-faint);
}

.mlr-inspect-message {
  color: var(--mlr-text-soft);
}
/*$vite$:1*//* Import all component styles */
/* Main control container - matches maplibregl-ctrl styling */
.streetview-control {
  background: #fff;
  border-radius: 4px;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
/* Toggle button - 29x29 to match navigation control */
.streetview-control-toggle {
  background: none;
  border: none;
  padding: 0;
  width: 29px;
  height: 29px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  outline: none;
  color: #333;
  transition: background-color 0.2s;
  border-radius: 4px;
}
.streetview-control-toggle:hover {
  background-color: rgba(0, 0, 0, 0.05);
}
.streetview-control-toggle:active {
  background-color: rgba(0, 0, 0, 0.1);
}
.streetview-control-toggle:focus-visible {
  box-shadow: 0 0 0 2px #4a90d9;
}
/* Street view icon (person/pegman) */
.streetview-control-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}
.streetview-control-icon svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}
/* Active state when panel is open */
.streetview-control.active .streetview-control-toggle {
  background-color: rgba(0, 0, 0, 0.1);
  color: #1976d2;
}
/* Panel container */
.streetview-panel {
  position: absolute;
  background: #fff;
  border-radius: 4px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
  display: none;
  flex-direction: column;
  overflow: hidden;
  z-index: 1000;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
.streetview-panel.expanded {
  display: flex;
}
/* Panel header */
.streetview-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  border-bottom: 1px solid #e0e0e0;
  background: #f5f5f5;
  min-height: 36px;
  flex-shrink: 0;
}
.streetview-panel-title {
  font-size: 13px;
  font-weight: 600;
  color: #333;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.streetview-panel-close {
  background: none;
  border: none;
  padding: 4px;
  cursor: pointer;
  color: #666;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  transition: background-color 0.2s, color 0.2s;
  flex-shrink: 0;
}
.streetview-panel-close:hover {
  background-color: rgba(0, 0, 0, 0.1);
  color: #333;
}
.streetview-panel-close svg {
  width: 16px;
  height: 16px;
}
/* Panel content area */
.streetview-panel-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 0;
}
/* Resize handle */
.streetview-panel-resize {
  position: absolute;
  width: 16px;
  height: 16px;
  cursor: se-resize;
  opacity: 0;
  transition: opacity 0.2s;
}
.streetview-panel:hover .streetview-panel-resize {
  opacity: 0.5;
}
.streetview-panel-resize::before {
  content: '';
  position: absolute;
  right: 4px;
  bottom: 4px;
  width: 8px;
  height: 8px;
  border-right: 2px solid #999;
  border-bottom: 2px solid #999;
}
/* Position-specific resize handle placement */
.streetview-panel[data-position="top-right"] .streetview-panel-resize,
.streetview-panel[data-position="top-left"] .streetview-panel-resize {
  bottom: 0;
}
.streetview-panel[data-position="bottom-right"] .streetview-panel-resize,
.streetview-panel[data-position="bottom-left"] .streetview-panel-resize {
  top: 0;
  transform: rotate(180deg);
}
.streetview-panel[data-position="top-right"] .streetview-panel-resize,
.streetview-panel[data-position="bottom-right"] .streetview-panel-resize {
  left: 0;
  transform: scaleX(-1);
}
.streetview-panel[data-position="top-left"] .streetview-panel-resize,
.streetview-panel[data-position="bottom-left"] .streetview-panel-resize {
  right: 0;
}
.streetview-api-keys {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  align-content: start;
  flex: 1;
  min-height: 0;
  padding: 12px;
  background: #fff;
  overflow: auto;
}
.streetview-api-keys[hidden] {
  display: none;
}
.streetview-api-key-field {
  display: grid;
  gap: 4px;
  margin: 0;
}
.streetview-api-key-label {
  color: #444;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
}
.streetview-api-key-input {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: 28px;
  padding: 5px 8px;
  border: 1px solid #d0d0d0;
  border-radius: 4px;
  background: #fff;
  color: #222;
  font: inherit;
  font-size: 12px;
  outline: none;
}
.streetview-api-key-input:focus {
  border-color: #1976d2;
  box-shadow: 0 0 0 2px rgba(25, 118, 210, 0.16);
}
.streetview-api-key-input::placeholder {
  color: #888;
}
.streetview-api-key-apply {
  justify-self: end;
  min-height: 28px;
  padding: 5px 10px;
  border: none;
  border-radius: 4px;
  background: #1976d2;
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  font-weight: 600;
}
.streetview-api-key-apply:hover {
  background: #1565c0;
}
.streetview-api-key-apply:active {
  background: #0d47a1;
}
/* Provider tabs container */
.streetview-provider-tabs {
  display: flex;
  border-bottom: 1px solid #e0e0e0;
  background: #fafafa;
  flex-shrink: 0;
}
/* Individual tab button */
.streetview-provider-tab {
  flex: 1;
  padding: 8px 16px;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 12px;
  font-weight: 500;
  color: #666;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}
.streetview-provider-tab:hover:not(:disabled) {
  background: #f0f0f0;
  color: #333;
}
.streetview-provider-tab.active {
  color: #1976d2;
  border-bottom-color: #1976d2;
  background: #fff;
}
.streetview-provider-tab:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
/* Provider icon */
.streetview-provider-tab .provider-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.streetview-provider-tab .provider-icon svg {
  width: 100%;
  height: 100%;
}
/* Provider label */
.streetview-provider-tab .provider-label {
  white-space: nowrap;
}
/* Single provider - full width tab */
.streetview-provider-tabs.single-provider .streetview-provider-tab {
  cursor: default;
}
.streetview-provider-tabs.single-provider .streetview-provider-tab:hover {
  background: transparent;
}
/* Viewer container */
.streetview-viewer {
  flex: 1;
  position: relative;
  min-height: 200px;
  background: #1a1a1a;
  overflow: hidden;
}
/* Google iframe viewer */
.streetview-viewer iframe {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}
/* MapillaryJS container */
.streetview-viewer .mapillary-viewer {
  width: 100%;
  height: 100%;
}
/* Loading overlay */
.streetview-viewer-loading {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.7);
  color: white;
  gap: 12px;
  z-index: 10;
}
.streetview-viewer-loading-text {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.8);
}
/* Spinner animation */
.streetview-spinner {
  width: 32px;
  height: 32px;
  border: 3px solid rgba(255, 255, 255, 0.3);
  border-top-color: white;
  border-radius: 50%;
  animation: streetview-spin 1s linear infinite;
}
@keyframes streetview-spin {
  to {
    transform: rotate(360deg);
  }
}
/* Initial state - click prompt */
.streetview-viewer-initial {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #f5f5f5;
  color: #666;
  text-align: center;
  padding: 20px;
}
.streetview-viewer-initial-icon {
  width: 48px;
  height: 48px;
  margin-bottom: 12px;
  opacity: 0.5;
}
.streetview-viewer-initial-icon svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}
.streetview-viewer-initial-text {
  font-size: 14px;
  line-height: 1.5;
}
.streetview-viewer-initial-hint {
  font-size: 12px;
  color: #999;
  margin-top: 4px;
}
/* Marker container */
.streetview-marker {
  width: 32px;
  height: 32px;
  position: relative;
  cursor: pointer;
}
/* Marker dot (center point) */
.streetview-marker-dot {
  width: 16px;
  height: 16px;
  background: #ff5722;
  border: 2px solid white;
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}
/* Direction indicator (arrow/cone) */
.streetview-marker-direction {
  position: absolute;
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-bottom: 24px solid #1976d2;
  top: -6px;
  left: 50%;
  transform-origin: center calc(100% + 6px);
  transform: translateX(-50%) rotate(0deg);
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3));
  transition: transform 0.15s ease-out;
  z-index: 0;
}
/* Marker with direction hidden */
.streetview-marker.no-direction .streetview-marker-direction {
  display: none;
}
/* Marker hover state */
.streetview-marker:hover .streetview-marker-dot {
  transform: translate(-50%, -50%) scale(1.1);
}
/* Marker pulse animation for selection */
.streetview-marker.selected .streetview-marker-dot::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: inherit;
  transform: translate(-50%, -50%);
  animation: streetview-marker-pulse 1.5s ease-out infinite;
}
@keyframes streetview-marker-pulse {
  0% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 0.8;
  }
  100% {
    transform: translate(-50%, -50%) scale(2.5);
    opacity: 0;
  }
}
/* Custom color support via CSS variables */
.streetview-marker {
  --marker-color: #ff5722;
  --marker-direction-color: #1976d2;
}
.streetview-marker .streetview-marker-dot {
  background: var(--marker-color);
}
.streetview-marker .streetview-marker-direction {
  border-bottom-color: var(--marker-direction-color);
}
/* No data message container */
.streetview-no-data {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 20px;
  text-align: center;
  color: #666;
  background: #f5f5f5;
  height: 100%;
  min-height: 200px;
}
/* No data icon */
.streetview-no-data-icon {
  width: 48px;
  height: 48px;
  margin-bottom: 16px;
  opacity: 0.4;
}
.streetview-no-data-icon svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}
/* No data title */
.streetview-no-data-title {
  font-size: 15px;
  font-weight: 600;
  margin-bottom: 8px;
  color: #333;
}
/* No data message */
.streetview-no-data-message {
  font-size: 13px;
  line-height: 1.5;
  max-width: 280px;
  color: #666;
}
/* Action button container */
.streetview-no-data-action {
  margin-top: 16px;
}
/* Retry/search button */
.streetview-no-data-button {
  padding: 8px 20px;
  background: #1976d2;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  transition: background-color 0.2s;
}
.streetview-no-data-button:hover {
  background: #1565c0;
}
.streetview-no-data-button:active {
  background: #0d47a1;
}
.streetview-no-data-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
/* Searching state */
.streetview-no-data.searching .streetview-no-data-icon {
  animation: streetview-no-data-pulse 1s ease-in-out infinite;
}
@keyframes streetview-no-data-pulse {
  0%, 100% {
    opacity: 0.4;
  }
  50% {
    opacity: 0.7;
  }
}
/* Error state */
.streetview-no-data.error .streetview-no-data-icon {
  color: #d32f2f;
  opacity: 0.6;
}
.streetview-no-data.error .streetview-no-data-title {
  color: #d32f2f;
}
/**
 * MapLibre GL Swipe Control Styles
 *
 * The button and panel colors are CSS custom properties so they adapt to light
 * and dark color schemes. The scheme follows `prefers-color-scheme` by default
 * and can be forced with the `.swipe-theme-light` / `.swipe-theme-dark` classes
 * (set via the `theme` option or `setTheme()`). The slider is a map overlay and
 * keeps one look in both schemes.
 */

.swipe-control,
.swipe-control-panel {
  --swipe-bg: #ffffff;
  --swipe-header-bg: #fafafa;
  --swipe-fg: #1f2a37;
  --swipe-text: #333333;
  --swipe-label: #555555;
  --swipe-muted: #999999;
  --swipe-border: #e0e0e0;
  --swipe-border-subtle: #eeeeee;
  --swipe-input-bg: #ffffff;
  --swipe-input-border: #dddddd;
  --swipe-input-border-hover: #bbbbbb;
  --swipe-list-bg: #fafafa;
  --swipe-hover: rgba(0, 0, 0, 0.05);
  --swipe-item-hover: #f0f0f0;
  --swipe-accent: #4a90d9;
  --swipe-track: #cccccc;
  --swipe-scrollbar: #cccccc;
  --swipe-scrollbar-hover: #aaaaaa;
  --swipe-ring: rgba(0, 0, 0, 0.1);
}

/* Dark scheme via system preference (unless a scheme is forced) */
@media (prefers-color-scheme: dark) {
  .swipe-control:not(.swipe-theme-light),
  .swipe-control-panel:not(.swipe-theme-light) {
    --swipe-bg: #1f2733;
    --swipe-header-bg: #1a212b;
    --swipe-fg: #e8edf3;
    --swipe-text: #dde3ea;
    --swipe-label: #9aa5b1;
    --swipe-muted: #8b96a3;
    --swipe-border: #38424e;
    --swipe-border-subtle: #2f3843;
    --swipe-input-bg: #2a3441;
    --swipe-input-border: #46515e;
    --swipe-input-border-hover: #5d6b7a;
    --swipe-list-bg: #252e3a;
    --swipe-hover: rgba(255, 255, 255, 0.08);
    --swipe-item-hover: #2f3946;
    --swipe-accent: #6aaae4;
    --swipe-track: #4a5663;
    --swipe-scrollbar: #4a5663;
    --swipe-scrollbar-hover: #5d6b7a;
    --swipe-ring: rgba(0, 0, 0, 0.4);
    color-scheme: dark;
}
}

/* Forced dark scheme */
.swipe-control.swipe-theme-dark,
.swipe-control-panel.swipe-theme-dark {
  --swipe-bg: #1f2733;
  --swipe-header-bg: #1a212b;
  --swipe-fg: #e8edf3;
  --swipe-text: #dde3ea;
  --swipe-label: #9aa5b1;
  --swipe-muted: #8b96a3;
  --swipe-border: #38424e;
  --swipe-border-subtle: #2f3843;
  --swipe-input-bg: #2a3441;
  --swipe-input-border: #46515e;
  --swipe-input-border-hover: #5d6b7a;
  --swipe-list-bg: #252e3a;
  --swipe-hover: rgba(255, 255, 255, 0.08);
  --swipe-item-hover: #2f3946;
  --swipe-accent: #6aaae4;
  --swipe-track: #4a5663;
  --swipe-scrollbar: #4a5663;
  --swipe-scrollbar-hover: #5d6b7a;
  --swipe-ring: rgba(0, 0, 0, 0.4);
  color-scheme: dark;
}

/* ============================================
   Control Button (Toggle)
   ============================================ */
.swipe-control {
  background: var(--swipe-bg);
  border-radius: 4px;
  box-shadow: 0 0 0 2px var(--swipe-ring);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.swipe-control-toggle {
  background: none;
  border: none;
  padding: 0;
  width: 29px;
  height: 29px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  outline: none;
  color: var(--swipe-fg);
}

.swipe-control-toggle:hover {
  background-color: var(--swipe-hover);
}

.swipe-control-toggle:focus {
  box-shadow: 0 0 0 2px rgba(74, 144, 217, 0.4);
}

.swipe-control-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}

.swipe-control-icon svg {
  width: 22px;
  height: 22px;
}

/* ============================================
   Slider
   ============================================ */
.swipe-slider {
  position: absolute;
  z-index: 100;
  pointer-events: none;
}

.swipe-slider-vertical {
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.7));
  border-left: 1px solid rgba(0, 0, 0, 0.3);
  border-right: 1px solid rgba(0, 0, 0, 0.3);
  cursor: ew-resize;
  transform: translateX(-50%) translateZ(0);
  will-change: left;
  backface-visibility: hidden;
}

.swipe-slider-horizontal {
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(to right, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.7));
  border-top: 1px solid rgba(0, 0, 0, 0.3);
  border-bottom: 1px solid rgba(0, 0, 0, 0.3);
  cursor: ns-resize;
  transform: translateY(-50%) translateZ(0);
  will-change: top;
  backface-visibility: hidden;
}

.swipe-slider-handle {
  position: absolute;
  pointer-events: auto;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.1s ease, box-shadow 0.1s ease;
  width: 32px;
  height: 32px;
}

.swipe-slider-vertical .swipe-slider-handle {
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  cursor: ew-resize;
}

.swipe-slider-horizontal .swipe-slider-handle {
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) rotate(90deg);
  cursor: ns-resize;
}

.swipe-slider-handle:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
}

.swipe-slider.dragging .swipe-slider-handle {
  transform: translate(-50%, -50%) scale(1.1);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
  transition: box-shadow 0.1s ease;
}

.swipe-slider-horizontal.dragging .swipe-slider-handle {
  transform: translate(-50%, -50%) rotate(90deg) scale(1.1);
  transition: box-shadow 0.1s ease;
}

/* Locked slider: shown when the swipe tool is inactive. The split view stays
   frozen in place, but the handle is dimmed and dragging is disabled. */
.swipe-slider-locked .swipe-slider-handle {
  cursor: not-allowed;
  opacity: 0.45;
}

.swipe-slider-locked .swipe-slider-handle:hover {
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

.swipe-handle-icon {
  color: #666;
  transition: color 0.1s ease;
}

.swipe-slider:hover .swipe-handle-icon,
.swipe-slider.dragging .swipe-handle-icon {
  color: #333;
}

/* ============================================
   Panel
   ============================================ */
.swipe-control-panel {
  position: absolute;
  background: var(--swipe-bg);
  color: var(--swipe-text);
  border-radius: 4px;
  box-shadow: 0 0 0 2px var(--swipe-ring);
  min-width: 240px;
  max-width: 320px;
  overflow: hidden;
  z-index: 1000;
  font-size: 12px;
  line-height: 1.4;
  display: none;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  /* Enable flexbox for proper content scrolling */
  flex-direction: column;
}

.swipe-control-panel.expanded {
  display: flex;
}

.swipe-control-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-weight: 600;
  color: var(--swipe-text);
  padding: 10px 12px;
  border-bottom: 1px solid var(--swipe-border);
  background: var(--swipe-header-bg);
  flex-shrink: 0;
}

.swipe-control-title {
  flex: 1;
  font-size: 13px;
}

.swipe-control-close {
  width: 22px;
  height: 22px;
  border: none;
  background: transparent;
  color: var(--swipe-muted);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 3px;
  transition: background-color 0.1s ease, color 0.1s ease;
}

.swipe-control-close:hover {
  background-color: var(--swipe-hover);
  color: var(--swipe-text);
}

.swipe-control-content {
  padding: 12px;
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}

.swipe-control-group {
  margin-bottom: 14px;
}

.swipe-control-group:last-child {
  margin-bottom: 0;
}

.swipe-control-label {
  display: block;
  margin-bottom: 6px;
  font-size: 11px;
  font-weight: 600;
  color: var(--swipe-label);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.swipe-control-select {
  width: 100%;
  padding: 8px 10px;
  font-size: 12px;
  border: 1px solid var(--swipe-input-border);
  border-radius: 4px;
  outline: none;
  background: var(--swipe-input-bg);
  color: var(--swipe-text);
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.swipe-control-select:hover {
  border-color: var(--swipe-input-border-hover);
}

.swipe-control-select:focus {
  border-color: var(--swipe-accent);
  box-shadow: 0 0 0 2px rgba(74, 144, 217, 0.15);
}

.swipe-control-divider {
  height: 1px;
  background: var(--swipe-border);
  margin: 14px 0;
}

/* ============================================
   Layer List
   ============================================ */
.swipe-layer-list {
  /* Let each list grow with its layers and rely on the panel's own scroll area
     (.swipe-control-content) for overflow, so the panel uses the available
     height instead of stacking two short, separately scrolling boxes. A cap
     keeps a single very long list from crowding out the other side. */
  max-height: 320px;
  overflow-y: auto;
  border: 1px solid var(--swipe-border);
  border-radius: 4px;
  background: var(--swipe-list-bg);
}

.swipe-layer-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  cursor: pointer;
  border-bottom: 1px solid var(--swipe-border-subtle);
  transition: background-color 0.1s ease;
}

.swipe-layer-item:last-child {
  border-bottom: none;
}

.swipe-layer-item:hover {
  background: var(--swipe-item-hover);
}

.swipe-layer-item input[type='checkbox'] {
  margin: 0;
  cursor: pointer;
  width: 14px;
  height: 14px;
  accent-color: var(--swipe-accent);
}

.swipe-layer-item label {
  flex: 1;
  font-size: 11px;
  color: var(--swipe-text);
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ============================================
   Scrollbar
   ============================================ */
/* Firefox scrollbar */
.swipe-control-content,
.swipe-layer-list {
  scrollbar-width: thin;
  scrollbar-color: var(--swipe-scrollbar) transparent;
}

/* Webkit (Chrome, Safari, Edge) scrollbar */
.swipe-control-content::-webkit-scrollbar,
.swipe-layer-list::-webkit-scrollbar {
  width: 6px;
}

.swipe-control-content::-webkit-scrollbar-track,
.swipe-layer-list::-webkit-scrollbar-track {
  background: transparent;
}

.swipe-control-content::-webkit-scrollbar-thumb,
.swipe-layer-list::-webkit-scrollbar-thumb {
  background: var(--swipe-scrollbar);
  border-radius: 3px;
}

.swipe-control-content::-webkit-scrollbar-thumb:hover,
.swipe-layer-list::-webkit-scrollbar-thumb:hover {
  background: var(--swipe-scrollbar-hover);
}

/* ============================================
   Toggle Switch
   ============================================ */
.swipe-toggle-switch {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.swipe-toggle-label {
  font-size: 12px;
  font-weight: 500;
  color: var(--swipe-text);
  cursor: pointer;
}

.swipe-toggle-slider {
  position: relative;
  display: inline-block;
  width: 36px;
  height: 20px;
  cursor: pointer;
  flex-shrink: 0;
}

.swipe-toggle-slider input {
  opacity: 0;
  width: 0;
  height: 0;
  position: absolute;
}

.swipe-toggle-track {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: var(--swipe-track);
  border-radius: 10px;
  transition: background-color 0.2s ease;
}

.swipe-toggle-track::before {
  content: '';
  position: absolute;
  height: 16px;
  width: 16px;
  left: 2px;
  bottom: 2px;
  background-color: #fff;
  border-radius: 50%;
  transition: transform 0.2s ease;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

.swipe-toggle-slider input:checked + .swipe-toggle-track {
  background-color: var(--swipe-accent);
}

.swipe-toggle-slider input:checked + .swipe-toggle-track::before {
  transform: translateX(16px);
}

.swipe-toggle-slider input:focus + .swipe-toggle-track {
  box-shadow: 0 0 0 2px rgba(74, 144, 217, 0.3);
}

/* ============================================
   Empty State
   ============================================ */
.swipe-layer-list:empty::after {
  content: 'No layers available';
  display: block;
  padding: 12px;
  color: var(--swipe-muted);
  font-size: 11px;
  text-align: center;
  font-style: italic;
}
/**
 * MapLibre GL Time Slider — bottom-docked timeline styles.
 *
 * Colors are driven by CSS custom properties. The light palette is the default;
 * the dark palette applies automatically via `@media (prefers-color-scheme:
 * dark)`. An explicit `theme: 'light' | 'dark'` adds a `.ts-theme-light` /
 * `.ts-theme-dark` class on the dock root that redeclares the variables, so it
 * overrides the media query.
 */

/* Light palette (default) */
.maplibregl-time-slider-dock,
.maplibregl-time-slider-dock.ts-theme-light {
  --ts-bg: #ffffff;
  --ts-shadow: rgba(0, 0, 0, 0.18);
  --ts-fg: #333333;
  --ts-fg-strong: #1f2a37;
  --ts-fg-muted: #5a5a5a;
  --ts-fg-subtle: #999999;
  --ts-border: #e0e0e0;
  --ts-tick: #707070;
  --ts-marker: #4a90d9;
  --ts-display-bg: #f5f5f5;
  --ts-btn-bg: #efefef;
  --ts-btn-border: #cccccc;
  --ts-btn-hover-bg: #e2e2e2;
  --ts-btn-hover-border: #bbbbbb;
  --ts-input-bg: #ffffff;
  --ts-input-border: #d8d8d8;
  --ts-accent: #4a90d9;
  --ts-accent-hover: #3a7bc8;
  --ts-accent-ring: rgba(74, 144, 217, 0.25);
  --ts-danger: #c0392b;
}

/* Dark palette (follows the system preference) */
@media (prefers-color-scheme: dark) {
  .maplibregl-time-slider-dock {
    --ts-bg: #1f1f1f;
    --ts-shadow: rgba(0, 0, 0, 0.6);
    --ts-fg: #e6e6e6;
    --ts-fg-strong: #f4f4f4;
    --ts-fg-muted: #b0b0b0;
    --ts-fg-subtle: #888888;
    --ts-border: #3a3a3a;
    --ts-tick: #8f8f8f;
    --ts-marker: #5a9fe0;
    --ts-display-bg: #2c2c2c;
    --ts-btn-bg: #353535;
    --ts-btn-border: #555555;
    --ts-btn-hover-bg: #454545;
    --ts-btn-hover-border: #666666;
    --ts-input-bg: #2c2c2c;
    --ts-input-border: #555555;
    --ts-accent: #5a9fe0;
    --ts-accent-hover: #4a90d9;
    --ts-accent-ring: rgba(90, 159, 224, 0.35);
    --ts-danger: #f08a80;
  }
}

/* Explicit dark override (wins over the media query) */
.maplibregl-time-slider-dock.ts-theme-dark {
  --ts-bg: #1f1f1f;
  --ts-shadow: rgba(0, 0, 0, 0.6);
  --ts-fg: #e6e6e6;
  --ts-fg-strong: #f4f4f4;
  --ts-fg-muted: #b0b0b0;
  --ts-fg-subtle: #888888;
  --ts-border: #3a3a3a;
  --ts-tick: #555555;
  --ts-marker: #5a9fe0;
  --ts-display-bg: #2c2c2c;
  --ts-btn-bg: #353535;
  --ts-btn-border: #555555;
  --ts-btn-hover-bg: #454545;
  --ts-btn-hover-border: #666666;
  --ts-input-bg: #2c2c2c;
  --ts-input-border: #555555;
  --ts-accent: #5a9fe0;
  --ts-accent-hover: #4a90d9;
  --ts-accent-ring: rgba(90, 159, 224, 0.35);
  --ts-danger: #f08a80;
}

/* Corner toggle button (clock icon) that collapses/expands the dock. The
 * selector is scoped under the toggle container so it outranks MapLibre's own
 * `.maplibregl-ctrl-group button { display: block }` rule (which would otherwise
 * win on specificity and push the clock icon to the top-left corner). */
.maplibregl-time-slider-toggle .maplibregl-time-slider-toggle-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 29px;
  height: 29px;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  color: #333;
}

.maplibregl-time-slider-toggle .maplibregl-time-slider-toggle-btn svg {
  width: 20px;
  height: 20px;
}

/* Reserve-space layout wrapper: a flex column holding the map then the dock.
 * (The control also sets these inline; declared here so the .ts-docked flex
 * sizing works even if inline styles are stripped.) */
.maplibregl-time-slider-layout {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  overflow: hidden;
  max-width: 100%;
  /* Never exceed the dynamic viewport. On mobile the wrapper height can resolve
   * to the large viewport (URL bar excluded) when the map fills the screen via
   * `height: 100%` or a pixel value, which pushes the docked control rows below
   * the visible (small) viewport. Capping here keeps the dock on-screen for
   * every sizing path; the flexible map child absorbs the difference.
   * `100vh` is the fallback where `dvh` is unsupported. */
  max-height: 100vh;
  max-height: 100dvh;
}

/* Dock shell. Overlay by default (fallback); reserve-space layout adds
 * `.ts-docked` to place it in normal flow below the map. */
.maplibregl-time-slider-dock {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  display: flex;
  align-items: stretch;
  height: 66px;
  background: var(--ts-bg);
  color: var(--ts-fg);
  border-top: 1px solid var(--ts-border);
  box-shadow: 0 -1px 6px var(--ts-shadow);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 12px;
  box-sizing: border-box;
}

.maplibregl-time-slider-dock *,
.maplibregl-time-slider-dock *::before,
.maplibregl-time-slider-dock *::after {
  box-sizing: border-box;
}

/* Reserve-space: the dock sits in normal flow below the map (not overlaid). */
.maplibregl-time-slider-dock.ts-docked {
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  flex: 0 0 auto;
  width: 100%;
}

/* Collapsed: the dock is hidden; only the corner toggle remains. */
.maplibregl-time-slider-dock.ts-collapsed {
  display: none;
}

/* Generic dock inputs (range excluded — it has its own look) */
.maplibregl-time-slider-dock input:not([type='range']),
.maplibregl-time-slider-dock textarea,
.maplibregl-time-slider-dock select {
  color: var(--ts-fg);
  background: var(--ts-input-bg);
  border: 1px solid var(--ts-input-border);
  border-radius: 3px;
  padding: 4px 6px;
  font-size: 12px;
  outline: none;
}

.maplibregl-time-slider-dock input:not([type='range']):focus,
.maplibregl-time-slider-dock textarea:focus,
.maplibregl-time-slider-dock select:focus {
  border-color: var(--ts-accent);
  box-shadow: 0 0 0 2px var(--ts-accent-ring);
}

/* Shared button */
.maplibregl-time-slider-dock .time-slider-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 5px 8px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  color: var(--ts-fg);
  background: var(--ts-btn-bg);
  border: 1px solid var(--ts-btn-border);
  border-radius: 4px;
  cursor: pointer;
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease;
}

.maplibregl-time-slider-dock .time-slider-btn:hover {
  background: var(--ts-btn-hover-bg);
  border-color: var(--ts-btn-hover-border);
}

.maplibregl-time-slider-dock .time-slider-btn.ts-active {
  background: var(--ts-accent);
  border-color: var(--ts-accent-hover);
  color: #fff;
}

/* ----- Left cluster: date + transport ----- */
.ts-left {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border-right: 1px solid var(--ts-border);
}

.ts-playback {
  display: flex;
  align-items: center;
  gap: 4px;
}

.ts-playback .time-slider-btn {
  width: 28px;
  height: 24px;
  padding: 0;
  font-size: 12px;
}

.ts-speed {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  margin-left: 4px;
  font-size: 11px;
  color: var(--ts-fg-muted);
}

.ts-speed-input {
  width: 58px;
  text-align: center;
}

/* ----- Center: scrubbable axis ----- */
.ts-axis {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: stretch;
  padding: 8px 10px 4px;
}

.ts-axis-track {
  position: relative;
  flex: 1 1 auto;
  cursor: pointer;
}

.ts-axis-track::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 20px;
  height: 1px;
  background: var(--ts-border);
}

.ts-ticks {
  position: absolute;
  inset: 0;
}

.ts-tick {
  position: absolute;
  bottom: 20px;
  width: 1px;
  height: 14px;
  background: var(--ts-tick);
  transform: translateX(-0.5px);
}

.ts-tick-major {
  width: 2px;
  height: 20px;
  background: var(--ts-fg-strong);
  transform: translateX(-1px);
}

.ts-tick-label {
  position: absolute;
  /* Anchor to the tick's baseline edge (constant) so the label sits below the
   * ticks regardless of tick height, instead of being overlapped by tall ticks. */
  bottom: -17px;
  left: 0;
  transform: translateX(-50%);
  font-size: 10px;
  color: var(--ts-fg-muted);
  white-space: nowrap;
}

.ts-marker {
  position: absolute;
  top: 0;
  bottom: 18px;
  width: 2px;
  background: var(--ts-marker);
  transform: translateX(-1px);
  pointer-events: none;
  z-index: 2;
}

/* Downward triangle at the top of the marker (the pointer). */
.ts-marker-knob {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 7px solid var(--ts-marker);
}

/* Current-date label, rendered beneath the pointer and riding with it. */
.ts-marker-label {
  position: absolute;
  top: 9px;
  left: 0;
  transform: translateX(-50%);
  padding: 1px 6px;
  background: var(--ts-marker);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.3px;
  line-height: 1.4;
  white-space: nowrap;
  border-radius: 3px;
  pointer-events: none;
}

/* "No data for this date" badge, riding beneath the date label on the marker.
 * Hidden until the current date's source reports it has no data. A warm red
 * reads on both the light and dark map backgrounds the dock floats over. */
.ts-no-data {
  position: absolute;
  top: 30px;
  left: 0;
  transform: translateX(-50%);
  padding: 1px 6px;
  background: #dc2626;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.3px;
  line-height: 1.4;
  white-space: nowrap;
  border-radius: 3px;
  pointer-events: none;
  display: none;
}

.ts-no-data.ts-visible {
  display: block;
}

/* ----- Right cluster: pills + add-data ----- */
.ts-right {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border-left: 1px solid var(--ts-border);
}

.ts-pills {
  display: flex;
  gap: 3px;
}

.ts-pill {
  width: 24px;
  height: 24px;
  padding: 0;
  border-radius: 12px;
  border: 1px solid var(--ts-btn-border);
  background: var(--ts-btn-bg);
  color: var(--ts-fg);
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease;
}

.ts-pill:hover {
  background: var(--ts-btn-hover-bg);
  border-color: var(--ts-btn-hover-border);
}

.ts-pill.ts-active {
  background: var(--ts-accent);
  border-color: var(--ts-accent-hover);
  color: #fff;
}

.ts-add-data {
  white-space: nowrap;
}

/* Hide-timeline button. */
.ts-collapse-btn {
  width: 28px;
  height: 24px;
  padding: 0;
  font-size: 11px;
}

/* ----- Layers popover ----- */
/* Static so the popover anchors to .ts-right (full dock height) and floats
 * clearly above the whole dock rather than the small button. */
.ts-layers {
  position: static;
}

.ts-popover {
  position: absolute;
  right: 12px;
  bottom: calc(100% + 8px);
  width: 300px;
  min-width: 240px;
  max-width: 640px;
  display: none;
  background: var(--ts-bg);
  border: 1px solid var(--ts-border);
  border-radius: 6px;
  box-shadow: 0 2px 14px var(--ts-shadow);
  z-index: 5;
}

.ts-layers.ts-open .ts-popover {
  display: block;
}

/* Scrollable content area, kept separate from the popover so the resize grip
 * (a direct child of the popover) does not scroll away with the content. */
.ts-popover-scroll {
  max-height: 60vh;
  overflow-y: auto;
  padding: 10px;
}

/* Drag handle for resizing the popover width. Sits on the free-to-grow edge. */
.ts-resize-grip {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 10px;
  cursor: ew-resize;
  z-index: 6;
  touch-action: none;
}

.ts-resize-grip.ts-grip-left {
  left: -2px;
}

.ts-resize-grip.ts-grip-right {
  right: -2px;
}

/* Subtle visual affordance: a vertical accent line that brightens on hover. */
.ts-resize-grip::before {
  content: '';
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 3px;
  width: 3px;
  height: 32px;
  border-radius: 3px;
  background: var(--ts-border);
  transition: background 0.15s ease;
}

.ts-resize-grip:hover::before {
  background: var(--ts-accent);
}

/* Drag handle for resizing the popover height. Sits on the top edge (the
 * popover is anchored at its bottom and grows upward), inset from the corners so
 * the width grips keep those edges. */
.ts-resize-grip-v {
  position: absolute;
  top: -2px;
  left: 12px;
  right: 12px;
  height: 10px;
  cursor: ns-resize;
  z-index: 6;
  touch-action: none;
}

/* Subtle visual affordance: a horizontal accent line that brightens on hover. */
.ts-resize-grip-v::before {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 3px;
  height: 3px;
  width: 32px;
  border-radius: 3px;
  background: var(--ts-border);
  transition: background 0.15s ease;
}

.ts-resize-grip-v:hover::before {
  background: var(--ts-accent);
}

/* While dragging, suppress text selection and force the resize cursor. */
body.ts-resizing {
  cursor: ew-resize;
  user-select: none;
}

body.ts-resizing-v {
  cursor: ns-resize;
  user-select: none;
}

.ts-layer-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 10px;
}

.ts-layer-empty {
  padding: 10px;
  text-align: center;
  font-size: 12px;
  color: var(--ts-fg-subtle);
}

.ts-layer-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 8px;
  border: 1px solid var(--ts-border);
  border-radius: 4px;
}

.ts-layer-head {
  display: flex;
  align-items: center;
  gap: 6px;
}

.ts-layer-visible {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  flex: 0 0 auto;
}

.ts-layer-visible input {
  accent-color: var(--ts-accent);
  cursor: pointer;
  margin: 0;
}

.ts-layer-name {
  font-weight: 600;
  font-size: 12px;
  color: var(--ts-fg);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1 1 auto;
}

.ts-layer-remove {
  border: none;
  background: transparent;
  color: var(--ts-fg-subtle);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  padding: 0 2px;
}

.ts-layer-remove:hover {
  color: var(--ts-fg);
}

.ts-opacity {
  width: 100%;
  accent-color: var(--ts-accent);
  cursor: pointer;
}

.ts-cog-controls {
  display: flex;
  gap: 4px;
}

.ts-cog-controls input {
  min-width: 0;
  flex: 1 1 0;
}

/* Keep the colormap dropdown from dominating the row; let it share space with
 * the rescale/nodata inputs (a touch wider so its labels stay readable). */
.ts-cog-controls .ts-cmap {
  min-width: 0;
  flex: 2 1 0;
}

/* ----- Settings ----- */
.ts-settings-section {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--ts-border);
}

/* Checkbox rows lay the box and label side by side (the compound selector wins
 * over the `.ts-field` column default regardless of source order). */
.ts-field.ts-field-check {
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
}

.ts-field.ts-field-check input {
  flex: 0 0 auto;
  accent-color: var(--ts-accent);
  cursor: pointer;
}

/* Inline group of granularity checkboxes (H/D/M/Y). */
.ts-check-group {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.ts-check-group label {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: var(--ts-fg-muted);
  cursor: pointer;
}

.ts-check-group input {
  accent-color: var(--ts-accent);
  cursor: pointer;
}

/* ----- Layers ----- */
.ts-layers-section {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--ts-border);
}

/* "Layers" section heading above the layer list. */
.ts-layers-title {
  font-weight: 600;
  font-size: 12px;
  color: var(--ts-fg);
  margin-bottom: 6px;
}

/* ----- Add-data form ----- */
.ts-add-form {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 10px;
  border-top: 1px solid var(--ts-border);
}

.ts-form-title {
  font-weight: 600;
  font-size: 12px;
  color: var(--ts-fg);
}

.ts-form-fields {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ts-field {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 11px;
  color: var(--ts-fg-muted);
}

/* The explicit-dates list wraps across a few lines: a long series is far easier
 * to scan (and edit) than the same text scrolling sideways in a one-line input. */
.ts-field textarea.ts-dates {
  resize: vertical;
  min-height: 34px;
  line-height: 1.4;
  white-space: pre-wrap;
}

/* Result of a pasted date-list URL: how many dates it yielded, or why it failed.
 * Hidden until there is something to say, so the field stays compact. */
.ts-dates-status {
  display: none;
  margin-top: 3px;
  font-size: 10px;
  line-height: 1.3;
  color: var(--ts-fg-muted);
  overflow-wrap: anywhere;
}

.ts-dates-status.ts-visible {
  display: block;
}

.ts-dates-status.ts-error {
  color: var(--ts-danger);
}

.ts-add-submit {
  align-self: flex-start;
}

/* ----- Responsive ----- */
@media (max-width: 640px) {
  .maplibregl-time-slider-dock {
    height: auto;
    flex-wrap: wrap;
    align-items: center;
    row-gap: 2px;
    padding-bottom: 4px;
  }

  /* Axis gets its own full-width row on top. Its children are absolutely
   * positioned, so it needs an explicit min-height (room for the marker label,
   * ticks, and tick labels) or the row collapses and the slider is cut off. */
  .ts-axis {
    order: -1;
    flex: 1 1 100%;
    min-height: 56px;
    padding: 8px 12px 4px;
  }

  .ts-left {
    flex: 1 1 auto;
    border-right: none;
    padding: 2px 8px;
  }

  .ts-right {
    flex: 0 1 auto;
    flex-wrap: wrap;
    border-left: none;
    padding: 2px 8px;
  }

  /* Anchor the popover to the full-width dock (not the narrow, left-aligned
   * right cluster) so it spans the screen instead of overflowing off-screen. */
  .ts-right {
    position: static;
  }

  .ts-popover {
    left: 8px;
    right: 8px;
    width: auto;
    min-width: 0;
    max-width: none;
  }

  .ts-popover-scroll {
    max-height: 66vh;
  }

  /* The full-width mobile popover spans the screen, so width resizing does not
   * apply; hide the grip to avoid an unusable handle. */
  .ts-resize-grip {
    display: none;
  }
}
/*$vite$:1*//* USGS LiDAR Control Styles */

/* ==========================================================================
   Theme variables

   Colors are defined as CSS custom properties so the control adapts to light
   and dark themes. The defaults below are the light theme. A dark theme is
   applied automatically via prefers-color-scheme, or explicitly by adding the
   `usgs-lidar-theme-dark` / `usgs-lidar-theme-light` class to the control and
   panel elements (driven by the `theme` option).
   ========================================================================== */
.usgs-lidar-control,
.usgs-lidar-control-panel {
  --ul-surface: #ffffff;
  --ul-surface-2: #f8f9fa;
  --ul-border: #e9ecef;
  --ul-border-2: #dee2e6;
  --ul-border-subtle: #f1f3f5;
  --ul-text: #333333;
  --ul-text-2: #555555;
  --ul-text-3: #666666;
  --ul-text-muted: #868e96;
  --ul-accent: #4a90d9;
  --ul-accent-hover: #3a7fc8;
  --ul-info-bg: #e7f5ff;
  --ul-info-text: #1864ab;
  --ul-danger: #dc3545;
  --ul-danger-hover: #c82333;
  --ul-danger-bg: #fff5f5;
  --ul-secondary-bg: #e9ecef;
  --ul-secondary-hover: #dee2e6;
  --ul-secondary-text: #495057;
  --ul-success-bg: #d3f9d8;
  --ul-success-text: #2b8a3e;
  --ul-track: #e9ecef;
  --ul-icon: #333333;
  --ul-overlay-hover: rgba(0, 0, 0, 0.05);
  --ul-overlay-hover-strong: rgba(0, 0, 0, 0.08);
  --ul-swatch-border: rgba(0, 0, 0, 0.1);
  --ul-shadow: rgba(0, 0, 0, 0.15);
  --ul-shadow-strong: rgba(0, 0, 0, 0.2);
}

/* Dark theme via OS preference (unless explicitly forced to light) */
@media (prefers-color-scheme: dark) {
  .usgs-lidar-control:not(.usgs-lidar-theme-light),
  .usgs-lidar-control-panel:not(.usgs-lidar-theme-light) {
    --ul-surface: #1f2329;
    --ul-surface-2: #2a2f37;
    --ul-border: #3a4048;
    --ul-border-2: #454c56;
    --ul-border-subtle: #2f343c;
    --ul-text: #e6e8eb;
    --ul-text-2: #c2c7cf;
    --ul-text-3: #aab0b8;
    --ul-text-muted: #8a9099;
    --ul-accent: #5b9bd5;
    --ul-accent-hover: #6faae0;
    --ul-info-bg: #1a2733;
    --ul-info-text: #9ec9f0;
    --ul-danger: #f06a73;
    --ul-danger-hover: #ff8088;
    --ul-danger-bg: #3a2326;
    --ul-secondary-bg: #353b44;
    --ul-secondary-hover: #404750;
    --ul-secondary-text: #c2c7cf;
    --ul-success-bg: #1e3a26;
    --ul-success-text: #6cd98a;
    --ul-track: #3a4048;
    --ul-icon: #e6e8eb;
    --ul-overlay-hover: rgba(255, 255, 255, 0.08);
    --ul-overlay-hover-strong: rgba(255, 255, 255, 0.12);
    --ul-swatch-border: rgba(255, 255, 255, 0.15);
    --ul-shadow: rgba(0, 0, 0, 0.5);
    --ul-shadow-strong: rgba(0, 0, 0, 0.6);
  }
}

/* Dark theme forced explicitly */
.usgs-lidar-control.usgs-lidar-theme-dark,
.usgs-lidar-control-panel.usgs-lidar-theme-dark {
  --ul-surface: #1f2329;
  --ul-surface-2: #2a2f37;
  --ul-border: #3a4048;
  --ul-border-2: #454c56;
  --ul-border-subtle: #2f343c;
  --ul-text: #e6e8eb;
  --ul-text-2: #c2c7cf;
  --ul-text-3: #aab0b8;
  --ul-text-muted: #8a9099;
  --ul-accent: #5b9bd5;
  --ul-accent-hover: #6faae0;
  --ul-info-bg: #1a2733;
  --ul-info-text: #9ec9f0;
  --ul-danger: #f06a73;
  --ul-danger-hover: #ff8088;
  --ul-danger-bg: #3a2326;
  --ul-secondary-bg: #353b44;
  --ul-secondary-hover: #404750;
  --ul-secondary-text: #c2c7cf;
  --ul-success-bg: #1e3a26;
  --ul-success-text: #6cd98a;
  --ul-track: #3a4048;
  --ul-icon: #e6e8eb;
  --ul-overlay-hover: rgba(255, 255, 255, 0.08);
  --ul-overlay-hover-strong: rgba(255, 255, 255, 0.12);
  --ul-swatch-border: rgba(255, 255, 255, 0.15);
  --ul-shadow: rgba(0, 0, 0, 0.5);
  --ul-shadow-strong: rgba(0, 0, 0, 0.6);
}

/* Control button.
   The compound selector raises specificity above MapLibre's own
   `.maplibregl-ctrl-group { background: #fff }` so the dark surface wins. */
.maplibregl-ctrl-group.usgs-lidar-control {
  background: var(--ul-surface);
  border-radius: 4px;
}

.usgs-lidar-control-toggle {
  width: 29px;
  height: 29px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.usgs-lidar-control-toggle:hover {
  background-color: var(--ul-overlay-hover);
}

.usgs-lidar-control-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}

.usgs-lidar-control-icon svg {
  width: 22px;
  height: 22px;
  stroke: var(--ul-icon);
}

/* Panel */
.usgs-lidar-control-panel {
  position: absolute;
  background: var(--ul-surface);
  color: var(--ul-text);
  border-radius: 8px;
  box-shadow: 0 4px 20px var(--ul-shadow);
  display: none;
  flex-direction: column;
  overflow: hidden;
  z-index: 10;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 13px;
}

.usgs-lidar-control-panel.expanded {
  display: flex;
}

/* Header */
.usgs-lidar-control-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: var(--ul-surface-2);
  border-bottom: 1px solid var(--ul-border);
  flex-shrink: 0;
}

.usgs-lidar-control-title {
  font-weight: 600;
  color: var(--ul-text);
  font-size: 14px;
}

.usgs-lidar-control-close {
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 20px;
  color: var(--ul-text-3);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
}

.usgs-lidar-control-close:hover {
  background-color: var(--ul-overlay-hover-strong);
  color: var(--ul-text);
}

/* Panel content */
.usgs-lidar-panel-content {
  padding: 0;
  overflow-y: auto;
  overflow-x: hidden;
  flex: 1 1 auto;
  min-height: 0;
}

/* Sections */
.usgs-lidar-section {
  border-bottom: 1px solid var(--ul-border);
}

.usgs-lidar-section:last-child {
  border-bottom: none;
}

.usgs-lidar-section-header {
  padding: 10px 16px;
  font-weight: 600;
  color: var(--ul-text-2);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  background: var(--ul-surface-2);
}

.usgs-lidar-section-header span {
  font-weight: 400;
  color: var(--ul-text-muted);
  margin-left: 4px;
}

.usgs-lidar-section-content {
  padding: 12px 16px;
}

/* Buttons */
.usgs-lidar-button-row {
  display: flex;
  gap: 8px;
  margin-bottom: 8px;
}

.usgs-lidar-button-row:last-child {
  margin-bottom: 0;
}

.usgs-lidar-btn {
  flex: 1;
  padding: 8px 12px;
  border: none;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.15s, opacity 0.15s;
}

.usgs-lidar-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.usgs-lidar-btn-primary {
  background: var(--ul-accent);
  color: #ffffff;
}

.usgs-lidar-btn-primary:hover:not(:disabled) {
  background: var(--ul-accent-hover);
}

.usgs-lidar-btn-secondary {
  background: var(--ul-secondary-bg);
  color: var(--ul-secondary-text);
}

.usgs-lidar-btn-secondary:hover:not(:disabled) {
  background: var(--ul-secondary-hover);
}

.usgs-lidar-btn-danger {
  background: var(--ul-danger);
  color: #ffffff;
}

.usgs-lidar-btn-danger:hover:not(:disabled) {
  background: var(--ul-danger-hover);
}

.usgs-lidar-btn-full {
  flex: 1;
  width: 100%;
}

.usgs-lidar-btn-icon {
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid var(--ul-border-2);
  border-radius: 4px;
  background: var(--ul-surface);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  color: var(--ul-secondary-text);
  transition: background-color 0.15s;
  flex-shrink: 0;
}

.usgs-lidar-btn-icon:hover {
  background: var(--ul-surface-2);
}

.usgs-lidar-btn-remove {
  color: var(--ul-danger);
}

.usgs-lidar-btn-remove:hover {
  background: var(--ul-danger-bg);
}

/* Bbox info */
.usgs-lidar-bbox-info {
  padding: 8px 10px;
  background: var(--ul-info-bg);
  border-radius: 4px;
  font-size: 12px;
  color: var(--ul-info-text);
  margin-bottom: 8px;
  word-break: break-all;
}

/* Loading */
.usgs-lidar-loading {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  color: var(--ul-text-3);
  font-size: 13px;
}

.usgs-lidar-spinner {
  width: 16px;
  height: 16px;
  border: 2px solid var(--ul-border);
  border-top-color: var(--ul-accent);
  border-radius: 50%;
  animation: usgs-lidar-spin 0.8s linear infinite;
}

@keyframes usgs-lidar-spin {
  to {
    transform: rotate(360deg);
  }
}

/* Error */
.usgs-lidar-error {
  padding: 8px 10px;
  background: var(--ul-danger-bg);
  border-radius: 4px;
  color: var(--ul-danger);
  font-size: 12px;
}

/* Results list */
.usgs-lidar-results-list {
  max-height: 200px;
  overflow-y: auto;
  margin-bottom: 8px;
  border: 1px solid var(--ul-border);
  border-radius: 6px;
}

.usgs-lidar-results-list:empty {
  display: none;
}

.usgs-lidar-result-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-bottom: 1px solid var(--ul-border-subtle);
  transition: background-color 0.15s;
}

.usgs-lidar-result-item:last-child {
  border-bottom: none;
}

.usgs-lidar-result-item:hover {
  background: var(--ul-surface-2);
}

.usgs-lidar-result-item.selected {
  background: var(--ul-info-bg);
}

.usgs-lidar-result-item.loaded {
  opacity: 0.7;
}

.usgs-lidar-result-item input[type="checkbox"] {
  width: 16px;
  height: 16px;
  cursor: pointer;
  flex-shrink: 0;
}

.usgs-lidar-result-info {
  flex: 1;
  min-width: 0;
}

.usgs-lidar-result-name {
  font-size: 12px;
  font-weight: 500;
  color: var(--ul-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.usgs-lidar-result-meta {
  font-size: 11px;
  color: var(--ul-text-muted);
}

.usgs-lidar-loaded-badge {
  font-size: 10px;
  padding: 2px 6px;
  background: var(--ul-success-bg);
  color: var(--ul-success-text);
  border-radius: 4px;
  flex-shrink: 0;
}

/* Loaded list */
.usgs-lidar-loaded-list {
  margin-bottom: 10px;
}

.usgs-lidar-loaded-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  border-bottom: 1px solid var(--ul-border-subtle);
}

.usgs-lidar-loaded-item:last-child {
  border-bottom: none;
}

.usgs-lidar-loaded-name {
  flex: 1;
  font-size: 12px;
  color: var(--ul-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.usgs-lidar-loaded-points {
  font-size: 11px;
  color: var(--ul-text-muted);
  flex-shrink: 0;
}

/* Visualization controls */
.usgs-lidar-control-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.usgs-lidar-control-row:last-child {
  margin-bottom: 0;
}

.usgs-lidar-control-row label {
  width: 70px;
  font-size: 12px;
  color: var(--ul-text-2);
  flex-shrink: 0;
}

.usgs-lidar-select {
  flex: 1;
  padding: 6px 8px;
  border: 1px solid var(--ul-border-2);
  border-radius: 4px;
  font-size: 12px;
  background: var(--ul-surface);
  color: var(--ul-text);
  cursor: pointer;
}

.usgs-lidar-select:focus {
  outline: none;
  border-color: var(--ul-accent);
}

.usgs-lidar-slider {
  flex: 1;
  height: 4px;
  -webkit-appearance: none;
  appearance: none;
  background: var(--ul-track);
  border-radius: 2px;
  outline: none;
}

.usgs-lidar-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 14px;
  height: 14px;
  background: var(--ul-accent);
  border-radius: 50%;
  cursor: pointer;
}

.usgs-lidar-slider::-moz-range-thumb {
  width: 14px;
  height: 14px;
  background: var(--ul-accent);
  border-radius: 50%;
  cursor: pointer;
  border: none;
}

.usgs-lidar-slider-value {
  width: 30px;
  text-align: right;
  font-size: 12px;
  color: var(--ul-text-3);
  flex-shrink: 0;
}

.usgs-lidar-slider-value-wide {
  width: 55px;
}

/* Notifications */
.usgs-lidar-notification {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  padding: 8px 16px;
  background: var(--ul-success-text);
  color: #ffffff;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 500;
  box-shadow: 0 2px 10px var(--ul-shadow-strong);
  z-index: 10;
  animation: usgs-lidar-notification-in 0.2s ease-out;
}

.usgs-lidar-notification.error {
  background: var(--ul-danger);
}

@keyframes usgs-lidar-notification-in {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}

/* Checkbox rows */
.usgs-lidar-checkbox-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  cursor: pointer;
}

.usgs-lidar-checkbox-row input[type="checkbox"] {
  width: 16px;
  height: 16px;
  cursor: pointer;
  flex-shrink: 0;
}

.usgs-lidar-checkbox-row label {
  font-size: 12px;
  color: var(--ul-text-2);
  cursor: pointer;
  flex: 1;
}

.usgs-lidar-checkbox-group {
  margin-bottom: 12px;
}

/* Dual range slider row */
.usgs-lidar-dual-range-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 8px;
  margin-bottom: 12px;
}

.usgs-lidar-dual-range-row label {
  width: 70px;
  font-size: 12px;
  color: var(--ul-text-2);
  flex-shrink: 0;
}

.usgs-lidar-dual-range-slider {
  flex: 1;
  position: relative;
  height: 20px;
}

.usgs-lidar-dual-range-track {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 4px;
  transform: translateY(-50%);
  background: var(--ul-track);
  border-radius: 2px;
  pointer-events: none;
}

.usgs-lidar-dual-range-fill {
  position: absolute;
  top: 50%;
  height: 4px;
  transform: translateY(-50%);
  background: var(--ul-accent);
  border-radius: 2px;
  pointer-events: none;
  left: 0;
  right: 0;
}

.usgs-lidar-dual-range-input {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  pointer-events: none;
  margin: 0;
  padding: 0;
}

.usgs-lidar-dual-range-input::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 16px;
  height: 16px;
  background: var(--ul-accent);
  border-radius: 50%;
  cursor: pointer;
  pointer-events: auto;
  border: 2px solid var(--ul-surface);
  box-shadow: 0 1px 3px var(--ul-shadow-strong);
}

.usgs-lidar-dual-range-input::-moz-range-thumb {
  width: 16px;
  height: 16px;
  background: var(--ul-accent);
  border-radius: 50%;
  cursor: pointer;
  pointer-events: auto;
  border: 2px solid var(--ul-surface);
  box-shadow: 0 1px 3px var(--ul-shadow-strong);
}

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

.usgs-lidar-dual-range-input::-moz-range-track {
  height: 4px;
  background: transparent;
}

.usgs-lidar-dual-range-value {
  width: 75px;
  text-align: right;
  font-size: 12px;
  color: var(--ul-text-3);
  flex-shrink: 0;
}

/* Classification legend */
.usgs-lidar-classification-legend {
  margin-bottom: 12px;
  border: 1px solid var(--ul-border);
  border-radius: 6px;
  overflow: hidden;
}

.usgs-lidar-classification-header {
  display: flex;
  gap: 6px;
  padding: 8px 10px;
  background: var(--ul-surface-2);
  border-bottom: 1px solid var(--ul-border);
}

.usgs-lidar-btn-small {
  padding: 4px 8px;
  border: 1px solid var(--ul-border-2);
  border-radius: 4px;
  background: var(--ul-surface);
  cursor: pointer;
  font-size: 11px;
  color: var(--ul-secondary-text);
  transition: background-color 0.15s;
}

.usgs-lidar-btn-small:hover {
  background: var(--ul-surface-2);
}

.usgs-lidar-classification-list {
  max-height: 180px;
  overflow-y: auto;
  padding: 4px 0;
}

.usgs-lidar-classification-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  cursor: pointer;
  transition: background-color 0.15s;
}

.usgs-lidar-classification-item:hover {
  background: var(--ul-surface-2);
}

.usgs-lidar-classification-item input[type="checkbox"] {
  width: 14px;
  height: 14px;
  cursor: pointer;
  flex-shrink: 0;
}

.usgs-lidar-classification-swatch {
  width: 16px;
  height: 16px;
  border-radius: 3px;
  flex-shrink: 0;
  border: 1px solid var(--ul-swatch-border);
}

.usgs-lidar-classification-label {
  font-size: 12px;
  color: var(--ul-text);
  cursor: pointer;
  flex: 1;
}

.usgs-lidar-classification-empty {
  padding: 12px 10px;
  text-align: center;
  color: var(--ul-text-muted);
  font-size: 12px;
  font-style: italic;
}

/* Data source toggle */
.usgs-lidar-source-toggle {
  display: flex;
  gap: 16px;
  margin-bottom: 12px;
  padding: 8px 0;
  border-bottom: 1px solid var(--ul-border);
}

.usgs-lidar-source-option {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--ul-text-2);
  cursor: pointer;
}

.usgs-lidar-source-option input[type="radio"] {
  width: 14px;
  height: 14px;
  cursor: pointer;
  margin: 0;
}

.usgs-lidar-source-option:hover {
  color: var(--ul-text);
}

/* Colormap section */
.usgs-lidar-colormap-section {
  margin-bottom: 12px;
  padding: 10px;
  background: var(--ul-surface-2);
  border-radius: 6px;
  border: 1px solid var(--ul-border);
}

/* Colorbar container with min/max labels */
.usgs-lidar-colorbar-container {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  margin-bottom: 8px;
}

.usgs-lidar-colorbar-canvas {
  flex: 1;
  height: 16px;
  border-radius: 4px;
  border: 1px solid var(--ul-border);
}

.usgs-lidar-colorbar-label {
  font-size: 11px;
  color: var(--ul-text-3);
  min-width: 40px;
}

.usgs-lidar-colorbar-min {
  text-align: left;
}

.usgs-lidar-colorbar-max {
  text-align: right;
}

/* Color range section */
.usgs-lidar-color-range-section {
  margin-top: 10px;
}

.usgs-lidar-color-range-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

.usgs-lidar-color-range-header span {
  font-size: 12px;
  font-weight: 500;
  color: var(--ul-text-2);
}

/* Color range mode radio buttons */
.usgs-lidar-color-range-mode {
  display: flex;
  gap: 16px;
  margin-bottom: 8px;
}

.usgs-lidar-radio-option {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--ul-text-2);
  cursor: pointer;
}

.usgs-lidar-radio-option input[type="radio"] {
  width: 14px;
  height: 14px;
  cursor: pointer;
  margin: 0;
}

.usgs-lidar-radio-option:hover {
  color: var(--ul-text);
}

/* Info button */
.usgs-lidar-btn-info {
  color: var(--ul-accent);
}

.usgs-lidar-btn-info:hover {
  background: var(--ul-info-bg);
}

/* Collapsible section header */
.usgs-lidar-section-collapsible {
  display: flex;
  align-items: center;
  gap: 6px;
}

.usgs-lidar-section-toggle {
  font-size: 10px;
  color: var(--ul-text-muted);
  transition: transform 0.15s;
}

.usgs-lidar-section-body {
  padding: 0;
}

/* Cross-section section */
.usgs-lidar-crosssection-section .usgs-lidar-section-body {
  padding: 12px 16px;
}

/* Cross-section panel container - ensure proper styling for embedded panel */
.usgs-lidar-crosssection-section .lidar-crosssection-panel {
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}

/* ==========================================================================
   Resize handles (bottom-left / bottom-right corners)
   ========================================================================== */
.usgs-lidar-resize-handle {
  position: absolute;
  bottom: 0;
  width: 16px;
  height: 16px;
  z-index: 12;
  touch-action: none;
}

.usgs-lidar-resize-handle::after {
  content: '';
  position: absolute;
  bottom: 3px;
  width: 7px;
  height: 7px;
  border-color: var(--ul-text-muted);
  border-style: solid;
  opacity: 0.6;
  transition: opacity 0.15s;
}

.usgs-lidar-resize-handle:hover::after {
  opacity: 1;
}

.usgs-lidar-resize-handle-br {
  right: 0;
  cursor: nwse-resize;
}

.usgs-lidar-resize-handle-br::after {
  right: 3px;
  border-width: 0 2px 2px 0;
}

.usgs-lidar-resize-handle-bl {
  left: 0;
  cursor: nesw-resize;
}

.usgs-lidar-resize-handle-bl::after {
  left: 3px;
  border-width: 0 0 2px 2px;
}

/* Disable text selection while actively resizing */
.usgs-lidar-control-panel.usgs-lidar-resizing {
  user-select: none;
}
/*$vite$:1*//**
 * MapLibre GL Vector Control Styles
 *
 * Colors are driven by custom properties with light defaults and a
 * prefers-color-scheme dark override, so the panel renders properly in
 * both themes. The variables are defined on both roots because the
 * panel element is appended to the map container, outside the control.
 */

.vector-control,
.vector-control-panel,
.vector-control-popup,
.vector-control-layer-picker {
  --vc-bg: #fff;
  --vc-text: #333;
  --vc-text-strong: #1f2a37;
  --vc-text-soft: #475467;
  --vc-muted: #98a2b3;
  --vc-border: #e0e0e0;
  --vc-border-soft: #e9edf2;
  --vc-item-bg: #fafbfc;
  --vc-hover: rgba(0, 0, 0, 0.05);
  --vc-accent: #4a90d9;
  --vc-accent-hover: #3a7bc8;
  --vc-accent-soft: rgba(74, 144, 217, 0.06);
  --vc-accent-text: #fff;
  --vc-error: #d9534a;
  --vc-input-bg: #fff;
  --vc-input-border: #d0d5dd;
  --vc-scrollbar: #ccc;
  --vc-scrollbar-hover: #aaa;
  --vc-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
}

@media (prefers-color-scheme: dark) {
  .vector-control,
  .vector-control-panel,
  .vector-control-popup,
  .vector-control-layer-picker {
    --vc-bg: #1f2937;
    --vc-text: #e5e7eb;
    --vc-text-strong: #f3f4f6;
    --vc-text-soft: #cbd5e1;
    --vc-muted: #8b96a5;
    --vc-border: #374151;
    --vc-border-soft: #2c3543;
    --vc-item-bg: #273141;
    --vc-hover: rgba(255, 255, 255, 0.08);
    --vc-accent: #5ba0e8;
    --vc-accent-hover: #6fb0f2;
    --vc-accent-soft: rgba(91, 160, 232, 0.12);
    --vc-accent-text: #fff;
    --vc-error: #f08c85;
    --vc-input-bg: #111827;
    --vc-input-border: #4b5563;
    --vc-scrollbar: #4b5563;
    --vc-scrollbar-hover: #6b7280;
    --vc-shadow: 0 0 0 2px rgba(0, 0, 0, 0.35);
  }
}

/* Container - matches maplibregl-ctrl styling.
   The doubled class selector outranks maplibre-gl's own
   `.maplibregl-ctrl-group { background: #fff }` regardless of
   stylesheet order, so the button follows the system theme too -
   otherwise dark mode renders a light icon on a white button. */
.vector-control,
.vector-control.maplibregl-ctrl-group {
  background: var(--vc-bg);
  border-radius: 4px;
  box-shadow: var(--vc-shadow);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* Toggle button - 29x29 to match navigation control */
.vector-control-toggle {
  background: none;
  border: none;
  padding: 0;
  width: 29px;
  height: 29px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  outline: none;
  color: var(--vc-text-strong);
}

.vector-control-toggle:hover {
  background-color: var(--vc-hover);
}

.vector-control-toggle .vector-control-icon {
  width: 100%;
  height: 100%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.vector-control-toggle .vector-control-icon svg {
  width: 22px;
  height: 22px;
  display: block;
  stroke: currentcolor;
  fill: none;
}

/* Panel - positioned dynamically by JavaScript for floating behavior.
   A flex column so the header stays put and the content scrolls when
   the JS-computed max-height kicks in on small screens. */
.vector-control-panel {
  position: absolute;
  /* Position and max-height/max-width are set by _updatePanelPosition() */
  background: var(--vc-bg);
  border-radius: 4px;
  box-shadow: var(--vc-shadow);
  min-width: 240px;
  max-width: 420px;
  max-height: 500px;
  z-index: 1000;
  padding: 8px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--vc-text);
  display: none;
  flex-direction: column;
  box-sizing: border-box;
}

.vector-control-panel.expanded {
  display: flex;
}

/* Resize handles (only rendered when the `resizable` option is set) */
.vector-control-resize-handle {
  position: absolute;
  bottom: 0;
  width: 16px;
  height: 16px;
  z-index: 1;
  touch-action: none;
}

.vector-control-resize-handle::after {
  content: '';
  position: absolute;
  bottom: 3px;
  width: 7px;
  height: 7px;
  border-color: var(--vc-muted);
  border-style: solid;
  opacity: 0.7;
}

.vector-control-resize-handle:hover::after {
  border-color: var(--vc-accent);
  opacity: 1;
}

.vector-control-resize-right {
  right: 0;
  cursor: nwse-resize;
}

.vector-control-resize-right::after {
  right: 3px;
  border-width: 0 2px 2px 0;
}

.vector-control-resize-left {
  left: 0;
  cursor: nesw-resize;
}

.vector-control-resize-left::after {
  left: 3px;
  border-width: 0 0 2px 2px;
}

/* Panel header */
.vector-control-header {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-weight: 600;
  color: var(--vc-text);
  padding: 4px 0 8px 0;
  border-bottom: 1px solid var(--vc-border);
  margin-bottom: 8px;
}

.vector-control-title {
  flex: 1 1 auto;
  font-size: 13px;
}

.vector-control-close {
  width: 20px;
  height: 20px;
  border: none;
  background: transparent;
  color: var(--vc-muted);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  transition: color 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.vector-control-close:hover {
  color: var(--vc-text);
}

/* Content - the scrolling region of the panel */
.vector-control-content {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}

/* Only while the content overflows: clear room for the (overlay) scrollbar
   so it does not paint over the inputs/buttons. Toggled from JS so the
   right margin matches the left whenever there is no scrollbar. */
.vector-control-content.vector-control-has-scrollbar {
  padding-right: 8px;
}

/* Scrollbar styling */
.vector-control-content::-webkit-scrollbar {
  width: 6px;
}

.vector-control-content::-webkit-scrollbar-track {
  background: transparent;
}

.vector-control-content::-webkit-scrollbar-thumb {
  background: var(--vc-scrollbar);
  border-radius: 3px;
}

.vector-control-content::-webkit-scrollbar-thumb:hover {
  background: var(--vc-scrollbar-hover);
}

/* Form elements */
.vector-control-group {
  margin-bottom: 12px;
}

.vector-control-group:last-child {
  margin-bottom: 0;
}

.vector-control-label {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  font-weight: 500;
  color: var(--vc-text-soft);
}

.vector-control-input {
  width: 100%;
  padding: 8px 10px;
  font-size: 14px;
  border: 1px solid var(--vc-input-border);
  border-radius: 4px;
  outline: none;
  background: var(--vc-input-bg);
  color: var(--vc-text);
  transition: border-color 0.15s, box-shadow 0.15s;
  box-sizing: border-box;
}

.vector-control-input::placeholder {
  color: var(--vc-muted);
}

.vector-control-input:focus {
  border-color: var(--vc-accent);
  box-shadow: 0 0 0 3px var(--vc-accent-soft);
}

.vector-control-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 500;
  color: var(--vc-accent-text);
  background: var(--vc-accent);
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.15s;
}

.vector-control-button:hover {
  background: var(--vc-accent-hover);
}

.vector-control-button:focus {
  outline: 2px solid var(--vc-accent);
  outline-offset: 2px;
}

.vector-control-button:disabled {
  background: var(--vc-muted);
  cursor: not-allowed;
}

/* Utility classes */
.vector-control-flex {
  display: flex;
  gap: 8px;
}

.vector-control-flex-col {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.vector-control-divider {
  height: 1px;
  background: var(--vc-border);
  margin: 12px 0;
  flex: 0 0 auto;
}

/* ------------------------------------------------------------------ */
/* Vector data UI                                                      */
/* ------------------------------------------------------------------ */

/* Drop zone */
.vector-control-dropzone {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 10px;
  border: 1.5px dashed var(--vc-input-border);
  border-radius: 6px;
  color: var(--vc-text-soft);
  font-size: 12px;
  cursor: pointer;
  transition: border-color 0.15s, background-color 0.15s, color 0.15s;
  margin-bottom: 8px;
  user-select: none;
}

.vector-control-dropzone:hover,
.vector-control-dropzone.dragover {
  border-color: var(--vc-accent);
  background: var(--vc-accent-soft);
  color: var(--vc-accent);
}

.vector-control-svg-icon {
  display: inline-flex;
  align-items: center;
  line-height: 0;
}

/* URL row */
.vector-control-url-row {
  margin-bottom: 8px;
}

.vector-control-url-row .vector-control-input {
  flex: 1 1 auto;
  min-width: 0;
  padding: 6px 8px;
  font-size: 12px;
}

.vector-control-url-row .vector-control-button {
  flex: 0 0 auto;
  padding: 6px 12px;
  font-size: 12px;
}

/* Sample data dropdown - a custom (non-native) dropdown so the menu is
   fully themeable in dark mode. */
.vector-control-sample-row {
  position: relative;
  margin-bottom: 8px;
}

.vector-control-sample-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 8px;
  font-size: 12px;
  font-family: inherit;
  color: var(--vc-muted);
  background: var(--vc-input-bg);
  border: 1px solid var(--vc-input-border);
  border-radius: 4px;
  cursor: pointer;
  box-sizing: border-box;
  text-align: left;
}

.vector-control-sample-trigger:hover,
.vector-control-sample-trigger.open,
.vector-control-sample-trigger:focus-visible {
  outline: none;
  border-color: var(--vc-accent);
}

.vector-control-sample-trigger-label {
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vector-control-sample-trigger .vector-control-svg-icon {
  flex: 0 0 auto;
  display: flex;
}

.vector-control-sample-menu {
  position: absolute;
  top: calc(100% + 2px);
  left: 0;
  right: 0;
  z-index: 10;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 4px;
  background: var(--vc-bg);
  border: 1px solid var(--vc-border);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
  max-height: 220px;
  overflow-y: auto;
  box-sizing: border-box;
}

.vector-control-sample-menu[hidden] {
  display: none;
}

.vector-control-sample-option {
  width: 100%;
  padding: 6px 8px;
  font-size: 12px;
  font-family: inherit;
  text-align: left;
  color: var(--vc-text);
  background: none;
  border: none;
  border-radius: 3px;
  cursor: pointer;
}

.vector-control-sample-option:hover,
.vector-control-sample-option:focus-visible {
  outline: none;
  background: var(--vc-hover);
}

/* Streaming toggle */
.vector-control-stream-row {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: var(--vc-text-soft);
  margin-bottom: 8px;
  cursor: pointer;
  user-select: none;
}

/* Status line */
.vector-control-status {
  font-size: 11px;
  color: var(--vc-accent);
  padding: 4px 2px;
  overflow-wrap: break-word;
}

.vector-control-status.error {
  color: var(--vc-error);
}

/* Section title */
.vector-control-section-title {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--vc-muted);
  margin-bottom: 6px;
}

/* Layer list */
.vector-control-layer-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.vector-control-empty {
  font-size: 12px;
  color: var(--vc-muted);
  text-align: center;
  padding: 10px 0;
}

.vector-control-layer-item {
  border: 1px solid var(--vc-border-soft);
  border-radius: 6px;
  padding: 6px;
  background: var(--vc-item-bg);
}

.vector-control-layer-row {
  display: flex;
  align-items: center;
  gap: 6px;
}

.vector-control-layer-name-wrap {
  flex: 1 1 auto;
  min-width: 0;
  cursor: pointer;
}

.vector-control-layer-name {
  font-size: 12px;
  font-weight: 500;
  color: var(--vc-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.vector-control-layer-meta {
  font-size: 10px;
  color: var(--vc-muted);
}

.vector-control-layer-actions {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: 0 0 auto;
}

.vector-control-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border: none;
  border-radius: 4px;
  background: transparent;
  color: var(--vc-text-soft);
  cursor: pointer;
  padding: 0;
  transition: background-color 0.15s, color 0.15s;
}

.vector-control-icon-btn:hover {
  background: var(--vc-hover);
  color: var(--vc-text-strong);
}

/* Style editor */
.vector-control-style-editor {
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid var(--vc-border-soft);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.vector-control-style-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  color: var(--vc-text-soft);
}

.vector-control-style-label {
  flex: 0 0 44px;
}

.vector-control-color {
  width: 36px;
  height: 22px;
  padding: 0;
  border: 1px solid var(--vc-input-border);
  border-radius: 4px;
  background: none;
  cursor: pointer;
}

.vector-control-range {
  flex: 1 1 auto;
  min-width: 0;
  accent-color: var(--vc-accent);
}

.vector-control-range-value {
  flex: 0 0 28px;
  text-align: right;
  font-variant-numeric: tabular-nums;
  color: var(--vc-text-soft);
}

.vector-control-select {
  flex: 1 1 auto;
  font-size: 11px;
  padding: 3px 6px;
  border: 1px solid var(--vc-input-border);
  border-radius: 4px;
  background: var(--vc-input-bg);
  color: var(--vc-text);
}

/* Attribute picker popup */
.vector-control-popup {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 12px;
  color: var(--vc-text);
  max-height: 240px;
  overflow-y: auto;
}

.vector-control-popup-title {
  font-weight: 600;
  font-size: 12px;
  margin-bottom: 4px;
  color: var(--vc-text-strong);
}

.vector-control-popup-table {
  border-collapse: collapse;
  width: 100%;
}

.vector-control-popup-table td {
  padding: 2px 8px 2px 0;
  vertical-align: top;
  border-bottom: 1px solid var(--vc-border-soft);
  overflow-wrap: anywhere;
}

.vector-control-popup-table tr:last-child td {
  border-bottom: none;
}

.vector-control-popup-key {
  font-weight: 500;
  color: var(--vc-text-soft);
  white-space: nowrap;
}

.vector-control-popup-empty {
  color: var(--vc-muted);
}

/* Theme the MapLibre popup chrome around our content in dark mode */
@media (prefers-color-scheme: dark) {
  .maplibregl-popup:has(.vector-control-popup) .maplibregl-popup-content {
    background: #1f2937;
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
  }

  .maplibregl-popup:has(.vector-control-popup) .maplibregl-popup-close-button {
    color: #8b96a5;
  }

  .maplibregl-popup-anchor-top:has(.vector-control-popup) .maplibregl-popup-tip,
  .maplibregl-popup-anchor-top-left:has(.vector-control-popup) .maplibregl-popup-tip,
  .maplibregl-popup-anchor-top-right:has(.vector-control-popup) .maplibregl-popup-tip {
    border-bottom-color: #1f2937;
  }

  .maplibregl-popup-anchor-bottom:has(.vector-control-popup) .maplibregl-popup-tip,
  .maplibregl-popup-anchor-bottom-left:has(.vector-control-popup) .maplibregl-popup-tip,
  .maplibregl-popup-anchor-bottom-right:has(.vector-control-popup) .maplibregl-popup-tip {
    border-top-color: #1f2937;
  }

  .maplibregl-popup-anchor-left:has(.vector-control-popup) .maplibregl-popup-tip {
    border-right-color: #1f2937;
  }

  .maplibregl-popup-anchor-right:has(.vector-control-popup) .maplibregl-popup-tip {
    border-left-color: #1f2937;
  }
}

.vector-control-checkbox {
  width: 14px;
  height: 14px;
  margin: 0;
  accent-color: var(--vc-accent);
  cursor: pointer;
}

/* Multi-layer container picker.
 *
 * Rendered into the map container (not the panel), so it stays visible when
 * the panel is collapsed or the host keeps the control hidden and drives
 * addData programmatically. It is modal, so its z-index sits one above the
 * panel's 1000 (itself above MapLibre's own controls). */
.vector-control-layer-picker {
  position: absolute;
  inset: 0;
  z-index: 1001;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(15, 23, 42, 0.45);
  font-family:
    -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

.vector-control-layer-picker-dialog {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: min(360px, 100%);
  max-height: 100%;
  padding: 16px;
  color: var(--vc-text);
  background: var(--vc-bg);
  border: 1px solid var(--vc-border);
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
}

.vector-control-layer-picker-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--vc-text-strong);
}

.vector-control-layer-picker-subtitle {
  font-size: 12px;
  color: var(--vc-text-soft);
  overflow-wrap: anywhere;
}

.vector-control-layer-picker-all,
.vector-control-layer-picker-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  cursor: pointer;
}

.vector-control-layer-picker-all {
  padding: 6px 8px;
  font-weight: 500;
  color: var(--vc-text-strong);
  background: var(--vc-item-bg);
  border: 1px solid var(--vc-border-soft);
  border-radius: 4px;
}

.vector-control-layer-picker-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-height: 0;
  max-height: 240px;
  overflow-y: auto;
  padding: 4px;
  border: 1px solid var(--vc-border-soft);
  border-radius: 4px;
}

.vector-control-layer-picker-item {
  padding: 5px 6px;
  border-radius: 4px;
}

.vector-control-layer-picker-item:hover {
  background: var(--vc-hover);
}

.vector-control-layer-picker-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vector-control-layer-picker-footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.vector-control-layer-picker-footer .vector-control-button {
  padding: 6px 14px;
  font-size: 13px;
}

.vector-control-button-secondary {
  color: var(--vc-text);
  background: transparent;
  border: 1px solid var(--vc-input-border);
}

.vector-control-button-secondary:hover {
  background: var(--vc-hover);
}
/*$vite$:1*//*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:"IBM Plex Sans Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-950:oklch(25.8% .092 26.042);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-700:oklch(50% .134 242.749);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-950:oklch(28.2% .091 267.935);--color-gray-300:oklch(87.2% .01 258.338);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-xl:.75rem;--shadow-sm:0 1px 2px 0 var(--elev-penumbra), 0 1px 3px 0 var(--elev-umbra);--shadow-md:0 2px 4px -1px var(--elev-penumbra), 0 4px 8px -2px var(--elev-umbra);--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--background:0 0% 100%;--foreground:222.2 84% 4.9%;--card:0 0% 100%;--card-foreground:222.2 84% 4.9%;--popover:0 0% 100%;--popover-foreground:222.2 84% 4.9%;--primary:221.2 83.2% 53.3%;--primary-foreground:210 40% 98%;--secondary:220 16% 96%;--secondary-foreground:222.2 47.4% 11.2%;--muted:220 16% 96%;--muted-foreground:215.4 16.3% 40%;--accent:220 16% 94%;--accent-foreground:222.2 47.4% 11.2%;--destructive:0 84.2% 60.2%;--destructive-foreground:210 40% 98%;--border:220 15% 88%;--input:220 13% 76%;--ring:221.2 83.2% 53.3%;--radius:.375rem;--elev-penumbra:#121b2b0f;--elev-umbra:#121b2b1a}.dark{--background:222 24% 9%;--foreground:210 40% 98%;--card:222 22% 12%;--card-foreground:210 40% 98%;--popover:222 21% 15%;--popover-foreground:210 40% 98%;--primary:217.2 91.2% 59.8%;--primary-foreground:222.2 47.4% 11.2%;--secondary:220 18% 20%;--secondary-foreground:210 40% 98%;--muted:220 18% 20%;--muted-foreground:215 20.2% 65.1%;--accent:220 18% 22%;--accent-foreground:210 40% 98%;--destructive:0 84.2% 72%;--destructive-foreground:222.2 47.4% 11.2%;--border:220 14% 26%;--input:220 12% 38%;--elev-penumbra:#0006;--elev-umbra:#0000008c;--ring:217.2 91.2% 59.8%}[data-theme=violet]{--primary:262.1 83.3% 57.8%;--primary-foreground:210 20% 98%;--ring:262.1 83.3% 57.8%}[data-theme=violet].dark{--primary:263.4 70% 50.4%;--primary-foreground:210 20% 98%;--ring:263.4 70% 50.4%}[data-theme=emerald]{--primary:142.1 76.2% 36.3%;--primary-foreground:355.7 100% 97.3%;--ring:142.1 76.2% 36.3%}[data-theme=emerald].dark{--primary:142.1 70.6% 45.3%;--primary-foreground:144.9 80.4% 10%;--ring:142.1 70.6% 45.3%}[data-theme=rose],[data-theme=rose].dark{--primary:346.8 77.2% 49.8%;--primary-foreground:355.7 100% 97.3%;--ring:346.8 77.2% 49.8%}[data-theme=amber]{--primary:24.6 95% 53.1%;--primary-foreground:26 83.3% 14.1%;--ring:24.6 95% 53.1%}[data-theme=amber].dark{--primary:20.5 90.2% 48.2%;--primary-foreground:26 83.3% 14.1%;--ring:20.5 90.2% 48.2%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}}@layer components;@layer utilities{.\@container\/panel{container:panel/inline-size}.\@container\/params{container:params/inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-x-2{inset-inline:calc(var(--spacing) * 2)}.inset-x-\[-25\%\]{inset-inline:-25%}.inset-y-0{inset-block:0}.-start-1{inset-inline-start:calc(var(--spacing) * -1)}.start-0{inset-inline-start:calc(var(--spacing) * 0)}.start-1\.5{inset-inline-start:calc(var(--spacing) * 1.5)}.start-1\/2{inset-inline-start:50%}.start-2{inset-inline-start:calc(var(--spacing) * 2)}.start-2\.5{inset-inline-start:calc(var(--spacing) * 2.5)}.start-3{inset-inline-start:calc(var(--spacing) * 3)}.start-4{inset-inline-start:calc(var(--spacing) * 4)}.start-9{inset-inline-start:calc(var(--spacing) * 9)}.-end-1{inset-inline-end:calc(var(--spacing) * -1)}.-end-2{inset-inline-end:calc(var(--spacing) * -2)}.end-0{inset-inline-end:calc(var(--spacing) * 0)}.end-1{inset-inline-end:calc(var(--spacing) * 1)}.end-1\.5{inset-inline-end:calc(var(--spacing) * 1.5)}.end-2{inset-inline-end:calc(var(--spacing) * 2)}.end-3{inset-inline-end:calc(var(--spacing) * 3)}.end-4{inset-inline-end:calc(var(--spacing) * 4)}.end-6{inset-inline-end:calc(var(--spacing) * 6)}.end-14{inset-inline-end:calc(var(--spacing) * 14)}.-top-1{top:calc(var(--spacing) * -1)}.top-0{top:0}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-9{top:calc(var(--spacing) * 9)}.top-11{top:calc(var(--spacing) * 11)}.top-14{top:calc(var(--spacing) * 14)}.top-16{top:calc(var(--spacing) * 16)}.top-24{top:calc(var(--spacing) * 24)}.top-28{top:calc(var(--spacing) * 28)}.top-\[15\%\]{top:15%}.top-\[50\%\]{top:50%}.top-full{top:100%}.right-0{right:0}.right-1{right:var(--spacing)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-14{right:calc(var(--spacing) * 14)}.-bottom-1{bottom:calc(var(--spacing) * -1)}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-6{bottom:calc(var(--spacing) * 6)}.bottom-7{bottom:calc(var(--spacing) * 7)}.bottom-10{bottom:calc(var(--spacing) * 10)}.bottom-12{bottom:calc(var(--spacing) * 12)}.bottom-20{bottom:calc(var(--spacing) * 20)}.bottom-36{bottom:calc(var(--spacing) * 36)}.bottom-full{bottom:100%}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.left-\[50\%\]{left:50%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[62\]{z-index:62}.z-\[63\]{z-index:63}.z-\[70\]{z-index:70}.z-\[71\]{z-index:71}.z-\[72\]{z-index:72}.z-\[74\]{z-index:74}.z-\[100\]{z-index:100}.order-2{order:2}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-start-2{grid-column-start:2}.\!container{width:100%!important}@media (min-width:40rem){.\!container{max-width:40rem!important}}@media (min-width:48rem){.\!container{max-width:48rem!important}}@media (min-width:64rem){.\!container{max-width:64rem!important}}@media (min-width:80rem){.\!container{max-width:80rem!important}}@media (min-width:96rem){.\!container{max-width:96rem!important}}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-1{margin-inline:var(--spacing)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-4{margin-block:calc(var(--spacing) * 4)}.-ms-1\.5{margin-inline-start:calc(var(--spacing) * -1.5)}.ms-0\.5{margin-inline-start:calc(var(--spacing) * .5)}.ms-1{margin-inline-start:var(--spacing)}.ms-1\.5{margin-inline-start:calc(var(--spacing) * 1.5)}.ms-2{margin-inline-start:calc(var(--spacing) * 2)}.ms-3{margin-inline-start:calc(var(--spacing) * 3)}.ms-6{margin-inline-start:calc(var(--spacing) * 6)}.ms-auto{margin-inline-start:auto}.-me-1{margin-inline-end:calc(var(--spacing) * -1)}.me-1{margin-inline-end:var(--spacing)}.me-1\.5{margin-inline-end:calc(var(--spacing) * 1.5)}.me-2{margin-inline-end:calc(var(--spacing) * 2)}.me-auto{margin-inline-end:auto}.-mt-1{margin-top:calc(var(--spacing) * -1)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-3\.5{margin-bottom:calc(var(--spacing) * 3.5)}.mb-px{margin-bottom:1px}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\!block{display:block!important}.\!table{display:table!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-video{aspect-ratio:var(--aspect-video)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.h-0{height:0}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-1\/2{height:50%}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-40{height:calc(var(--spacing) * 40)}.h-44{height:calc(var(--spacing) * 44)}.h-72{height:calc(var(--spacing) * 72)}.h-\[1px\]{height:1px}.h-\[2px\]{height:2px}.h-\[8\.75rem\]{height:8.75rem}.h-\[18px\]{height:18px}.h-\[22rem\]{height:22rem}.h-\[24rem\]{height:24rem}.h-\[26rem\]{height:26rem}.h-\[32\.5rem\]{height:32.5rem}.h-\[60vh\]{height:60vh}.h-\[88vh\]{height:88vh}.h-\[calc\(2px_\+_var\(--voice-level\,0\)_\*_14px\)\]{height:calc(2px + var(--voice-level,0) * 14px)}.h-\[min\(24rem\,42vh\)\]{height:min(24rem,42vh)}.h-\[min\(60vh\,460px\)\]{height:min(60vh,460px)}.h-\[min\(760px\,calc\(100vh-6rem\)\)\]{height:min(760px,100vh - 6rem)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-20{max-height:calc(var(--spacing) * 20)}.max-h-24{max-height:calc(var(--spacing) * 24)}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-36{max-height:calc(var(--spacing) * 36)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[60\%\]{max-height:60%}.max-h-\[60vh\]{max-height:60vh}.max-h-\[64vh\]{max-height:64vh}.max-h-\[65vh\]{max-height:65vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[88vh\]{max-height:88vh}.max-h-\[calc\(100\%-1\.5rem\)\]{max-height:calc(100% - 1.5rem)}.max-h-\[calc\(100\%-2rem\)\]{max-height:calc(100% - 2rem)}.max-h-\[calc\(100\%-6rem\)\]{max-height:calc(100% - 6rem)}.max-h-\[calc\(100\%-7\.5rem\)\]{max-height:calc(100% - 7.5rem)}.max-h-\[calc\(100\%-7rem\)\]{max-height:calc(100% - 7rem)}.max-h-\[calc\(100\%-9rem\)\]{max-height:calc(100% - 9rem)}.max-h-\[calc\(100\%-10rem\)\]{max-height:calc(100% - 10rem)}.max-h-\[calc\(100dvh-1rem\)\]{max-height:calc(100dvh - 1rem)}.max-h-\[calc\(100dvh-6rem\)\]{max-height:calc(100dvh - 6rem)}.max-h-\[calc\(100vh-6rem\)\]{max-height:calc(100vh - 6rem)}.max-h-\[calc\(100vh-12rem\)\]{max-height:calc(100vh - 12rem)}.max-h-\[min\(24rem\,42vh\)\]{max-height:min(24rem,42vh)}.max-h-\[min\(24rem\,45vh\)\]{max-height:min(24rem,45vh)}.max-h-\[min\(60vh\,24rem\)\]{max-height:min(60vh,24rem)}.max-h-\[min\(88vh\,760px\)\]{max-height:min(88vh,760px)}.max-h-\[min\(760px\,92vh\)\]{max-height:min(760px,92vh)}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-20{min-height:calc(var(--spacing) * 20)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-28{min-height:calc(var(--spacing) * 28)}.min-h-48{min-height:calc(var(--spacing) * 48)}.min-h-56{min-height:calc(var(--spacing) * 56)}.min-h-64{min-height:calc(var(--spacing) * 64)}.min-h-72{min-height:calc(var(--spacing) * 72)}.min-h-\[1\.25rem\]{min-height:1.25rem}.min-h-\[2\.5rem\]{min-height:2.5rem}.min-h-\[3rem\]{min-height:3rem}.min-h-\[4rem\]{min-height:4rem}.min-h-\[12rem\]{min-height:12rem}.min-h-\[80px\]{min-height:80px}.min-h-\[90px\]{min-height:90px}.min-h-\[160px\]{min-height:160px}.min-h-screen{min-height:100vh}.w-0{width:0}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-60{width:calc(var(--spacing) * 60)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-\[1px\]{width:1px}.w-\[7\.5rem\]{width:7.5rem}.w-\[26rem\]{width:26rem}.w-\[48rem\]{width:48rem}.w-\[calc\(100vw-1rem\)\]{width:calc(100vw - 1rem)}.w-\[min\(20rem\,calc\(100vw-1\.5rem\)\)\]{width:min(20rem,100vw - 1.5rem)}.w-\[min\(22rem\,calc\(100vw-1\.5rem\)\)\]{width:min(22rem,100vw - 1.5rem)}.w-\[min\(23rem\,calc\(100vw-1\.5rem\)\)\]{width:min(23rem,100vw - 1.5rem)}.w-\[min\(24rem\,calc\(100vw-1\.5rem\)\)\]{width:min(24rem,100vw - 1.5rem)}.w-\[min\(24rem\,calc\(100vw-2rem\)\)\]{width:min(24rem,100vw - 2rem)}.w-\[min\(26rem\,calc\(100\%-1\.5rem\)\)\]{width:min(26rem,100% - 1.5rem)}.w-\[min\(26rem\,calc\(100vw-1\.5rem\)\)\]{width:min(26rem,100vw - 1.5rem)}.w-\[min\(28rem\,calc\(100vw-1\.5rem\)\)\]{width:min(28rem,100vw - 1.5rem)}.w-\[min\(32rem\,calc\(100vw-1\.5rem\)\)\]{width:min(32rem,100vw - 1.5rem)}.w-\[min\(40rem\,calc\(100vw-1\.5rem\)\)\]{width:min(40rem,100vw - 1.5rem)}.w-\[min\(72rem\,95vw\)\]{width:min(72rem,95vw)}.w-\[min\(92vw\,28rem\)\]{width:min(92vw,28rem)}.w-\[min\(92vw\,30rem\)\]{width:min(92vw,30rem)}.w-\[min\(92vw\,34rem\)\]{width:min(92vw,34rem)}.w-\[min\(92vw\,46rem\)\]{width:min(92vw,46rem)}.w-\[var\(--radix-dropdown-menu-trigger-width\)\]{width:var(--radix-dropdown-menu-trigger-width)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.w-screen{width:100vw}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-64{max-width:calc(var(--spacing) * 64)}.max-w-\[11rem\]{max-width:11rem}.max-w-\[40\%\]{max-width:40%}.max-w-\[70\%\]{max-width:70%}.max-w-\[75\%\]{max-width:75%}.max-w-\[90\%\]{max-width:90%}.max-w-\[95\%\]{max-width:95%}.max-w-\[95vw\]{max-width:95vw}.max-w-\[160px\]{max-width:160px}.max-w-\[180px\]{max-width:180px}.max-w-\[200px\]{max-width:200px}.max-w-\[calc\(100\%-1\.5rem\)\]{max-width:calc(100% - 1.5rem)}.max-w-\[calc\(100\%-1rem\)\]{max-width:calc(100% - 1rem)}.max-w-\[calc\(100\%-5rem\)\]{max-width:calc(100% - 5rem)}.max-w-\[calc\(100vw-1\.5rem\)\]{max-width:calc(100vw - 1.5rem)}.max-w-\[calc\(100vw-1rem\)\]{max-width:calc(100vw - 1rem)}.max-w-\[min\(90vw\,36rem\)\]{max-width:min(90vw,36rem)}.max-w-\[min\(520px\,calc\(100vw-48px\)\)\]{max-width:min(520px,100vw - 48px)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-16{min-width:calc(var(--spacing) * 16)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-48{min-width:calc(var(--spacing) * 48)}.min-w-52{min-width:calc(var(--spacing) * 52)}.min-w-56{min-width:calc(var(--spacing) * 56)}.min-w-80{min-width:calc(var(--spacing) * 80)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[22rem\]{min-width:22rem}.min-w-\[min\(18rem\,calc\(100vw-48px\)\)\]{min-width:min(18rem,100vw - 48px)}.min-w-px{min-width:1px}.flex-1{flex:1}.flex-\[2\]{flex:2}.flex-none{flex:none}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-48{flex-basis:calc(var(--spacing) * 48)}.table-fixed{table-layout:fixed}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-bottom{transform-origin:bottom}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.zoom-0{zoom:0%}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-help{cursor:help}.cursor-move{cursor:move}.cursor-nesw-resize{cursor:nesw-resize}.cursor-not-allowed{cursor:not-allowed}.cursor-nwse-resize{cursor:nwse-resize}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.cursor-se-resize{cursor:se-resize}.cursor-sw-resize{cursor:sw-resize}.cursor-text{cursor:text}.touch-pan-y{--tw-pan-y:pan-y;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.\[appearance\:textfield\]{appearance:textfield}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-\[1\.5rem_1fr\]{grid-template-columns:1.5rem 1fr}.grid-cols-\[1\.25rem_minmax\(7rem\,1fr\)_minmax\(7rem\,1fr\)_2rem_2rem_2rem\]{grid-template-columns:1.25rem minmax(7rem,1fr) minmax(7rem,1fr) 2rem 2rem 2rem}.grid-cols-\[1\.75rem_minmax\(0\,1fr\)_auto_auto_auto\]{grid-template-columns:1.75rem minmax(0,1fr) auto auto auto}.grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.grid-cols-\[5rem_minmax\(0\,1fr\)_minmax\(0\,1fr\)_5rem_5rem\]{grid-template-columns:5rem minmax(0,1fr) minmax(0,1fr) 5rem 5rem}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[auto_1fr_2rem\]{grid-template-columns:auto 1fr 2rem}.grid-cols-\[auto_auto_1fr\]{grid-template-columns:auto auto 1fr}.grid-cols-\[auto_auto_1fr_2rem_2rem\]{grid-template-columns:auto auto 1fr 2rem 2rem}.grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.grid-cols-\[minmax\(0\,1\.2fr\)_3\.5rem_4\.5rem_minmax\(0\,1\.5fr\)_auto\]{grid-template-columns:minmax(0,1.2fr) 3.5rem 4.5rem minmax(0,1.5fr) auto}.grid-cols-\[minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr)}.grid-cols-\[minmax\(0\,1fr\)_2\.25rem\]{grid-template-columns:minmax(0,1fr) 2.25rem}.grid-cols-\[minmax\(0\,1fr\)_5rem\]{grid-template-columns:minmax(0,1fr) 5rem}.grid-cols-\[minmax\(0\,1fr\)_5rem_5rem\]{grid-template-columns:minmax(0,1fr) 5rem 5rem}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)_4\.5rem_minmax\(0\,1\.4fr\)_2rem\]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 4.5rem minmax(0,1.4fr) 2rem}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.grid-cols-\[minmax\(0\,1fr\)_minmax\(120px\,160px\)\]{grid-template-columns:minmax(0,1fr) minmax(120px,160px)}.grid-cols-\[minmax\(0\,8rem\)_auto\]{grid-template-columns:minmax(0,8rem) auto}.grid-cols-\[minmax\(5rem\,0\.45fr\)_1fr\]{grid-template-columns:minmax(5rem,.45fr) 1fr}.grid-cols-\[minmax\(6rem\,auto\)_1fr\]{grid-template-columns:minmax(6rem,auto) 1fr}.grid-cols-\[repeat\(2\,minmax\(0\,1fr\)\)_auto\]{grid-template-columns:repeat(2,minmax(0,1fr)) auto}.grid-cols-\[repeat\(3\,minmax\(0\,1fr\)\)_auto\]{grid-template-columns:repeat(3,minmax(0,1fr)) auto}.grid-rows-\[auto_auto_minmax\(0\,1fr\)\]{grid-template-rows:auto auto minmax(0,1fr)}.grid-rows-\[auto_minmax\(0\,1fr\)\]{grid-template-rows:auto minmax(0,1fr)}.grid-rows-\[auto_minmax\(0\,1fr\)_auto\]{grid-template-rows:auto minmax(0,1fr) auto}.grid-rows-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)\]{grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.flex-col{flex-direction:column}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-px{gap:1px}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-1{column-gap:var(--spacing)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border\/50>:not(:last-child)){border-color:hsl(var(--border))}@supports (color:color-mix(in lab, red, red)){:where(.divide-border\/50>:not(:last-child)){border-color:color-mix(in oklab, hsl(var(--border)) 50%, transparent)}}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.justify-self-start{justify-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-\[4px\]{border-radius:4px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-lg{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.rounded-br-lg{border-bottom-right-radius:var(--radius)}.rounded-bl-lg{border-bottom-left-radius:var(--radius)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-s-2{border-inline-start-style:var(--tw-border-style);border-inline-start-width:2px}.border-s-4{border-inline-start-style:var(--tw-border-style);border-inline-start-width:4px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r-2{border-right-style:var(--tw-border-style);border-right-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-500{border-color:var(--color-amber-500)}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-amber-500\/40{border-color:#f99c0066}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/40{border-color:color-mix(in oklab, var(--color-amber-500) 40%, transparent)}}.border-amber-500\/50{border-color:#f99c0080}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/50{border-color:color-mix(in oklab, var(--color-amber-500) 50%, transparent)}}.border-black\/25{border-color:#00000040}@supports (color:color-mix(in lab, red, red)){.border-black\/25{border-color:color-mix(in oklab, var(--color-black) 25%, transparent)}}.border-border,.border-border\/40{border-color:hsl(var(--border))}@supports (color:color-mix(in lab, red, red)){.border-border\/40{border-color:color-mix(in oklab, hsl(var(--border)) 40%, transparent)}}.border-border\/50{border-color:hsl(var(--border))}@supports (color:color-mix(in lab, red, red)){.border-border\/50{border-color:color-mix(in oklab, hsl(var(--border)) 50%, transparent)}}.border-border\/60{border-color:hsl(var(--border))}@supports (color:color-mix(in lab, red, red)){.border-border\/60{border-color:color-mix(in oklab, hsl(var(--border)) 60%, transparent)}}.border-current\/25{border-color:currentColor}@supports (color:color-mix(in lab, red, red)){.border-current\/25{border-color:color-mix(in oklab, currentcolor 25%, transparent)}}.border-destructive,.border-destructive\/30{border-color:hsl(var(--destructive))}@supports (color:color-mix(in lab, red, red)){.border-destructive\/30{border-color:color-mix(in oklab, hsl(var(--destructive)) 30%, transparent)}}.border-destructive\/40{border-color:hsl(var(--destructive))}@supports (color:color-mix(in lab, red, red)){.border-destructive\/40{border-color:color-mix(in oklab, hsl(var(--destructive)) 40%, transparent)}}.border-destructive\/50{border-color:hsl(var(--destructive))}@supports (color:color-mix(in lab, red, red)){.border-destructive\/50{border-color:color-mix(in oklab, hsl(var(--destructive)) 50%, transparent)}}.border-emerald-500\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/20{border-color:color-mix(in oklab, var(--color-emerald-500) 20%, transparent)}}.border-emerald-500\/40{border-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/40{border-color:color-mix(in oklab, var(--color-emerald-500) 40%, transparent)}}.border-emerald-500\/50{border-color:#00bb7f80}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/50{border-color:color-mix(in oklab, var(--color-emerald-500) 50%, transparent)}}.border-gray-300{border-color:var(--color-gray-300)}.border-input{border-color:hsl(var(--input))}.border-muted{border-color:hsl(var(--muted))}.border-muted-foreground\/60{border-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab, red, red)){.border-muted-foreground\/60{border-color:color-mix(in oklab, hsl(var(--muted-foreground)) 60%, transparent)}}.border-primary,.border-primary\/40{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab, red, red)){.border-primary\/40{border-color:color-mix(in oklab, hsl(var(--primary)) 40%, transparent)}}.border-primary\/50{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab, red, red)){.border-primary\/50{border-color:color-mix(in oklab, hsl(var(--primary)) 50%, transparent)}}.border-primary\/60{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab, red, red)){.border-primary\/60{border-color:color-mix(in oklab, hsl(var(--primary)) 60%, transparent)}}.border-red-500\/40{border-color:#fb2c3666}@supports (color:color-mix(in lab, red, red)){.border-red-500\/40{border-color:color-mix(in oklab, var(--color-red-500) 40%, transparent)}}.border-sky-500\/40{border-color:#00a5ef66}@supports (color:color-mix(in lab, red, red)){.border-sky-500\/40{border-color:color-mix(in oklab, var(--color-sky-500) 40%, transparent)}}.border-transparent{border-color:#0000}.border-white{border-color:var(--color-white)}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.border-white\/20{border-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.border-white\/80{border-color:#fffc}@supports (color:color-mix(in lab, red, red)){.border-white\/80{border-color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.border-s-amber-500{border-inline-start-color:var(--color-amber-500)}.border-s-destructive{border-inline-start-color:hsl(var(--destructive))}.border-s-emerald-500{border-inline-start-color:var(--color-emerald-500)}.border-s-primary{border-inline-start-color:hsl(var(--primary))}.border-t-foreground{border-top-color:hsl(var(--foreground))}.border-t-primary{border-top-color:hsl(var(--primary))}.map-glass{background-color:hsl(var(--background) / .85);-webkit-backdrop-filter:blur(12px)saturate(140%);backdrop-filter:blur(12px)saturate(140%)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.map-glass{background-color:hsl(var(--background) / .97)}}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-background,.bg-background\/60{background-color:hsl(var(--background))}@supports (color:color-mix(in lab, red, red)){.bg-background\/60{background-color:color-mix(in oklab, hsl(var(--background)) 60%, transparent)}}.bg-background\/70{background-color:hsl(var(--background))}@supports (color:color-mix(in lab, red, red)){.bg-background\/70{background-color:color-mix(in oklab, hsl(var(--background)) 70%, transparent)}}.bg-background\/80{background-color:hsl(var(--background))}@supports (color:color-mix(in lab, red, red)){.bg-background\/80{background-color:color-mix(in oklab, hsl(var(--background)) 80%, transparent)}}.bg-background\/85{background-color:hsl(var(--background))}@supports (color:color-mix(in lab, red, red)){.bg-background\/85{background-color:color-mix(in oklab, hsl(var(--background)) 85%, transparent)}}.bg-background\/95{background-color:hsl(var(--background))}@supports (color:color-mix(in lab, red, red)){.bg-background\/95{background-color:color-mix(in oklab, hsl(var(--background)) 95%, transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-blue-800{background-color:var(--color-blue-800)}.bg-blue-950\/60{background-color:#16245699}@supports (color:color-mix(in lab, red, red)){.bg-blue-950\/60{background-color:color-mix(in oklab, var(--color-blue-950) 60%, transparent)}}.bg-border,.bg-border\/60{background-color:hsl(var(--border))}@supports (color:color-mix(in lab, red, red)){.bg-border\/60{background-color:color-mix(in oklab, hsl(var(--border)) 60%, transparent)}}.bg-card,.bg-card\/40{background-color:hsl(var(--card))}@supports (color:color-mix(in lab, red, red)){.bg-card\/40{background-color:color-mix(in oklab, hsl(var(--card)) 40%, transparent)}}.bg-current{background-color:currentColor}.bg-destructive,.bg-destructive\/5{background-color:hsl(var(--destructive))}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/5{background-color:color-mix(in oklab, hsl(var(--destructive)) 5%, transparent)}}.bg-destructive\/10{background-color:hsl(var(--destructive))}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, hsl(var(--destructive)) 10%, transparent)}}.bg-destructive\/50{background-color:hsl(var(--destructive))}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/50{background-color:color-mix(in oklab, hsl(var(--destructive)) 50%, transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/10{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/15{background-color:color-mix(in oklab, var(--color-emerald-500) 15%, transparent)}}.bg-foreground\/70{background-color:hsl(var(--foreground))}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/70{background-color:color-mix(in oklab, hsl(var(--foreground)) 70%, transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground\/40{background-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/40{background-color:color-mix(in oklab, hsl(var(--muted-foreground)) 40%, transparent)}}.bg-muted-foreground\/45{background-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/45{background-color:color-mix(in oklab, hsl(var(--muted-foreground)) 45%, transparent)}}.bg-muted\/20{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab, red, red)){.bg-muted\/20{background-color:color-mix(in oklab, hsl(var(--muted)) 20%, transparent)}}.bg-muted\/30{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab, red, red)){.bg-muted\/30{background-color:color-mix(in oklab, hsl(var(--muted)) 30%, transparent)}}.bg-muted\/40{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab, red, red)){.bg-muted\/40{background-color:color-mix(in oklab, hsl(var(--muted)) 40%, transparent)}}.bg-muted\/50{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab, hsl(var(--muted)) 50%, transparent)}}.bg-muted\/70{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab, red, red)){.bg-muted\/70{background-color:color-mix(in oklab, hsl(var(--muted)) 70%, transparent)}}.bg-popover{background-color:hsl(var(--popover))}.bg-primary,.bg-primary\/5{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab, red, red)){.bg-primary\/5{background-color:color-mix(in oklab, hsl(var(--primary)) 5%, transparent)}}.bg-primary\/10{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, hsl(var(--primary)) 10%, transparent)}}.bg-primary\/15{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab, red, red)){.bg-primary\/15{background-color:color-mix(in oklab, hsl(var(--primary)) 15%, transparent)}}.bg-primary\/20{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab, hsl(var(--primary)) 20%, transparent)}}.bg-primary\/40{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab, red, red)){.bg-primary\/40{background-color:color-mix(in oklab, hsl(var(--primary)) 40%, transparent)}}.bg-primary\/70{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab, red, red)){.bg-primary\/70{background-color:color-mix(in oklab, hsl(var(--primary)) 70%, transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sky-500\/10{background-color:#00a5ef1a}@supports (color:color-mix(in lab, red, red)){.bg-sky-500\/10{background-color:color-mix(in oklab, var(--color-sky-500) 10%, transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-sky-400\/30{--tw-gradient-from:#00bcfe4d}@supports (color:color-mix(in lab, red, red)){.from-sky-400\/30{--tw-gradient-from:color-mix(in oklab, var(--color-sky-400) 30%, transparent)}}.from-sky-400\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-emerald-700\/30{--tw-gradient-to:#0079564d}@supports (color:color-mix(in lab, red, red)){.to-emerald-700\/30{--tw-gradient-to:color-mix(in oklab, var(--color-emerald-700) 30%, transparent)}}.to-emerald-700\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-contain{background-size:contain}.bg-center{background-position:50%}.bg-no-repeat{background-repeat:no-repeat}.fill-current{fill:currentColor}.fill-none{fill:none}.fill-red-500{fill:var(--color-red-500)}.stroke-primary,.stroke-primary\/70{stroke:hsl(var(--primary))}@supports (color:color-mix(in lab, red, red)){.stroke-primary\/70{stroke:color-mix(in oklab, hsl(var(--primary)) 70%, transparent)}}.stroke-transparent{stroke:#0000}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-px{padding-block:1px}.ps-1{padding-inline-start:var(--spacing)}.ps-2{padding-inline-start:calc(var(--spacing) * 2)}.ps-2\.5{padding-inline-start:calc(var(--spacing) * 2.5)}.ps-3{padding-inline-start:calc(var(--spacing) * 3)}.ps-4{padding-inline-start:calc(var(--spacing) * 4)}.ps-5{padding-inline-start:calc(var(--spacing) * 5)}.ps-5\.5{padding-inline-start:calc(var(--spacing) * 5.5)}.ps-6{padding-inline-start:calc(var(--spacing) * 6)}.ps-7{padding-inline-start:calc(var(--spacing) * 7)}.ps-8{padding-inline-start:calc(var(--spacing) * 8)}.ps-9{padding-inline-start:calc(var(--spacing) * 9)}.pe-0\.5{padding-inline-end:calc(var(--spacing) * .5)}.pe-1{padding-inline-end:var(--spacing)}.pe-2{padding-inline-end:calc(var(--spacing) * 2)}.pe-3{padding-inline-end:calc(var(--spacing) * 3)}.pe-5{padding-inline-end:calc(var(--spacing) * 5)}.pe-6{padding-inline-end:calc(var(--spacing) * 6)}.pe-7{padding-inline-end:calc(var(--spacing) * 7)}.pe-8{padding-inline-end:calc(var(--spacing) * 8)}.pe-9{padding-inline-end:calc(var(--spacing) * 9)}.pe-10{padding-inline-end:calc(var(--spacing) * 10)}.pe-12{padding-inline-end:calc(var(--spacing) * 12)}.pt-0{padding-top:0}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-end{text-align:end}.text-left{text-align:left}.text-start{text-align:start}.align-\[-2px\]{vertical-align:-2px}.align-bottom{vertical-align:bottom}.align-middle{vertical-align:middle}.align-text-bottom{vertical-align:text-bottom}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.65rem\]{font-size:.65rem}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-400{color:var(--color-amber-400)}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-blue-500{color:var(--color-blue-500)}.text-blue-800{color:var(--color-blue-800)}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-foreground,.text-foreground\/80{color:hsl(var(--foreground))}@supports (color:color-mix(in lab, red, red)){.text-foreground\/80{color:color-mix(in oklab, hsl(var(--foreground)) 80%, transparent)}}.text-foreground\/90{color:hsl(var(--foreground))}@supports (color:color-mix(in lab, red, red)){.text-foreground\/90{color:color-mix(in oklab, hsl(var(--foreground)) 90%, transparent)}}.text-green-700{color:var(--color-green-700)}.text-muted-foreground,.text-muted-foreground\/50{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/50{color:color-mix(in oklab, hsl(var(--muted-foreground)) 50%, transparent)}}.text-muted-foreground\/60{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/60{color:color-mix(in oklab, hsl(var(--muted-foreground)) 60%, transparent)}}.text-muted-foreground\/80{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/80{color:color-mix(in oklab, hsl(var(--muted-foreground)) 80%, transparent)}}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{color:var(--color-red-500)}.text-red-700{color:var(--color-red-700)}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sky-400{color:var(--color-sky-400)}.text-sky-500{color:var(--color-sky-500)}.text-sky-700{color:var(--color-sky-700)}.text-white{color:var(--color-white)}.text-white\/45{color:#ffffff73}@supports (color:color-mix(in lab, red, red)){.text-white\/45{color:color-mix(in oklab, var(--color-white) 45%, transparent)}}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab, red, red)){.text-white\/80{color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.accent-amber-500{accent-color:var(--color-amber-500)}.accent-foreground{accent-color:hsl(var(--foreground))}.accent-primary{accent-color:hsl(var(--primary))}.accent-sky-500{accent-color:var(--color-sky-500)}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,var(--elev-penumbra)), 0 1px 3px 0 var(--tw-shadow-color,var(--elev-umbra));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_1px_hsl\(var\(--primary\)\/0\.25\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--primary)/.25));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_2px_hsl\(var\(--background\)\)\]{--tw-shadow:0 0 0 2px var(--tw-shadow-color,hsl(var(--background)));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 4px 8px -2px var(--tw-shadow-color,var(--elev-penumbra)), 0 12px 20px -4px var(--tw-shadow-color,var(--elev-umbra));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 2px 4px -1px var(--tw-shadow-color,var(--elev-penumbra)), 0 4px 8px -2px var(--tw-shadow-color,var(--elev-umbra));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,var(--elev-penumbra)), 0 1px 3px 0 var(--tw-shadow-color,var(--elev-umbra));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 8px 16px -4px var(--tw-shadow-color,var(--elev-penumbra)), 0 24px 40px -8px var(--tw-shadow-color,var(--elev-umbra));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 1px 0 var(--tw-shadow-color,var(--elev-penumbra));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow\/cloud{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,var(--elev-penumbra)), 0 1px 3px 0 var(--tw-shadow-color,var(--elev-umbra));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-background{--tw-ring-color:hsl(var(--background))}.ring-destructive\/40{--tw-ring-color:hsl(var(--destructive))}@supports (color:color-mix(in lab, red, red)){.ring-destructive\/40{--tw-ring-color:color-mix(in oklab, hsl(var(--destructive)) 40%, transparent)}}.ring-foreground{--tw-ring-color:hsl(var(--foreground))}.ring-primary,.ring-primary\/30{--tw-ring-color:hsl(var(--primary))}@supports (color:color-mix(in lab, red, red)){.ring-primary\/30{--tw-ring-color:color-mix(in oklab, hsl(var(--primary)) 30%, transparent)}}.ring-ring{--tw-ring-color:hsl(var(--ring))}.ring-offset-1{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.ring-offset-popover{--tw-ring-offset-color:hsl(var(--popover))}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.zoom-in-95{--tw-enter-scale:.95}.\!running{animation-play-state:running!important}.\[-webkit-overflow-scrolling\:touch\]{-webkit-overflow-scrolling:touch}.\[geolibre\:copy-vector-ops\]{geolibre:copy-vector-ops}.paused{animation-play-state:paused}.ring-inset{--tw-ring-inset:inset}.running{animation-play-state:running}.zoom-in{--tw-enter-scale:0}.zoom-out{--tw-exit-scale:0}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *),.group-open\/layer\:rotate-90:is(:where(.group\/layer):is([open],:popover-open,:open) *){rotate:90deg}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media (hover:hover){.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:bg-muted-foreground\/60:is(:where(.group):hover *){background-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-muted-foreground\/60:is(:where(.group):hover *){background-color:color-mix(in oklab, hsl(var(--muted-foreground)) 60%, transparent)}}.group-hover\:bg-primary:is(:where(.group):hover *){background-color:hsl(var(--primary))}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.peer-focus-visible\:border-2:is(:where(.peer):focus-visible~*){border-style:var(--tw-border-style);border-width:2px}.peer-focus-visible\:border-ring:is(:where(.peer):focus-visible~*){border-color:hsl(var(--ring))}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.first\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}.first\:pt-0:first-child{padding-top:0}.last\:mb-0:last-child{margin-bottom:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.even\:bg-muted\/40:nth-child(2n){background-color:hsl(var(--muted))}@supports (color:color-mix(in lab, red, red)){.even\:bg-muted\/40:nth-child(2n){background-color:color-mix(in oklab, hsl(var(--muted)) 40%, transparent)}}.empty\:hidden:empty{display:none}.focus-within\:border-2:focus-within{border-style:var(--tw-border-style);border-width:2px}.focus-within\:border-ring:focus-within{border-color:hsl(var(--ring))}.focus-within\:ring-2:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-ring:focus-within{--tw-ring-color:hsl(var(--ring))}.focus-within\:outline-none:focus-within{--tw-outline-style:none;outline-style:none}@media (hover:hover){.hover\:scale-\[1\.15\]:hover{scale:1.15}.hover\:border-border\/80:hover{border-color:hsl(var(--border))}@supports (color:color-mix(in lab, red, red)){.hover\:border-border\/80:hover{border-color:color-mix(in oklab, hsl(var(--border)) 80%, transparent)}}.hover\:border-muted-foreground\/40:hover{border-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab, red, red)){.hover\:border-muted-foreground\/40:hover{border-color:color-mix(in oklab, hsl(var(--muted-foreground)) 40%, transparent)}}.hover\:border-muted-foreground\/50:hover{border-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab, red, red)){.hover\:border-muted-foreground\/50:hover{border-color:color-mix(in oklab, hsl(var(--muted-foreground)) 50%, transparent)}}.hover\:border-primary:hover,.hover\:border-primary\/50:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab, red, red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab, hsl(var(--primary)) 50%, transparent)}}.hover\:bg-accent:hover,.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent))}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab, hsl(var(--accent)) 50%, transparent)}}.hover\:bg-amber-500:hover{background-color:var(--color-amber-500)}.hover\:bg-amber-500\/10:hover{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-500\/10:hover{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.hover\:bg-destructive:hover,.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive))}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/10:hover{background-color:color-mix(in oklab, hsl(var(--destructive)) 10%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive))}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, hsl(var(--destructive)) 90%, transparent)}}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted-foreground\/70:hover{background-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted-foreground\/70:hover{background-color:color-mix(in oklab, hsl(var(--muted-foreground)) 70%, transparent)}}.hover\:bg-muted\/20:hover{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/20:hover{background-color:color-mix(in oklab, hsl(var(--muted)) 20%, transparent)}}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab, hsl(var(--muted)) 50%, transparent)}}.hover\:bg-primary:hover,.hover\:bg-primary\/60:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/60:hover{background-color:color-mix(in oklab, hsl(var(--primary)) 60%, transparent)}}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, hsl(var(--primary)) 90%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary))}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, hsl(var(--secondary)) 80%, transparent)}}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-amber-700:hover{color:var(--color-amber-700)}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.hover\:text-emerald-500:hover{color:var(--color-emerald-500)}.hover\:text-emerald-600:hover{color:var(--color-emerald-600)}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-white:hover{color:var(--color-white)}.hover\:no-underline:hover{text-decoration-line:none}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:border-input:focus{border-color:hsl(var(--input))}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-background:focus{background-color:hsl(var(--background))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:text-destructive:focus{color:hsl(var(--destructive))}.focus\:opacity-100:focus{opacity:1}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-primary:focus{--tw-ring-color:hsl(var(--primary))}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-2:focus-visible{border-style:var(--tw-border-style);border-width:2px}.focus-visible\:border-input:focus-visible{border-color:hsl(var(--input))}.focus-visible\:border-primary:focus-visible{border-color:hsl(var(--primary))}.focus-visible\:border-ring:focus-visible{border-color:hsl(var(--ring))}.focus-visible\:bg-primary:focus-visible{background-color:hsl(var(--primary))}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:outline:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:cursor-grabbing:active{cursor:grabbing}.active\:bg-primary:active{background-color:hsl(var(--primary))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media (hover:hover){.disabled\:hover\:text-current:disabled:hover{color:currentColor}}.aria-\[invalid\=true\]\:border-destructive[aria-invalid=true]{border-color:hsl(var(--destructive))}.aria-\[invalid\=true\]\:text-destructive[aria-invalid=true]{color:hsl(var(--destructive))}.data-\[disabled\]\:pointer-events-auto[data-disabled]{pointer-events:auto}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=edited\]\:bg-primary\/10[data-state=edited]{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab, red, red)){.data-\[state\=edited\]\:bg-primary\/10[data-state=edited]{background-color:color-mix(in oklab, hsl(var(--primary)) 10%, transparent)}}.data-\[state\=edited\]\:shadow-\[inset_3px_0_0_hsl\(var\(--primary\)\)\][data-state=edited]{--tw-shadow:inset 3px 0 0 var(--tw-shadow-color,hsl(var(--primary)));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=selected\]\:bg-primary\/20[data-state=selected]{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab, red, red)){.data-\[state\=selected\]\:bg-primary\/20[data-state=selected]{background-color:color-mix(in oklab, hsl(var(--primary)) 20%, transparent)}}@media (hover:hover){.data-\[state\=selected\]\:hover\:bg-primary\/25[data-state=selected]:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab, red, red)){.data-\[state\=selected\]\:hover\:bg-primary\/25[data-state=selected]:hover{background-color:color-mix(in oklab, hsl(var(--primary)) 25%, transparent)}}}@supports (height:1dvh){.supports-\[height\:1dvh\]\:h-\[min\(24rem\,42dvh\)\]{height:min(24rem,42dvh)}}@supports (max-height:1dvh){.supports-\[max-height\:1dvh\]\:max-h-\[min\(24rem\,42dvh\)\]{max-height:min(24rem,42dvh)}}@supports not (max-height:1dvh){.supports-\[not_\(max-height\:1dvh\)\]\:max-h-\[calc\(100vh-1rem\)\]{max-height:calc(100vh - 1rem)}}@media (prefers-reduced-motion:no-preference){.motion-safe\:animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.motion-safe\:fade-in-0{--tw-enter-opacity:0}.motion-safe\:slide-in-from-bottom-2{--tw-enter-translate-y:calc(2*var(--spacing))}}@media not all and (min-width:48rem){.max-md\:absolute{position:absolute}.max-md\:inset-x-0{inset-inline:0}.max-md\:top-0{top:0}.max-md\:bottom-0{bottom:0}.max-md\:z-30{z-index:30}.max-md\:shadow-xl{--tw-shadow:0 8px 16px -4px var(--tw-shadow-color,var(--elev-penumbra)), 0 24px 40px -8px var(--tw-shadow-color,var(--elev-umbra));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}@media (min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:me-1{margin-inline-end:var(--spacing)}.sm\:inline{display:inline}.sm\:w-48{width:calc(var(--spacing) * 48)}.sm\:w-72{width:calc(var(--spacing) * 72)}.sm\:w-auto{width:auto}.sm\:max-w-2xl{max-width:var(--container-2xl)}.sm\:max-w-3xl{max-width:var(--container-3xl)}.sm\:max-w-4xl{max-width:var(--container-4xl)}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-md{max-width:var(--container-md)}.sm\:max-w-xl{max-width:var(--container-xl)}.sm\:flex-\[3\]{flex:3}.sm\:flex-none{flex:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-\[1fr_7rem\]{grid-template-columns:1fr 7rem}.sm\:grid-cols-\[1fr_11rem\]{grid-template-columns:1fr 11rem}.sm\:grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:self-start{align-self:flex-start}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:text-start{text-align:start}}@media (min-width:48rem){.md\:me-2{margin-inline-end:calc(var(--spacing) * 2)}.md\:mt-3{margin-top:calc(var(--spacing) * 3)}.md\:block{display:block}.md\:h-auto{height:auto}.md\:max-h-none{max-height:none}.md\:min-h-0{min-height:0}.md\:w-11{width:calc(var(--spacing) * 11)}.md\:w-\[var\(--layer-panel-width\)\]{width:var(--layer-panel-width)}.md\:w-\[var\(--notebook-panel-width\)\]{width:var(--notebook-panel-width)}.md\:w-\[var\(--plugin-right-panel-width\)\]{width:var(--plugin-right-panel-width)}.md\:w-\[var\(--style-panel-width\)\]{width:var(--style-panel-width)}.md\:max-w-56{max-width:calc(var(--spacing) * 56)}.md\:max-w-xs{max-width:var(--container-xs)}.md\:rotate-180{rotate:180deg}.md\:\[grid-template-columns\:var\(--pl-cols\)\]{grid-template-columns:var(--pl-cols)}.md\:grid-cols-\[12rem_1fr\]{grid-template-columns:12rem 1fr}.md\:flex-col{flex-direction:column}.md\:flex-row{flex-direction:row}.md\:flex-nowrap{flex-wrap:nowrap}.md\:gap-2{gap:calc(var(--spacing) * 2)}.md\:overflow-x-visible{overflow-x:visible}.md\:overflow-y-auto{overflow-y:auto}.md\:border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.md\:border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.md\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.md\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.md\:px-0{padding-inline:0}.md\:px-1{padding-inline:var(--spacing)}.md\:py-2{padding-block:calc(var(--spacing) * 2)}.md\:\[writing-mode\:vertical-rl\]{writing-mode:vertical-rl}}@media (min-width:64rem){.lg\:inline{display:inline}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@container params (min-width:24rem){.\@sm\/params\:col-span-1{grid-column:span 1/span 1}.\@sm\/params\:grid-cols-\[minmax\(150px\,200px\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(150px,200px) minmax(0,1fr)}.\@sm\/params\:grid-cols-\[minmax\(150px\,200px\)_minmax\(0\,1fr\)_2\.25rem\]{grid-template-columns:minmax(150px,200px) minmax(0,1fr) 2.25rem}}@container panel (min-width:36rem){.\@xl\/panel\:grid-cols-\[minmax\(260px\,320px\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(260px,320px) minmax(0,1fr)}.\@xl\/panel\:grid-rows-\[minmax\(0\,1fr\)\]{grid-template-rows:minmax(0,1fr)}.\@xl\/panel\:flex-col{flex-direction:column}.\@xl\/panel\:gap-3{gap:calc(var(--spacing) * 3)}.\@xl\/panel\:border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.\@xl\/panel\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.\@xl\/panel\:pe-4{padding-inline-end:calc(var(--spacing) * 4)}.\@xl\/panel\:pb-0{padding-bottom:0}}.rtl\:translate-x-1\/2:where(:dir(rtl),[dir=rtl],[dir=rtl] *){--tw-translate-x:calc(1 / 2 * 100%);translate:var(--tw-translate-x) var(--tw-translate-y)}.rtl\:scale-x-\[-1\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){--tw-scale-x:-1;scale:var(--tw-scale-x) var(--tw-scale-y)}.rtl\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:180deg}.rtl\:cursor-nesw-resize:where(:dir(rtl),[dir=rtl],[dir=rtl] *){cursor:nesw-resize}.rtl\:cursor-sw-resize:where(:dir(rtl),[dir=rtl],[dir=rtl] *){cursor:sw-resize}.rtl\:group-open\:rotate-90:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.group):is([open],:popover-open,:open) *),.rtl\:group-open\/layer\:rotate-90:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.group\/layer):is([open],:popover-open,:open) *){rotate:90deg}.dark\:border-amber-400\/60:is(.dark *){border-color:#fcbb0099}@supports (color:color-mix(in lab, red, red)){.dark\:border-amber-400\/60:is(.dark *){border-color:color-mix(in oklab, var(--color-amber-400) 60%, transparent)}}.dark\:border-amber-500:is(.dark *){border-color:var(--color-amber-500)}.dark\:border-red-400\/40:is(.dark *){border-color:#ff656866}@supports (color:color-mix(in lab, red, red)){.dark\:border-red-400\/40:is(.dark *){border-color:color-mix(in oklab, var(--color-red-400) 40%, transparent)}}.dark\:border-red-400\/60:is(.dark *){border-color:#ff656899}@supports (color:color-mix(in lab, red, red)){.dark\:border-red-400\/60:is(.dark *){border-color:color-mix(in oklab, var(--color-red-400) 60%, transparent)}}.dark\:border-red-500:is(.dark *){border-color:var(--color-red-500)}.dark\:border-white\/25:is(.dark *){border-color:#ffffff40}@supports (color:color-mix(in lab, red, red)){.dark\:border-white\/25:is(.dark *){border-color:color-mix(in oklab, var(--color-white) 25%, transparent)}}.dark\:bg-amber-500:is(.dark *){background-color:var(--color-amber-500)}.dark\:bg-red-600:is(.dark *){background-color:var(--color-red-600)}.dark\:bg-red-950\/40:is(.dark *){background-color:#46080966}@supports (color:color-mix(in lab, red, red)){.dark\:bg-red-950\/40:is(.dark *){background-color:color-mix(in oklab, var(--color-red-950) 40%, transparent)}}.dark\:text-amber-300:is(.dark *){color:var(--color-amber-300)}.dark\:text-amber-400:is(.dark *){color:var(--color-amber-400)}.dark\:text-amber-500:is(.dark *){color:var(--color-amber-500)}.dark\:text-emerald-300:is(.dark *){color:var(--color-emerald-300)}.dark\:text-emerald-400:is(.dark *){color:var(--color-emerald-400)}.dark\:text-green-400:is(.dark *){color:var(--color-green-400)}.dark\:text-red-300:is(.dark *){color:var(--color-red-300)}.dark\:text-red-400:is(.dark *){color:var(--color-red-400)}.dark\:text-sky-300:is(.dark *){color:var(--color-sky-300)}.dark\:text-white:is(.dark *){color:var(--color-white)}@media (hover:hover){.dark\:hover\:bg-amber-500:is(.dark *):hover{background-color:var(--color-amber-500)}.dark\:hover\:bg-red-600:is(.dark *):hover{background-color:var(--color-red-600)}.dark\:hover\:text-amber-200:is(.dark *):hover{color:var(--color-amber-200)}.dark\:hover\:text-red-200:is(.dark *):hover{color:var(--color-red-200)}.dark\:hover\:text-white:is(.dark *):hover{color:var(--color-white)}}.\[\&_\[data-orientation\=vertical\]\]\:\!top-11 [data-orientation=vertical]{top:calc(var(--spacing) * 11)!important}.\[\&_\[data-orientation\=vertical\]\]\:\!h-\[calc\(100\%-3\.625rem\)\] [data-orientation=vertical]{height:calc(100% - 3.625rem)!important}.\[\&_\[data-radix-scroll-area-viewport\]\]\:touch-pan-y [data-radix-scroll-area-viewport]{--tw-pan-y:pan-y;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.\[\&_\[data-radix-scroll-area-viewport\]\]\:overscroll-contain [data-radix-scroll-area-viewport]{overscroll-behavior:contain}.\[\&_\[data-radix-scroll-area-viewport\]\>div\]\:\!block [data-radix-scroll-area-viewport]>div,.\[\&_\[data-radix-scroll-area-viewport\]\>div\]\:block\! [data-radix-scroll-area-viewport]>div{display:block!important}.\[\&_\[data-radix-scroll-area-viewport\]\>div\]\:w-full\! [data-radix-scroll-area-viewport]>div{width:100%!important}.\[\&_\[data-radix-scroll-area-viewport\]\>div\]\:min-w-0\! [data-radix-scroll-area-viewport]>div{min-width:0!important}.\[\&_a\]\:text-primary a{color:hsl(var(--primary))}.\[\&_a\]\:underline a{text-decoration-line:underline}.\[\&_code\]\:rounded code{border-radius:.25rem}.\[\&_code\]\:bg-muted code{background-color:hsl(var(--muted))}.\[\&_code\]\:px-1 code{padding-inline:var(--spacing)}.\[\&_code\]\:py-0\.5 code{padding-block:calc(var(--spacing) * .5)}.\[\&_code\]\:font-mono code{font-family:var(--font-mono)}.\[\&_code\]\:text-xs code{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_ol\]\:my-1 ol{margin-block:var(--spacing)}.\[\&_ol\]\:list-decimal ol{list-style-type:decimal}.\[\&_ol\]\:ps-5 ol{padding-inline-start:calc(var(--spacing) * 5)}.\[\&_p\]\:my-1 p{margin-block:var(--spacing)}.\[\&_p\:first-child\]\:mt-0 p:first-child{margin-top:0}.\[\&_p\:last-child\]\:mb-0 p:last-child{margin-bottom:0}.\[\&_pre\]\:my-1 pre{margin-block:var(--spacing)}.\[\&_pre\]\:overflow-auto pre{overflow:auto}.\[\&_pre\]\:rounded pre{border-radius:.25rem}.\[\&_pre\]\:bg-muted pre{background-color:hsl(var(--muted))}.\[\&_pre\]\:p-2 pre{padding:calc(var(--spacing) * 2)}.\[\&_pre_code\]\:bg-transparent pre code{background-color:#0000}.\[\&_pre_code\]\:p-0 pre code{padding:0}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&_ul\]\:my-1 ul{margin-block:var(--spacing)}.\[\&_ul\]\:list-disc ul{list-style-type:disc}.\[\&_ul\]\:ps-5 ul{padding-inline-start:calc(var(--spacing) * 5)}.\[\&\:\:-moz-range-progress\]\:h-2::-moz-range-progress{height:calc(var(--spacing) * 2)}.\[\&\:\:-moz-range-progress\]\:rounded-full::-moz-range-progress{border-radius:3.40282e38px}.\[\&\:\:-moz-range-progress\]\:bg-amber-500::-moz-range-progress{background-color:var(--color-amber-500)}.\[\&\:\:-moz-range-thumb\]\:h-4::-moz-range-thumb{height:calc(var(--spacing) * 4)}.\[\&\:\:-moz-range-thumb\]\:w-4::-moz-range-thumb{width:calc(var(--spacing) * 4)}.\[\&\:\:-moz-range-thumb\]\:rounded-full::-moz-range-thumb{border-radius:3.40282e38px}.\[\&\:\:-moz-range-thumb\]\:border::-moz-range-thumb{border-style:var(--tw-border-style);border-width:1px}.\[\&\:\:-moz-range-thumb\]\:border-amber-600::-moz-range-thumb{border-color:var(--color-amber-600)}.\[\&\:\:-moz-range-thumb\]\:bg-background::-moz-range-thumb{background-color:hsl(var(--background))}.\[\&\:\:-moz-range-thumb\]\:shadow::-moz-range-thumb{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,var(--elev-penumbra)), 0 1px 3px 0 var(--tw-shadow-color,var(--elev-umbra));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\[\&\:\:-moz-range-track\]\:h-2::-moz-range-track{height:calc(var(--spacing) * 2)}.\[\&\:\:-moz-range-track\]\:rounded-full::-moz-range-track{border-radius:3.40282e38px}.\[\&\:\:-moz-range-track\]\:bg-\[linear-gradient\(90deg\,\#111827_0\%\,\#334155_20\%\,\#f59e0b_28\%\,\#f8fafc_50\%\,\#f59e0b_72\%\,\#334155_80\%\,\#111827_100\%\)\]::-moz-range-track{background-image:linear-gradient(90deg,#111827 0%,#334155 20%,#f59e0b 28%,#f8fafc 50%,#f59e0b 72%,#334155 80%,#111827 100%)}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{appearance:none}.\[\&\:\:-webkit-slider-runnable-track\]\:h-2::-webkit-slider-runnable-track{height:calc(var(--spacing) * 2)}.\[\&\:\:-webkit-slider-runnable-track\]\:rounded-full::-webkit-slider-runnable-track{border-radius:3.40282e38px}.\[\&\:\:-webkit-slider-runnable-track\]\:bg-\[linear-gradient\(90deg\,\#111827_0\%\,\#334155_20\%\,\#f59e0b_28\%\,\#f8fafc_50\%\,\#f59e0b_72\%\,\#334155_80\%\,\#111827_100\%\)\]::-webkit-slider-runnable-track{background-image:linear-gradient(90deg,#111827 0%,#334155 20%,#f59e0b 28%,#f8fafc 50%,#f59e0b 72%,#334155 80%,#111827 100%)}.\[\&\:\:-webkit-slider-thumb\]\:mt-\[-4px\]::-webkit-slider-thumb{margin-top:-4px}.\[\&\:\:-webkit-slider-thumb\]\:h-4::-webkit-slider-thumb{height:calc(var(--spacing) * 4)}.\[\&\:\:-webkit-slider-thumb\]\:w-4::-webkit-slider-thumb{width:calc(var(--spacing) * 4)}.\[\&\:\:-webkit-slider-thumb\]\:appearance-none::-webkit-slider-thumb{appearance:none}.\[\&\:\:-webkit-slider-thumb\]\:rounded-full::-webkit-slider-thumb{border-radius:3.40282e38px}.\[\&\:\:-webkit-slider-thumb\]\:border::-webkit-slider-thumb{border-style:var(--tw-border-style);border-width:1px}.\[\&\:\:-webkit-slider-thumb\]\:border-amber-600::-webkit-slider-thumb{border-color:var(--color-amber-600)}.\[\&\:\:-webkit-slider-thumb\]\:bg-background::-webkit-slider-thumb{background-color:hsl(var(--background))}.\[\&\:\:-webkit-slider-thumb\]\:shadow::-webkit-slider-thumb{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,var(--elev-penumbra)), 0 1px 3px 0 var(--tw-shadow-color,var(--elev-umbra));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\[\&\>div\>div\]\:block\!>div>div{display:block!important}.\[\&\>svg\]\:min-h-0>svg{min-height:0}.\[\&\>svg\]\:flex-1>svg{flex:1}.\[\&\[data-state\=selected\]_input\]\:border-primary\/70[data-state=selected] input{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab, red, red)){.\[\&\[data-state\=selected\]_input\]\:border-primary\/70[data-state=selected] input{border-color:color-mix(in oklab, hsl(var(--primary)) 70%, transparent)}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@font-face{font-family:Vazirmatn Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/vazirmatn-arabic-wght-normal-Cafbb7Zc.woff2)format("woff2-variations");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}html:lang(fa){--font-sans:"Vazirmatn Variable", "IBM Plex Sans Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans Arabic", "Noto Sans", "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"}:root{--geolibre-bg:hsl(var(--popover));--geolibre-bg-subtle:hsl(var(--accent));--geolibre-bg-muted:hsl(var(--muted));--geolibre-fg:hsl(var(--popover-foreground));--geolibre-fg-muted:hsl(var(--muted-foreground));--geolibre-border:hsl(var(--border));--geolibre-primary:hsl(var(--primary))}.maplibregl-map .maplibregl-ctrl{font-family:var(--font-sans)}.maplibregl-map .maplibregl-ctrl-group{background:hsl(var(--popover));border-radius:var(--radius);color:hsl(var(--popover-foreground))}.maplibregl-map .maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 1px hsl(var(--border)), var(--shadow-sm)}.maplibregl-map .maplibregl-ctrl-group button{color:hsl(var(--popover-foreground))}.maplibregl-map .maplibregl-ctrl-group button+button{border-top-color:hsl(var(--border))}.maplibregl-map .maplibregl-ctrl-group button:where(.maplibregl-ctrl-zoom-in,.maplibregl-ctrl-zoom-out,.maplibregl-ctrl-compass,.maplibregl-ctrl-fullscreen,.maplibregl-ctrl-shrink,.maplibregl-ctrl-globe,.maplibregl-ctrl-globe-enabled,.maplibregl-ctrl-terrain,.maplibregl-ctrl-terrain-enabled,.maplibregl-ctrl-geolocate,.geolibre-reset-bearing-button,.geolibre-graticule-button):not(:disabled):hover{background-color:hsl(var(--accent))}.maplibregl-map .maplibregl-ctrl-group button:focus-visible,.maplibregl-map .maplibregl-ctrl-attrib-button:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:-2px}.maplibregl-map .maplibregl-ctrl-group button:disabled{cursor:not-allowed}.dark .maplibregl-map .maplibregl-ctrl-icon{filter:invert()}.dark .maplibregl-map :is(.maplibregl-ctrl-globe-enabled,.maplibregl-ctrl-terrain-enabled) .maplibregl-ctrl-icon,.dark .maplibregl-map .maplibregl-ctrl-geolocate:is(.maplibregl-ctrl-geolocate-active,.maplibregl-ctrl-geolocate-active-error,.maplibregl-ctrl-geolocate-background,.maplibregl-ctrl-geolocate-background-error) .maplibregl-ctrl-icon{filter:none}.maplibregl-map .maplibregl-ctrl:is(.maplibregl-ctrl-scale,.maplibregl-ctrl-attrib){background:hsl(var(--popover) / .95);color:hsl(var(--popover-foreground))}.maplibregl-map .maplibregl-ctrl-scale{border-color:hsl(var(--popover-foreground))}.maplibregl-map .maplibregl-ctrl-attrib a{color:hsl(var(--muted-foreground))}.maplibregl-map .maplibregl-ctrl-attrib a:hover{color:hsl(var(--popover-foreground))}.maplibregl-map .maplibregl-ctrl-attrib-button{background-color:#0000}.dark .maplibregl-map .maplibregl-ctrl-attrib-button{filter:invert()}.maplibregl-map .maplibregl-popup{font-family:var(--font-sans)}.maplibregl-map .maplibregl-popup-content{background:hsl(var(--popover));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:var(--shadow-md);color:hsl(var(--popover-foreground))}.maplibregl-map .maplibregl-popup-close-button{color:hsl(var(--muted-foreground));font:inherit;right:auto;background:0 0;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;display:flex;inset-block-start:4px;inset-inline-end:4px}.maplibregl-map .maplibregl-popup-close-button:hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.maplibregl-map .maplibregl-popup:is(.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right) .maplibregl-popup-tip{border-bottom-color:hsl(var(--popover))}.maplibregl-map .maplibregl-popup:is(.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right) .maplibregl-popup-tip{border-top-color:hsl(var(--popover))}.maplibregl-map .maplibregl-popup-anchor-left .maplibregl-popup-tip{border-right-color:hsl(var(--popover))}.maplibregl-map .maplibregl-popup-anchor-right .maplibregl-popup-tip{border-left-color:hsl(var(--popover))}.maplibregl-map :is(.geolibre-element-popup-card,.geolibre-annotation-dialog){background:hsl(var(--popover));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:var(--shadow-md);color:hsl(var(--popover-foreground));font-family:var(--font-sans);font-size:13px}.geolibre-reverse-geocode-content{padding-inline-end:20px;font-size:13px;line-height:1.4}.geolibre-reverse-geocode-copy{background:hsl(var(--secondary));border:1px solid hsl(var(--border));color:hsl(var(--secondary-foreground));cursor:pointer;font:inherit;border-radius:4px;padding:4px 8px}.geolibre-reverse-geocode-copy:hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}html .streetview-control,html .streetview-panel{background:hsl(var(--popover));border-radius:var(--radius);box-shadow:var(--shadow-md);color:hsl(var(--popover-foreground));font-family:var(--font-sans)}html .streetview-control-toggle,html .streetview-panel-title{color:hsl(var(--popover-foreground))}html .streetview-control-toggle:is(:hover,:active),html .streetview-panel-close:hover,html .streetview-provider-tab:not(:disabled):hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}html .streetview-control.active .streetview-control-toggle,html .streetview-provider-tab.active{background:hsl(var(--accent));border-color:hsl(var(--ring));color:hsl(var(--accent-foreground))}html .streetview-panel-header,html .streetview-provider-tabs,html .streetview-viewer-initial,html .streetview-no-data{background:hsl(var(--muted));border-color:hsl(var(--border));color:hsl(var(--muted-foreground))}html .streetview-api-keys{background:hsl(var(--popover))}html .streetview-panel-close,html .streetview-provider-tab,html .streetview-api-key-label,html .streetview-viewer-initial-hint{color:hsl(var(--muted-foreground))}html .streetview-no-data-title{color:hsl(var(--popover-foreground))}html .streetview-panel-resize:before{border-color:hsl(var(--muted-foreground))}.streetview-panel .streetview-api-key-input{background:hsl(var(--background));border-color:hsl(var(--input));color:hsl(var(--foreground))!important}.streetview-panel .streetview-api-key-input::placeholder{color:hsl(var(--muted-foreground))!important}html .streetview-api-key-input:focus,html .streetview-control-toggle:focus-visible{border-color:hsl(var(--ring));box-shadow:0 0 0 2px hsl(var(--ring) / .25)}html .streetview-api-key-apply,html .streetview-no-data-button{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}html .streetview-api-key-apply:is(:hover,:active),html .streetview-no-data-button:hover{background:hsl(var(--primary) / .9)}.geolibre-components-control,.geolibre-components-control .maplibre-gl-control-grid-content>.maplibregl-ctrl,.geolibre-components-control .maplibre-gl-control-grid-content>.maplibregl-ctrl:not(.active)>button:not(.active):not([class*=--active]){background:hsl(var(--popover))!important;color:hsl(var(--popover-foreground))!important}.geolibre-components-control .maplibre-gl-control-grid-content>.maplibregl-ctrl>button:not(:disabled):hover{background:hsl(var(--accent))!important;color:hsl(var(--accent-foreground))!important}.geolibre-components-control :is(.measure-panel,.bookmark-panel,.maplibre-gl-view-state-panel,.colorbar-gui-panel,.legend-gui-panel,.html-gui-panel,.maplibre-gl-basemap,.maplibre-gl-basemap-dropdown-menu,.maplibre-gl-search,.spin-globe-panel){border-color:hsl(var(--border));border-radius:var(--radius);box-shadow:var(--shadow-md);font-family:var(--font-sans);background:hsl(var(--popover))!important;color:hsl(var(--popover-foreground))!important}.geolibre-components-control :is(.maplibre-gl-basemap-icon-button,.maplibre-gl-basemap-close,.maplibre-gl-basemap-loading,.maplibre-gl-basemap-group){color:hsl(var(--muted-foreground));border-color:hsl(var(--border))}.geolibre-components-control .maplibre-gl-basemap-dropdown-button{background:hsl(var(--background));border-color:hsl(var(--border));color:hsl(var(--foreground))}.geolibre-components-control :is(.maplibre-gl-basemap-item:hover,.maplibre-gl-basemap-item--selected,.maplibre-gl-basemap-gallery-item:hover,.maplibre-gl-basemap-gallery-item--selected,.maplibre-gl-basemap-close:hover){background:hsl(var(--accent));color:hsl(var(--accent-foreground));outline-color:hsl(var(--ring))}.geolibre-components-control .maplibre-gl-basemap-thumbnail{background-color:hsl(var(--muted));border-color:hsl(var(--border))}.geolibre-components-control .maplibre-gl-basemap :is(label,.maplibre-gl-basemap-close){color:hsl(var(--popover-foreground))}.geolibre-components-control :is(.maplibre-gl-cog-layer-panel,.maplibre-gl-stac-layer-panel,.maplibre-gl-splat-panel){color:hsl(var(--popover-foreground))!important}.geolibre-components-control :is(.maplibre-gl-cog-layer-panel,.maplibre-gl-stac-layer-panel,.maplibre-gl-splat-panel) label,.geolibre-components-control :is(.maplibre-gl-cog-layer-close,.maplibre-gl-stac-layer-close),.geolibre-components-control .maplibre-gl-splat-panel>div:first-child button{color:hsl(var(--muted-foreground))!important}.geolibre-components-control .maplibre-gl-stac-layer-btn--secondary{background:hsl(var(--secondary))!important;border-color:hsl(var(--border))!important;color:hsl(var(--secondary-foreground))!important}.geolibre-components-control :is(.maplibre-gl-cog-layer-btn--primary,.maplibre-gl-splat-panel>button){background:hsl(var(--primary))!important;color:hsl(var(--primary-foreground))!important}.geolibre-components-control :is(.maplibre-gl-cog-layer-panel,.maplibre-gl-stac-layer-panel,.maplibre-gl-splat-panel,.maplibre-gl-add-vector-panel,.maplibre-gl-zarr-layer-panel,.maplibre-gl-pmtiles-layer-panel) input:is([type=checkbox],[type=range]){accent-color:hsl(var(--primary))}html .geolibre-components-control .swipe-control-panel{--swipe-bg:hsl(var(--popover));--swipe-header-bg:hsl(var(--muted));--swipe-fg:hsl(var(--popover-foreground));--swipe-text:hsl(var(--popover-foreground));--swipe-label:hsl(var(--muted-foreground));--swipe-muted:hsl(var(--muted-foreground));--swipe-border:hsl(var(--border));--swipe-border-subtle:hsl(var(--border));--swipe-input-bg:hsl(var(--background));--swipe-input-border:hsl(var(--border));--swipe-input-border-hover:hsl(var(--ring));--swipe-list-bg:hsl(var(--muted));--swipe-hover:hsl(var(--accent));--swipe-item-hover:hsl(var(--accent));--swipe-track:hsl(var(--input));color-scheme:light;background:hsl(var(--popover))!important;color:hsl(var(--popover-foreground))!important}html.dark .geolibre-components-control .swipe-control-panel{color-scheme:dark}html .geolibre-components-control .swipe-control-panel :is(label,.swipe-toggle-label){color:hsl(var(--popover-foreground))}html .maplibre-gl-inspect-header{background:hsl(var(--muted));border-color:hsl(var(--border))}html .maplibre-gl-inspect-geometry{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.maplibre-gl-inspect-popup :is(.maplibre-gl-inspect-layer,.maplibre-gl-inspect-nav button,.maplibre-gl-inspect-nav-count,td.key,td.value.null,.maplibre-gl-inspect-empty){color:hsl(var(--muted-foreground))}.maplibre-gl-inspect-popup .maplibre-gl-inspect-properties td.value:not(.null){color:hsl(var(--popover-foreground))}.maplibre-gl-inspect-popup .maplibre-gl-inspect-properties td.value pre,.maplibre-gl-inspect-popup .maplibre-gl-inspect-nav button:not(:disabled):hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.maplibregl-map :is(.maplibre-gl-inspect-button,.maplibre-gl-vector-dataset-button){color:hsl(var(--popover-foreground))}.maplibregl-map :is(.maplibre-gl-inspect-button--active,.maplibre-gl-inspect-button:hover,.maplibre-gl-vector-dataset-button:hover){background:hsl(var(--accent));color:hsl(var(--accent-foreground))}html .maplibre-gl-vector-dataset-dropzone{background:hsl(var(--primary) / .15);border-color:hsl(var(--ring))}html .maplibre-gl-vector-dataset-loading{background:hsl(var(--background) / .85)}html .maplibre-gl-vector-dataset-dropzone-content,html .maplibre-gl-vector-dataset-loading-content{background:hsl(var(--popover));box-shadow:var(--shadow-md);color:hsl(var(--popover-foreground));font-family:var(--font-sans)}html .maplibre-gl-vector-dataset-dropzone-content p,html .maplibre-gl-vector-dataset-loading-text{color:hsl(var(--popover-foreground))}html .maplibre-gl-vector-dataset-loading-progress{color:hsl(var(--muted-foreground))}html .maplibre-gl-vector-dataset-dropzone-content svg{color:hsl(var(--primary))}html .maplibre-gl-vector-dataset-spinner{border-color:hsl(var(--border));border-top-color:hsl(var(--primary))}.maplibregl-map .maplibre-gl-print-control{--print-panel-bg:hsl(var(--popover))!important;--print-subtle-bg:hsl(var(--muted))!important;--print-text:hsl(var(--popover-foreground))!important;--print-muted:hsl(var(--muted-foreground))!important;--print-subtle:hsl(var(--muted-foreground))!important;--print-border:hsl(var(--border))!important;--print-input-bg:hsl(var(--background))!important;--print-input-text:hsl(var(--foreground))!important;--print-placeholder:hsl(var(--muted-foreground))!important;--print-hover-bg:hsl(var(--accent))!important;--print-focus:hsl(var(--ring))!important;--print-button-bg:hsl(var(--popover))!important;--print-button-text:hsl(var(--popover-foreground))!important}.maplibregl-map .maplibre-gl-print-control :is(input,select){color:hsl(var(--foreground))!important}:root{--lidar-bg:hsl(var(--popover))!important;--lidar-bg-muted:hsl(var(--muted))!important;--lidar-bg-subtle:hsl(var(--accent))!important;--lidar-bg-code:hsl(var(--background))!important;--lidar-hover:hsl(var(--accent))!important;--lidar-active:hsl(var(--secondary))!important;--lidar-border:hsl(var(--border))!important;--lidar-border-input:hsl(var(--input))!important;--lidar-border-strong:hsl(var(--border))!important;--lidar-border-hover:hsl(var(--ring))!important;--lidar-border-subtle:hsl(var(--border))!important;--lidar-border-dashed:hsl(var(--border))!important;--lidar-text:hsl(var(--popover-foreground))!important;--lidar-text-strong:hsl(var(--foreground))!important;--lidar-text-secondary:hsl(var(--muted-foreground))!important;--lidar-text-tertiary:hsl(var(--muted-foreground))!important;--lidar-text-muted:hsl(var(--muted-foreground))!important;--lidar-text-faint:hsl(var(--muted-foreground))!important;--lidar-accent:hsl(var(--primary))!important;--lidar-accent-hover:hsl(var(--primary) / .9)!important;--lidar-accent-border:hsl(var(--primary))!important;--lidar-accent-dark:hsl(var(--primary))!important;--lidar-accent-darker:hsl(var(--primary))!important;--lidar-accent-soft:hsl(var(--accent))!important;--lidar-accent-ring:hsl(var(--ring) / .25)!important;--lidar-on-accent:hsl(var(--primary-foreground))!important;--lidar-shadow:var(--elev-penumbra)!important;--lidar-shadow-modal:var(--elev-umbra)!important;--lidar-overlay:hsl(var(--popover) / .95)!important;--lidar-toggle-hover:hsl(var(--accent))!important;--lidar-scrollbar:hsl(var(--muted-foreground))!important;--lidar-scrollbar-hover:hsl(var(--foreground))!important;--lidar-tooltip-bg:hsl(var(--popover))!important;--lidar-tooltip-text:hsl(var(--popover-foreground))!important;--lidar-error-bg:hsl(var(--destructive) / .1)!important;--lidar-error-border:hsl(var(--destructive) / .3)!important;--lidar-error-text:hsl(var(--destructive))!important;--lidar-danger:hsl(var(--destructive))!important;--lidar-danger-bg:hsl(var(--destructive) / .1)!important;--lidar-danger-on:hsl(var(--destructive-foreground))!important;--lidar-info-bg:hsl(var(--accent))!important;--lidar-info-text:hsl(var(--accent-foreground))!important;--lidar-info-border:hsl(var(--border))!important;--lidar-resize-grip:hsl(var(--border))!important;--lidar-resize-grip-hover:hsl(var(--muted-foreground))!important;--lidar-chart-bg:hsl(var(--background))!important;--lidar-chart-grid:hsl(var(--border))!important;--lidar-chart-axis:hsl(var(--muted-foreground))!important;--lidar-chart-text:hsl(var(--foreground))!important;--lidar-chart-muted:hsl(var(--muted-foreground))!important;--lidar-chart-highlight:hsl(var(--foreground))!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.animate-spin{animation-duration:1.5s!important;animation-iteration-count:infinite!important}.animate-pulse{animation-duration:3s!important;animation-iteration-count:infinite!important}}html,body,#root{height:100%;margin:0;overflow:hidden}#root{box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.maplibregl-control-container{direction:ltr}.geoagent-control .geoagent-control-toggle{justify-content:center;align-items:center;display:flex}.geoagent-control .geoagent-control-icon{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.geoagent-control .geoagent-control-icon svg{transform:translate(1px)}.geoagent-panel input:focus,.geoagent-panel select:focus,.geoagent-panel textarea:focus,.geoagent-panel input:focus-visible,.geoagent-panel select:focus-visible,.geoagent-panel textarea:focus-visible{border-color:#2f8f85;outline:none;box-shadow:inset 0 0 0 1px #2f8f85}.geoagent-panel button.geolibre-ee-sign-in{color:#17202a;cursor:pointer;background:#fff;border:1px solid #d7dde5;border-radius:6px;min-height:32px;margin:0 10px 8px;padding:0 12px;font-weight:700}.geoagent-panel button.geolibre-ee-sign-in:hover{background:#f1f5f9;border-color:#b0bec5}.geoagent-panel button.geolibre-ee-sign-in:focus-visible{border-color:#2f8f85;outline:none;box-shadow:inset 0 0 0 1px #2f8f85}.geoagent-panel button.geolibre-ee-sign-in:disabled{cursor:not-allowed;opacity:.55}.dark .geoagent-panel{background:hsl(var(--background));border-color:hsl(var(--border));color:hsl(var(--foreground));color-scheme:dark}.dark .geoagent-settings>summary,.dark .geoagent-earth-engine summary,.dark .geoagent-model-suggestion{color:hsl(var(--foreground))}.dark .geoagent-panel label,.dark .geoagent-role,.dark .geoagent-earth-engine-status,.dark .geoagent-text.markdown blockquote{color:hsl(var(--muted-foreground))}.dark .geoagent-panel input,.dark .geoagent-panel select,.dark .geoagent-panel textarea{background:hsl(var(--background));border-color:hsl(var(--input));color:hsl(var(--foreground))}.dark .geoagent-panel input::placeholder,.dark .geoagent-panel textarea::placeholder{color:hsl(var(--muted-foreground))}.dark .geoagent-settings,.dark .geoagent-earth-engine{background:hsl(var(--muted));border-color:hsl(var(--border))}.dark .geoagent-icon-button,.dark .geoagent-panel button.secondary,.dark .geoagent-panel .geoagent-checkbox-row,.dark .geoagent-panel button.geolibre-ee-sign-in{background:hsl(var(--background));border-color:hsl(var(--input));color:hsl(var(--foreground))}.dark .geoagent-icon-button:hover,.dark .geoagent-panel button.secondary:hover:not(:disabled),.dark .geoagent-panel button.geolibre-ee-sign-in:hover{background:hsl(var(--accent))}.dark .geoagent-status{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.dark .geoagent-status.connected,.dark .geoagent-config-note.success{color:#6ee7b7;background:#10b98129}.dark .geoagent-status.setup{color:#fcd34d;background:#f59e0b29}.dark .geoagent-status.connecting{color:#93c5fd;background:#3b82f62e}.dark .geoagent-status.error,.dark .geoagent-config-note.error{color:#fca5a5;background:#ef444429}.dark .geoagent-config-note.info{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.dark .geoagent-model-suggestions{background:hsl(var(--popover));border-color:hsl(var(--border))}.dark .geoagent-model-suggestion:hover,.dark .geoagent-model-suggestion.active{background:hsl(var(--accent))}.dark .geoagent-log{background:hsl(var(--muted));border-color:hsl(var(--border))}.dark .geoagent-entry{border-bottom-color:hsl(var(--border))}.dark .geoagent-log,.dark .geoagent-model-suggestions,.dark .geoagent-panel textarea,.dark .geoagent-text.markdown pre,.dark .geoagent-text.markdown table{scrollbar-color:hsl(var(--muted-foreground)) hsl(var(--muted))}.dark .geoagent-log::-webkit-scrollbar-track{background:hsl(var(--muted))}.dark .geoagent-panel textarea::-webkit-scrollbar-track{background:hsl(var(--muted))}.dark .geoagent-text.markdown pre::-webkit-scrollbar-track{background:hsl(var(--muted))}.dark .geoagent-text.markdown table::-webkit-scrollbar-track{background:hsl(var(--muted))}.dark .geoagent-log::-webkit-scrollbar-thumb{border-color:hsl(var(--muted));background:hsl(var(--muted-foreground))}.dark .geoagent-panel textarea::-webkit-scrollbar-thumb{border-color:hsl(var(--muted));background:hsl(var(--muted-foreground))}.dark .geoagent-text.markdown pre::-webkit-scrollbar-thumb{border-color:hsl(var(--muted));background:hsl(var(--muted-foreground))}.dark .geoagent-text.markdown table::-webkit-scrollbar-thumb{border-color:hsl(var(--muted));background:hsl(var(--muted-foreground))}.dark .geoagent-text.markdown a{color:#5eead4}.dark .geoagent-text.markdown code{background:hsl(var(--accent));color:hsl(var(--foreground))}.dark .geoagent-text.markdown pre{border-color:hsl(var(--border));background:hsl(var(--background))}.dark .geoagent-text.markdown blockquote,.dark .geoagent-text.markdown th,.dark .geoagent-text.markdown td{border-color:hsl(var(--border))}.geo-editor-control .geo-editor-tool-button{box-sizing:border-box;justify-content:center;align-items:center;padding:0;line-height:0;display:flex!important}.geo-editor-control .geo-editor-tool-button svg{flex:none;margin:0;display:block}.geo-editor-control .geo-editor-tool-button[data-mode=text_marker] svg{width:24px;height:24px}.geo-editor-control .geo-editor-tool-button[data-mode=text_marker] svg text{font-size:18px}.geolibre-esri-wayback-control,.esri-wayback-control-panel{color-scheme:light}.dark .geolibre-esri-wayback-control,.dark .esri-wayback-control-panel{color-scheme:dark}.esri-wayback-control-panel .esri-wayback-range{accent-color:#2b7bb9}.esri-wayback-control-panel .esri-wayback-input{color:#111827!important;background-color:#fff!important}.esri-wayback-control-panel .esri-wayback-input::placeholder{color:#6b7280!important}.dark .esri-wayback-control,.dark .esri-wayback-control-toggle{background:hsl(var(--popover));color:hsl(var(--popover-foreground))}.dark .esri-wayback-control-toggle:hover{background-color:hsl(var(--accent))}.dark .esri-wayback-control-icon svg{stroke:hsl(var(--popover-foreground))}.dark .esri-wayback-control-panel{background:hsl(var(--popover));color:hsl(var(--popover-foreground));box-shadow:0 12px 32px #00000073}.dark .esri-wayback-control-header{border-bottom-color:hsl(var(--border));color:hsl(var(--foreground))}.dark .esri-wayback-control-close{color:hsl(var(--muted-foreground))}.dark .esri-wayback-control-close:hover{color:hsl(var(--foreground))}.dark .esri-wayback-status,.dark .esri-wayback-summary-label,.dark .esri-wayback-summary-detail,.dark .esri-wayback-release-count,.dark .esri-wayback-local-changes-status,.dark .esri-wayback-slider-endpoints,.dark .esri-wayback-persistent-status,.dark .esri-wayback-metadata dt{color:hsl(var(--muted-foreground))}.dark .esri-wayback-status-error{color:hsl(var(--destructive))}.dark .esri-wayback-summary-value,.dark .esri-wayback-label,.dark .esri-wayback-local-changes-label,.dark .esri-wayback-metadata h3,.dark .esri-wayback-metadata dd{color:hsl(var(--foreground))}.dark .esri-wayback-summary{background:hsl(var(--muted));border-color:hsl(var(--border))}.dark .esri-wayback-slider,.dark .esri-wayback-persistent{background:hsl(var(--background));border-color:hsl(var(--border))}.dark .esri-wayback-metadata{border-top-color:hsl(var(--border))}.dark .esri-wayback-slider-button{background:hsl(var(--background));border-color:hsl(var(--border));color:hsl(var(--foreground))}.dark .esri-wayback-slider-button:hover:not(:disabled){background:hsl(var(--accent));border-color:hsl(var(--ring))}.dark .esri-wayback-slider-button:disabled{color:hsl(var(--muted-foreground))}.dark .esri-wayback-range,.dark .esri-wayback-local-changes-checkbox{accent-color:hsl(var(--primary))}.dark .esri-wayback-control-panel .esri-wayback-input{border-color:hsl(var(--border));background-color:hsl(var(--background))!important;color:hsl(var(--foreground))!important}.dark .esri-wayback-control-panel .esri-wayback-input::placeholder{color:hsl(var(--muted-foreground))!important}.dark .esri-wayback-input:focus{border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring) / .3)}.dark .esri-wayback-add-layer-button{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.dark .esri-wayback-add-layer-button:hover:not(:disabled){background:hsl(var(--primary) / .9)}.dark .esri-wayback-add-layer-button:disabled{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.geolibre-components-control .maplibregl-ctrl-group,.geolibre-components-control .maplibregl-ctrl{justify-content:center;align-items:center;display:flex}.geolibre-components-control .maplibre-gl-control-grid-content button{box-sizing:border-box;justify-content:center;align-items:center;padding:0;line-height:0;display:flex!important}.geolibre-components-control .maplibre-gl-control-grid-content button>svg,.geolibre-components-control .maplibre-gl-control-grid-content .maplibregl-ctrl-icon{flex:none;margin:0 auto;display:block}.geolibre-components-control .maplibre-gl-control-grid-content button>span:not(.maplibregl-ctrl-icon){justify-content:center;align-items:center;width:100%;height:100%;margin:0;display:flex}.geolibre-components-control,.geolibre-components-control .maplibre-gl-control-grid{overflow:visible}.geolibre-components-control{padding:10px!important}.geolibre-components-control.maplibre-gl-control-grid--collapsed{width:29px;height:29px;padding:0!important}.geolibre-components-control.maplibre-gl-control-grid--collapsed .maplibre-gl-control-grid-header,.geolibre-components-control.maplibre-gl-control-grid--collapsed .maplibre-gl-control-grid-wrench{width:29px!important;height:29px!important}.geolibre-components-control.maplibre-gl-control-grid--collapsed .maplibre-gl-control-grid-wrench svg{width:16px;height:16px}.geolibre-components-control .maplibre-gl-control-grid-content>*{margin:4px!important}.geolibre-components-control .maplibre-gl-control-grid-floating-panel{box-sizing:border-box;max-width:min(340px,100vw - 32px)}.geolibre-components-control .maplibre-gl-control-grid-floating-panel>.maplibregl-ctrl{margin-left:0!important;margin-right:0!important}.geolibre-components-control .maplibre-gl-control-grid-floating-panel .maplibre-gl-search-input-wrapper{gap:6px!important;width:100%!important;padding-left:6px!important;padding-right:6px!important}.geolibre-components-control .maplibre-gl-control-grid-floating-panel>.maplibre-gl-search{justify-content:normal!important;display:block!important}.maplibregl-ctrl-top-left .geolibre-components-control .maplibre-gl-control-grid-floating-panel,.maplibregl-ctrl-bottom-left .geolibre-components-control .maplibre-gl-control-grid-floating-panel{width:100%!important;max-width:100%!important;left:0!important;right:auto!important}.maplibregl-ctrl-top-right .geolibre-components-control .maplibre-gl-control-grid-floating-panel,.maplibregl-ctrl-bottom-right .geolibre-components-control .maplibre-gl-control-grid-floating-panel{left:auto!important;right:0!important}.geolibre-components-control .maplibre-gl-control-grid-relocated{box-sizing:border-box;max-width:min(340px,100vw - 32px)!important}.geolibre-flatgeobuf-control{overflow:visible;background-color:hsl(var(--popover))!important;color:hsl(var(--popover-foreground))!important}.geolibre-flatgeobuf-control:not(.geolibre-grid-child) .maplibre-gl-add-vector-button{display:none!important}.geolibre-pmtiles-control{overflow:visible;background-color:hsl(var(--popover))!important;color:hsl(var(--popover-foreground))!important}.geolibre-pmtiles-control:not(.geolibre-grid-child) .maplibre-gl-pmtiles-layer-button{display:none!important}.spin-globe-panel{background:hsl(var(--popover))!important;border:1px solid hsl(var(--border))!important;color:hsl(var(--popover-foreground))!important;right:calc(100% + 8px)!important;box-shadow:0 4px 12px #00000040!important}.spin-globe-panel *{color:hsl(var(--popover-foreground))!important}.spin-globe-panel>button{background:hsl(var(--secondary))!important;border-color:hsl(var(--border))!important}.spin-globe-panel>button:hover{background:hsl(var(--accent))!important}.maplibre-gl-spin-globe-control button{color:hsl(var(--popover-foreground))}.geolibre-graticule-ctrl .geolibre-graticule-button{color:hsl(var(--popover-foreground));justify-content:center;align-items:center;display:flex}.geolibre-duckdb-control{pointer-events:none;box-shadow:none!important;color:hsl(var(--popover-foreground))!important;background-color:#0000!important;height:0!important;margin:0!important}.geolibre-duckdb-control .duckdb-control-toggle{pointer-events:none;visibility:hidden}.duckdb-control-panel:has(+.geolibre-duckdb-control),.duckdb-control-panel{box-sizing:border-box;max-width:min(365px,100vw - 32px);max-height:min(620px,100% - 20px)}.duckdb-control-panel{border:1px solid hsl(var(--border));background-color:hsl(var(--popover))!important;color:hsl(var(--popover-foreground))!important;top:10px!important;left:10px!important}.duckdb-control-header{background-color:hsl(var(--card))!important;border-bottom-color:hsl(var(--border))!important;color:hsl(var(--foreground))!important}.duckdb-control-title,.duckdb-control-label,.duckdb-control-section-title,.duckdb-control-summary-row strong,.duckdb-control-properties dd{color:hsl(var(--foreground))!important}.duckdb-control-summary-row span,.duckdb-control-properties dt,.duckdb-control-placeholder{color:hsl(var(--muted-foreground))!important}.duckdb-control-section,.duckdb-control-properties th,.duckdb-control-properties td{border-color:hsl(var(--border))!important}.duckdb-control-input,.duckdb-control-file,.duckdb-control-textarea{background-color:hsl(var(--background))!important;border-color:hsl(var(--input))!important;color:hsl(var(--foreground))!important}.duckdb-control-input:focus,.duckdb-control-file:focus,.duckdb-control-textarea:focus{box-shadow:0 0 0 1px hsl(var(--ring));border-color:hsl(var(--ring))!important}.duckdb-control-button{background-color:hsl(var(--primary))!important;color:hsl(var(--primary-foreground))!important}.duckdb-control-button:hover{background-color:hsl(var(--primary) / .9)!important}.duckdb-control-secondary-button{background-color:hsl(var(--secondary))!important;color:hsl(var(--secondary-foreground))!important}.duckdb-control-secondary-button:hover,.duckdb-control-status{background-color:hsl(var(--accent))!important;color:hsl(var(--accent-foreground))!important}.duckdb-control-error{background-color:hsl(var(--destructive) / .12)!important;color:hsl(var(--destructive))!important}.duckdb-control-close{color:hsl(var(--muted-foreground))!important}.duckdb-control-close:hover{color:hsl(var(--foreground))!important}.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-panel{border:1px solid hsl(var(--border));max-width:min(340px,100vw - 32px);background-color:hsl(var(--popover))!important;color:hsl(var(--popover-foreground))!important}.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-header{background-color:hsl(var(--card))!important;border-bottom-color:hsl(var(--border))!important;color:hsl(var(--foreground))!important}.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-title,.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-form-group>label,.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-close{color:hsl(var(--foreground))!important}.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-close:hover{background-color:hsl(var(--accent))!important;color:hsl(var(--accent-foreground))!important}.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-list{background-color:hsl(var(--card))!important;border-color:hsl(var(--border))!important;color:hsl(var(--foreground))!important}.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-list-item{border-bottom-color:hsl(var(--border))!important;color:hsl(var(--foreground))!important}.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-list-label,.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-list-header{color:hsl(var(--foreground))!important}.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-badge{background-color:hsl(var(--secondary))!important;color:hsl(var(--secondary-foreground))!important}.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-form-group>div[style*=background]{background-color:hsl(var(--background))!important;border-color:hsl(var(--border))!important;color:hsl(var(--foreground))!important}.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-form-group>div[style*=background] label,.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-form-group>div span{color:hsl(var(--foreground))!important}.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-form-group>span{color:hsl(var(--muted-foreground))!important}.geolibre-pmtiles-control input[type=checkbox]{accent-color:hsl(var(--primary))}.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-input{background-color:hsl(var(--background))!important;border:1px solid hsl(var(--input))!important;color:hsl(var(--foreground))!important}.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-input::placeholder{color:hsl(var(--muted-foreground))!important}.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-input:focus{outline:none;border-color:hsl(var(--ring))!important;box-shadow:0 0 0 1px hsl(var(--ring))!important}.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-btn{background-color:hsl(var(--card))!important;border:1px solid hsl(var(--border))!important;color:hsl(var(--foreground))!important}.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-btn:hover:not(:disabled){background-color:hsl(var(--accent))!important;color:hsl(var(--accent-foreground))!important}.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-btn:disabled{opacity:.65;color:hsl(var(--muted-foreground))!important}.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-btn--primary{background-color:hsl(var(--primary))!important;border-color:hsl(var(--primary))!important;color:hsl(var(--primary-foreground))!important}.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-status--error{color:hsl(var(--destructive))!important}.geolibre-zarr-control{overflow:visible;background-color:hsl(var(--popover))!important;color:hsl(var(--popover-foreground))!important}.geolibre-zarr-control:not(.geolibre-grid-child) .maplibre-gl-zarr-layer-button{display:none!important}.geolibre-zarr-control .maplibre-gl-zarr-layer-panel{border:1px solid hsl(var(--border));max-width:min(340px,100vw - 32px);box-shadow:0 12px 32px #00000047;background-color:hsl(var(--popover))!important;color:hsl(var(--popover-foreground))!important}.geolibre-zarr-control .maplibre-gl-zarr-layer-header{background-color:hsl(var(--card))!important;border-bottom-color:hsl(var(--border))!important;color:hsl(var(--foreground))!important}.geolibre-zarr-control .maplibre-gl-zarr-layer-title,.geolibre-zarr-control .maplibre-gl-zarr-layer-form-group>label,.geolibre-zarr-control .maplibre-gl-zarr-layer-checkbox-label,.geolibre-zarr-control .maplibre-gl-zarr-layer-slider-value,.geolibre-zarr-control .maplibre-gl-zarr-layer-list-header,.geolibre-zarr-control .maplibre-gl-zarr-layer-list-label{color:hsl(var(--foreground))!important}.geolibre-zarr-control .maplibre-gl-zarr-layer-close,.geolibre-zarr-control .maplibre-gl-zarr-layer-list-remove{color:hsl(var(--muted-foreground))!important}.geolibre-zarr-control .maplibre-gl-zarr-layer-close:hover,.geolibre-zarr-control .maplibre-gl-zarr-layer-list-remove:hover{background-color:hsl(var(--accent))!important;color:hsl(var(--accent-foreground))!important}.geolibre-zarr-control .maplibre-gl-zarr-layer-list{background-color:hsl(var(--card))!important;border-color:hsl(var(--border))!important;color:hsl(var(--foreground))!important}.geolibre-zarr-control .maplibre-gl-zarr-layer-list-item{border-bottom-color:hsl(var(--border))!important;color:hsl(var(--foreground))!important}.geolibre-zarr-control .maplibre-gl-zarr-layer-input,.geolibre-zarr-control .maplibre-gl-zarr-layer-select{background-color:hsl(var(--background))!important;border:1px solid hsl(var(--input))!important;color:hsl(var(--foreground))!important}.geolibre-zarr-control .maplibre-gl-zarr-layer-select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, hsl(var(--foreground)) 50%), linear-gradient(135deg, hsl(var(--foreground)) 50%, transparent 50%);color-scheme:light dark;background-position:calc(100% - 14px),calc(100% - 9px);background-repeat:no-repeat;background-size:5px 5px;padding-right:2rem!important}.geolibre-zarr-control .maplibre-gl-zarr-layer-input::placeholder{color:hsl(var(--muted-foreground))!important}.geolibre-zarr-control .maplibre-gl-zarr-layer-input[type=number]{min-height:2rem;padding-right:.5rem!important}.geolibre-zarr-control .maplibre-gl-zarr-layer-input[type=number]::-webkit-inner-spin-button{cursor:pointer;opacity:1;transform-origin:50%;transform:scale(1.3)}.geolibre-zarr-control .maplibre-gl-zarr-layer-input[type=number]::-webkit-outer-spin-button{cursor:pointer;opacity:1;transform-origin:50%;transform:scale(1.3)}.geolibre-zarr-control .maplibre-gl-zarr-layer-input:focus,.geolibre-zarr-control .maplibre-gl-zarr-layer-select:focus{outline:none;border-color:hsl(var(--ring))!important;box-shadow:0 0 0 1px hsl(var(--ring))!important}.geolibre-zarr-control .maplibre-gl-zarr-layer-select option{background-color:hsl(var(--popover));color:hsl(var(--popover-foreground))}.geolibre-zarr-control .maplibre-gl-zarr-layer-btn{background-color:hsl(var(--card))!important;border:1px solid hsl(var(--border))!important;color:hsl(var(--foreground))!important}.geolibre-zarr-control .maplibre-gl-zarr-layer-btn:hover:not(:disabled){background-color:hsl(var(--accent))!important;color:hsl(var(--accent-foreground))!important}.geolibre-zarr-control .maplibre-gl-zarr-layer-btn:disabled{opacity:.65;color:hsl(var(--muted-foreground))!important}.geolibre-zarr-control .maplibre-gl-zarr-layer-btn--primary{background-color:hsl(var(--primary))!important;border-color:hsl(var(--primary))!important;color:hsl(var(--primary-foreground))!important}.geolibre-zarr-control .maplibre-gl-zarr-layer-status--error{color:hsl(var(--destructive))!important}.geolibre-zarr-control .maplibre-gl-zarr-layer-checkbox,.geolibre-zarr-control .maplibre-gl-zarr-layer-slider{accent-color:hsl(var(--primary))}.geolibre-search-control{box-shadow:var(--shadow-md);z-index:3;max-width:min(320px,100vw - 32px);position:relative;overflow:visible;background-color:hsl(var(--popover))!important;color:hsl(var(--popover-foreground))!important}.geolibre-search-control .maplibre-gl-search-input-wrapper{box-sizing:border-box;background-color:hsl(var(--popover))!important;border-bottom:1px solid hsl(var(--border))!important;width:100%!important}.geolibre-search-control .maplibre-gl-search-input{caret-color:hsl(var(--foreground));background-color:hsl(var(--background))!important;color:hsl(var(--foreground))!important}.geolibre-search-control .maplibre-gl-search-input::placeholder{opacity:1;color:hsl(var(--muted-foreground))!important}.geolibre-search-control .maplibre-gl-search-input:focus{outline:2px solid hsl(var(--ring));outline-offset:-2px}.geolibre-search-control .maplibre-gl-search-toggle{border-radius:var(--radius);opacity:1;background:hsl(var(--popover))!important;color:hsl(var(--popover-foreground))!important;width:29px!important;height:29px!important}.geolibre-search-control .maplibre-gl-search-toggle svg{width:16px;height:16px}.geolibre-search-control .maplibre-gl-search-toggle:hover{opacity:1;background:hsl(var(--accent))!important;color:hsl(var(--accent-foreground))!important}.geolibre-search-control .maplibre-gl-search-icon,.geolibre-search-control .maplibre-gl-search-clear,.geolibre-search-control .maplibre-gl-search-collapse{opacity:1;color:hsl(var(--muted-foreground))!important}.geolibre-search-control .maplibre-gl-search-clear:hover,.geolibre-search-control .maplibre-gl-search-collapse:hover{opacity:1;color:hsl(var(--popover-foreground))!important}.geolibre-search-control .maplibre-gl-search-results{border:1px solid hsl(var(--border));border-top:0;max-width:min(320px,100vw - 32px);background-color:hsl(var(--popover))!important;color:hsl(var(--popover-foreground))!important}.geolibre-search-control .maplibre-gl-search-result{border-bottom-color:hsl(var(--border))!important;color:hsl(var(--popover-foreground))!important}.geolibre-search-control .maplibre-gl-search-result:hover{background-color:hsl(var(--accent))!important;color:hsl(var(--accent-foreground))!important}.geolibre-search-control .maplibre-gl-search-result:hover *{color:hsl(var(--accent-foreground))!important}.geolibre-search-control .maplibre-gl-search-result-detail{opacity:1;color:hsl(var(--muted-foreground))!important}.geolibre-stac-search-control{z-index:3;position:relative;overflow:visible;background-color:hsl(var(--popover))!important;color:hsl(var(--popover-foreground))!important}.maplibregl-control-container,.mapboxgl-control-container{pointer-events:none;z-index:2;position:absolute;inset:0}.mapboxgl-popup{z-index:10!important}.maplibregl-map>textarea{all:revert;z-index:10}#deckgl-overlay{z-index:1}.maplibregl-time-slider-dock,.maplibregl-time-slider-dock.ts-docked{z-index:6}.maplibregl-control-container,.mapboxgl-control-container{z-index:7!important}.geolibre-annotations-control{--geolibre-annotations-cell-size:29px;border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;overflow:hidden;background-color:hsl(var(--popover))!important;border:1px solid hsl(var(--border))!important}.geolibre-annotations-control .geolibre-annotations-tools{flex-direction:column;display:flex}.geolibre-annotations-control .geolibre-annotations-tools[hidden]{display:none}.geolibre-annotations-control button{color:hsl(var(--popover-foreground));cursor:pointer;height:var(--geolibre-annotations-cell-size);width:var(--geolibre-annotations-cell-size);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex!important}.geolibre-annotations-control button>svg{flex:none;margin:0 auto;display:block}.geolibre-annotations-control button:not(.is-active):hover{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.geolibre-annotations-control button.is-active{background-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.geolibre-annotations-control .geolibre-annotations-collapse{border-bottom:1px solid hsl(var(--border))}.geolibre-annotations-control.is-collapsed .geolibre-annotations-collapse{border-bottom:0}.geolibre-annotations-control .geolibre-annotations-tools button+button,.geolibre-annotations-control .geolibre-annotations-width,.geolibre-annotations-control .geolibre-annotations-color{border-top:1px solid hsl(var(--border))}.geolibre-annotations-control .geolibre-annotations-color{border:none;border-top:1px solid hsl(var(--border));cursor:pointer;width:24px;height:24px;margin:2px auto;padding:0}.geolibre-annotation-text-input{background-color:hsl(var(--background));border:1px solid hsl(var(--primary));color:hsl(var(--foreground));font-family:var(--font-sans);border-radius:4px;outline:none;padding:2px 6px;font-size:13px;transform:translate(-2px,-2px)}.geolibre-dimensions-control{--geolibre-dimensions-cell-size:29px;border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;overflow:hidden;background-color:hsl(var(--popover))!important;border:1px solid hsl(var(--border))!important}.geolibre-dimensions-control .geolibre-dimensions-tools{flex-direction:column;display:flex}.geolibre-dimensions-control .geolibre-dimensions-tools[hidden]{display:none}.geolibre-dimensions-control button{color:hsl(var(--foreground));cursor:pointer;height:var(--geolibre-dimensions-cell-size);width:var(--geolibre-dimensions-cell-size);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex!important}.geolibre-dimensions-control button>svg{flex:none;margin:0 auto;display:block}.geolibre-dimensions-control button:not(.is-active):hover{background-color:hsl(var(--accent))!important;color:hsl(var(--accent-foreground))!important}.geolibre-dimensions-control button.is-active{background-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.geolibre-dimensions-control button.is-active:hover{background-color:hsl(var(--primary))!important;color:hsl(var(--primary-foreground))!important}.geolibre-dimensions-control .geolibre-dimensions-collapse{border-bottom:1px solid hsl(var(--border))}.geolibre-dimensions-control.is-collapsed .geolibre-dimensions-collapse{border-bottom:0}.geolibre-dimensions-control .geolibre-dimensions-tools button+button,.geolibre-dimensions-control .geolibre-dimensions-width,.geolibre-dimensions-control .geolibre-dimensions-color{border-top:1px solid hsl(var(--border))}.geolibre-dimensions-control .geolibre-dimensions-color{border:none;border-top:1px solid hsl(var(--border));cursor:pointer;width:24px;height:24px;margin:2px 0 2px 2.5px;padding:0}.geolibre-dimensions-control .geolibre-dimensions-unit{border:1px solid hsl(var(--input));cursor:pointer;appearance:none;background-color:#0000;background-image:linear-gradient(45deg, transparent 50%, hsl(var(--foreground)) 50%), linear-gradient(135deg, hsl(var(--foreground)) 50%, transparent 50%);background-position:calc(100% - 16px),calc(100% - 11px);background-repeat:no-repeat;background-size:5px 5px;border-radius:6px;min-width:110px;max-width:160px;margin:4px;padding:4px 28px 4px 8px;font-size:11px;font-weight:500;color:hsl(var(--foreground))!important}.geolibre-dimensions-control .geolibre-dimensions-unit option{background:hsl(var(--popover));color:hsl(var(--popover-foreground));font-weight:500}.dark .geolibre-dimensions-control .geolibre-dimensions-unit{color-scheme:dark}.geolibre-measure-control{--ms-panel-bg:hsl(var(--popover));--ms-text:hsl(var(--popover-foreground));--ms-strong-text:hsl(var(--foreground));--ms-muted:hsl(var(--muted-foreground));--ms-subtle:hsl(var(--muted-foreground));--ms-border:hsl(var(--border));--ms-input-bg:hsl(var(--background));--ms-input-text:hsl(var(--foreground));--ms-hover-bg:hsl(var(--accent));--ms-subtle-bg:hsl(var(--muted));--ms-button-bg:hsl(var(--background));--ms-button-text:hsl(var(--foreground));--ms-chip-bg:hsl(var(--muted));--ms-chip-text:hsl(var(--muted-foreground));--ms-secondary-border:hsl(var(--border));--ms-focus:hsl(var(--ring));--ms-info-bg:hsl(var(--accent));--ms-info-text:hsl(var(--accent-foreground));--ms-info-border:hsl(var(--border));--ms-danger:hsl(var(--destructive));--ms-danger-bg:hsl(var(--destructive) / .1);--ms-danger-border:hsl(var(--destructive) / .3);--ms-danger-border-hover:hsl(var(--destructive) / .5)}.geolibre-bookmark-control{--bm-panel-bg:hsl(var(--popover));--bm-text:hsl(var(--popover-foreground));--bm-muted:hsl(var(--muted-foreground));--bm-subtle:hsl(var(--muted-foreground));--bm-border:hsl(var(--border));--bm-input-bg:hsl(var(--background));--bm-input-text:hsl(var(--foreground));--bm-placeholder:hsl(var(--muted-foreground));--bm-hover-bg:hsl(var(--accent));--bm-chip-hover-bg:hsl(var(--accent));--bm-button-bg:hsl(var(--background));--bm-button-text:hsl(var(--foreground));--bm-item-active-bg:hsl(var(--accent));--bm-secondary-text:hsl(var(--muted-foreground));--bm-secondary-border:hsl(var(--border));--bm-focus:hsl(var(--ring));--bm-danger:hsl(var(--destructive));--bm-danger-bg:hsl(var(--destructive) / .1);--bm-danger-border:hsl(var(--destructive) / .3);--bm-danger-border-hover:hsl(var(--destructive) / .5)}.geolibre-view-state-control{--vs-surface-bg:hsl(var(--popover));--vs-panel-bg:hsl(var(--popover));--vs-text:hsl(var(--popover-foreground));--vs-heading:hsl(var(--foreground));--vs-label:hsl(var(--muted-foreground));--vs-muted:hsl(var(--muted-foreground));--vs-border:hsl(var(--border));--vs-row-hover:hsl(var(--accent));--vs-code-bg:hsl(var(--muted));--vs-chip-bg:hsl(var(--muted));--vs-chip-hover-bg:hsl(var(--accent));--vs-accent:hsl(var(--primary));--vs-accent-soft:hsl(var(--accent));--vs-accent-softer:hsl(var(--accent));--vs-accent-active:hsl(var(--accent));--vs-accent-active-hover:hsl(var(--secondary));--vs-accent-border:hsl(var(--border));--vs-accent-border-hover:hsl(var(--ring));--vs-danger:hsl(var(--destructive));--vs-danger-soft:hsl(var(--destructive) / .1)}.geolibre-minimap-control{--mm-button-bg:hsl(var(--popover));--mm-button-hover-bg:hsl(var(--accent));--mm-button-text:hsl(var(--popover-foreground));--mm-button-ring:hsl(var(--border))}:is(.geolibre-measure-control,.geolibre-bookmark-control,.geolibre-view-state-control,.geolibre-minimap-control){color-scheme:light;font-family:var(--font-sans)}.dark :is(.geolibre-measure-control,.geolibre-bookmark-control,.geolibre-view-state-control,.geolibre-minimap-control){color-scheme:dark}:is(.geolibre-measure-control,.geolibre-bookmark-control,.geolibre-view-state-control) :is(input,select,textarea){background:hsl(var(--background));border-color:hsl(var(--border));font-family:inherit;color:hsl(var(--foreground))!important}:is(.geolibre-measure-control,.geolibre-bookmark-control) input::placeholder{color:hsl(var(--muted-foreground))!important}.geolibre-measure-control .measure-panel :is(.mode-btn.active,.action-btn.primary),.geolibre-measure-control .measure-button.active,.geolibre-bookmark-control .bookmark-button.active,.geolibre-bookmark-control .bookmark-panel .bookmark-add-btn{background:hsl(var(--primary));border-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.geolibre-measure-control .measure-panel :is(.mode-btn.active,.action-btn.primary):not(:disabled):hover,.geolibre-bookmark-control .bookmark-panel .bookmark-add-btn:not(:disabled):hover{background:hsl(var(--primary) / .9);color:hsl(var(--primary-foreground))}.geolibre-bookmark-control .bookmark-panel .bookmark-add-btn:disabled{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}:is(.geolibre-measure-control,.geolibre-bookmark-control) :is(input,select):focus{border-color:hsl(var(--ring));box-shadow:0 0 0 2px hsl(var(--ring) / .25)}.geolibre-stac-search-control:not(.geolibre-grid-child) .maplibre-gl-stac-search-button{display:none!important}.geolibre-stac-search-control .maplibre-gl-stac-search-panel{border:1px solid hsl(var(--border));max-width:min(365px,100vw - 32px);box-shadow:0 12px 32px #00000047;background-color:hsl(var(--popover))!important;color:hsl(var(--popover-foreground))!important}.geolibre-stac-search-control .maplibre-gl-stac-search-header{background-color:hsl(var(--card))!important;border-bottom-color:hsl(var(--border))!important;color:hsl(var(--foreground))!important}.geolibre-stac-search-control .maplibre-gl-stac-search-title,.geolibre-stac-search-control .maplibre-gl-stac-search-form-group>label,.geolibre-stac-search-control .maplibre-gl-stac-search-hint,.geolibre-stac-search-control .maplibre-gl-stac-search-list-header,.geolibre-stac-search-control .maplibre-gl-stac-search-list-label,.geolibre-stac-search-control .maplibre-gl-stac-search-rgb-label{color:hsl(var(--foreground))!important}.geolibre-stac-search-control .maplibre-gl-stac-search-close,.geolibre-stac-search-control .maplibre-gl-stac-search-list-remove{color:hsl(var(--muted-foreground))!important}.geolibre-stac-search-control .maplibre-gl-stac-search-close:hover,.geolibre-stac-search-control .maplibre-gl-stac-search-list-remove:hover{background-color:hsl(var(--accent))!important;color:hsl(var(--accent-foreground))!important}.geolibre-stac-search-control .maplibre-gl-stac-search-input,.geolibre-stac-search-control .maplibre-gl-stac-search-select{background-color:hsl(var(--background))!important;border:1px solid hsl(var(--input))!important;color:hsl(var(--foreground))!important}.geolibre-stac-search-control .maplibre-gl-stac-search-input::placeholder{color:hsl(var(--muted-foreground))!important}.geolibre-stac-search-control .maplibre-gl-stac-search-input:focus,.geolibre-stac-search-control .maplibre-gl-stac-search-select:focus{outline:none;border-color:hsl(var(--ring))!important;box-shadow:0 0 0 1px hsl(var(--ring))!important}.geolibre-stac-search-control .maplibre-gl-stac-search-select option{background-color:hsl(var(--popover));color:hsl(var(--popover-foreground))}.geolibre-stac-search-control .maplibre-gl-stac-search-btn,.geolibre-stac-search-control .maplibre-gl-stac-search-btn-clear,.geolibre-stac-search-control .maplibre-gl-stac-search-btn-clear-footprints{background-color:hsl(var(--card))!important;border:1px solid hsl(var(--border))!important;color:hsl(var(--foreground))!important}.geolibre-stac-search-control .maplibre-gl-stac-search-btn:hover:not(:disabled),.geolibre-stac-search-control .maplibre-gl-stac-search-btn-clear:hover,.geolibre-stac-search-control .maplibre-gl-stac-search-btn-clear-footprints:hover{background-color:hsl(var(--accent))!important;color:hsl(var(--accent-foreground))!important}.geolibre-stac-search-control .maplibre-gl-stac-search-btn:disabled{opacity:.65;color:hsl(var(--muted-foreground))!important}.geolibre-stac-search-control .maplibre-gl-stac-search-btn--primary,.geolibre-stac-search-control .maplibre-gl-stac-search-btn--toggle.active{background-color:hsl(var(--primary))!important;border-color:hsl(var(--primary))!important;color:hsl(var(--primary-foreground))!important}.geolibre-stac-search-control .maplibre-gl-stac-search-list{background-color:hsl(var(--card))!important;border-color:hsl(var(--border))!important;color:hsl(var(--foreground))!important}.geolibre-stac-search-control .maplibre-gl-stac-search-list-item{background-color:hsl(var(--background))!important;border-bottom-color:hsl(var(--border))!important;color:hsl(var(--foreground))!important}.geolibre-stac-search-control .maplibre-gl-stac-search-list-item:hover{background-color:hsl(var(--accent))!important;color:hsl(var(--accent-foreground))!important}.geolibre-stac-search-control .maplibre-gl-stac-search-list-item:hover .maplibre-gl-stac-search-list-label,.geolibre-stac-search-control .maplibre-gl-stac-search-list-item:hover .maplibre-gl-stac-search-list-remove{color:hsl(var(--accent-foreground))!important}.geolibre-stac-search-control .maplibre-gl-stac-search-status--error{color:hsl(var(--destructive))!important}.geolibre-flatgeobuf-control .maplibre-gl-add-vector-panel{border:1px solid hsl(var(--border));box-shadow:0 12px 32px #00000047;background-color:hsl(var(--popover))!important;color:hsl(var(--popover-foreground))!important}.geolibre-flatgeobuf-control .maplibre-gl-add-vector-header{border-bottom-color:hsl(var(--border))!important}.geolibre-flatgeobuf-control .maplibre-gl-add-vector-form-group{margin-bottom:6px}.geolibre-flatgeobuf-control .maplibre-gl-add-vector-form-group>label{margin-bottom:2px}.geolibre-flatgeobuf-control .maplibre-gl-add-vector-input-mode,.geolibre-flatgeobuf-control .maplibre-gl-sample-dropdown{margin-bottom:6px}.geolibre-flatgeobuf-control .maplibre-gl-add-vector-buttons{margin-top:8px}.geolibre-flatgeobuf-control .maplibre-gl-add-vector-title,.geolibre-flatgeobuf-control .maplibre-gl-add-vector-form-group label,.geolibre-flatgeobuf-control .maplibre-gl-add-vector-checkbox-label,.geolibre-flatgeobuf-control .maplibre-gl-add-vector-slider-value,.geolibre-flatgeobuf-control .maplibre-gl-add-vector-list-header,.geolibre-flatgeobuf-control .maplibre-gl-add-vector-list-label{color:hsl(var(--popover-foreground))!important}.geolibre-flatgeobuf-control .maplibre-gl-add-vector-close,.geolibre-flatgeobuf-control .maplibre-gl-add-vector-list-remove{color:hsl(var(--muted-foreground))!important}.geolibre-flatgeobuf-control .maplibre-gl-add-vector-close:hover,.geolibre-flatgeobuf-control .maplibre-gl-add-vector-list-remove:hover{color:hsl(var(--foreground))!important}.geolibre-flatgeobuf-control .maplibre-gl-add-vector-input,.geolibre-flatgeobuf-control .maplibre-gl-add-vector-select,.geolibre-flatgeobuf-control .maplibre-gl-add-vector-textarea,.geolibre-flatgeobuf-control .maplibre-gl-add-vector-minzoom-input{background-color:hsl(var(--background))!important;border:1px solid hsl(var(--input))!important;color:hsl(var(--foreground))!important}.geolibre-flatgeobuf-control .maplibre-gl-add-vector-input::placeholder,.geolibre-flatgeobuf-control .maplibre-gl-add-vector-textarea::placeholder{color:hsl(var(--muted-foreground))!important}.geolibre-flatgeobuf-control .maplibre-gl-add-vector-input:focus,.geolibre-flatgeobuf-control .maplibre-gl-add-vector-select:focus,.geolibre-flatgeobuf-control .maplibre-gl-add-vector-textarea:focus,.geolibre-flatgeobuf-control .maplibre-gl-add-vector-minzoom-input:focus{box-shadow:0 0 0 1px hsl(var(--ring));outline:none;border-color:hsl(var(--ring))!important}.geolibre-flatgeobuf-control .maplibre-gl-add-vector-select option{background-color:hsl(var(--popover));color:hsl(var(--popover-foreground))}.geolibre-flatgeobuf-control .maplibre-gl-add-vector-format-hint{color:hsl(var(--muted-foreground))!important}.geolibre-flatgeobuf-control .maplibre-gl-add-vector-mode-btn{background-color:hsl(var(--secondary))!important;border-color:hsl(var(--border))!important;color:hsl(var(--secondary-foreground))!important}.geolibre-flatgeobuf-control .maplibre-gl-add-vector-mode-btn--active,.geolibre-flatgeobuf-control .maplibre-gl-add-vector-btn--primary{background-color:hsl(var(--primary))!important;border-color:hsl(var(--primary))!important;color:hsl(var(--primary-foreground))!important}.geolibre-flatgeobuf-control .maplibre-gl-add-vector-slider{accent-color:hsl(var(--primary))}.maplibregl-ctrl-top-left .geolibre-components-control .maplibre-gl-control-grid-relocated,.maplibregl-ctrl-bottom-left .geolibre-components-control .maplibre-gl-control-grid-relocated{width:100%!important;max-width:100%!important}.maplibregl-ctrl-top-left .geolibre-components-control .left[class*=panel],.maplibregl-ctrl-top-left .geolibre-components-control .right[class*=panel],.maplibregl-ctrl-bottom-left .geolibre-components-control .left[class*=panel],.maplibregl-ctrl-bottom-left .geolibre-components-control .right[class*=panel]{left:0!important;right:auto!important}.maplibregl-ctrl-top-right .geolibre-components-control .left[class*=panel],.maplibregl-ctrl-top-right .geolibre-components-control .right[class*=panel],.maplibregl-ctrl-bottom-right .geolibre-components-control .left[class*=panel],.maplibregl-ctrl-bottom-right .geolibre-components-control .right[class*=panel]{left:auto!important;right:0!important}.geolibre-components-control input:not([type=checkbox]):not([type=radio]):not([type=range]),.geolibre-components-control select,.geolibre-components-control textarea{border:1px solid hsl(var(--border));box-sizing:border-box;color-scheme:light;border-radius:4px;background-color:hsl(var(--background))!important;color:hsl(var(--foreground))!important}.dark .geolibre-components-control :is(input,select,textarea){color-scheme:dark}.geolibre-components-control input::placeholder,.geolibre-components-control textarea::placeholder{color:hsl(var(--muted-foreground))!important}.geolibre-components-control select option{background-color:hsl(var(--background));color:hsl(var(--foreground))}.geolibre-colorbar-control,.geolibre-legend-control,.geolibre-html-control{--maplibre-gl-gui-border-color:hsl(var(--border));--maplibre-gl-gui-focus-color:hsl(var(--ring));--maplibre-gl-gui-hover-background:hsl(var(--secondary));--maplibre-gl-gui-input-background:hsl(var(--background));--maplibre-gl-gui-input-color:hsl(var(--foreground));--maplibre-gl-gui-muted-color:hsl(var(--muted-foreground));--maplibre-gl-gui-placeholder-color:hsl(var(--muted-foreground));color:hsl(var(--popover-foreground))!important}.maplibre-gl-html-control-content{color-scheme:light}.dark .geolibre-colorbar-control,.dark .geolibre-legend-control,.dark .geolibre-html-control,.dark .geolibre-colorbar-control .colorbar-gui-input,.dark .geolibre-colorbar-control .colorbar-gui-select,.dark .geolibre-colorbar-control .colorbar-gui-textarea,.dark .geolibre-legend-control .legend-gui-input,.dark .geolibre-legend-control .legend-gui-select,.dark .geolibre-legend-control .legend-gui-textarea,.dark .geolibre-html-control .html-gui-input,.dark .geolibre-html-control .html-gui-select,.dark .geolibre-html-control .html-gui-textarea{color-scheme:dark}.geolibre-graticule-panel select,.geolibre-graticule-panel input[type=number]{background:hsl(var(--background));border:1px solid hsl(var(--border));color:hsl(var(--foreground));border-radius:4px;padding:2px 4px}.geolibre-graticule-panel select option{background:hsl(var(--background));color:hsl(var(--foreground))}.dark .geolibre-graticule-panel select,.dark .geolibre-graticule-panel input{color-scheme:dark}.geolibre-samgeo-panel select,.geolibre-samgeo-panel input{background:hsl(var(--background));border:1px solid hsl(var(--border));color:hsl(var(--foreground))}.geolibre-samgeo-panel select option{background:hsl(var(--background));color:hsl(var(--foreground))}.dark .geolibre-samgeo-panel select,.dark .geolibre-samgeo-panel input{color-scheme:dark}.geolibre-timelapse-panel select{background:hsl(var(--background));border:1px solid hsl(var(--border));color:hsl(var(--foreground));border-radius:4px;padding:2px 4px}.geolibre-timelapse-panel select option{background:hsl(var(--background));color:hsl(var(--foreground))}.dark .geolibre-timelapse-panel select,.dark .geolibre-timelapse-panel input{color-scheme:dark}.geolibre-gods-eye-view-panel select{background:hsl(var(--background));border:1px solid hsl(var(--border));color:hsl(var(--foreground));border-radius:4px;padding:2px 4px}.geolibre-gods-eye-view-panel select option{background:hsl(var(--background));color:hsl(var(--foreground))}.dark .geolibre-gods-eye-view-panel select{color-scheme:dark}.geolibre-usgs-nldi-panel select option{background:hsl(var(--background));color:hsl(var(--foreground))}.dark .geolibre-usgs-nldi-panel select,.dark .geolibre-usgs-nldi-panel input{color-scheme:dark}.geolibre-colorbar-control .colorbar-gui-input,.geolibre-colorbar-control .colorbar-gui-select,.geolibre-colorbar-control .colorbar-gui-textarea,.geolibre-legend-control .legend-gui-input,.geolibre-legend-control .legend-gui-select,.geolibre-legend-control .legend-gui-textarea,.geolibre-html-control .html-gui-input,.geolibre-html-control .html-gui-select,.geolibre-html-control .html-gui-textarea{background:var(--maplibre-gl-gui-input-background)!important;border-color:var(--maplibre-gl-gui-border-color)!important;color:var(--maplibre-gl-gui-input-color)!important}.geolibre-colorbar-control .colorbar-gui-input::placeholder,.geolibre-colorbar-control .colorbar-gui-textarea::placeholder,.geolibre-legend-control .legend-gui-input::placeholder,.geolibre-legend-control .legend-gui-textarea::placeholder,.geolibre-html-control .html-gui-input::placeholder,.geolibre-html-control .html-gui-textarea::placeholder{color:var(--maplibre-gl-gui-placeholder-color)!important}.geolibre-colorbar-control .colorbar-gui-select option,.geolibre-legend-control .legend-gui-select option,.geolibre-html-control .html-gui-select option{background:hsl(var(--background));color:hsl(var(--foreground))}.geolibre-components-control input[type=radio]{appearance:none;color-scheme:light;opacity:1;background-color:#fff;border:2px solid #6b7280;border-radius:50%;flex:none;place-content:center;width:14px;height:14px;margin:0;display:inline-grid}.geolibre-components-control input[type=radio]:before{content:"";background-color:#0f766e;border-radius:50%;width:6px;height:6px;transform:scale(0)}.geolibre-components-control input[type=radio]:checked{border-color:#0f766e}.geolibre-components-control input[type=radio]:checked:before{transform:scale(1)}.geolibre-components-control input[type=radio]:focus-visible{outline:none;box-shadow:0 0 0 2px #0f766e33}.geolibre-components-control .maplibre-gl-control-grid-header input[type=number]{color-scheme:light;height:22px;font-size:12px;line-height:22px;width:44px!important;padding:1px 0 1px 4px!important}.geolibre-components-control .maplibre-gl-control-grid-header input[type=number]::-webkit-inner-spin-button{opacity:1;width:18px;height:20px;margin:0}.geolibre-components-control .maplibre-gl-control-grid-header input[type=number]::-webkit-outer-spin-button{opacity:1;width:18px;height:20px;margin:0}.geolibre-components-control .maplibre-gl-splat-panel input[type=number]{height:32px;line-height:32px;padding-top:4px!important;padding-bottom:4px!important;padding-right:4px!important;font-size:12px!important}.geolibre-components-control .maplibre-gl-splat-panel input[type=number]::-webkit-inner-spin-button{opacity:1;width:18px;height:28px;margin:0}.geolibre-components-control .maplibre-gl-splat-panel input[type=number]::-webkit-outer-spin-button{opacity:1;width:18px;height:28px;margin:0}.geolibre-components-control .maplibre-gl-splat-panel>button{min-height:30px;justify-content:center!important;align-items:center!important;line-height:1!important;display:flex!important}[role=dialog] input[type=number]::-webkit-inner-spin-button{opacity:1;cursor:pointer;width:1.15rem;height:1.9rem;margin-left:.35rem}[role=dialog] input[type=number]::-webkit-outer-spin-button{opacity:1;cursor:pointer;width:1.15rem;height:1.9rem;margin-left:.35rem}.geolibre-splatting-control .maplibre-gl-splat-panel{border:1px solid hsl(var(--border));border-radius:6px;box-shadow:0 10px 15px -3px #0000002e,0 4px 6px -4px #0000002e;background:hsl(var(--popover))!important;color:hsl(var(--popover-foreground))!important}.geolibre-splatting-control .maplibre-gl-splat-panel input{background:hsl(var(--background))!important;border-color:hsl(var(--input))!important;color:hsl(var(--foreground))!important}.geolibre-splatting-control .maplibre-gl-splat-panel input::placeholder{color:hsl(var(--muted-foreground))!important}.geolibre-splatting-control .maplibre-gl-splat-panel label,.geolibre-splatting-control .maplibre-gl-splat-panel>div>span,.geolibre-splatting-control .maplibre-gl-splat-panel>div>div:first-child{color:hsl(var(--popover-foreground))!important}.geolibre-splatting-control .maplibre-gl-splat-panel>div:first-child{border-bottom-color:hsl(var(--border))!important}.geolibre-splatting-control .maplibre-gl-splat-panel>div:first-child button{color:hsl(var(--muted-foreground))!important}.geolibre-splatting-control .maplibre-gl-splat-panel>div:first-child button:hover{color:hsl(var(--foreground))!important}.geolibre-splatting-control .maplibre-gl-splat-panel>button{background:hsl(var(--primary))!important;color:hsl(var(--primary-foreground))!important}.geolibre-splatting-control .maplibre-gl-splat-panel div[style*="background: #f8f8f8"],.geolibre-splatting-control .maplibre-gl-splat-panel div[style*="background: rgb(248, 248, 248)"]{border:1px solid hsl(var(--border));background:hsl(var(--secondary))!important}.geolibre-splatting-control .maplibre-gl-splat-panel div[style*="background: #f8f8f8"] span,.geolibre-splatting-control .maplibre-gl-splat-panel div[style*="background: rgb(248, 248, 248)"] span{color:hsl(var(--secondary-foreground))!important}.geolibre-splatting-control .maplibre-gl-splat-panel>button{min-height:30px;justify-content:center!important;align-items:center!important;line-height:1!important;display:flex!important}.geolibre-3d-tiles-control{background:hsl(var(--popover))!important;color:hsl(var(--popover-foreground))!important}.geolibre-3d-tiles-control .three-d-tiles-control-toggle{color:hsl(var(--popover-foreground))!important}.geolibre-3d-tiles-control .three-d-tiles-control-toggle:hover{background-color:hsl(var(--accent))!important}.geolibre-3d-tiles-panel{--geolibre-3d-tiles-status-success:#0f9f6e;color-scheme:light;background:hsl(var(--popover))!important;border:1px solid hsl(var(--border))!important;color:hsl(var(--popover-foreground))!important;box-shadow:0 10px 15px -3px #0000002e,0 4px 6px -4px #0000002e!important}.dark .geolibre-3d-tiles-panel{color-scheme:dark}.geolibre-3d-tiles-panel .three-d-tiles-control-header{border-bottom-color:hsl(var(--border))!important;color:hsl(var(--popover-foreground))!important}.geolibre-3d-tiles-panel .three-d-tiles-control-close,.geolibre-3d-tiles-panel .three-d-tiles-empty,.geolibre-3d-tiles-panel .three-d-tiles-list-status,.geolibre-3d-tiles-panel .three-d-tiles-list-url,.geolibre-3d-tiles-panel .three-d-tiles-status{color:hsl(var(--muted-foreground))!important}.geolibre-3d-tiles-panel .three-d-tiles-control-close:hover,.geolibre-3d-tiles-panel .three-d-tiles-field,.geolibre-3d-tiles-panel .three-d-tiles-checkbox,.geolibre-3d-tiles-panel .three-d-tiles-list-title{color:hsl(var(--popover-foreground))!important}.geolibre-3d-tiles-panel .three-d-tiles-field-grow{flex-shrink:0}.geolibre-3d-tiles-panel .three-d-tiles-input{background:hsl(var(--background))!important;border-color:hsl(var(--input))!important;color:hsl(var(--foreground))!important}.geolibre-3d-tiles-panel .three-d-tiles-input[type=number]{min-height:36px;padding-right:4px}.geolibre-3d-tiles-panel .three-d-tiles-input[type=number]::-webkit-inner-spin-button{opacity:1;width:22px;min-height:30px}.geolibre-3d-tiles-panel .three-d-tiles-input[type=number]::-webkit-outer-spin-button{opacity:1;width:22px;min-height:30px}.geolibre-3d-tiles-panel .three-d-tiles-input:focus{border-color:hsl(var(--ring))!important;box-shadow:0 0 0 2px hsl(var(--ring) / .16)!important}.geolibre-3d-tiles-panel .geolibre-google-tiles-key-toggle{align-self:flex-start;margin-top:6px}.geolibre-3d-tiles-panel .three-d-tiles-checkbox input,.geolibre-3d-tiles-panel .three-d-tiles-list-actions input[type=checkbox],.geolibre-3d-tiles-panel .three-d-tiles-opacity{accent-color:hsl(var(--primary))}.geolibre-3d-tiles-panel .three-d-tiles-button,.geolibre-3d-tiles-panel .three-d-tiles-small-button{background:hsl(var(--secondary))!important;border-color:hsl(var(--border))!important;color:hsl(var(--secondary-foreground))!important}.geolibre-3d-tiles-panel .three-d-tiles-button:hover:not(:disabled),.geolibre-3d-tiles-panel .three-d-tiles-small-button:hover:not(:disabled){background:hsl(var(--accent))!important;border-color:hsl(var(--border))!important;color:hsl(var(--accent-foreground))!important}.geolibre-3d-tiles-panel .three-d-tiles-button:disabled,.geolibre-3d-tiles-panel .three-d-tiles-small-button:disabled{opacity:.75;background:hsl(var(--muted))!important;border-color:hsl(var(--border))!important;color:hsl(var(--muted-foreground))!important}.geolibre-3d-tiles-panel .three-d-tiles-opacity{width:58px}.geolibre-3d-tiles-panel .three-d-tiles-list-actions{color:hsl(var(--popover-foreground))!important}.geolibre-3d-tiles-panel .three-d-tiles-status,.geolibre-3d-tiles-panel .three-d-tiles-list-item{border-color:hsl(var(--border))!important}.geolibre-3d-tiles-panel .three-d-tiles-list-item.active{background:hsl(var(--accent))!important;border-color:hsl(var(--ring))!important}.geolibre-3d-tiles-panel .three-d-tiles-status[data-status=loaded],.geolibre-3d-tiles-panel .three-d-tiles-list-status[data-status=loaded]{color:var(--geolibre-3d-tiles-status-success)!important}.geolibre-3d-tiles-panel .three-d-tiles-status[data-status=error],.geolibre-3d-tiles-panel .three-d-tiles-list-status[data-status=error]{color:hsl(var(--destructive))!important}.geolibre-components-control input:not([type=checkbox]):not([type=radio]):not([type=range]):focus,.geolibre-components-control select:focus,.geolibre-components-control textarea:focus{border-color:#2f8f85;outline:none;box-shadow:0 0 0 2px #2f8f8529}.maplibregl-ctrl button.maplibregl-ctrl-globe-enabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='none' stroke='%2333b5e5' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='8.5'/%3E%3Cpath d='M17.5 11c0 4.819-3.02 8.5-6.5 8.5S4.5 15.819 4.5 11 7.52 2.5 11 2.5s6.5 3.681 6.5 8.5Z'/%3E%3Cpath d='M13.5 11c0 2.447-.331 4.64-.853 6.206-.262.785-.562 1.384-.872 1.777-.314.399-.58.517-.775.517s-.461-.118-.775-.517c-.31-.393-.61-.992-.872-1.777C8.831 15.64 8.5 13.446 8.5 11s.331-4.64.853-6.206c.262-.785.562-1.384.872-1.777.314-.399.58-.517.775-.517s.461.118.775.517c.31.393.61.992.872 1.777.522 1.565.853 3.76.853 6.206Z'/%3E%3Cpath d='M11 7.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138q.07-.058.224-.138c.299-.151.763-.302 1.379-.434C7.378 5.666 9.091 5.5 11 5.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138q-.07.058-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428ZM4.486 6.436ZM11 16.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138 1.3 1.3 0 0 1 .224-.138c.299-.151.763-.302 1.379-.434C7.378 14.666 9.091 14.5 11 14.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138a1.3 1.3 0 0 1-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm-6.514-1.064ZM11 12.5c-2.46 0-4.672-.222-6.255-.574-.796-.177-1.406-.38-1.805-.59a1.5 1.5 0 0 1-.39-.272.3.3 0 0 1-.047-.064.3.3 0 0 1 .048-.064c.066-.073.189-.167.389-.272.399-.21 1.009-.413 1.805-.59C6.328 9.722 8.54 9.5 11 9.5s4.672.222 6.256.574c.795.177 1.405.38 1.804.59.2.105.323.2.39.272a.3.3 0 0 1 .047.064.3.3 0 0 1-.048.064 1.4 1.4 0 0 1-.389.272c-.399.21-1.009.413-1.804.59-1.584.352-3.796.574-6.256.574Zm-8.501-1.51v.002zm0 .018v.002zm17.002.002v-.002zm0-.018v-.002z'/%3E%3C/svg%3E")}.geolibre-arcgis-canvas .esri-view .esri-view-surface:focus:not(:focus-visible):after{outline:none}.geolibre-arcgis-globe .esri-widget--button.maplibregl-ctrl-globe-enabled{color:var(--calcite-color-brand,#007ac2)}@media print{.maplibregl-ctrl button,.maplibregl-ctrl .maplibregl-ctrl-icon{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.maplibregl-ctrl-attrib{display:none!important}}.geolibre-reset-bearing-ctrl .geolibre-reset-bearing-button{justify-content:center;align-items:center;display:flex}.geolibre-reset-bearing-needle{transform-origin:50%;width:24px;height:24px}.geolibre-reset-bearing-needle-label{fill:hsl(var(--popover-foreground));font-family:var(--font-sans);pointer-events:none;-webkit-user-select:none;user-select:none;font-size:8px;font-weight:700;transition:fill .15s}.geolibre-reset-bearing-needle-north{fill:hsl(var(--popover-foreground));transition:fill .15s}.geolibre-reset-bearing-needle-south{fill:hsl(var(--muted-foreground))}.geolibre-reset-bearing-button--active .geolibre-reset-bearing-needle-north,.geolibre-reset-bearing-button--active .geolibre-reset-bearing-needle-label{fill:hsl(var(--destructive))}.geolibre-reset-bearing-ctrl .geolibre-reset-bearing-button:disabled{cursor:default}.geolibre-maptoolkit-logo-ctrl{box-shadow:none;background:0 0}.geolibre-maptoolkit-logo{opacity:.85;transition:opacity .15s;display:block}.geolibre-maptoolkit-logo:hover{opacity:1}.geolibre-maptoolkit-logo img{width:auto;height:24px;display:block}.maplibregl-ctrl-layer-control .layer-control-icon{color:hsl(var(--popover-foreground))}html :is(.layer-control-panel,.layer-control-opacity-input,.layer-control-context-menu,.layer-control-item-dragging){background:hsl(var(--popover));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:var(--shadow-md);color:hsl(var(--popover-foreground));font-family:var(--font-sans)}.layer-control-panel :is(.layer-control-panel-header,.layer-control-name,.layer-control-style-header,.layer-style-control label,.layer-style-value,.style-control-label,.style-control-value,.style-editor-title,.style-editor-section-header,.background-legend-title,.background-legend-filter-label,.background-legend-presets-label,.background-legend-layer-name){color:hsl(var(--popover-foreground))}.layer-control-panel :is(.layer-control-style-close,.style-editor-close,.background-legend-close,.layer-control-style-empty,.style-editor-controls,.background-legend-empty,.layer-control-custom-info-text,.layer-control-group-toggle,.layer-control-drag-handle),.layer-control-opacity-input :is(.layer-control-opacity-input-label,.layer-control-opacity-input-suffix),.layer-control-context-menu .context-menu-item-icon{color:hsl(var(--muted-foreground))}.layer-control-panel :is(.layer-control-panel-header,.layer-control-actions,.layer-control-item,.style-editor-header,.style-editor-section-header,.style-editor-actions,.background-legend-header,.background-legend-layer-row,.background-legend-presets,.layer-control-group-row){border-color:hsl(var(--border))}.layer-control-panel :is(.layer-control-style-editor,.layer-control-background-legend,.background-legend-filter,.layer-control-custom-info-text){background:hsl(var(--muted));border-color:hsl(var(--border));box-shadow:none}.layer-control-panel .background-legend-layer-type{background:hsl(var(--accent));color:hsl(var(--muted-foreground))}.layer-control-panel :is(input,select):not([type=range]):not([type=checkbox]):not([type=radio]),.layer-control-opacity-input input{background:hsl(var(--background));border-color:hsl(var(--border));color:hsl(var(--foreground))!important}.layer-control-panel :is(input,select),.layer-control-opacity-input input{accent-color:hsl(var(--primary));color-scheme:light;font-family:inherit}.dark .layer-control-panel :is(input,select),.dark .layer-control-opacity-input input{color-scheme:dark}html .layer-control-panel input[type=checkbox]:not(:checked){appearance:none;background:hsl(var(--background));border:1px solid hsl(var(--input));border-radius:3px;width:13px;height:13px}.layer-control-panel :is(input,select):focus-visible,.layer-control-opacity-input input:focus-visible{border-color:hsl(var(--ring));outline:2px solid hsl(var(--ring));outline-offset:1px;box-shadow:none}.layer-control-panel :is(.layer-control-style-button,.style-editor-button,.layer-control-style-reset,.layer-control-style-close-secondary,.layer-control-remove-confirm-btn-cancel){background:hsl(var(--secondary));border-color:hsl(var(--border));color:hsl(var(--secondary-foreground))}.layer-control-panel :is(.layer-control-style-button,.style-editor-button,.layer-control-style-reset,.layer-control-style-close-secondary,.layer-control-remove-confirm-btn-cancel):not(:disabled):is(:hover,:active),.layer-control-panel .layer-control-background-legend-button.active{background:hsl(var(--accent));border-color:hsl(var(--ring));color:hsl(var(--accent-foreground))}.layer-control-panel :is(.layer-control-action-btn,.background-legend-action-btn,.layer-control-style-apply){background:hsl(var(--primary))!important;border-color:hsl(var(--primary))!important;color:hsl(var(--primary-foreground))!important}.layer-control-panel :is(.layer-control-action-btn,.background-legend-action-btn,.layer-control-style-apply):not(:disabled):is(:hover,:active){background:hsl(var(--primary) / .9)!important;border-color:hsl(var(--primary))!important}html .layer-control-panel :is(.layer-control-action-btn,.background-legend-action-btn,.layer-control-style-apply):disabled{cursor:not-allowed;background:hsl(var(--muted))!important;border-color:hsl(var(--border))!important;color:hsl(var(--muted-foreground))!important}.layer-control-panel :is(.layer-control-opacity,.style-control-slider){background:linear-gradient(to right, hsl(var(--muted)), hsl(var(--primary)))}.layer-control-panel :is(.layer-control-opacity,.style-control-slider)::-webkit-slider-thumb{background:hsl(var(--background));border-color:hsl(var(--primary))}.layer-control-panel :is(.layer-control-opacity,.style-control-slider)::-moz-range-thumb{background:hsl(var(--background));border-color:hsl(var(--primary))}.layer-control-panel :is(.layer-control-drag-handle-disabled,.layer-control-drag-handle-disabled:hover){color:hsl(var(--muted-foreground));opacity:.45}.layer-control-panel .layer-control-drop-placeholder{background:hsl(var(--accent));border-color:hsl(var(--ring))}.layer-control-panel .layer-control-resize-handle:hover:before,.layer-control-panel.resizing-active .layer-control-resize-handle:before{background:hsl(var(--ring))}:is(.layer-control-panel,.background-legend-layer-list){scrollbar-color:hsl(var(--muted-foreground)) hsl(var(--muted))}:is(.layer-control-panel,.background-legend-layer-list)::-webkit-scrollbar-track{background:hsl(var(--muted))}:is(.layer-control-panel,.background-legend-layer-list)::-webkit-scrollbar-thumb{background:hsl(var(--muted-foreground))}.layer-control-context-menu .context-menu-item{color:hsl(var(--popover-foreground))}.layer-control-context-menu .context-menu-item:not([disabled]):is(:hover,:active){background:hsl(var(--accent))}.layer-control-context-menu .context-menu-item[disabled]{color:hsl(var(--muted-foreground));opacity:.5}.layer-control-context-menu .context-menu-separator{background:hsl(var(--border))}.layer-control-panel .layer-control-remove-confirm,.layer-control-panel .style-editor-button-remove:hover,.layer-control-context-menu .context-menu-item-danger:hover{background:hsl(var(--destructive) / .1);border-color:hsl(var(--destructive) / .3)}.layer-control-panel .layer-control-remove-confirm-message,.layer-control-panel .style-editor-button-remove:hover,.layer-control-context-menu :is(.context-menu-item-danger,.context-menu-item-danger .context-menu-item-icon){color:hsl(var(--destructive))}.layer-control-panel .layer-control-remove-confirm-btn-confirm{background:hsl(var(--destructive));border-color:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.layer-control-panel .layer-control-remove-confirm-btn-confirm:hover{background:hsl(var(--destructive) / .9);border-color:hsl(var(--destructive))}.geolibre-identify-popup :is(.maplibregl-popup-content,.mapboxgl-popup-content){background:hsl(var(--popover));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:var(--shadow-md);color:hsl(var(--popover-foreground));font-family:var(--font-sans);max-height:calc(100vh - 96px);overflow:visible}.geolibre-identify-popup-root{max-height:min(640px,100vh - 128px);overflow:hidden}.geolibre-identify-popup-groups{scrollbar-gutter:stable;scrollbar-width:thin;flex:auto;min-height:0;overflow-y:auto}.geolibre-identify-popup-rows{scrollbar-gutter:stable;scrollbar-width:thin;flex:auto;min-height:0;max-height:min(560px,100vh - 184px);overflow-y:auto}.geolibre-identify-popup-root:has(.geolibre-popup-image){resize:both;width:min(420px,100vw - 48px);max-width:min(85vw,900px)}.geolibre-identify-image-popup>div,.geolibre-identify-image-popup .geolibre-identify-popup-root{height:100%;max-height:none;width:100%!important;max-width:none!important}.geolibre-identify-image-popup .geolibre-identify-popup-root{resize:none}.geolibre-identify-image-popup .geolibre-identify-popup-rows{flex-direction:column;max-height:none;display:flex}.geolibre-identify-popup-image-row{grid-template-columns:minmax(0,1fr)}.geolibre-identify-image-popup .geolibre-identify-popup-image-row{flex:auto;min-height:180px}.geolibre-identify-image-popup .geolibre-popup-image-cell,.geolibre-identify-image-popup .geolibre-popup-image-link{height:100%}.geolibre-popup-image-link{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.geolibre-popup-image{width:100%;height:100%;max-height:var(--geolibre-popup-image-height,min(50vh, 420px));object-fit:contain;background:hsl(var(--muted));display:block}.geolibre-popup-inline-image{max-height:var(--geolibre-popup-image-height,10rem);max-width:100%}.geolibre-identify-image-popup .geolibre-popup-image{max-height:none}.geolibre-popup-image-viewer-img{max-width:min(calc(100vw - 4rem), var(--geolibre-popup-image-max-w,100vw));max-height:min(calc(100vh - 4rem), var(--geolibre-popup-image-max-h,100vh));object-fit:contain}@media (max-width:639px) and (orientation:portrait){.geolibre-attribute-table-panel:not([data-collapsed]){height:clamp(22rem,60dvh,32rem)!important}.geolibre-attribute-table-resize-handle{display:none}}.geolibre-kml-description table{border-collapse:collapse;width:100%}.geolibre-kml-description td,.geolibre-kml-description th{border-top:1px solid hsl(var(--border));text-align:start;vertical-align:top;padding:.25rem .375rem}.geolibre-kml-description tr:nth-child(2n){background:hsl(var(--muted) / .55)}.geolibre-kml-description a{color:hsl(var(--primary));text-decoration:underline}.geolibre-identify-popup :is(.maplibregl-popup-close-button,.mapboxgl-popup-close-button){color:hsl(var(--muted-foreground));right:auto;border-radius:.25rem;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;padding:0;line-height:1;display:flex;inset-block-start:.25rem;inset-inline-end:.25rem}.geolibre-identify-popup :is(.maplibregl-popup-close-button,.mapboxgl-popup-close-button):hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.geolibre-identify-popup:is(.maplibregl-popup-anchor-top,.mapboxgl-popup-anchor-top) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip),.geolibre-identify-popup:is(.maplibregl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-left) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip),.geolibre-identify-popup:is(.maplibregl-popup-anchor-top-right,.mapboxgl-popup-anchor-top-right) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip){border-bottom-color:hsl(var(--popover))}.geolibre-identify-popup:is(.maplibregl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip),.geolibre-identify-popup:is(.maplibregl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-left) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip),.geolibre-identify-popup:is(.maplibregl-popup-anchor-bottom-right,.mapboxgl-popup-anchor-bottom-right) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip){border-top-color:hsl(var(--popover))}.geolibre-hover-tooltip{pointer-events:none;z-index:5}.geolibre-hover-tooltip :is(.maplibregl-popup-content,.mapboxgl-popup-content){background:hsl(var(--popover));border:1px solid hsl(var(--border));color:hsl(var(--popover-foreground));border-radius:.375rem;padding:.375rem .5rem;box-shadow:0 4px 6px -1px #00000024,0 2px 4px -2px #00000024}.geolibre-hover-tooltip:is(.maplibregl-popup-anchor-top,.mapboxgl-popup-anchor-top) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip),.geolibre-hover-tooltip:is(.maplibregl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-left) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip),.geolibre-hover-tooltip:is(.maplibregl-popup-anchor-top-right,.mapboxgl-popup-anchor-top-right) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip){border-bottom-color:hsl(var(--popover))}.geolibre-hover-tooltip:is(.maplibregl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip),.geolibre-hover-tooltip:is(.maplibregl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-left) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip),.geolibre-hover-tooltip:is(.maplibregl-popup-anchor-bottom-right,.mapboxgl-popup-anchor-bottom-right) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip){border-top-color:hsl(var(--popover))}.geolibre-hover-tooltip:is(.maplibregl-popup-anchor-left,.mapboxgl-popup-anchor-left) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip){border-right-color:hsl(var(--popover))}.geolibre-hover-tooltip:is(.maplibregl-popup-anchor-right,.mapboxgl-popup-anchor-right) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip){border-left-color:hsl(var(--popover))}@media (max-width:767px){.geolibre-components-control .maplibre-gl-control-grid-floating-panel,.geolibre-components-control .maplibre-gl-control-grid-relocated{overflow-y:auto;max-height:calc(100dvh - 96px)!important}.geolibre-components-control .maplibre-gl-control-grid-floating-panel,.geolibre-components-control .maplibre-gl-control-grid-relocated,.geolibre-pmtiles-control .maplibre-gl-pmtiles-layer-panel,.geolibre-zarr-control .maplibre-gl-zarr-layer-panel,.maplibregl-map .pc-control-panel,.maplibregl-map .layer-control-panel,.duckdb-control-panel{box-sizing:border-box;max-width:calc(100vw - 20px)!important}.duckdb-control-panel{width:calc(100vw - 20px)!important;left:10px!important;right:auto!important}.geolibre-identify-popup :is(.maplibregl-popup-content,.mapboxgl-popup-content){max-width:calc(100vw - 24px)}}@media (max-width:639px){.geolibre-layout-submenu{margin-left:max(0px, calc(100% - var(--radix-dropdown-menu-content-available-width) + 8px))}}.geolibre-identify-popup:is(.maplibregl-popup-anchor-left,.mapboxgl-popup-anchor-left) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip){border-right-color:hsl(var(--popover))}.geolibre-identify-popup:is(.maplibregl-popup-anchor-right,.mapboxgl-popup-anchor-right) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip){border-left-color:hsl(var(--popover))}.geolibre-placement-popup-root .maplibregl-popup-content,.maplibregl-ctrl.geolibre-placement-popup{background:hsl(var(--popover));border:1px solid hsl(var(--border));color:hsl(var(--popover-foreground));border-radius:.5rem;padding:.625rem .75rem;box-shadow:0 10px 15px -3px #0000002e,0 4px 6px -4px #0000002e}.geolibre-placement-popup-root.maplibregl-popup-anchor-top .maplibregl-popup-tip,.geolibre-placement-popup-root.maplibregl-popup-anchor-top-left .maplibregl-popup-tip,.geolibre-placement-popup-root.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{border-bottom-color:hsl(var(--popover))}.geolibre-placement-popup-root.maplibregl-popup-anchor-bottom .maplibregl-popup-tip,.geolibre-placement-popup-root.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip,.geolibre-placement-popup-root.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{border-top-color:hsl(var(--popover))}.geolibre-placement-popup-root.maplibregl-popup-anchor-left .maplibregl-popup-tip{border-right-color:hsl(var(--popover))}.geolibre-placement-popup-root.maplibregl-popup-anchor-right .maplibregl-popup-tip{border-left-color:hsl(var(--popover))}.geolibre-placement-popup{flex-direction:column;gap:.5rem;max-width:13rem;display:flex}.geolibre-placement-popup-hint{color:hsl(var(--popover-foreground));margin:0;font-size:.8125rem;line-height:1.25rem}.geolibre-placement-popup-done{background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;border-radius:.375rem;align-self:flex-end;padding:.25rem .75rem;font-size:.8125rem;font-weight:500}.geolibre-placement-popup-done:hover{background:hsl(var(--primary) / .9)}.geolibre-photo-popup-root :is(.maplibregl-popup-content,.mapboxgl-popup-content){background:hsl(var(--popover));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:var(--shadow-md);color:hsl(var(--popover-foreground));padding:.5rem}.geolibre-photo-popup-root :is(.maplibregl-popup-close-button,.mapboxgl-popup-close-button){color:hsl(var(--muted-foreground));padding:0}.geolibre-photo-popup-root :is(.maplibregl-popup-close-button,.mapboxgl-popup-close-button):hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.geolibre-photo-popup-root:is(.maplibregl-popup-anchor-top,.mapboxgl-popup-anchor-top) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip),.geolibre-photo-popup-root:is(.maplibregl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-left) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip),.geolibre-photo-popup-root:is(.maplibregl-popup-anchor-top-right,.mapboxgl-popup-anchor-top-right) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip){border-bottom-color:hsl(var(--popover))}.geolibre-photo-popup-root:is(.maplibregl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip),.geolibre-photo-popup-root:is(.maplibregl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-left) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip),.geolibre-photo-popup-root:is(.maplibregl-popup-anchor-bottom-right,.mapboxgl-popup-anchor-bottom-right) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip){border-top-color:hsl(var(--popover))}.geolibre-photo-popup-root:is(.maplibregl-popup-anchor-left,.mapboxgl-popup-anchor-left) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip){border-right-color:hsl(var(--popover))}.geolibre-photo-popup-root:is(.maplibregl-popup-anchor-right,.mapboxgl-popup-anchor-right) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip){border-left-color:hsl(var(--popover))}.geolibre-photo-popup{resize:both;flex-direction:column;gap:.375rem;width:260px;min-width:160px;max-width:min(85vw,900px);height:220px;min-height:140px;max-height:85vh;display:flex;overflow:hidden}.geolibre-photo-popup-img{object-fit:contain;background:hsl(var(--muted));cursor:zoom-in;border-radius:.375rem;flex:auto;width:100%;min-height:0}.geolibre-photo-fullscreen{z-index:1000;background:#000000eb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.geolibre-photo-fullscreen-img{object-fit:contain;image-orientation:from-image;transform-origin:50%;cursor:zoom-in;touch-action:none;will-change:transform;max-width:100vw;max-height:100vh;transition:transform .12s ease-out}.geolibre-photo-fullscreen-img.is-zoomed{cursor:grab;transition:none}.geolibre-photo-fullscreen-img.is-zoomed:active{cursor:grabbing}.geolibre-photo-fullscreen-badge{color:#fff;font-variant-numeric:tabular-nums;pointer-events:none;-webkit-user-select:none;user-select:none;background:#0009;border-radius:9999px;padding:.25rem .625rem;font-size:.75rem;line-height:1;position:fixed;bottom:.75rem;left:50%;transform:translate(-50%)}.geolibre-photo-fullscreen-badge:empty{display:none}.geolibre-photo-fullscreen-close{color:#fff;cursor:pointer;background:#ffffff1f;border-radius:9999px;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;font-size:1.5rem;line-height:1;display:flex;position:fixed;top:.75rem;right:1rem}.geolibre-photo-fullscreen-close:hover{background:#ffffff3d}.geolibre-photo-popup-placeholder{background:hsl(var(--muted));color:hsl(var(--muted-foreground));border-radius:.375rem;flex:auto;justify-content:center;align-items:center;font-size:.8125rem;display:flex}.geolibre-photo-popup-caption{white-space:nowrap;text-overflow:ellipsis;color:hsl(var(--popover-foreground));flex:none;font-size:.75rem;line-height:1rem;overflow:hidden}.swipe-control-panel .swipe-control-select{height:28px;min-height:0;padding-top:0;padding-bottom:0;line-height:28px}.dark .pc-control-toggle{background:hsl(var(--popover));color:hsl(var(--popover-foreground))}.dark .pc-control-toggle:hover{background:hsl(var(--muted))}.dark .pc-control-icon svg{fill:none;stroke:hsl(var(--popover-foreground))}.dark .pc-control-panel{background:hsl(var(--popover));border:1px solid hsl(var(--border));color:hsl(var(--popover-foreground));box-shadow:0 12px 32px #00000073}.dark .pc-control-header,.dark .pc-control-nav{background:hsl(var(--muted));border-color:hsl(var(--border))}.dark .pc-control-title,.dark .pc-collection-title,.dark .pc-result-title,.dark .pc-details-title,.dark .pc-section-title,.dark .pc-meta-item .pc-value,.dark .pc-stats-grid>div>strong,.dark .pc-point-values>div>strong,.dark .pc-stats-title,.dark .pc-legend-title,.dark .pc-tilejson-card>div>strong,.dark .pc-layer-name,.dark .pc-inspector-title,.dark .pc-opacity-value,.dark .pc-cloud-value,.dark .pc-advanced-render summary,.dark .pc-checkbox-group label,.dark .pc-asset-name{color:hsl(var(--popover-foreground))}.dark .pc-control-close,.dark .pc-nav-btn,.dark .pc-loading,.dark .pc-collection-description,.dark .pc-label,.dark .pc-bbox-text,.dark .pc-date-separator,.dark .pc-results-count,.dark .pc-results-empty,.dark .pc-result-date,.dark .pc-result-cloud,.dark .pc-asset-type,.dark .pc-stats-grid>div>span,.dark .pc-point-values>div>span,.dark .pc-legend-labels,.dark .pc-tilejson-card>div>span,.dark .pc-layers-empty,.dark .pc-inspector-hint,.dark .pc-inspector-coords,.dark .pc-opacity-label,.dark .pc-rescale-separator{color:hsl(var(--muted-foreground))}.dark .pc-control-close:hover,.dark .pc-btn-icon:hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.dark .pc-search-box,.dark .pc-selected-collection,.dark .pc-bbox-display,.dark .pc-details-meta,.dark .pc-asset-item,.dark .pc-tool-loading,.dark .pc-custom-viz,.dark .pc-point-json,.dark .pc-result-thumbnail{background:hsl(var(--muted))}.dark .pc-collection-item,.dark .pc-result-item,.dark .pc-stats-card,.dark .pc-legend-card,.dark .pc-tilejson-card,.dark .pc-layer-item,.dark .pc-inspector-panel,.dark .pc-custom-viz{border-color:hsl(var(--border))}.dark .pc-collection-item:hover,.dark .pc-result-item:hover{background:hsl(var(--accent));border-color:hsl(var(--ring))}.dark .pc-result-selected,.dark .pc-result-selected:hover{background:hsl(var(--accent));border-color:#f59e0b}.dark .pc-tag,.dark .pc-btn-active,.dark .pc-layer-controls-active{color:#67e8f9;background:#0e749038}.dark .pc-search-input,.dark .pc-input{background:hsl(var(--background));border-color:hsl(var(--border));color:hsl(var(--foreground))}.dark .pc-search-input::placeholder,.dark .pc-input::placeholder{color:hsl(var(--muted-foreground))}.dark .pc-search-input:focus,.dark .pc-input:focus{border-color:hsl(var(--ring));box-shadow:inset 0 0 0 1px hsl(var(--ring))}.dark .pc-btn,.dark .pc-nav-btn{background:hsl(var(--background));border-color:hsl(var(--border));color:hsl(var(--foreground))}.dark .pc-btn:hover,.dark .pc-nav-btn:hover{background:hsl(var(--accent))}.dark .pc-btn:disabled:hover{background:hsl(var(--background))}.dark .pc-btn-primary,.dark .pc-nav-btn.active,.dark .pc-search-btn-loading,.dark .pc-search-btn-loading:disabled,.dark .pc-search-btn-loading:disabled:hover,.dark .pc-inspect-active,.dark .pc-inspect-active:hover{color:#ecfeff;background:#0891b2;border-color:#0891b2}.dark .pc-btn-back{color:#67e8f9}.dark .pc-error,.dark .pc-tool-error{color:#fecaca;background:#7f1d1d59}.dark .pc-tool-success{color:#bbf7d0;background:#14532d59}.dark .pc-spinner{border-color:hsl(var(--border));border-top-color:#67e8f9}.dark .pc-control-content::-webkit-scrollbar-track{background:hsl(var(--muted))}.dark .pc-control-content::-webkit-scrollbar-thumb{background:hsl(var(--border))}.basemap-control-result:has(.geolibre-basemap-thumbnail),.basemap-control-result[data-geolibre-basemap-preview=pending]{grid-template-columns:56px 1fr auto}.basemap-control-result[data-geolibre-basemap-preview=pending]:not(:has(.geolibre-basemap-thumbnail)):before{content:"";background:hsl(var(--muted));border-radius:3px;width:56px;height:42px}.geolibre-basemap-thumbnail{object-fit:cover;border:1px solid hsl(var(--border));background:hsl(var(--muted));border-radius:3px;grid-row:1/span 3;width:56px;height:42px}.dark .basemap-control{background:hsl(var(--popover));color:hsl(var(--popover-foreground));color-scheme:dark;box-shadow:0 0 0 2px #0006}.dark .basemap-control-toggle{color:hsl(var(--popover-foreground))}.dark .basemap-control-toggle:hover{background-color:hsl(var(--muted))}.dark .basemap-control-icon svg{stroke:hsl(var(--popover-foreground))}.dark .basemap-control-panel{background:hsl(var(--popover));color:hsl(var(--popover-foreground));box-shadow:0 8px 28px #0000008c, 0 0 0 1px hsl(var(--border))}.dark .basemap-control-header{border-bottom-color:hsl(var(--border))}.dark .basemap-control-title,.dark .basemap-control-result-name,.dark .basemap-control-settings-heading,.dark .basemap-control-multiple-toggle{color:hsl(var(--popover-foreground))}.dark .basemap-control-settings-toggle,.dark .basemap-control-close,.dark .basemap-control-status,.dark .basemap-control-empty,.dark .basemap-control-result-meta,.dark .basemap-control-result-attribution,.dark .basemap-control-settings-intro,.dark .basemap-control-provider-group-label{color:hsl(var(--muted-foreground))}.dark .basemap-control-settings-toggle:hover,.dark .basemap-control-close:hover{color:hsl(var(--popover-foreground));background:hsl(var(--accent))}.dark .basemap-control-settings-toggle.is-active{color:hsl(var(--accent-foreground));background:hsl(var(--accent))}.dark .basemap-control-status.is-error{color:hsl(var(--destructive))}.dark .basemap-control-input,.dark .basemap-control-select,.dark .basemap-control-settings-back{background:hsl(var(--background));border-color:hsl(var(--border));color:hsl(var(--foreground));color-scheme:dark}.dark .basemap-control-input::placeholder{color:hsl(var(--muted-foreground))}.dark .basemap-control-select option{background:hsl(var(--popover));color:hsl(var(--popover-foreground))}.dark .basemap-control-input:focus,.dark .basemap-control-select:focus{border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring) / .3)}.dark .basemap-control-multiple-checkbox{accent-color:hsl(var(--ring))}.dark .basemap-control-result{background:hsl(var(--muted));border-color:hsl(var(--border));color:hsl(var(--popover-foreground))}.dark .basemap-control-result:hover,.dark .basemap-control-result.is-active{border-color:hsl(var(--ring));background:hsl(var(--accent))}.dark .basemap-control-result-type{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.dark .basemap-control-settings-back:hover{border-color:hsl(var(--ring));background:hsl(var(--accent))}.dark .basemap-control-status-link{color:hsl(var(--popover-foreground))}.dark .basemap-control-results::-webkit-scrollbar-thumb{background:hsl(var(--border))}.dark .basemap-control-resize-handle:after{border-color:hsl(var(--border))}.dark .basemap-control-resize-handle:hover:after{border-color:hsl(var(--muted-foreground))}.geolibre-earth-engine-control .plugin-control-toggle{justify-content:center;align-items:center;display:flex}.geolibre-earth-engine-control .plugin-control-icon{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.geolibre-earth-engine-panel.geolibre-earth-engine-panel.geolibre-earth-engine-panel{--ee-panel-bg:hsl(var(--popover));--ee-panel-elevated:hsl(var(--card));--ee-panel-muted:hsl(var(--muted));--ee-panel-text:hsl(var(--popover-foreground));--ee-panel-subtle:hsl(var(--muted-foreground));--ee-panel-placeholder:hsl(var(--muted-foreground));--ee-panel-border:hsl(var(--border));--ee-panel-border-strong:hsl(var(--input));--ee-input-bg:hsl(var(--background));--ee-input-text:hsl(var(--foreground));--ee-item-bg:hsl(var(--card));--ee-active-bg:hsl(var(--accent));--ee-active-border:hsl(var(--ring));--ee-button-primary:hsl(var(--primary));--ee-button-muted:hsl(var(--muted-foreground));--ee-button-danger:hsl(var(--destructive));--ee-shadow:0 16px 40px hsl(var(--foreground) / .16);--geolibre-ee-panel-left:10px;color-scheme:light;max-width:calc(100% - var(--geolibre-ee-panel-left) * 2);left:var(--geolibre-ee-panel-left)!important}.dark .geolibre-earth-engine-panel.geolibre-earth-engine-panel.geolibre-earth-engine-panel{--ee-shadow:0 16px 40px #0006;color-scheme:dark}.geolibre-earth-engine-panel .plugin-control-input:focus,.geolibre-earth-engine-panel .plugin-control-input:focus-visible{border-color:hsl(var(--ring));box-shadow:inset 0 0 0 1px hsl(var(--ring));outline:none}.mapboxgl-map .mapboxgl-ctrl-group button{width:29px;height:29px}.mapboxgl-ctrl-top-left>:is(.geolibre-vector-control,.geolibre-raster-control,.basemap-control){float:left;margin:10px 0 0 10px}.mlr-control.geolibre-raster-control,.mlr-control-panel.geolibre-raster-panel{--mlr-bg:hsl(var(--popover));--mlr-surface-muted:hsl(var(--muted));--mlr-surface-soft:hsl(var(--card));--mlr-text:hsl(var(--popover-foreground));--mlr-text-strong:hsl(var(--foreground));--mlr-text-soft:hsl(var(--popover-foreground) / .8);--mlr-text-muted:hsl(var(--muted-foreground));--mlr-text-faint:hsl(var(--muted-foreground));--mlr-border:hsl(var(--border));--mlr-border-soft:hsl(var(--border) / .8);--mlr-border-faint:hsl(var(--border) / .6);--mlr-border-strong:hsl(var(--input));--mlr-accent:hsl(var(--primary));--mlr-accent-strong:hsl(var(--primary) / .85);--mlr-accent-soft:hsl(var(--primary) / .12);--mlr-hover:hsl(var(--foreground) / .06);--mlr-error:hsl(var(--destructive));--mlr-disabled-bg:hsl(var(--muted));--mlr-disabled-text:hsl(var(--muted-foreground) / .5);--mlr-scrollbar:hsl(var(--border));--mlr-scrollbar-hover:hsl(var(--input));--mlr-shadow:hsl(var(--foreground) / .12);--mlr-histogram-neutral:hsl(var(--foreground));color-scheme:light}.dark .mlr-control.geolibre-raster-control,.dark .mlr-control-panel.geolibre-raster-panel{--mlr-shadow:#0006;color-scheme:dark}.vector-control.geolibre-vector-control,.vector-control-panel.geolibre-vector-panel,html:not(.dark) .vector-control-popup,html:not(.dark) .vector-control-layer-picker,.dark .vector-control-popup,.dark .vector-control-layer-picker{--vc-bg:hsl(var(--popover));--vc-text:hsl(var(--popover-foreground));--vc-text-strong:hsl(var(--foreground));--vc-text-soft:hsl(var(--popover-foreground) / .8);--vc-muted:hsl(var(--muted-foreground));--vc-border:hsl(var(--border));--vc-border-soft:hsl(var(--border) / .8);--vc-item-bg:hsl(var(--card));--vc-hover:hsl(var(--foreground) / .06);--vc-accent:hsl(var(--primary));--vc-accent-hover:hsl(var(--primary) / .85);--vc-accent-soft:hsl(var(--primary) / .12);--vc-accent-text:hsl(var(--primary-foreground));--vc-error:hsl(var(--destructive));--vc-input-bg:hsl(var(--popover));--vc-input-border:hsl(var(--input));--vc-scrollbar:hsl(var(--border));--vc-scrollbar-hover:hsl(var(--input));--vc-shadow:0 0 0 2px hsl(var(--foreground) / .12);color-scheme:light}.dark .vector-control.geolibre-vector-control,.dark .vector-control-panel.geolibre-vector-panel,.dark .vector-control-popup,.dark .vector-control-layer-picker{--vc-shadow:0 0 0 2px #0006;color-scheme:dark}.vector-control-panel.geolibre-vector-panel .vector-control-content{padding-inline:5px}html:not(.dark) .maplibregl-popup:has(.vector-control-popup) .maplibregl-popup-content{background:hsl(var(--popover));box-shadow:0 1px 6px hsl(var(--foreground) / .25)}html.dark .maplibregl-popup:has(.vector-control-popup) .maplibregl-popup-content{background:hsl(var(--popover));box-shadow:0 1px 6px #00000080}.maplibregl-popup:has(.vector-control-popup) .maplibregl-popup-content{padding-block-start:1.75rem}html:not(.dark) .maplibregl-popup:has(.vector-control-popup) .maplibregl-popup-close-button,html.dark .maplibregl-popup:has(.vector-control-popup) .maplibregl-popup-close-button{color:hsl(var(--muted-foreground));right:auto;border-radius:.25rem;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;padding:0;line-height:1;display:flex;inset-block-start:.375rem;inset-inline-end:.375rem}html:not(.dark) .maplibregl-popup:has(.vector-control-popup) .maplibregl-popup-close-button:hover,html.dark .maplibregl-popup:has(.vector-control-popup) .maplibregl-popup-close-button:hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}html:not(.dark) .maplibregl-popup-anchor-top:has(.vector-control-popup) .maplibregl-popup-tip,html:not(.dark) .maplibregl-popup-anchor-top-left:has(.vector-control-popup) .maplibregl-popup-tip,html:not(.dark) .maplibregl-popup-anchor-top-right:has(.vector-control-popup) .maplibregl-popup-tip,html.dark .maplibregl-popup-anchor-top:has(.vector-control-popup) .maplibregl-popup-tip,html.dark .maplibregl-popup-anchor-top-left:has(.vector-control-popup) .maplibregl-popup-tip,html.dark .maplibregl-popup-anchor-top-right:has(.vector-control-popup) .maplibregl-popup-tip{border-bottom-color:hsl(var(--popover))}html:not(.dark) .maplibregl-popup-anchor-bottom:has(.vector-control-popup) .maplibregl-popup-tip,html:not(.dark) .maplibregl-popup-anchor-bottom-left:has(.vector-control-popup) .maplibregl-popup-tip,html:not(.dark) .maplibregl-popup-anchor-bottom-right:has(.vector-control-popup) .maplibregl-popup-tip,html.dark .maplibregl-popup-anchor-bottom:has(.vector-control-popup) .maplibregl-popup-tip,html.dark .maplibregl-popup-anchor-bottom-left:has(.vector-control-popup) .maplibregl-popup-tip,html.dark .maplibregl-popup-anchor-bottom-right:has(.vector-control-popup) .maplibregl-popup-tip{border-top-color:hsl(var(--popover))}html:not(.dark) .maplibregl-popup-anchor-left:has(.vector-control-popup) .maplibregl-popup-tip,html.dark .maplibregl-popup-anchor-left:has(.vector-control-popup) .maplibregl-popup-tip{border-right-color:hsl(var(--popover))}html:not(.dark) .maplibregl-popup-anchor-right:has(.vector-control-popup) .maplibregl-popup-tip,html.dark .maplibregl-popup-anchor-right:has(.vector-control-popup) .maplibregl-popup-tip{border-left-color:hsl(var(--popover))}.geolibre-docked-map-control{height:100%;overflow:hidden auto}.geolibre-docked-map-control>*{width:100%;margin:0}.geolibre-docked-map-control .plugin-control-panel,.geolibre-docked-map-control .enviroatlas-panel,.geolibre-docked-map-control .national-map-panel,.geolibre-docked-map-control .vantor-panel{box-shadow:none;border-radius:0;width:100%!important;max-width:none!important;max-height:none!important;display:flex!important;position:static!important;inset:auto!important}.geolibre-docked-map-control .usgs-lidar-control-panel{box-shadow:none;border-radius:0;width:100%!important;max-width:none!important;height:100%!important;max-height:none!important;display:flex!important;position:static!important;inset:auto!important}.geolibre-docked-map-control .usgs-lidar-control-header,.geolibre-docked-map-control .usgs-lidar-resize-handle{display:none!important}.geolibre-docked-map-control .basemap-control-results{max-height:none}.geolibre-docked-map-control .basemap-control-header{justify-content:flex-end}.geolibre-docked-map-control .basemap-control-panel,.geolibre-docked-map-control .esri-wayback-control-panel,.geolibre-docked-map-control .overture-control-panel{box-shadow:none;border-radius:0;flex-direction:column;width:100%!important;min-width:0!important;max-width:none!important;height:100%!important;max-height:none!important;display:flex!important;position:static!important;inset:auto!important}.geolibre-docked-map-control .basemap-control-title,.geolibre-docked-map-control .basemap-control-close,.geolibre-docked-map-control .basemap-control-resize-handle,.geolibre-docked-map-control .esri-wayback-control-header,.geolibre-docked-map-control .esri-wayback-control-resize-handle,.geolibre-docked-map-control .overture-control-header,.geolibre-docked-map-control .overture-resize-handle{display:none!important}.geolibre-docked-map-control .geoagent-panel{box-shadow:none;background:0 0;border:0;border-radius:0;width:100%!important;min-width:0!important;max-width:none!important;height:100%!important;max-height:none!important;display:grid!important;position:static!important;inset:auto!important}.geolibre-docked-map-control .geoagent-panel-header{justify-content:flex-end}.geolibre-docked-map-control .geoagent-log{min-height:160px}.geolibre-docked-map-control .geoagent-panel-title,.geolibre-docked-map-control .geoagent-panel-header .geoagent-icon-button,.geolibre-docked-map-control .geoagent-panel-resize-handle,.swipe-control.geolibre-swipe-control{display:none!important}.geolibre-docked-map-control .swipe-control-panel{box-shadow:none;border-radius:0;width:100%!important;min-width:0!important;max-width:none!important;height:100%!important;max-height:none!important;display:flex!important;position:static!important;inset:auto!important}.geolibre-docked-map-control .swipe-control-header{display:none!important}.dark .swipe-control-panel.swipe-theme-dark{--swipe-bg:transparent;--swipe-header-bg:hsl(var(--muted));--swipe-fg:hsl(var(--foreground));--swipe-text:hsl(var(--foreground));--swipe-label:hsl(var(--muted-foreground));--swipe-muted:hsl(var(--muted-foreground));--swipe-border:hsl(var(--border));--swipe-border-subtle:hsl(var(--border));--swipe-input-bg:hsl(var(--background));--swipe-input-border:hsl(var(--border));--swipe-input-border-hover:hsl(var(--ring));--swipe-list-bg:hsl(var(--muted));--swipe-hover:hsl(var(--accent));--swipe-item-hover:hsl(var(--accent));--swipe-track:hsl(var(--input));--swipe-scrollbar:hsl(var(--border));--swipe-scrollbar-hover:hsl(var(--muted-foreground))}.geolibre-docked-map-control .vantor-panel__table-container{max-height:none}.geolibre-docked-map-control .maplibre-gl-nasa-earthdata .nasa-results,.geolibre-docked-map-control .maplibre-gl-nasa-earthdata .plugin-control-content,.geolibre-docked-map-control .maplibre-gl-nasa-earthdata .nasa-body,.geolibre-docked-map-control .maplibre-gl-nasa-earthdata .nasa-category,.geolibre-docked-map-control .maplibre-gl-nasa-earthdata .nasa-category-layers,.geolibre-docked-map-control .maplibre-gl-nasa-earthdata .nasa-layer-row,.geolibre-docked-map-control .maplibre-gl-nasa-earthdata .nasa-layer-main,.geolibre-docked-map-control .maplibre-gl-nasa-earthdata .nasa-layer-info,.geolibre-docked-map-control .maplibre-gl-nasa-earthdata .nasa-layer-title{min-width:0}.geolibre-docked-map-control .maplibre-gl-nasa-earthdata .plugin-control-content,.geolibre-docked-map-control .maplibre-gl-nasa-earthdata .nasa-body,.geolibre-docked-map-control .maplibre-gl-nasa-earthdata .nasa-results,.geolibre-docked-map-control .maplibre-gl-nasa-earthdata .nasa-category,.geolibre-docked-map-control .maplibre-gl-nasa-earthdata .nasa-category-layers{box-sizing:border-box;width:100%;max-width:100%}.geolibre-docked-map-control .maplibre-gl-nasa-earthdata .plugin-control-content{overflow-x:hidden}.geolibre-docked-map-control .maplibre-gl-nasa-earthdata .nasa-layer-row{box-sizing:border-box;width:100%;max-width:100%}.geolibre-docked-map-control .maplibre-gl-nasa-earthdata .nasa-layer-main{grid-template-columns:minmax(0,1fr) auto;display:grid}.geolibre-docked-map-control .maplibre-gl-nasa-earthdata .nasa-layer-info{overflow:hidden}.geolibre-docked-map-control .maplibre-gl-nasa-earthdata .nasa-layer-title{max-width:100%;display:block}.geolibre-docked-map-control .plugin-control-toggle,.geolibre-docked-map-control .plugin-control-header,.geolibre-docked-map-control .plugin-control-close,.geolibre-docked-map-control .enviroatlas-toggle,.geolibre-docked-map-control .enviroatlas-header,.geolibre-docked-map-control .enviroatlas-close,.geolibre-docked-map-control .national-map-toggle,.geolibre-docked-map-control .national-map-header,.geolibre-docked-map-control .national-map-close,.geolibre-docked-map-control .vantor-panel__header,.geolibre-docked-map-control .vantor-panel__toggle,.geolibre-docked-map-control .plugin-control-resize-handle,.geolibre-docked-map-control .enviroatlas-resizer,.geolibre-docked-map-control .national-map-resize-handle,.geolibre-docked-map-control .vantor-panel__resize-handle{display:none!important}.plugin-control.plugin-control.plugin-control.plugin-control.plugin-control,.plugin-control-panel.plugin-control-panel.plugin-control-panel.plugin-control-panel.plugin-control-panel,.fema-wms-popup.fema-wms-popup.fema-wms-popup.fema-wms-popup.fema-wms-popup{--fw-bg:hsl(var(--popover));--fw-fg:hsl(var(--popover-foreground));--fw-muted:hsl(var(--muted-foreground));--fw-border:hsl(var(--border));--fw-accent:hsl(var(--primary));--fw-accent-hover:hsl(var(--primary) / .85);--fw-accent-contrast:hsl(var(--primary-foreground));--fw-input-bg:hsl(var(--popover));--fw-input-border:hsl(var(--input));--fw-row-hover:hsl(var(--foreground) / .06);--fw-shadow:0 0 0 2px hsl(var(--foreground) / .12);--fw-scroll-thumb:hsl(var(--border));--fw-scroll-thumb-hover:hsl(var(--input));--fw-error:hsl(var(--destructive));--fw-legend-bg:hsl(var(--card));--ne-bg:hsl(var(--popover));--ne-fg:hsl(var(--popover-foreground));--ne-fg-muted:hsl(var(--muted-foreground));--ne-border:hsl(var(--border));--ne-input-border:hsl(var(--input));--ne-input-bg:hsl(var(--popover));--ne-accent:hsl(var(--primary));--ne-accent-hover:hsl(var(--primary) / .85);--ne-accent-fg:hsl(var(--primary-foreground));--ne-danger:hsl(var(--destructive));--ne-danger-hover:hsl(var(--destructive) / .85);--ne-hover:hsl(var(--foreground) / .06);--ne-row-bg:hsl(var(--card));--ne-badge-bg:hsl(var(--muted));--ne-badge-fg:hsl(var(--muted-foreground));--ne-scrollbar:hsl(var(--border));--ne-scrollbar-hover:hsl(var(--input));--ne-shadow:hsl(var(--foreground) / .12);color-scheme:light}.dark .plugin-control.plugin-control.plugin-control.plugin-control.plugin-control,.dark .plugin-control-panel.plugin-control-panel.plugin-control-panel.plugin-control-panel.plugin-control-panel,.dark .fema-wms-popup.fema-wms-popup.fema-wms-popup.fema-wms-popup.fema-wms-popup{--fw-shadow:0 0 0 2px #00000073;--ne-shadow:#0006;color-scheme:dark}.enviroatlas-control.enviroatlas-control.enviroatlas-control,.enviroatlas-panel.enviroatlas-panel.enviroatlas-panel{--ea-bg:hsl(var(--popover));--ea-fg:hsl(var(--popover-foreground));--ea-muted:hsl(var(--muted-foreground));--ea-border:hsl(var(--border));--ea-accent:hsl(var(--primary));--ea-accent-fg:hsl(var(--primary-foreground));--ea-hover:hsl(var(--foreground) / .06);--ea-input-bg:hsl(var(--popover));--ea-scrollbar:hsl(var(--border));--ea-scrollbar-hover:hsl(var(--input));--ea-shadow:hsl(var(--foreground) / .12);--ea-error:hsl(var(--destructive));--ea-notice-bg:hsl(var(--muted));color-scheme:light}.dark .enviroatlas-control.enviroatlas-control.enviroatlas-control,.dark .enviroatlas-panel.enviroatlas-panel.enviroatlas-panel{--ea-shadow:#00000073;color-scheme:dark}.national-map.national-map.national-map,.national-map-panel.national-map-panel.national-map-panel{--nm-bg:hsl(var(--popover));--nm-fg:hsl(var(--popover-foreground));--nm-fg-strong:hsl(var(--foreground));--nm-muted:hsl(var(--muted-foreground));--nm-border:hsl(var(--border));--nm-input-border:hsl(var(--input));--nm-accent:hsl(var(--primary));--nm-accent-hover:hsl(var(--primary) / .85);--nm-accent-ring:hsl(var(--primary) / .15);--nm-row-hover:hsl(var(--foreground) / .06);--nm-btn-hover:hsl(var(--foreground) / .06);--nm-shadow:0 0 0 2px hsl(var(--foreground) / .12);--nm-scroll-thumb:hsl(var(--border));--nm-scroll-thumb-hover:hsl(var(--input));--nm-disabled:hsl(var(--muted));--nm-disabled-fg:hsl(var(--muted-foreground));color-scheme:light}.dark .national-map.national-map.national-map,.dark .national-map-panel.national-map-panel.national-map-panel{--nm-shadow:0 0 0 2px #00000080;color-scheme:dark}.overture-control.overture-control.overture-control,.overture-control-panel.overture-control-panel.overture-control-panel,.overture-popup-content.overture-popup-content.overture-popup-content{--ovt-bg:hsl(var(--popover));--ovt-fg:hsl(var(--popover-foreground));--ovt-text:hsl(var(--popover-foreground));--ovt-muted:hsl(var(--muted-foreground));--ovt-border:hsl(var(--border));--ovt-input-border:hsl(var(--input));--ovt-input-bg:hsl(var(--popover));--ovt-hover:hsl(var(--foreground) / .06);--ovt-accent:hsl(var(--primary));--ovt-scrollbar:hsl(var(--border));--ovt-scrollbar-hover:hsl(var(--input));--ovt-error-bg:hsl(var(--destructive) / .15);--ovt-error-fg:hsl(var(--destructive));color-scheme:light}.dark .overture-control.overture-control.overture-control,.dark .overture-control-panel.overture-control-panel.overture-control-panel,.dark .overture-popup-content.overture-popup-content.overture-popup-content{color-scheme:dark}[data-map-fullscreen]>:not([data-workspace-row]),[data-map-fullscreen] [data-workspace-row]>:not([data-map-column]),[data-map-fullscreen] [data-map-column]>:not(main){display:none!important}:is(.duckdb-sample-trigger,.three-d-tiles-sample-trigger,.maplibre-gl-sample-trigger,.splat-sample-trigger,.lidar-sample-trigger){background-color:hsl(var(--background))!important;border-color:hsl(var(--input))!important;color:hsl(var(--muted-foreground))!important}:is(.duckdb-sample-trigger,.three-d-tiles-sample-trigger,.maplibre-gl-sample-trigger,.splat-sample-trigger,.lidar-sample-trigger):is(:hover,.open,:focus-visible,:active){border-color:hsl(var(--ring))!important}:is(.duckdb-sample-menu,.three-d-tiles-sample-menu,.maplibre-gl-sample-menu,.splat-sample-menu,.lidar-sample-menu){background-color:hsl(var(--popover))!important;border-color:hsl(var(--border))!important}:is(.duckdb-sample-option,.three-d-tiles-sample-option,.maplibre-gl-sample-option,.splat-sample-option,.lidar-sample-option){color:hsl(var(--popover-foreground))!important}:is(.duckdb-sample-option,.three-d-tiles-sample-option,.maplibre-gl-sample-option,.splat-sample-option,.lidar-sample-option):is(:hover,:focus-visible,:active){background-color:hsl(var(--accent))!important;color:hsl(var(--accent-foreground))!important}.geo-editor-toolbar{background:hsl(var(--background));box-shadow:0 0 0 2px hsl(var(--border))}.geo-editor-tool-group:not(:last-child){border-bottom-color:hsl(var(--border))}.geo-editor-toolbar--horizontal .geo-editor-tool-group:not(:last-child){border-right-color:hsl(var(--border))}.geo-editor-tool-group-label{color:hsl(var(--muted-foreground))}.geo-editor-tool-button{color:hsl(var(--foreground))}.geo-editor-control button.geo-editor-tool-button:not(:disabled):hover{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.geo-editor-dialog{background:hsl(var(--popover));color:hsl(var(--popover-foreground))}.geo-editor-dialog-header,.geo-editor-dialog-footer{border-color:hsl(var(--border))}.geo-editor-dialog-title,.geo-editor-label{color:hsl(var(--foreground))}.geo-editor-dialog-close{color:hsl(var(--muted-foreground))}.geo-editor-dialog-close:hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.geo-editor-input,.geo-editor-rotate-popup-input,.geo-editor-rotate-popup-select,.geo-editor-attribute-input,.geo-editor-attribute-select,.geo-editor-attribute-textarea{background:hsl(var(--background));border-color:hsl(var(--border));color:hsl(var(--foreground))}.geo-editor-attribute-input:disabled,.geo-editor-attribute-select:disabled,.geo-editor-attribute-textarea:disabled{background-color:hsl(var(--muted));color:hsl(var(--muted-foreground))}.geo-editor-slider{background:hsl(var(--muted))}.geo-editor-btn--secondary,.geo-editor-rotate-popup-cancel{background:hsl(var(--secondary));border-color:hsl(var(--border));color:hsl(var(--secondary-foreground))}.geo-editor-btn--secondary:hover,.geo-editor-rotate-popup-cancel:hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.geo-editor-stats{background:hsl(var(--muted))}.geo-editor-stat-value{color:hsl(var(--foreground))}.geo-editor-stat-label{color:hsl(var(--muted-foreground))}:is(.geo-editor-properties-popup,.geo-editor-rotate-popup) :is(.maplibregl-popup-content,.mapboxgl-popup-content){background:hsl(var(--popover));border:1px solid hsl(var(--border));color:hsl(var(--popover-foreground))}:is(.geo-editor-properties-popup,.geo-editor-rotate-popup) :is(.maplibregl-popup-close-button,.mapboxgl-popup-close-button){color:hsl(var(--muted-foreground))}:is(.geo-editor-properties-popup,.geo-editor-rotate-popup):is(.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right,.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip){border-bottom-color:hsl(var(--popover))}:is(.geo-editor-properties-popup,.geo-editor-rotate-popup):is(.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right,.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip){border-top-color:hsl(var(--popover))}:is(.geo-editor-properties-popup,.geo-editor-rotate-popup):is(.maplibregl-popup-anchor-left,.mapboxgl-popup-anchor-left) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip){border-right-color:hsl(var(--popover))}:is(.geo-editor-properties-popup,.geo-editor-rotate-popup):is(.maplibregl-popup-anchor-right,.mapboxgl-popup-anchor-right) :is(.maplibregl-popup-tip,.mapboxgl-popup-tip){border-left-color:hsl(var(--popover))}.geo-editor-popup-table td{border-bottom-color:hsl(var(--border))}.geo-editor-popup-key,.geo-editor-rotate-popup-title{color:hsl(var(--foreground))}.geo-editor-popup-value,.geo-editor-popup-empty,.geo-editor-rotate-popup-row span{color:hsl(var(--muted-foreground))}.geo-editor-attribute-panel{background:hsl(var(--popover));color:hsl(var(--popover-foreground))}.geo-editor-attribute-panel-header,.geo-editor-attribute-panel-footer{background:hsl(var(--muted));border-color:hsl(var(--border))}.geo-editor-attribute-panel-title,.geo-editor-attribute-label,.geo-editor-attribute-checkbox-label{color:hsl(var(--foreground))}.geo-editor-attribute-panel-close{color:hsl(var(--muted-foreground))}.geo-editor-attribute-panel-close:hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.geo-editor-attribute-readonly{background-color:hsl(var(--muted));border-color:hsl(var(--border));color:hsl(var(--muted-foreground))}.geo-editor-attribute-readonly-null,.geo-editor-attribute-empty{color:hsl(var(--muted-foreground))}.geo-editor-attribute-extra-section{border-top-color:hsl(var(--border))}.geo-editor-attribute-extra-section-title{color:hsl(var(--muted-foreground))}.geo-editor-control,.geo-editor-dialog,.geo-editor-attribute-panel,.geo-editor-rotate-popup-form{color-scheme:light}.dark .geo-editor-control,.dark .geo-editor-dialog,.dark .geo-editor-attribute-panel,.dark .geo-editor-rotate-popup-form{color-scheme:dark}.dark .geo-editor-message--info,.dark .geo-editor-attribute-geometry-badge{color:#9cc7ff;background:#3388ff26;border-color:#38f6}.dark .geo-editor-message--warning{color:#ffd75e;background:#ffc1071f;border-color:#ffc10759}.dark .geo-editor-message--error{color:#f1919c;background:#dc354526;border-color:#dc354566}.dark .geo-editor-message--success{color:#7fd493;background:#28a74526;border-color:#28a74566}.elevation-profile,.elevation-profile-panel{--ep-bg:hsl(var(--background,0 0% 100%));--ep-shadow:0 0 0 2px #0000001a;--ep-text:hsl(var(--foreground,222 47% 11%));--ep-muted:hsl(var(--muted-foreground,220 9% 46%));--ep-border:hsl(var(--border,220 13% 91%));--ep-hover-bg:hsl(var(--foreground,222 47% 11%) / .06);--ep-surface:hsl(var(--secondary,220 14% 96%));--ep-accent:#f97316;--ep-accent-text:#fff;--ep-area:#f973162e}.dark .elevation-profile,.dark .elevation-profile-panel{--ep-shadow:0 0 0 2px #0006;--ep-hover-bg:hsl(var(--foreground,210 20% 92%) / .1);--ep-accent-text:#1f2937;--ep-area:#f9731638}.maplibregl-ctrl-group.elevation-profile{background:var(--ep-bg);box-shadow:var(--ep-shadow);border-radius:4px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.elevation-profile .elevation-profile-toggle{box-sizing:border-box;cursor:pointer;width:29px;height:29px;color:var(--ep-text);background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;display:flex}.elevation-profile .elevation-profile-toggle:hover{background:var(--ep-hover-bg)}.elevation-profile .elevation-profile-toggle svg{width:20px;height:20px;display:block}.elevation-profile-panel{box-sizing:border-box;background:var(--ep-bg);color:var(--ep-text);box-shadow:var(--ep-shadow);z-index:1000;resize:both;border-radius:6px;flex-direction:column;min-width:260px;max-width:90vw;min-height:170px;max-height:85vh;padding:10px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:12px;line-height:1.4;display:none;position:absolute;overflow:auto}.elevation-profile-panel.expanded{display:flex}.elevation-profile-panel--anchor-right{direction:rtl}.elevation-profile-panel--anchor-right>*{direction:ltr}.maplibregl-ctrl-group.elevation-profile--docked{display:none}.elevation-profile-panel.elevation-profile-panel--docked{resize:none;width:100%;min-width:0;max-width:none;min-height:0;max-height:none;box-shadow:none;z-index:auto;background:0 0;border-radius:0;padding:12px;display:flex;position:static;overflow:visible}.elevation-profile-panel--docked .elevation-profile-chart{flex:none;height:220px}.elevation-profile-header{border-bottom:1px solid var(--ep-border);justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;padding-bottom:8px;display:flex}.elevation-profile-title{font-size:13px;font-weight:600}.elevation-profile-close{width:20px;height:20px;color:var(--ep-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:18px;line-height:1}.elevation-profile-close:hover{color:var(--ep-text)}.elevation-profile-actions{flex-wrap:wrap;gap:6px;display:flex}.elevation-profile-button{color:var(--ep-text);background:var(--ep-surface);border:1px solid var(--ep-border);cursor:pointer;border-radius:4px;flex:none;padding:6px 12px;font-size:12px;font-weight:500;transition:background-color .15s,border-color .15s}.elevation-profile-button:hover:not(:disabled){border-color:var(--ep-accent)}.elevation-profile-button:disabled{opacity:.5;cursor:not-allowed}.elevation-profile-primary,.elevation-profile-button.is-active{color:var(--ep-accent-text);background:var(--ep-accent);border-color:var(--ep-accent)}.elevation-profile-unit{margin-left:auto}.elevation-profile-status{color:var(--ep-muted);overflow-wrap:break-word;margin-top:8px;font-size:11px}.elevation-profile-status:empty{display:none}.elevation-profile-stats{grid-template-columns:repeat(5,1fr);gap:4px;margin-top:10px;display:none}.elevation-profile-stats.has-data{display:grid}.elevation-profile-stat{text-align:center;background:var(--ep-surface);border-radius:4px;flex-direction:column;align-items:center;padding:4px 2px;display:flex}.elevation-profile-stat-value{color:var(--ep-text);font-size:12px;font-weight:600}.elevation-profile-stat-label{text-transform:uppercase;letter-spacing:.03em;color:var(--ep-muted);font-size:9px}.elevation-profile-chart{flex:auto;min-height:130px;margin-top:10px}.elevation-profile-svg{cursor:crosshair;background:var(--ep-surface);border-radius:4px;width:100%;height:100%;display:block}.elevation-profile-area{fill:var(--ep-area);stroke:none}.elevation-profile-line{fill:none;stroke:var(--ep-accent);stroke-width:1.75px;vector-effect:non-scaling-stroke}.elevation-profile-axis{fill:var(--ep-muted);font-size:9px}.elevation-profile-hover-line{stroke:var(--ep-muted);stroke-width:1px;stroke-dasharray:3 2;vector-effect:non-scaling-stroke}.elevation-profile-hover-dot{fill:var(--ep-accent);stroke:#fff;stroke-width:1.5px}.elevation-profile-readout{text-align:center;color:var(--ep-text);white-space:nowrap;text-overflow:ellipsis;min-height:14px;margin-top:6px;font-size:11px;font-weight:500;line-height:14px;overflow:hidden}.elevation-profile-readout:empty{visibility:hidden}.elevation-profile-export{align-items:center;gap:6px;margin-top:8px;display:none}.elevation-profile-export-label{color:var(--ep-muted);font-size:11px}.elevation-profile-button-sm{padding:4px 10px;font-size:11px}@media (min-width:768px){:lang(zh) .md\:rotate-180,:lang(ja) .md\:rotate-180,:lang(ko) .md\:rotate-180{letter-spacing:.15em;rotate:0deg}}.geolibre-legend-panel.maplibregl-ctrl input,.geolibre-legend-panel.maplibregl-ctrl select,.geolibre-legend-panel.maplibregl-ctrl textarea{color:hsl(var(--foreground))!important}.geolibre-legend-panel.maplibregl-ctrl input::placeholder,.geolibre-legend-panel.maplibregl-ctrl textarea::placeholder{color:hsl(var(--muted-foreground))!important}.geolibre-cesium-ctrl{border-radius:4px;box-shadow:0 0 0 2px #0000001a}.geolibre-cesium-ctrl .cesium-button{fill:#333;background:#fff;border:none;border-radius:4px;margin:0;padding:0}.geolibre-cesium-ctrl .cesium-toolbar-button,.geolibre-cesium-ctrl button.cesium-button{width:29px;height:29px}.geolibre-cesium-ctrl .cesium-sceneModePicker-wrapper{margin:0}.geolibre-cesium-ctrl button.cesium-button:not(:disabled):focus{box-shadow:none;fill:#333;background:#fff;border:none;outline:none}.geolibre-cesium-ctrl button.cesium-button:not(:disabled):hover{fill:#1e40af;background:#dbeafe;border:none;box-shadow:inset 0 0 0 2px #60a5fa}.geolibre-cesium-ctrl button.cesium-button:not(:disabled):focus-visible{outline-offset:2px;outline:2px solid #0096ff}.geolibre-cesium-ctrl button.cesium-button:not(:disabled):active{fill:#1e3a8a;background:#bfdbfe;box-shadow:inset 0 0 0 2px #2563eb}.geolibre-cesium-ctrl button.cesium-button:disabled{box-shadow:none;fill:#b0b0b0;background:#fff;border:none}.geolibre-cesium-ctrl .cesium-sceneModePicker-wrapper{flex-direction:row-reverse;gap:6px;display:inline-flex}.geolibre-cesium-ctrl .cesium-sceneModePicker-wrapper .cesium-button{flex-shrink:0;margin:0}.geolibre-cesium-ctrl .cesium-sceneModePicker-dropDown-icon{box-shadow:0 0 0 2px #0000001a}.geolibre-cesium-ctrl-expands{z-index:1;position:relative}.geolibre-cesium-ctrl .cesium-sceneModePicker-hidden{display:none}.geolibre-cesium-basemap-picker{z-index:3;position:relative}.geolibre-cesium-basemap-picker button.cesium-button{position:relative;overflow:hidden}.geolibre-cesium-basemap-picker .cesium-baseLayerPicker-dropDown{width:min(320px,100vw - 90px);max-height:min(500px, var(--cesium-picker-height,60vh));background:hsl(var(--popover) / .97);font-family:var(--font-sans);color:hsl(var(--popover-foreground));border-color:hsl(var(--border));border-radius:var(--radius);margin-top:0;line-height:1.35;top:0;right:39px;box-shadow:0 4px 16px #0003}.geolibre-cesium-basemap-picker .cesium-baseLayerPicker-sectionTitle,.geolibre-cesium-basemap-picker .cesium-baseLayerPicker-categoryTitle,.geolibre-cesium-basemap-picker .cesium-baseLayerPicker-itemLabel{color:inherit;font-family:inherit}.geolibre-cesium-basemap-picker .cesium-baseLayerPicker-choices{border-color:hsl(var(--border));grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:8px;display:grid}.geolibre-cesium-basemap-picker .cesium-baseLayerPicker-item{width:100%;margin:0}.geolibre-cesium-basemap-picker .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon{border-color:hsl(var(--primary))}.geolibre-cesium-basemap-picker .cesium-baseLayerPicker-item:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px;border-radius:4px}.geolibre-cesium-basemap-picker .cesium-baseLayerPicker-itemIcon{aspect-ratio:1;object-fit:cover;width:100%}.geolibre-cesium-basemap-picker .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel{color:hsl(var(--primary));font-weight:600}[data-cvd-preview=protanopia] :is(canvas,.maplibregl-marker,.mapboxgl-marker,.maplibre-gl-legend,.maplibre-gl-colorbar,[data-cvd-filter]){filter:url(#geolibre-cvd-protanopia)}[data-cvd-preview=deuteranopia] :is(canvas,.maplibregl-marker,.mapboxgl-marker,.maplibre-gl-legend,.maplibre-gl-colorbar,[data-cvd-filter]){filter:url(#geolibre-cvd-deuteranopia)}[data-cvd-preview=tritanopia] :is(canvas,.maplibregl-marker,.mapboxgl-marker,.maplibre-gl-legend,.maplibre-gl-colorbar,[data-cvd-filter]){filter:url(#geolibre-cvd-tritanopia)}[data-cvd-preview=achromatopsia] :is(canvas,.maplibregl-marker,.mapboxgl-marker,.maplibre-gl-legend,.maplibre-gl-colorbar,[data-cvd-filter]){filter:url(#geolibre-cvd-achromatopsia)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-pan-x{syntax:"*";inherits:false}@property --tw-pan-y{syntax:"*";inherits:false}@property --tw-pinch-zoom{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}
/*$vite$:1*/