:root {
  --font: 'Dosis', sans-serif;
}

/* CSS Reset */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display roles */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
  background: linear-gradient(to left, #00d2ff, #3a7bd5);
  font-family: var(--font);
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote::before, blockquote::after,
q::before, q::after {
  content: '';
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* Header */
#header {
  border-bottom: 2px solid #b8b8b8;
  background-color: white;
  height: 75px;
  position: fixed;
  top: 0;
  display: inline-block;
  width: 100%;
  margin-bottom: 60px;
  z-index: 9999;
}

#header_logo {
  margin-top: 10px;
  margin-left: 5px;
  vertical-align: text-bottom;
}

/* Panels */
.panel {
  min-height: 70px;
  width: 900px;
  border-radius: 25px;
  box-shadow: 2px 2px 2px #b8b8b8;
  margin: 0 auto 30px;
  background-color: #fff;
  color: #4a4a4a;
  transition: width 0.3s linear;
  padding: 15px 15px;
  overflow-wrap: anywhere;
}

.panel .panel_heading {
  line-height: 100px;
  text-align: center;
  font-size: 1.3em;
}


/*
.panel-half {
  min-height: 70px;
  width: 435px;
  border-radius: 25px;
  box-shadow: 2px 2px 2px #b8b8b8;
  margin: 0 auto 30px;
  background-color: #fff;
  color: #4a4a4a;
  transition: width 0.3s linear;
  padding: 15px 15px;
  overflow-wrap: anywhere;
  text-align: center;
}

.chart-wrapper {
    width: 900px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between; 
    flex-wrap: wrap; 
}
*/


.chart-wrapper {
  display: flex;
  justify-content: center;         /* center the flex items horizontally */
  align-items: flex-start;         /* top-align the items */
  gap: 30px;                       /* space between the two charts */
  width: 100%;                     /* full width */
  max-width: 1000px;               /* optional: cap width to keep it neat */
  margin: 0 auto;                  /* center the wrapper in the page */
  flex-wrap: wrap;                /* allow wrapping on smaller screens */
}

.panel-half {
  flex: 0 1 420px;                 /* allow flexible width but cap at 435px */
  min-height: 350px;
  border-radius: 25px;
  box-shadow: 2px 2px 2px #b8b8b8;
  background-color: #fff;
  color: #4a4a4a;
  transition: width 0.3s linear;
  padding: 15px;
  overflow-wrap: anywhere;
  text-align: center;
  margin-bottom: 30px;
}

.panel-half canvas {
  width: 100% !important;
  height: 390px !important;
  .height: auto !important;
  max-width: 100%;
}

.panel-half p {
  line-height: 3em;
  font-size: 1.3em;
}



#top_box {
  height: 100px;
  margin-top: 125px;
}

#top_box p {
  color: #444;
  text-align: center;
  line-height: 100px;
}

#input_zip {
  width: 480px;
  height: 25px;
  text-align: center;
}

/* Input Styling */
input[type="text"] {
  padding: 10px;
  border: none;
  border-bottom: solid 2px #c9c9c9;
  transition: border 0.3s;
  font-family: var(--font);
  font-size: 14px;
}

input[type="text"]:focus,
input[type="text"].focus {
  border-bottom: solid 2px #969696;
}

/* Go Button */
#go_btn {
  color: white;
  font-size: 1.5em;
  border-radius: 50%;
  width: 60px;
  height: 60px;
  margin-left: 10px;
  background-color: #f0f0f0;
  text-align: center;
  vertical-align: middle;
  border: none;
  transition: color 0.2s;
}

#go_btn:hover {
  background-color: #f4f4f4;
  color: #363636;
  cursor: pointer;
  transition: color 0.5s;
  border: 1px solid black;
}

/* Content Boxes */
#summary_box,
#api_box {
  line-height: 100px;
  text-align: center;
  vertical-align: middle;
  .display: none;
}

pre {
  font-family: monospace;
  background-color: #f0f0f0;
  padding: 10px;
  border-radius: 5px;
  text-wrap: auto;  
  text-align: center;
}

