@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap');

/* General --------------------------- */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: "Inter", sans-serif;
    font-weight: 400;
    font-style: normal;
    font-variation-settings: "slnt" 0;
}

h1, h2, h3, h4, h5, h6 {
        font-family: "Inter", sans-serif;
        font-weight: 700;
        font-style: normal;
}

body {
    padding-top: 50px;
    background-color: #e1eaec;
}

.modal {
    z-index: 999999;
}

a {
    color: black; 
}

.text-wrap-balance {
    text-wrap: balance;
}

.justify-center {
    justify-content: center;
}

.no-wrap {
    white-space: nowrap;
}

.is-absolute {
    position:absolute!important;
}

.is-relative {
    position:relative;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    border: 0;
  }

/* Flash messages */
.flashes {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    position: fixed;
    top: 60px; 
    left: 50%;
    transform: translateX(-50%);
    z-index: 1000; 
    width: 100%;
    max-width: 800px; 
}

.alert {
    width: 100%;
    max-width: 800px; 
}

footer {
    background-color: #263238 !important;
    color: white;
}

footer a {
    color: white;
}

/* Ensure footer sticks to bottom of page*/
/* Source: https://www.youtube.com/watch?v=AVPR_WuDw8o&list=PLx6XTedFrvFICl8XTWKE6mDst8FPo5ZRn&index=3*/
.footer-fix {
    min-height: calc(100dvh - 50px);
    display: grid;
    grid-template-rows: auto 1fr auto;
}

.footer-fix.error-page {
    min-height: calc(100dvh - 50px);
    display: grid;
    grid-template-rows: auto auto 1fr auto;
}

/* nav bar------------------------------ */
.bg-body-tertiary {
    background-color: #263238 !important; 
}

.navbar-brand {
    color: white;
}

.navbar-nav .nav-link.active {
    color: white;
}

.navbar { 
    position: absolute; 
    top: 0;
    width: 100%; 
    z-index: 1999; 
    font-size: 16px;
} 

.navbar-toggler {
    color: white;
    border: none;
}

.navbar-toggler:focus,
.navbar-toggler:active {
  box-shadow: none;
}

.nav-item {
    margin-right:12px;
}

@media screen and (max-width: 991px) {
    .nav-item {
        margin-bottom: 15px;
        line-height: 1;
    }

    .navbar-collapse {
        margin-top: 15px;
    }
}

.navbar-brand img {
    width: 116px;
    height: auto;
}

/* Map Containers----------------------- */
#mapid { 
    height: calc(100svh - 50px);
}

@media screen and (max-width: 785px) {
    #mapid {
        height: calc(100svh - 52.5px);
    }
}

#homePageMap { 
    height: 500px;
    width: 100%;
    border-radius: 16px;
}

@media screen and (max-width: 576px) {
    #homePageMap {
        height: 50svh; 
    }
}

/* Buttons------------------------------ */
.btn {
    display: flex;
    padding: 12px 20px;
    justify-content: center;
    align-items: center;
    gap:8px;
    border-radius: 8px;
    font-size: 16px;
    line-height: 1;
    height: auto;
    transition: background-color 0.3s ease;
    width:auto;
    transition: ease 0.2s;
}

@media screen and (max-width: 576px) {
    .btn {
        width:100%;
    }
}

.button-container {
    display: flex;
    justify-content: center;
    gap: 10px; 
    margin-top: 10px; 
}

.primary-btn {
    background-color: #2b60fd!important;
    color: white !important;
    border:none !important;
}

.primary-btn:hover {
    background-color: #0056b3 !important;
}

.secondary-btn {
    border: 1px solid #FFF!important;
    border-radius: 8px; 
    background-color: transparent;
    color:white!important;
    width:100%;
}

.return-btn {
    border-radius: 8px;
    border: 1px solid black;
    background-color: transparent;
    color: black;
    margin-top: 10px;
}

.return-btn:hover {
    background-color: black;
    color: white;
}
    
.edit-btn {
    background-color: #007bff;
    color: #fff!important;
    border: none;
    font-size: 16px;
    cursor: pointer;  
}
.edit-btn:hover {
    opacity: 0.8;
    background-color:#007bff ;
    color:white;
  
}

.leaflet-container a {
    color:white;
}

.delete-btn {
    background-color: #f44336; 
    color: white !important;  
}

.delete-btn:hover {
    opacity: 0.8;
    background-color: #f44336;  
}

.create-btn {
    max-width: 200px;
    margin-left: auto;
    margin-right: auto
}

.clear-btn {
    background-color: #FF9800; 
    color: #fff;
    border: none;
    width:100%;
}

.clear-btn:hover {
    background-color: #e68900; 
}

@media screen and (max-width: 785px) {
    .clear-btn {
        width:100%;
    }
}

