/* Reset */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Quicksand', sans-serif;
}

html, body {
  height: 100%;
  margin: 0;
  overflow-x: hidden;
  overflow-y: auto;
}


body {
    background-color: #e2f0e1; /* light green background */
    display: block;
    /* justify-content: center;
    align-items: center; */
    min-height: 100vh;
    margin: 0;
}

.login-wrapper {
    width: 100%;
    max-width: 400px;
    padding: 0;
    min-height: 100vh;
    height: 100vh;
    display: flex;
    align-items: stretch;
    justify-content: center;
}

.login-container {
    background-color: white;
    border-radius: 10px;
    padding: 32px 32px 32px 32px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.14);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    max-height: 100vh;
}



.logo {
    width: 70px;
    margin: 0 auto 8px auto;
    display: block;
}


.login-container h1 {
    color: #1f4d2e;
    font-size: 23px;
    margin-bottom: 3px;
}

.subtitle {
    color: #2e6b3b;
    margin-bottom: 7px;
    font-size: 14px;
    text-align: justify;
}

.login-container input {
    width: 100%;
    padding: 12px;
    border-radius: 8px;
    border: 1px solid #ccc;
    font-size: 14px;
    margin-bottom: 6px;
}

#emailInput {
    margin-bottom: 4px !important;
}
#passwordInput {
    margin-bottom: 10px !important;
}

/* Reduce space specifically between Email and Password input */
/* #emailInput {
    margin-bottom: 1px !important;
} */

.login-container button {
    width: 100%;
    padding: 12px;
    background-color: #1f4d2e;
    color: white;
    font-size: 16px;
    font-weight: bold;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    margin-bottom: 6px;
}

.login-container button:hover {
    background-color: #16391f;
}

.forgot, .or, .signup {
    font-size: 14px;
    margin-bottom: 6px;
    color: #2e6b3b;
}

.signup a {
    color: #1f4d2e;
    text-decoration: none;
    font-weight: bold;
}

.social-login {
    display: flex;
    justify-content: space-around;
    margin: 15px 0;
}

.social-login i {
    font-size: 20px;                /* icon size */
    color: #333;
    cursor: pointer;

    width: 50px;                     /* fixed width */
    height: 50px;                    /* fixed height to make it square */
    line-height: 50px;               /* vertically center the icon */
    text-align: center;              /* horizontally center the icon */

    border: 2px solid rgba(0,0,0,0.2); /* light transparent border */
    border-radius: 12px;             /* rounded edges */
    transition: all 0.2s ease;
    margin: 0 5px;                   /* spacing between buttons */
}

.social-login i:hover {
    color: #1f4d2e;
    border-color: #1f4d2e;
}

/* Dashboard Wrapper (like phone size) */

.dashboard-wrapper {
  
  width: 100%;
  max-width: 100%;
  min-height: 100vh;
  padding: 0;
  display: flex;

}

.dashboard-wrapper-chat {
  
  width: 100%;
  max-width: 100%;
  min-height: 100vh;
  padding: 0;
  display: flex;

}

.dashboard-container {
  background-color: white;
  border-radius: 0;
  min-height: 100vh;
  height: auto;
  padding: 16px;
  box-shadow: none;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow-y: auto;
  width: 100%;
  max-width: 100%;
}

.dashboard-container-chat {
  background-color: white;
  border-radius: 0;
  min-height: 100vh;
  height: auto;
  padding: 16px;
  box-shadow: none;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow-y: auto;
  width: 100%;
  max-width: 100%;
}

/* Responsive dashboard pages for mobile */
@media (max-width: 700px) {
  .dashboard-wrapper {
    width: 100%;
    max-width: 100%;
    min-height: 100vh;
    height: auto;
    padding: 0;
  }

  .dashboard-container {
    padding: 14px;
    font-size: 16px;
  }

  .dashboard-main {
    padding-top: 14px;
    padding-bottom: 90px; /* space for bottom nav */

  }
}

@media (max-width: 400px) {
  .dashboard-container {
    padding: 12px;
    font-size: 15px;
  }
}

.dashboard-container-log-catch {
  background-color: white;
  border-radius: 0;
  min-height: 100vh;
  width: 100%;
  padding: 16px;
  box-shadow: none;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  overflow-y: auto;
  word-break: break-word;
  box-sizing: border-box;
  margin: 0 auto;
}

.dashboard-container-chat {
  background-color: white;
  border-radius: 0;
  min-height: 100vh;
  width: 100%;
  padding: 16px;
  box-shadow: none;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  overflow-y: auto;
  word-break: break-word;
  box-sizing: border-box;
  margin: 0 auto;
}

@media (max-width: 700px) {
  .dashboard-wrapper-log-catch {
    width: 100%;
    min-height: 100vh;
    height: auto;
    padding: 0;
  }

  .dashboard-container-log-catch {
    width: 100%;
    max-width: 100%;
    min-height: 100vh;
    height: auto;
    padding: 12px;
    font-size: 16px;
  }
}

@media (max-width: 400px) {
  .dashboard-container-log-catch {
    padding: 10px;
    font-size: 15px;
  }
}