#summary_box {
  line-height: 35px;
  overflow-wrap: break-word;
}

#heatmap_div,
#street_map_box {
  line-height: 100px;
  text-align: center;
  vertical-align: middle;
  display: grid;
}

#multi_map_div {
  height: 400px;
}


/* Intro + Interface */
#intro {
  font-family: var(--font);
  font-size: 2em;
  color: #f0f0f0;
  transition: display 1s;
}

.intro_hide {
  display: none;
  transition: ease 1s;
}

#interface {
  margin-left: 60px;
  display: none;
  transition: display 1s;
}

/* Notifications */
#notifications {
  width: 100%;
  text-align: center;
  vertical-align: middle;
  color: white;
  background: linear-gradient(to left, #485563, #29323c);
  transition: height 1s;
  position: fixed;
  overflow: hidden;
  top: 75px;
  z-index: 9999;	
}

#notifications p {
  padding: 13px;
}

#notifications:hover {
  height: 40px;
}

#notifications.alerts_on {
  height: 40px;
}

.alerts_off {
  height: 2px;
}

/* Responsive Panels */
@media only screen and (max-width: 1000px) {
  .panel {
    width: 700px;
  }
}

@media only screen and (max-width: 900px) {
  .panel {
    width: 680px;
  }
}

/* ZIP Table */
#zip_table,
#poke_table {
  width: 90%;
  margin: 20px auto;
  font-family: var(--font);
  border-collapse: collapse;
  border-radius: 6px;
  box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.1);
  overflow: hidden;
}

#zip_table thead th,
#poke_table thead th {
  padding: 2px 8px;
  text-align: center;
  border-bottom: 1px solid #b8b8b8;
  font-size: 0.9em;
  line-height: 1.2;
  background-color: transparent;
  color: #2c2c2c;
  font-weight: bold;
}

#zip_table tbody td,
#poke_table tbody td {
  padding: 2px;
  text-align: center;
  font-size: 0.85em;
  line-height: 1.2;
  background-color: transparent;
  color: #4a4a4a;
  min-width: 50px;
}

#zip_table tbody tr:nth-child(even) td,
#poke_table tbody tr:nth-child(even) td {
  background-color: rgba(255, 255, 255, 0.4);
}

#zip_table tbody tr:hover td,
#poke_table tbody tr:hover td {
  background-color: #2c2c2c;
  color: white;
  transition: background-color 0.2s ease, color 0.2s ease;
  cursor: default;
}

/* Sorting Table Headers */
th.sortable {
  cursor: pointer;
  position: relative;
}

th.sortable::after {
  content: " ⇅";
  font-size: 0.8em;
  color: #ccc;
  position: absolute;
  right: 3px;
}

th.sorted-asc::after {
  content: "↑";
  color: #333;
}

th.sorted-desc::after {
  content: "↓";
  color: #333;
}

/* Miscellaneous */
input[type="text"],
input[type="submit"],
button {
  padding: 8px;
  font-size: 16px;
  margin: 5px;
}

table {
  margin-top: 20px;
  width: 100%;
  max-width: 840px;
}

th, td {
  border: 0;
  padding: 8px;
  text-align: left;
}

.error {
  color: red;
  margin-top: 20px;
}

#poke_title {
  padding: 8px;
  font-size: 26px;
  width: 250px;
}

#poke_table_title {
  font-size: 20px;
  width: 350px;
  margin: 10px 0;
}


/* Universal Table Styling Class */
.table_style {
  table-layout: fixed;
  width: 95%;
  margin: 20px auto;
  font-family: var(--font);
  border-collapse: collapse;
  border-radius: 6px;
  box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.1);
  overflow: hidden;
}

/* Set first column width */
.table_style thead th:first-child,
.table_style tbody td:first-child {
  width: 25px;
}

/* Set second column width */
.table_style thead th:nth-child(2),
.table_style tbody td:nth-child(2) {
  width: 25px;
}

/* Set last column width */
.table_style thead th:last-child, 
.table_style tbody td:last-child {
    width: 40px;
}

