:root {
  --text: #081516;
  --basalt: #0A292F;
  --sandstone: #f3efe2;
  --background: #fbfdfe;
  --primary: #39c6d9;
  --secondary: #76d8ef;
  --accent: #46d8f6;

  --static-logo: #39c6d9;

  --margin: 0 4%;
  --lh-base: 1.5;
  --fs-base: 1rem;

  --scale: 1.333;
  --p: var(--fs-base);
  --h5: calc(var(--p) * var(--scale));
  --h4: calc(var(--h5) * var(--scale));
  --h3: calc(var(--h4) * var(--scale));
  --h2: calc(var(--h3) * var(--scale));
  --h1: calc(var(--h2) * var(--scale));
  --subtext: calc(var(--fs-base) * 0.875);

  --border0: 0.0625rem;
  --border1: 0.125rem;
  --border2: 0.25rem;
  --border3: 0.5rem; /* Default */
  --border4: 0.75rem;
  --border5: 1rem;

  --nav-height: 6vh;
  --toolbar-height: 8vh;
  --search-height: 5vh;
  --ui-height: 83vh;
  --ui-padding: 0.5em;
  --src-pad-v: 0.5em;
  --src-pad-h: 0.25em;
  --input-padding: 0.25em;

  /* Dynamic not working, just note that border radius has to be greater than half of the height of the thing */
  /* --pill-border: round(up, calc(var(--ui-height) / 2, 1vh)); */
  /* --pill-border: calc(var(--ui-height) / 2, 1vh); */
  --pill-border: 3vh;
}

html, body {
  height: 100%;
  margin: 0;
}

body {
  padding-top: 6vh;
  display: flex;
  flex-direction: column;
  margin: var(--margin);
  width: auto !important;
  height: 100vh;
  z-index: 100;
  background-color: var(--background);
  color: var(--text);
  overflow-x: hidden;
}

main {
  flex-grow: 1;
  z-index: 90;
  color: var(--text);
}

.inter-tight-header {
  font-family: "Inter Tight", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

.inter-body {
  font-family: "Inter", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

.montserrat-body {
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

.montserrat-footer {
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: var(--subtext);
}

.montserrat-nav {
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: var(--p);
}

.montserrat-ital {
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: italic;
}

.logo {
  font-family: "Inter Tight", sans-serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
  font-size: 1.25rem;
  color: var(--primary);
}

.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--nav-height);
  box-shadow: 0 2px 5px rgba(20, 20, 20, 0.1);
  z-index: 1000;
  background-color: var(--background);
  color: var(--text);
}

.footer {
  clear: both;
  /* margin-top: 32px; */
  position: relative;
  left: 0px;
  right: 0px;
  bottom: 0px;
  width: 100%;
  height: var(--nav-height);
  margin: 32px 0 !important;
  /* background-color: var(--background);
  color: var(--text); */
  background-color: var(--basalt) !important;
  color: var(--background) !important;
}

.menu-container {
  display: inline-block;
  cursor: pointer;
  padding-top: 0.25em;
  padding-bottom: 0em;
}

.bar1, .bar2, .bar3 {
  width: 25px;
  height: 2px;
  background-color: #333;
  margin: 6px 0;
  transition: 0.35s;
}

.menu-animation .bar1 {
  transform: rotate(-45deg) translate(-5px, 6px);
}
.menu-animation .bar2 {
  opacity: 0;
}
.menu-animation .bar3 {
  transform: rotate(45deg) translate(-5px, -6px);
}

.interface {
  display: grid;
  grid-template-columns: 2fr 7fr 1fr;
  grid-template-rows: 1fr;
  grid-auto-rows: 0;
  overflow-x: hidden;
  overflow-y: hidden;
  gap: 0.5em;
  border-radius: var(--border2);
}

/* Hide horizontal scroll bar */
.interface::-webkit-scrollbar {
  display: none;
}
.interface {
  -ms-overflow-style: none; /* IE, Edge */
  scrollbar-width: none; /* Firefox */
}

.advanced {
  display: grid;
  height: var(--ui-height);
  width: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  padding: var(--ui-padding);
  border-radius: var(--border4);
  background-color: var(--primary);
}

/* Hide vertical scroll bar */
.advanced::-webkit-scrollbar {
  display: none;
}
.advanced {
  -ms-overflow-style: none; /* IE, Edge */
  scrollbar-width: none; /* Firefox */
}

.map {
  display: grid;
  height: var(--ui-height);
  width: 100%;
  padding: var(--ui-padding);
  border-radius: var(--border4);
  background-color: var(--accent);
}

.search {
  /* Note that search bar needs to stick to top while results scroll. */
  display: grid;
  height: var(--ui-height);
  width: 100%;
  /* overflow-y: auto; */
  padding: var(--ui-padding);
  border-radius: var(--border4);
  background-color: var(--secondary);
}

.searchbar {
  /* Easiest way to keep static will probably be to make two separate divs in search area, one for bar and a 
  second for results. Results could overlap under search bar with lower z index, and have scroll only enabled for results. */
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--search-height);
  border-radius: var(--pill-border);
  /* corner-shape: squircle; // - Introduced as of summer 2025, currently supported in chrome. */ 
  padding: var(--ui-padding);
  border: none;
  /* box-shadow: 0 2px 5px rgba(20, 20, 20, 0.1); */
  /* z-index: 85; */
  background-color: var(--sandstone);
  color: var(--basalt);
}

.search-results {
  margin-top: var(--ui-padding);
  padding: var(--ui-padding);
  width: 100%;
  height: calc(var(--ui-height) - var(--search-height) - (2 * var(--ui-padding)));
  overflow-y: auto;
  /* border-radius: var(--border2); */
  /* background-color: var(--sandstone);
  color: var(--basalt); */
}

.sr-card {
  /* Search result card */
  width: 100%;
  height: 12vh;
  padding: var(--ui-padding);
  margin-bottom: var(--ui-padding);
  border-radius: var(--border2);
  background-color: var(--sandstone);
  color: var(--basalt);
}

.src-thumbnail {
  /* Search result card thumbnail image (image of bird if possible to pull from eBird, otherwise need another api call.) */
  left: var(--ui-padding);
  width: 30%;
  height: auto;
  border-radius: var(--border1);
}

.src-title {
  /* Search result card title - 'Common name (latin name)' */
  font-size: calc(var(--fs-base) * 0.9) !important;
  font-weight: 500 !important;
  color: var(--basalt);
}

.src-descriptors {
  /* Search result card descriptors */
  font-size: var(--subtext);
  color: var(--text);
}

.toolbar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(100px, auto)); /* will need adjusting */
  grid-template-rows: 1fr;
  grid-auto-rows: 0;
  gap: 0.5em;
  height: var(--toolbar-height);
  width: 100%;
  overflow-y: hidden;
  overflow-x: auto;
  padding: var(--ui-padding);
  border-radius: var(--border4);
  background-color: var(--basalt);
  color: var(--background);
}

/* Hide horizontal scroll bar */
.toolbar::-webkit-scrollbar {
  display: none;
}
.toolbar {
  -ms-overflow-style: none; /* IE, Edge */
  scrollbar-width: none; /* Firefox */
}

.rounded-input {
  border-radius: var(--pill-border);
  border: none;
  padding: var(--input-padding);
}

input[type="range"] {
  -webkit-appearance: none; /* Remove default WebKit styling */
  width: 100%;
  height: 10px;
  background: #d3d3d3;
  outline: none;
  opacity: 0.7;
  transition: opacity .2s;
}

input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  background: #4CAF50;
  cursor: pointer;
  border-radius: 50%;
}