/* Header inside container */
.top-header {
    display: flex;
    justify-content: space-between; /* logo left, icons right */
    align-items: center;
    padding-bottom: 0px;
    border-bottom: 1px solid #ddd; /* subtle line to separate header */
    z-index: 10; /* stay above nav and sections */
}

/* Logo */
.top-logo {
    width: 50px;
    height: 50px;
}

.notif-logo {
    width: 25px;
    height: 25px;
    margin-left: 10px; /* space to the left of each icon */
}

.dashboard-main {
    display: flex;
    flex-direction: column;
    gap: 30px; /* spacing between sections */
    flex: 1;
    overflow-y: auto;
    padding-top: 20px;
}
.dashboard-main-log-catch {
    display: flex;
    flex-direction: column;
    gap: 20px;
    flex: 1;
    overflow-y: auto;
    padding-top: 16px;
    padding-bottom: 90px;
}

.bottom-nav {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: space-around;
  align-items: center;
  background-color: #ffffff;
  border-top: 1px solid #ddd;
  padding: 8px 0 calc(8px + env(safe-area-inset-bottom));
  z-index: 1000;
  width: 100%;
}

.bottom-nav-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: #706d6d;
    font-size: 10px;
}

.bottom-nav-item .nav-icon {
    width: 20px;
    height: 20px;
    margin-bottom: 3px;
}

.bottom-nav-item:hover {
    color: #000000;
}