.table_style thead th {
  padding: 2px 8px;
  text-align: center;
  border-bottom: 1px solid #b8b8b8;
  font-size: 0.9em;
  line-height: 1.2;
  background-color: transparent;
  color: #2c2c2c;
  font-weight: bold;
}

.table_style tbody td {
  padding: 2px;
  text-align: center;
  font-size: 0.85em;
  line-height: 1.2;
  background-color: transparent;
  color: #4a4a4a;
  min-width: 50px;
}

.table_style tbody tr:nth-child(even) td {
  background-color: rgba(255, 255, 255, 0.4);
}

.table_style tbody tr:hover td {
  background-color: #2c2c2c;
  color: white;
  transition: background-color 0.2s ease, color 0.2s ease;
  cursor: default;
}

.table_style th.sortable {
  cursor: pointer;
  position: relative;
}

.table_style th.sortable::after {
  content: " ⇅";
  font-size: 0.8em;
  color: #ccc;
  position: absolute;
  right: 3px;
}

.table_style th.sorted-asc::after {
  content: "↑";
  color: #333;
}

.table_style th.sorted-desc::after {
  content: "↓";
  color: #333;
}

.toggle-link {
  font-size: 0.8em;
  color: #444;
  font-style: italic;
  cursor: pointer;
}

/*
#summary_piechart_div {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: auto;
  width: 300px;
}
*/

#summary_piechart {
  max-width: 300px !important;
  max-height: 300px !important;
  margin: auto;
}

#summary_barchart {
  max-width: 410px !important;
  max-height: 300px !important;
  margin: auto;
}


#summary_table_div {
  max-height: 420px;
  .overflow-y: auto;
  display: block;
}

#summary_table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

#summary_table thead th {
  position: sticky;
  top: 0;
  background-color: #f9f9f9; /* Or any background to avoid transparency */
  z-index: 1;
}

#summary_table tbody {
  display: block;
  max-height: 360px; /* Slightly less than container height to account for header */
  overflow-y: auto;
}

#summary_table thead,
#summary_table tbody tr {
  display: table;
  width: 100%;
  table-layout: fixed;
}

.map_canvas {
  height: 400px;
  width: 100%;
  margin: 0 auto;
  border: 1px solid #ccc;
}

.home_btn {
    background-color: white;
    background-image: url(https://test.zipity.app/home_icon2.png);
    background-size: 70%;
    background-repeat: no-repeat;
    background-position: center;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    border: none;
    border-radius: 3px;
    margin: 0px;
}




#export_buttons_div {
    display: flex;
    justify-content: center;
    gap: 10px; /* Optional: space between buttons */
    margin-top: 20px; /* Optional: add vertical spacing */
}

.export-btn {
    padding: 8px 16px;
    font-size: 14px;
    cursor: pointer;    
    background-color: #227BC9;
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}

.export-btn:hover {
    background-color: #1a5f9d;
}








.rainbow { 
  height: inherit;
  width: inherit;
  left:0;
  right: 0;
  top: 0;
  bottom: 0;
  .position: absolute;
background: linear-gradient(124deg, #ff2400, #e81d1d, #e8b71d, #e3e81d, #1de840, #1ddde8, #2b1de8, #dd00f3, #dd00f3);
background-size: 1800% 1800%;

-webkit-animation: rainbow 18s ease infinite;
-z-animation: rainbow 18s ease infinite;
-o-animation: rainbow 18s ease infinite;
  animation: rainbow 18s ease infinite;}

@-webkit-keyframes rainbow {
    0%{background-position:0% 82%}
    50%{background-position:100% 19%}
    100%{background-position:0% 82%}
}
@-moz-keyframes rainbow {
    0%{background-position:0% 82%}
    50%{background-position:100% 19%}
    100%{background-position:0% 82%}
}
@-o-keyframes rainbow {
    0%{background-position:0% 82%}
    50%{background-position:100% 19%}
    100%{background-position:0% 82%}
}
@keyframes rainbow { 
    0%{background-position:0% 82%}
    50%{background-position:100% 19%}
    100%{background-position:0% 82%}
}