.delete-user {
    background-color: transparent;
    border: none;
    padding: 10px; 
    cursor: pointer;
    font-size: 24px; 
    color: red; 
}
.tertiary-btn {
    background-color: #61a0ac !important; /* Brighter blue-green */
    color: #ffffff; /* Pure white text for better contrast */
    border: none;
    padding: 10px 20px;
    font-size: 16px;
    border-radius: 5px;
    cursor: pointer;
    transition: background-color 0.3s ease, color 0.3s ease;
}

.tertiary-btn:hover {
    background-color: #558a96 !important; /* Slightly darker for hover effect */
    color: #ffffff !important; /* Ensure text remains white on hover */
}

.btns-container-col {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.btns-container-row {
    display: flex;
    flex-direction: row;
    align-items: center; 
    gap: 8px;
}

@media screen and (max-width: 785px) {
    .btns-container-row {
        flex-direction:column;
        gap:8px;
    }
}

/* Index.html------------------------------ */
/* Hero Section */
.hero {
    position: relative;
    background-image: url('../images/hero-image.webp');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    height: 500px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    margin: 32px auto;
    max-width: 1180px;
    border-radius: 20px;
    overflow: hidden;
}

/* Hero Content */
.hero-content {
    background: linear-gradient(135deg, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.2)); /* Gradient background */
    color: white;
    text-align: center;
    padding: 30px 50px; 
    border-radius: 15px; 
    margin: 20px;
    max-width: 80%;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
    animation: fadeInUp 1s ease-in-out;
}

/* Title Text */
.title-text {
    font-size: 48px;
    font-weight: bold;
    margin: 0 0 20px;
    animation: fadeInUp 1s ease-in-out;
}

/* Tagline */
.tagline {
    font-size: 24px;
    margin: 0;
    animation: fadeInUp 1.5s ease-in-out;
}

/* Animations */
@keyframes fadeInUp {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Responsive Design */
@media (max-width: 768px) {
    .hero {
        height: 400px;
        border-radius: 0;
    }

    .title-text {
        font-size: 36px;
    }

    .tagline {
        font-size: 18px;
    }
}

@media (max-width: 480px) {
    .hero {
        height: 300px;
        border-radius: 0;
    }

    .title-text {
        font-size: 28px;
    }

    .tagline {
        font-size: 16px;
    }
}

.signin {
    max-width: 640px;
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: #263238;
    border-radius: 10px;
    color: white;
    margin-left: auto;
    margin-right: auto;
    padding: 32px;
}

.content {
    background-color: #f9f9f9;
    padding: 60px 24px;
    border-radius: 32px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    max-width: 1180px;
    margin: 32px auto;
    width:100%;
}

section h2 {
    font-size: 2.5rem;
    color: #333;
}

.section p {
    font-size: 1.25rem;
    color: #555;
    line-height: 1.6;
}

.lidarfind-image {
    width: 100%;
    height:auto;
    border-radius: 10px;
}

/* Media Queries */
@media (max-width: 768px) {
    section {
        text-align: center;
    }

    section .col-md-6 {
        margin-bottom: 30px;
    }
}

/* Cards */
.card {
    background-color: #ffffff;
    color: #263238;
    border: none;
    border-radius: 10px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.card-title {
    font-size: 2rem;
    color: #334046;
}

.panel-icon {
    font-size: 32px;
    margin-bottom: 15px;
}

.lidarfind-image {
    max-width: 500px;
}

section.map-browse {
    background-color: #263238;
    padding: 20px;
    border-radius: 32px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    max-width: 1180px;
    margin: 32px auto;
}

.filters-homepage {
    margin-left: auto;
    color: white;
}

@media screen and (max-width: 785px) {
    .filters-homepage {
        margin-left: 0px;
        width:100%;
    }
}

.popup-buttons-wrapper {
    display: flex;
    flex-direction: row;
    position: fixed;
    gap: 8px;
    bottom: 0;
    width: 300px;
    padding: 12px;
    z-index:1001;
    background-color:rgba(0, 0, 0, 0.479);
    backdrop-filter: blur(12px);
    border-radius:12px;
    margin:12px;
}

@media screen and (max-width: 785px) {
    .popup-buttons-wrapper {
        width: 100%;
        border-radius: 0px;
        margin: 0px;
    }
}

.form-popup {
    display: none;
    position: fixed;
    bottom: 0;
    margin-left:auto;
    margin-right:auto;
    background-color: #486872;
    z-index: 1999;
    width: 400px;
    height: calc(100svh - 54px);
    overflow: auto;
    padding:8px 12px 32px;
    z-index: 1001;
    border-radius: 0;
}

.filter-popup {
    height:auto;
    border-radius: 0 8px 0 0;
}

@media screen and (max-width: 785px) {
    .form-popup {
        width:100%;
        height:45svh;
        border-radius: 16px 16px 0 0;
    }
    .filter-popup {
        height:inherit;
        border-radius: 0;
    }
}

.popup-title-wrapper {
    display:flex;
    gap:8px;
    align-items: center;
    padding: 0 8px;
    color:white;
    margin-bottom:18px;
}

.popup-close-btn {
    width:100%;
    background-color:transparent;
    color:white;
    border:none;
    text-align: right;
    font-size: 26px;
}

/* Button used to open the contact form - fixed at the bottom of the page */
/* Source: https://www.w3schools.com/howto/howto_js_popup_form.asp */ 
/* Add styles to the form container */
.form-container {
max-width: 300px;
padding: 10px;
background-color: white;
}

/* Full-width input fields */
.form-container input[type=text], .form-container input[type=password] {
width: 100%;
padding: 15px;
margin: 5px 0 22px 0;
border: none;
background: #f1f1f1;
}

/* When the inputs get focus, do something */
.form-container input[type=text]:focus, .form-container input[type=password]:focus {
background-color: #ddd;
outline: none;
}

/* Set a style for the submit/login button */
.form-container .btn {
background-color: #04AA6D;
color: white;
padding: 16px 20px;
border: none;
cursor: pointer;
width: 100%;
margin-bottom:10px;
opacity: 0.8;
}
  
/* Add some hover effects to buttons */
.form-container .btn:hover, .open-button:hover {
opacity: 1;
}

/* Create a record form styles */
.form-control, .form-select, .edit-form { /* Input fields */
    background-color: #4A6A78; 
    color: #FFFFFF; 
    border: 1px solid #2E4B55;
    padding: 10px;
    border-radius: 5px;
}

.form-select:disabled { 
    background-color: #3A5058; 
    color: #B0C4DE; 
    border: 1px solid #2E4B55; 
    opacity: 0.6;
}

.form-control::placeholder, textarea::placeholder { /* Click for location input colour */
    color: #B0C4DE; 
}

.form-label { /* Placeholder text */
    color: #FFFFFF; 
}

.form-floating>.form-control:not(:placeholder-shown)~label::after { /* Placeholder text after text input */
    background-color:transparent;
}

#location.readonly { /* disable pointers to make it non clickable after input */
    pointer-events: none;
}

/* Filter options styles */
.filters-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px;
}

