@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&family=Playwrite+HU:wght@100..400&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

:root {
    --darkblue: #0e4d6c;
    --lightyellow: #e6e98a;
    --blue: #006699;
    --black: #000000;
    --white: #ffffff;
}

body, html {
    margin: 0;
    height: 100%;
    font-family: "Poppins", sans-serif;
    font-size: 14px;
}

h1 {
    font-size: 48px;
}

p {
    line-height: 20px;
}

.prfnt {
    font-family: "Playwrite HU", sans-serif;
}

.bluecol {
    color: var(--blue);
}

.nowrap {
    white-space: nowrap;
}

.font10 {
    font-size: 10px;
}

content {
    display: flex;
    flex-direction: column;
    min-height: 100vh; /* Ensure content takes at least full viewport height */
    width: 100%;
}

.bluebg {
    background-color: var(--blue);
    color: var(--white);
}

.homecenter {
    /* Center this container within its parent */
    margin: auto;
    /* Also use flex to center its child */
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

.profilepic {
    /* Set a fixed size for the profile picture */
    width: 300px;
    height: 300px;
    /* Set the background image (adjust path if needed) */
    background-image: url('../images/headshot.jpg');
    background-size: cover;
    background-position: center;
    /* Make the image circular */
    border-radius: 50%;
    /* Add a light border */
    border: 6px solid rgba(255, 255, 255, 0.8);
}

/* Login page specific container (unchanged except for removal of flex centering if not needed) */
.login-container {
    background-color: rgba(255, 255, 255, 0.95);
    padding: 40px;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    width: 90%;
    max-width: 400px;
    margin: auto;
    text-align: center;
    /* You can keep these if you want inner elements centered too */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

/* Ensure the login form elements inside the container look professional */
.login-container .login-form label {
    text-align: left;
    margin-bottom: 5px;
    font-weight: 500;
    color: #333;
}

.login-container .login-form input {
    padding: 10px;
    margin-bottom: 15px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 16px;
    transition: border 0.3s;
    width: 100%;
    box-sizing: border-box;
}

.login-container .login-form input:focus {
    border-color: #2980b9;
    outline: none;
}

.login-container .login-form button {
    padding: 12px;
    background-color: #2980b9;
    border: none;
    border-radius: 4px;
    color: #fff;
    font-size: 16px;
    cursor: pointer;
    transition: background-color 0.3s;
    width: 100%;
}

.login-container .login-form button:hover {
    background-color: #2573a6;
}

/* Style for error messages in the login container */
.login-container .error {
    color: #e74c3c;
    font-weight: 500;
    margin-bottom: 15px;
}

.menubtns {
    margin: 20px;
}

nav {
    height: 30px;
    width: 100%;
    line-height: 30px;
    background-color: var(--darkblue);
    color: var(--white);
}

header {
    height: 100px;
    background-color: var(--blue);
    display: flex;
    flex-direction: row;
    color: var(--white);
}

header h2 {
    line-height: 100px;
    margin: 0px 0px 0px 20px;
}

nav a {
    color: var(--white);
    margin: 10px;
}

nav a:hover {
    color: var(--lightyellow);
}

button {
    padding: 10px 20px;
    cursor: pointer;
}

/* Popup modal overlay */
.popup-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5); /* Semi-transparent background */
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
}

/* Popup modal content box */
.popup-content {
    background-color: #fff;
    padding: 20px 30px;
    border-radius: 8px;
    width: 90%;
    max-width: 400px;
}

.btncont button:first-of-type {
    margin-left: 0px;
}

.btncont button {
    margin: 10px 4px;
    cursor: pointer;
    padding: 5px;
}

.popup-content label:first-of-type {
    margin-top: 0px;
}

.popup-content label {
    margin-top: 6px;
    display: block;
}

input {
    font-family: "Poppins", sans-serif;
}

select {
    font-family: "Poppins", sans-serif;
    padding: 5px;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
}

input[type="text"] {
    padding: 5px;
    border: 1px solid #ccc;
    border-radius: 4px;
    width: 100%;
    box-sizing: border-box;
}

/* Reusable class for all tables in the portal */
.dp-table {
    border-collapse: collapse;
    background-color: #f2f8ff; /* Light blue background */
    margin: 20px; /* Optional spacing above the table */
}

.dp-table th,
.dp-table td {
    border: 1px solid #ccc; /* Subtle, light-gray borders */
    padding: 5px;
    text-align: left;
}

.dp-table th {
    background-color: #e8f4ff; /* Slightly different shade for the header */
    font-weight: 600;
}

.dp-table tr:nth-child(even) {
    background-color: #fbfdff; /* Very light background for even rows */
}

/* (Optional) Hover effect for rows */
.dp-table tbody tr:hover {
    background-color: #eaf6ff;
}

.dp-table button {
    padding: 5px;
}

#bloodMarkersTableBody {
    margin: 20px;
}

/* Limit popup height to 90% of the viewport and scroll if needed */
#addBloodResPopup .popup-content {
    max-height: 90vh; /* 90% of viewport height */
    overflow-y: auto; /* Adds scroll if content exceeds 90vh */
    max-width: 500px;
}

#addBloodResPopup .popup-content input {
    width: auto;
}

.marker-row {
    display: grid;
    grid-template-columns: 200px 1fr; /* First column is fixed 200px, second column takes remaining space */
    column-gap: 8px; /* Spacing between columns */
    margin-bottom: 8px; /* Vertical spacing between rows */
    align-items: center; /* Vertically center label and input */
}

.marker-row label {
    text-align: right; /* Optional: right-align label text */
    white-space: nowrap; /* Prevent labels from wrapping if you prefer a single line */
}

#filterList {
    max-height: 60vh;
    overflow-y: auto;
}

.filter-controls {
    margin-bottom: 10px;
}

.notes-row {
    margin-top: 10px;
}

.notes-row textarea {
    width: 100%;
    padding: 8px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-family: "Poppins", sans-serif;
    font-size: 14px;
    resize: vertical;
    box-sizing: border-box;
}

#notesContent {
    background-color: #f9f9f9;
    padding: 15px;
    border-radius: 4px;
    white-space: pre-wrap;
    word-wrap: break-word;
}

@media (max-width: 767px) {
    #filterList {
        width: 100% !important;
    }

    .popup-content {
        width: 95vw;
    }
}