/* 1. Import Google Fonts and Material Icons */
@import url('https://fonts.googleapis.com/css?family=Roboto:400,500&display=swap');
@import url('https://fonts.googleapis.com/icon?family=Material+Icons');

/* 2. Reset & body base styles */
html, body {
  height: 100%;
  margin: 0;
  padding: 0;
  background: linear-gradient(135deg, #e0eafc 0%, #cfdef3 100%);
  font-family: 'Roboto', Arial, sans-serif;
  color: #000; /* Always black */
  min-height: 100vh;
}

/* 3. Main container */
body > div, .container {
  background: #fff;
  box-shadow: 0 8px 32px rgba(30, 60, 100, 0.14), 0 1.5px 3px #b2bec3;
  border-radius: 20px;
  padding: 34px 30px 32px 30px;
  max-width: 470px;
  margin: 48px auto 0 auto;
}

/* 4. Page heading */
h1 {
  text-align: center;
  color: #1565c0;
  letter-spacing: 1px;
  margin-bottom: 24px;
  margin-top: 0;
  font-size: 2.25rem;
  font-weight: 500;
  font-family: 'Roboto', Arial, sans-serif;
}

/* 5. Google-style search bar */
.search-bar-container {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 28px 0 16px 0;
}

.search-bar {
  display: flex;
  align-items: center;
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 2px 6px rgba(60, 60, 60, 0.08);
  padding: 4px 18px 4px 18px;
  width: 100%;
  max-width: 400px;
  transition: box-shadow 0.2s;
  border: 1.5px solid #e0e0e0;
}

.search-bar input[type="text"] {
  border: none;
  outline: none;
  font-size: 1.17rem;
  padding: 10px 7px 10px 0;
  background: transparent;
  width: 100%;
  font-family: 'Roboto', Arial, sans-serif;
  color: #000;
}

.search-bar input[type="text"]::placeholder {
  color: #9e9e9e;
  font-size: 1.08rem;
}

.search-bar button {
  background: none;
  border: none;
  outline: none;
  cursor: pointer;
  padding: 4px 0 4px 9px;
  display: flex;
  align-items: center;
}

.search-bar button:active .material-icons,
.search-bar button:focus .material-icons {
  color: #1976d2;
}

.material-icons {
  font-size: 24px;
  color: #757575;
  vertical-align: middle;
  transition: color 0.18s;
}

/* 6. Output section headings */
h3 {
  color: #000 !important; /* Black text */
  font-size: 1.1rem;
  margin-bottom: 4px;
  margin-top: 22px;
  letter-spacing: 0.5px;
  font-weight: 500;
  border-left: none !important; /* Remove blue bar */
  padding-left: 0 !important;
  background: none !important;
  text-align: left !important;
}

/* 7. Output value styles (SINGLE LINE, LEFT ALIGNED) */
#plusCodeOut, #decimalOut, #dmOut, #dmsOut {
  font-family: 'Fira Mono', 'Consolas', 'Monaco', monospace;
  color: #000 !important;
  font-size: 1.09rem;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 5px 0 5px 0 !important;
  display: block !important;
  text-align: left !important;
  white-space: pre-line;
}

/* Hide OLD split DM/DMS outputs if present */
#dmLatDeg, #dmLatMin, #dmLatHem,
#dmLngDeg, #dmLngMin, #dmLngHem,
#dmsLatDeg, #dmsLatMin, #dmsLatSec, #dmsLatHem,
#dmsLngDeg, #dmsLngMin, #dmsLngSec, #dmsLngHem {
  display: none !important;
}

/* Message (errors/info) */
#message {
  color: #d32f2f;
  font-size: 1.07rem;
  min-height: 18px;
  text-align: center;
  margin-bottom: 8px;
  font-weight: 500;
  background: none !important;
}

/* Google Maps Link */
a#mapLink {
  display: inline-block;
  margin-top: 16px;
  color: #1976d2;
  font-weight: 600;
  text-decoration: none;
  font-size: 1.08rem;
  transition: color 0.2s;
  border-bottom: 1px dashed #90caf9;
  padding-bottom: 2px;
  background: none !important;
}
a#mapLink:hover, a#mapLink:focus {
  color: #0d47a1;
  border-bottom: 2px solid #1976d2;
}

/* Responsive: mobile-friendly */
@media (max-width: 600px) {
  body > div, .container {
    padding: 16px 3vw;
    max-width: 99vw;
  }
  .search-bar {
    max-width: 98vw;
    padding: 3px 6px 3px 11px;
  }
  h1 {
    font-size: 1.48rem;
    padding-top: 5px;
  }
}