.filter-container {
    display: flex;
    gap: 10px;
    flex-direction: column;
    width: 100%;
}

.filter-container select {
    padding:8px;
    border-radius:8px;
    min-height:40px;
    width: 100%;
}

.reset-filters-btn {
    background-color: #547c86;
    color: #f3f8f8;
}

.reset-filters-btn:hover {
    background-color: #486872;
}

    .filters-container {
        flex-direction: column;
        align-items: stretch;
    }

    .reset-filters-btn, .primary-btn {
        width: 100%;
    }

/* Leaflet popup containers*/
.leaflet-popup-content-wrapper {
    background-color: #3f565f !important; 
    border: none; 
    border-radius: 5px; 
    padding: 10px!important; 
    box-shadow: 0 24px 36px rgba(7, 6, 6, 0.4) !important;
}

.leaflet-popup-content {
    color: #e1eaec; 
    font-size: 15px !important; 
    line-height: 1.5; 
}

.leaflet-popup-tip {
    background-color: #3f565f !important; 
}

.leaflet-popup-close-button {
    color: #e1eaec !important; 
    font-size: 24px !important; 
    right:10px!important;
    top:10px!important;
}

.fa-circle-info {
    color: #729fad;
    font-size: 14px;
    margin-top: 4px;
}

/* profile.html------------------------------ */
.card {
    background-color: #e1eaec;
}

.profile-details, .all-user-details {
    background-color: #ffffff;
    color: #263238;
    border: none;
    border-radius: 10px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.accordion-button {
    background-color: white;
    color: #000;
}

.accordion-button:not(.collapsed) {
    background-color: white;
    color: #000;
}

.accordion-button:hover {
    background-color: #e1eaec;
    color: #000;
}

/* Login.html----------------------- */
.login-box {
    background-color: #375159;
    color: white;
}

.login-title {
    background-color: #263238;
    color: white;
}

/* Logout.html----------------------- */
.successful-logout {
    background-color: #d1e7dd;
}

/* edit_record.html----------------------- */
.edit-page-grid {
    display: grid;
    height: calc(100vh - 54px);
    grid-template-columns: minmax(0, 400px) 1fr;
    grid-column-gap: 0px;
    grid-row-gap: 0px;
}

.edit-form {
    height: calc(100vh - 54px);
    max-width: 400px;
    width: 100%;
    border-radius: 0px;
    overflow: auto;
}

.edit-map {
    width: 100%;
}

#edit-record-map { 
    height: calc(100vh - 54px);
    width: 100%;
}

@media screen and (max-width: 835px) {
    .edit-page-grid {
        display: flex;
        height: calc(100vh - 54px);
        flex-direction: column-reverse;
    }

    #edit-record-map { 
        height: calc(55vh - 54px);
        width: 100%;
    }

    .edit-form {
        height: 100%;
        max-width: 100%;
        width: 100%;
    }
}