.forecast-container {
    height: 120px;  
    font-size: 12px;
    display: flex;
    flex-direction: column;
    justify-content: space-between; /* spreads heading and boxes vertically */
    margin-bottom: 20px;
    padding: 15px;
    background-color: #ecebeb;
    border-radius: 10px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

.warning-container {
    margin-top: 20px;
    padding: 15px;
    background-color: #ffe0e0; /* light red */
    border-left: 5px solid #ff4d4d; /* strong warning accent */
    border-radius: 10px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

.warning-container h3 {
    margin: 0 0 8px 0;
    color: #cc0000;
}

.warning-container p {
    margin: 0;
    font-size: 14px;
    color: #cc0000;
}

.weather-container {
    margin-top: 20px;
    padding: 15px;
    background-color: #ffffff; /* white box */
    border-radius: 5px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

.weather-container h3 {
    margin-top: 0;
    margin-bottom: 8px;
}

.weather-container p {
    margin: 4px 0;
    font-size: 14px;
}

.weather-details {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap; /* prevents overflow on small screens */
    margin-top: 8px;
    font-size: 13px;
}

.weather-details div {
    margin-right: 10px;
}

.chat-main {
    flex: 1;
    overflow-y: auto;
    padding: 15px;
}

.chat-message {
    padding: 10px 14px;
    margin-bottom: 10px;
    border-radius: 12px;
    max-width: 80%;
    font-size: 14px;
}

.chat-message.bot {
    background-color: #e0f7fa;
    align-self: flex-start;
}

.chat-buttons {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 15px;
}

.chat-buttons button {
    padding: 10px;
    border: none;
    border-radius: 8px;
    background-color: #0077b6;
    color: white;
    cursor: pointer;
    font-size: 14px;
}

.chat-buttons button:hover {
    background-color: #005f8a;
}

/* Chat Header */

.chat-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 4px;
}


.chat-logo {
  width: 28px;
  height: 28px;
}


/* Chat Area */

.chat-main {
  flex: 1;
  overflow-y: auto;
  padding: 12px 8px 90px 8px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}


/* Message bubbles */

.chat-message {
  padding: 10px 14px;
  margin-bottom: 8px;
  border-radius: 16px;
  max-width: 88%;
  font-size: 15px;
  line-height: 1.4;
  white-space: pre-wrap;
}


/* Bot bubble */
.chat-message.bot {
    background-color: #e0f7fa;
    align-self: flex-start;
}

/* User bubble */
.chat-message.user {
    background-color: #0077b6;
    color: white;
    align-self: flex-end;
}

/* Buttons */

.chat-options {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-bottom: 70px;
}

.chat-options button {
  padding: 12px;
  border: none;
  border-radius: 8px;
  background-color: #00b4d8;
  color: white;
  cursor: pointer;
  font-size: 14px;
}

.chat-options button:hover {
    background-color: #0096c7;
}

/* Smooth fade animation */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Header Layout */
.chat-header {
    display: flex;
    justify-content: flex-start; /* pushes content to left */
    align-items: center;
    padding: 10px 15px;
}


.chat-header h2 {
  margin: 0;
  font-size: 22px;
}


/* Container for logo + text */
.chat-title {
    display: flex;
    align-items: center;
    gap: 8px; /* space between logo and text */
}

/* Logo size */
.chat-logo {
    width: 32px;
    height: 32px;
}

/* Remove extra margin from h2 */
.chat-title h2 {
    margin: 0;
}

.log-catch-form .input-group {
    margin-bottom: 15px; /* space between each input group */
}

/* Form container inside scrollable main */
.form-container {
    display: flex;
    flex-direction: column;
    gap: 30px;
    padding: 0;
    margin-bottom: 0;
    min-height: 60vh;
    width: 100%;
    box-sizing: border-box;
}

/* Labels */
.form-container label {
    display: block;       /* ensures it takes full width */
    text-align: left;     /* align text to left */
    font-weight: bold;
    margin-bottom: 3px;
    font-size: 13px;
}


/* Inputs and dropdowns */
.form-container input,
.form-container select {
    padding: 6px 8px;
    border-radius: 5px;
    border: 1px solid #ccc;
    font-size: 13px;
    width: 100%;
    box-sizing: border-box;
}

/* Size range inputs inline */
.size-range {
    display: flex;
    gap: 6px;
}

.size-range input {
    flex: 1;
}

/* Map placeholder */
.map-placeholder {
    height: 180px;
    background-color: #e0e0e0;
    border-radius: 5px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 12px;
    color: #555;
}

/* Checkbox row */
.checkbox-container {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
}

/* Submit button */
.submit-btn {
    background-color: #000;    /* black background */
    color: #fff;               /* white text */
    border: none;              /* remove default border */
    padding: 12px 20px;        /* size of the button */
    border-radius: 10px;        /* rounded corners */
    font-size: 15px;           /* text size */
    cursor: pointer;           /* pointer on hover */
    width: 100%;               /* full width of the form container */
    margin-top: 10px;          /* spacing above the button */
}

.submit-btn:hover {
    background-color: #333;    /* slightly lighter on hover */
}

.dashboard-main h2 {
    font-size: 20px;    /* smaller than default */
    text-align: left;   /* aligns to left */
    margin: 10px 0;     /* optional: adds some spacing from top/bottom */
}

.log-catch-form label {
    color: #555;          /* dark grey instead of black */
    display: block;       /* makes it sit above the input properly */
    margin-bottom: 3px;   /* small space between label and input */
    font-size: 14px;      /* optional: slightly smaller if you want */
}

/* Add spacing between each input/field group */
.dashboard-main .input-group {
    margin-bottom: 15px; /* adjust the space as you like */
}


/* Optional: keep labels left-aligned and grey */
.dashboard-main .input-group label {
    display: block;
    text-align: left;
    color: #666666;
    margin-bottom: 4px;
    font-size: 14px;
}

.confirm-checkbox {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 3vw;
}

.confirm-checkbox input[type="checkbox"] {
    width: 16px;             /* consistent checkbox size */
    height: 16px;
    margin: 0;               /* remove default spacing */
    /* Remove extra space at the bottom of the flex container */
    justify-content: flex-start;
}

.confirm-checkbox label {
    margin: 0;               /* remove default spacing */
    line-height: 1.2;        /* tighten text height */
    color: #555;             /* slightly grey text */
}

/* Catch record container box */
.catch-record-container {
    background-color: #f7f7f7;
    padding: 15px;
    border-radius: 10px;
    margin-bottom: 15px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
    font-size: 14px;
}

/* Record title */
.catch-record-container h3 {
    margin-top: 0;
    margin-bottom: 10px;
    font-size: 16px;
}

/* Search bar */
.history-search {
    width: 100%;
    padding: 8px 10px;
    margin-bottom: 15px;
    border-radius: 6px;
    border: 1px solid #ccc;
    font-size: 14px;
}

.catch-record-container {
    background-color: #ddf0df;
    padding: 15px;
    border-radius: 10px;
    margin-bottom: 15px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

.catch-record-container h3 {
    margin-bottom: 10px;
    color: #333;
}

.record-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 5px;
}

.record-label {
    font-weight: bold;
    color: #555; /* grey labels */
}

.record-value {
    color: #333;
}

/* ─── Profile Page ─────────────────────────────────────── */
.profile-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px 0 10px 0;
}

.profile-avatar {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    border: 3px solid #2E7D32;
    margin-bottom: 10px;
}

.stat-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin: 15px 0;
}

.stat-card {
    background-color: #2E7D32;
    color: white;
    border-radius: 10px;
    padding: 15px;
    text-align: center;
}

    .stat-card span {
        font-size: 28px;
        font-weight: bold;
        display: block;
    }

    .stat-card p {
        font-size: 12px;
        margin: 5px 0 0 0;
        opacity: 0.9;
    }

/* Latest Catch Card */
.catch-summary-card {
    background-color: #E8F5E9;
    border-left: 5px solid #2E7D32;
    border-radius: 8px;
    padding: 15px;
    margin: 10px 0;
}

    .catch-summary-card h3 {
        margin: 0 0 10px 0;
        color: #2E7D32;
        font-size: 16px;
    }

    .catch-summary-card p {
        margin: 4px 0;
        font-size: 14px;
        color: #333;
    }

/* Connect Accounts Section */
.connect-section {
    margin-top: 15px;
}

    .connect-section h3 {
        font-size: 16px;
        margin-bottom: 12px;
        color: #333;
    }

.connect-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    background: #f7f7f7;
    border-radius: 8px;
    margin-bottom: 10px;
}

    .connect-row span {
        flex: 1;
        font-size: 14px;
        font-weight: bold;
    }

