* {
    box-sizing: border-box;
}

html {
    display: flex;
    flex-direction: column;
    font-family: sans-serif;
    color: #DCEFFF;
    background-color: #191919;
}

body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 0;
    margin: 0;
    background-color: #121212;
}

.container {
    display: flex;
    flex: 1;
    flex-direction: column; /* Stack elements vertically */
    min-height: 100vh; /* Ensure container spans the full height of the viewport */
}

.main {
    flex: 1; /* Take up remaining space to push footer to the bottom */
    display: flex;
    padding: 20px;
    flex-direction: column;
}

.footer {
    width: 100%;
    background-color: #191919; /* Footer background */
    color: #DCEFFF; /* Footer text color */
    display: flex;
    justify-content: left; /* Center content horizontally */
    align-items: center; /* Center content vertically */
    padding: 10px;
}

button:hover {
    cursor: pointer;
}

a {
    color: #007BFF;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
    cursor: pointer;
}

h1, p, h2, h3, h4, h5, h6 {
    padding: 0; /* Remove padding */
    margin: 0; /* Remove margin */
}

ul, li, ol {
    margin: 0;
}

.nav-bar {
    top: 0; /* Ensure it starts at the top */
    left: 0; /* Ensure it spans the left edge */
    width: 100%; /* Full width across the viewport */
    display: flex; /* Use flexbox for layout */
    justify-content: space-between; /* Space out content (e.g., left logo, right links) */
    align-items: center; /* Vertically center items within the navbar */
    padding: 10px; /* Add some padding */
    background-color: #191919; /* Background color of the navbar */
}

.g_id_signin > div > div:first-child{
    display: none;
}

.google-login-button-container {
    height: 44px;
    width: auto;
    align-items: center;
    justify-content: center;
    display: flex;
}

#logout-div {
    margin-right: 10px;
}

.logo {
    display: flex; /* Use flexbox for logo text and image */
    align-items: center; /* Vertically center text and image */
    gap: 10px; /* Space between the image and text */
}

.logo img {
    width: 40px; /* Adjust size of the image */
    height: 40px; /* Ensure it's square */
    object-fit: cover; /* Scale the image correctly */
}

.navbar-title {
    color: #DCEFFF;
    text-decoration: none;
}

.navbar-title:hover {
    text-decoration: none;
    cursor: pointer;
}

.center {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    text-align: center;
}

.purple-button {
    display: inline-block;
    text-align: center;
    padding: 10px 20px;
    margin: 5px 0;
    min-width: 30ch; /* Enough space for 20 characters (average width of 0.75em per character) */
    max-width: 30ch; /* Just in case some fonts are narrower */
    text-decoration: none;
    background-color: #553976; /* Button background color */
    color: #DCEFFF;
    border: none;
    border-radius: 5px;
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    transition: background-color 0.3s ease;
    word-wrap: break-word; /* Breaks text if it exceeds the width */
}

.purple-button:hover {
    background-color: #8853C7;
    text-decoration: none;
}

.purple-button:active {
    background-color: #6D64D8; /* Darker color on click */
    transform: scale(0.98);
    text-decoration: none;
}

#logout-div {
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    align-items: center;
}

#profile {
    flex: 1;
    width: 30px;
    height: 30px;
    border-radius: 100%;
    object-fit: cover;
    margin-right: 10px;
}

.centered {
    text-align: center;
}

@media (max-width: 600px) {
    .table-wrapper {
        overflow-x: scroll; /* Enable scrolling on smaller screens */
    }

    .custom-table {
        min-width: 600px; /* Prevent table from shrinking below 5-column width */
    }
}