body {
    margin:0; padding:0; font-family: Roboto, sans-serif; background:#f0f0f0;
    display:flex; flex-direction:column; min-height:100vh;
}
header, footer {
    background:#00797F; color:#fff; padding:25px;
}
header h1 {
    margin:0; font-size:1.5rem;
}
.main-layout {
    flex:1; display:flex;
}
.left-menu {
    width:200px; background:#fff; box-shadow:0 0 5px rgba(0,0,0,0.1);
    padding:20px; box-sizing:border-box;
}
.left-menu img {
    max-width:160px; margin-bottom:20px;
}
.left-menu ul {
    list-style:none; padding:0; margin:0;
}
.left-menu li {
    margin-bottom:10px;
}
.left-menu a {
    text-decoration:none; color:#004447; font-weight:500;
    display:block; padding:5px; border-radius:4px; 
    transition:background 0.3s;
}
.left-menu a:hover {
    background:#1E8CD0; color:#fff;
}

.content-area {
    flex:1; padding:20px; box-sizing:border-box;
    background:#fafafa; margin:20px; border-radius:8px; box-shadow:0 2px 10px rgba(0,0,0,0.05);
}

.login-container, .reset-container {
    max-width:300px; margin:auto; background:#fff; padding:20px; border-radius:8px; box-shadow:0 2px 10px rgba(0,0,0,0.1);
}

.login-container h2, .reset-container h2 {
    margin-top:0; font-weight:400; text-align:center; color:#00797F;
    margin-bottom:20px;
}

label {
    display:block; font-size:0.9rem; margin-bottom:5px; color:#004447;
}
input[type=text], input[type=password], input[type=email] {
    width:100%; padding:10px; border:1px solid #ccc; border-radius:4px; margin-bottom:10px;
}
input[type=submit], button {
    background:#00797F; color:#fff; border:none; padding:10px; border-radius:4px; font-size:0.9rem; cursor:pointer;
    width:100%;
    transition:background 0.3s;
    margin-bottom:10px;
}
input[type=submit]:hover, button:hover {
    background:#005f63;
}
.error {
    color:#D26100; margin-bottom:10px; font-size:0.9rem;
}
.success {
    color:#1E8CD0; margin-bottom:10px; font-size:0.9rem;
}
.top-right {
    position:absolute; top:20px; right:20px;
    color:#fff; font-size:0.9rem;
    display:flex; align-items:center; gap:10px;
}
h2.page-title {
    font-size:1.4rem; margin-bottom:20px; border-bottom:2px solid #D2D200; padding-bottom:10px; color:#004447;
}
footer {
    text-align:center;padding:10px;font-size:0.8rem;color:#fff;background:#00797F;
}

/* User icon styling */
.user-icon {
    width:40px; height:40px; background:#004447; color:#fff; display:flex; align-items:center; justify-content:center;
    font-weight:bold; border-radius:4px; cursor:pointer; user-select:none;
}

/* User menu styling */
.user-menu {
    position:absolute; top:60px; right:20px; background:#fff; color:#004447; box-shadow:0 2px 10px rgba(0,0,0,0.1);
    border-radius:4px; display:none; min-width:150px; z-index:9999;
}
.user-menu.show {
    display:block;
}
.user-menu ul {
    list-style:none; margin:0; padding:0;
}
.user-menu li {
    border-bottom:1px solid #f0f0f0;
}
.user-menu li:last-child {
    border-bottom:none;
}
.user-menu a {
    display:block; padding:10px; text-decoration:none; color:#004447; font-size:0.9rem;
}
.user-menu a:hover {
    background:#1E8CD0; color:#fff;
}


/***************************************
 * Clients Page Specific Styles
 ***************************************/

/* Container for the entire manage clients section */
.clients-container {
    margin-top: 20px;
    min-width: 1200px;
}

/* The title line under the heading */
.clients-container h2.page-title {
    font-size:1.4rem; 
    margin-bottom:20px; 
    border-bottom:2px solid #D2D200; 
    padding-bottom:10px; 
    color:#004447;
}

/* Flex container for list and form side by side */
.clients-flex {
    display: flex; 
    gap: 20px; 
    margin-top: 20px;
}

/* Clients list section (left side) */
.clients-list {
    flex: 2;
    overflow: auto;
}

/* Table styling for clients list */
.clients-list table {
    width: 100%; 
    border-collapse: collapse; 
    font-size:0.9rem;
    background:#fff; 
    border-radius:8px; 
    box-shadow:0 2px 10px rgba(0,0,0,0.05);
    overflow:hidden;
    margin-bottom:20px;
}

.clients-list thead {
    background:#f0f0f0;
}

.clients-list thead th {
    padding:10px; 
    text-align:left; 
    font-weight:400; 
    text-transform:uppercase; 
    font-size:0.8rem;
    border-bottom:1px solid #ccc;
    color:#004447;
}

.clients-list tbody td {
    padding:10px; 
    border-bottom:1px solid #eee;
}

.clients-list tbody tr:last-child td {
    border-bottom:none;
}

.clients-list tbody tr:hover {
    background:#fafafa;
}

.clients-list a {
    color:#1E8CD0; 
    text-decoration:none; 
    font-size:0.8rem; 
    border-radius:4px; 
    transition: background 0.3s;
    padding:3px 5px;
}

.clients-list a:hover {
    background:#1E8CD0; 
    color:#fff;
}

/* Clients form (right side) */
.clients-form {
    flex:1; 
    background:#fff; 
    padding:20px; 
    border-radius:8px; 
    box-shadow:0 2px 10px rgba(0,0,0,0.1);
    display:flex; 
    flex-direction:column; 
    gap:15px; 
}

.clients-form h3 {
    margin-top:0; 
    font-size:1.2rem; 
    font-weight:400; 
    color:#00797F;
    border-bottom:1px solid #ccc; 
    padding-bottom:10px;
}

.clients-form label {
    display:block; 
    font-size:0.9rem; 
    margin-bottom:5px; 
    color:#004447;
}

.clients-form input[type="text"],
.clients-form input[type="email"] {
    width:100%; 
    padding:10px; 
    border:1px solid #ccc; 
    border-radius:4px;
    font-size:0.9rem; 
    box-sizing:border-box; 
    transition:border-color 0.3s;
    margin-bottom:10px;
}

.clients-form input[type="checkbox"] {
    margin-right:5px;
    vertical-align:middle;
}

.clients-form input[type="text"]:focus,
.clients-form input[type="email"]:focus {
    border-color:#777; 
    outline:none;
}

.clients-form input[type="submit"] {
    background:#004447; 
    color:#fff; 
    border:none; 
    padding:10px; 
    border-radius:4px; 
    font-size:0.9rem; 
    cursor:pointer; 
    transition: background 0.3s; 
    width:100%; 
    text-align:center;
    margin-top:10px;
}

.clients-form input[type="submit"]:hover {
    background:#00797F;
}

.clients-form .cancel-link {
    font-size:0.9rem; 
    text-decoration:none; 
    color:#333; 
    display:inline-block; 
    margin-top:10px; 
    transition: color 0.3s;
}

.clients-form .cancel-link:hover {
    color:#000;
}

/* Messages */
.error {
    color:#D26100; 
    font-size:0.9rem; 
    margin-bottom:20px;
}

.success {
    color:#1E8CD0; 
    font-size:0.9rem; 
    margin-bottom:20px;
}


/***************************************
 * Projects Page Specific Styles
 ***************************************/

.projects-container {
    margin-top:20px;
    min-width: 1200px;
}

.projects-container h2.page-title {
    font-size:1.4rem; 
    margin-bottom:20px; 
    border-bottom:2px solid #D2D200; 
    padding-bottom:10px; 
    color:#004447;
}

.select-client {
    background:#fff; 
    padding:20px; 
    border-radius:8px; 
    box-shadow:0 2px 10px rgba(0,0,0,0.1); 
    max-width:300px; 
    margin:auto; 
    text-align:center; 
    margin-top:20px;
}

.select-client p {
    margin-bottom:10px; 
    font-size:0.9rem; 
    color:#004447;
    font-weight:500;
}

.select-client label {
    display:block; 
    margin-bottom:10px; 
    font-size:0.9rem; 
    color:#004447; 
    text-align:left; 
    font-weight:500;
}

.select-client select {
    width:100%; 
    padding:10px; 
    border:1px solid #ccc; 
    border-radius:4px; 
    font-size:0.9rem;
    margin-top:5px; 
    box-sizing:border-box;
}

.select-client input[type="submit"] {
    background:#004447; 
    color:#fff; 
    border:none; 
    padding:10px; 
    border-radius:4px; 
    font-size:0.9rem; 
    cursor:pointer; 
    margin-top:10px;
    transition: background 0.3s; 
    width:100%;
}

.select-client input[type="submit"]:hover {
    background:#00797F;
}

.projects-flex {
    display:flex; 
    gap:20px; 
    margin-top:20px;
}

.projects-list {
    flex:2; 
    overflow:auto;
}

.projects-form {
    flex:1; 
    background:#fff; 
    padding:20px; 
    border-radius:8px; 
    box-shadow:0 2px 10px rgba(0,0,0,0.1);
    display:flex; 
    flex-direction:column; 
    gap:15px;
}

.projects-form h3 {
    margin-top:0; 
    font-size:1.2rem; 
    font-weight:400; 
    color:#00797F;
    border-bottom:1px solid #ccc; 
    padding-bottom:10px;
}

.projects-form .form-instructions {
    font-size:0.85rem; 
    color:#555; 
    margin-bottom:10px;
}

.projects-form label {
    display:block; 
    font-size:0.9rem; 
    margin-bottom:5px; 
    color:#004447; 
    font-weight:500;
}

.projects-form input[type="text"],
.projects-form textarea,
.projects-form input[type="date"] {
    width:100%; 
    padding:10px; 
    border:1px solid #ccc; 
    border-radius:4px; 
    font-size:0.9rem; 
    box-sizing:border-box; 
    transition:border-color 0.3s;
    margin-bottom:10px;
}

.projects-form input[type="date"] {
    color:#555;
}

.projects-form input[type="text"]:focus,
.projects-form input[type="date"]:focus,
.projects-form textarea:focus {
    border-color:#777; 
    outline:none;
}

.projects-form input[type="checkbox"] {
    margin-right:5px; 
    vertical-align:middle;
}

.projects-form input[type="submit"] {
    background:#004447; 
    color:#fff; 
    border:none; 
    padding:10px; 
    border-radius:4px; 
    font-size:0.9rem; 
    cursor:pointer; 
    transition: background 0.3s; 
    width:100%; 
    text-align:center; 
    margin-top:10px;
}

.projects-form input[type="submit"]:hover {
    background:#00797F;
}

.projects-form .cancel-link {
    font-size:0.9rem; 
    text-decoration:none; 
    color:#333; 
    display:inline-block; 
    margin-top:10px;
    transition: color 0.3s;
}

.projects-form .cancel-link:hover {
    color:#000;
}

.projects-list table {
    width: 100%; 
    border-collapse: collapse; 
    font-size:0.9rem;
    background:#fff; 
    border-radius:8px; 
    box-shadow:0 2px 10px rgba(0,0,0,0.05);
    overflow:hidden; 
    margin-bottom:20px;
}

.projects-list thead {
    background:#f0f0f0;
}

.projects-list thead th {
    padding:10px; 
    text-align:left; 
    font-weight:400; 
    text-transform:uppercase; 
    font-size:0.8rem;
    border-bottom:1px solid #ccc; 
    color:#004447;
}

.projects-list tbody td {
    padding:10px; 
    border-bottom:1px solid #eee;
}

.projects-list tbody tr:last-child td {
    border-bottom:none;
}

.projects-list tbody tr:hover {
    background:#fafafa;
}

.projects-list a {
    color:#1E8CD0; 
    text-decoration:none; 
    font-size:0.8rem; 
    border-radius:4px; 
    transition: background 0.3s; 
    padding:3px 5px;
}

.projects-list a:hover {
    background:#1E8CD0; 
    color:#fff;
}

/* Messages */
.error {
    color:#D26100; 
    font-size:0.9rem; 
    margin-bottom:20px;
}

.success {
    color:#1E8CD0; 
    font-size:0.9rem; 
    margin-bottom:20px;
}


/***************************************
 * Tasks Page Specific Styles
 ***************************************/

.tasks-container {
    margin-top:20px;
    min-width: 1200px;
}

.tasks-container h2.page-title {
    font-size:1.4rem;
    margin-bottom:20px;
    border-bottom:2px solid #D2D200;
    padding-bottom:10px;
    color:#004447;
}

.select-project {
    background:#fff;
    padding:20px;
    border-radius:8px;
    box-shadow:0 2px 10px rgba(0,0,0,0.1);
    max-width:300px;
    margin:auto;
    text-align:center;
    margin-top:20px;
}

.select-project p {
    margin-bottom:10px; 
    font-size:0.9rem; 
    color:#004447;
    font-weight:500;
}

.select-project label {
    display:block; margin-bottom:10px; font-size:0.9rem; color:#004447; text-align:left; font-weight:500;
}

.select-project select {
    width:100%; 
    padding:10px; 
    border:1px solid #ccc; 
    border-radius:4px; 
    font-size:0.9rem;
    margin-top:5px; 
    box-sizing:border-box;
}

.select-project input[type="submit"] {
    background:#004447; 
    color:#fff; 
    border:none; 
    padding:10px; 
    border-radius:4px; 
    font-size:0.9rem; 
    cursor:pointer;
    margin-top:10px; 
    transition: background 0.3s; 
    width:100%;
}

.select-project input[type="submit"]:hover {
    background:#00797F;
}

.tasks-flex {
    display:flex; 
    gap:20px; 
    margin-top:20px;
}

.tasks-list {
    flex:2; 
    overflow:auto;
}

.tasks-form {
    flex:1; 
    background:#fff; 
    padding:20px; 
    border-radius:8px; 
    box-shadow:0 2px 10px rgba(0,0,0,0.1);
    display:flex; 
    flex-direction:column; 
    gap:15px;
}

.tasks-form h3 {
    margin-top:0; 
    font-size:1.2rem; 
    font-weight:400; 
    color:#00797F;
    border-bottom:1px solid #ccc; 
    padding-bottom:10px;
}

.tasks-form .form-instructions {
    font-size:0.85rem; 
    color:#555; 
    margin-bottom:10px;
}

.tasks-form label {
    display:block; font-size:0.9rem; margin-bottom:5px; color:#004447; font-weight:500;
}

.tasks-form input[type="text"],
.tasks-form textarea,
.tasks-form input[type="date"],
.tasks-form select {
    width:100%; 
    padding:10px; 
    border:1px solid #ccc; 
    border-radius:4px; 
    font-size:0.9rem; 
    box-sizing:border-box; 
    transition:border-color 0.3s;
    margin-bottom:10px;
}

.tasks-form input[type="date"] {
    color:#555;
}

.tasks-form input[type="text"]:focus,
.tasks-form input[type="date"]:focus,
.tasks-form textarea:focus,
.tasks-form select:focus {
    border-color:#777; 
    outline:none;
}

.tasks-form input[type="checkbox"] {
    margin-right:5px; 
    vertical-align:middle;
}

.tasks-form input[type="submit"] {
    background:#004447; 
    color:#fff; 
    border:none; 
    padding:10px; 
    border-radius:4px; 
    font-size:0.9rem;
    cursor:pointer; 
    transition: background 0.3s; 
    width:100%; 
    text-align:center; 
    margin-top:10px;
}

.tasks-form input[type="submit"]:hover {
    background:#00797F;
}

.tasks-form .cancel-link {
    font-size:0.9rem; 
    text-decoration:none; 
    color:#333; 
    display:inline-block; 
    margin-top:10px;
    transition: color 0.3s;
}

.tasks-form .cancel-link:hover {
    color:#000;
}

.tasks-list table {
    width: 100%; 
    border-collapse: collapse; 
    font-size:0.9rem;
    background:#fff; 
    border-radius:8px; 
    box-shadow:0 2px 10px rgba(0,0,0,0.05);
    overflow:hidden; 
    margin-bottom:20px;
}

.tasks-list thead {
    background:#f0f0f0;
}

.tasks-list thead th {
    padding:10px; text-align:left; font-weight:400; text-transform:uppercase; font-size:0.8rem;
    border-bottom:1px solid #ccc; color:#004447;
}

.tasks-list tbody td {
    padding:10px; border-bottom:1px solid #eee;
}

.tasks-list tbody tr:last-child td {
    border-bottom:none;
}

.tasks-list tbody tr:hover {
    background:#fafafa;
}

.tasks-list a {
    color:#1E8CD0; 
    text-decoration:none; 
    font-size:0.8rem; 
    border-radius:4px; 
    transition: background 0.3s; 
    padding:3px 5px;
}

.tasks-list a:hover {
    background:#1E8CD0; 
    color:#fff;
}

/* Messages */
.error {
    color:#D26100; 
    font-size:0.9rem; 
    margin-bottom:20px;
}

.success {
    color:#1E8CD0; 
    font-size:0.9rem; 
    margin-bottom:20px;
}

/***************************************
 * Users Page
 ***************************************/
.users-container {
    margin-top:20px;
    min-width: 1200px;
}

.users-container h2.page-title {
    font-size:1.4rem; 
    margin-bottom:20px; 
    border-bottom:2px solid #D2D200; 
    padding-bottom:10px; 
    color:#004447;
}

.users-flex {
    display:flex; gap:20px; margin-top:20px;
}

.users-list {
    flex:2; overflow:auto;
}

.users-form {
    flex:1; background:#fff; padding:20px; border-radius:8px; box-shadow:0 2px 10px rgba(0,0,0,0.1);
    display:flex; flex-direction:column; gap:15px;
}

.users-form h3 {
    margin-top:0; font-size:1.2rem; font-weight:400; color:#00797F;
    border-bottom:1px solid #ccc; padding-bottom:10px;
}

.users-form label {
    display:block; font-size:0.9rem; margin-bottom:5px; color:#004447; font-weight:500;
}

.users-form input[type="text"],
.users-form input[type="email"] {
    width:100%; padding:10px; border:1px solid #ccc; border-radius:4px;
    font-size:0.9rem; box-sizing:border-box; transition:border-color 0.3s; margin-bottom:10px;
}

.users-form input[type="checkbox"] {
    margin-right:5px; vertical-align:middle;
}

.users-form input[type="submit"] {
    background:#004447; color:#fff; border:none; padding:10px; border-radius:4px; font-size:0.9rem; cursor:pointer; transition: background 0.3s; width:100%; text-align:center; margin-top:10px;
}

.users-form input[type="submit"]:hover {
    background:#00797F;
}

.users-form .cancel-link {
    font-size:0.9rem; text-decoration:none; color:#333; display:inline-block; margin-top:10px; transition: color 0.3s;
}

.users-form .cancel-link:hover {
    color:#000;
}

.users-list table {
    width:100%; border-collapse:collapse; font-size:0.9rem;
    background:#fff; border-radius:8px; box-shadow:0 2px 10px rgba(0,0,0,0.05);
    overflow:hidden; margin-bottom:20px;
}

.users-list thead {
    background:#f0f0f0;
}

.users-list thead th {
    padding:10px; text-align:left; font-weight:400; text-transform:uppercase; font-size:0.8rem; border-bottom:1px solid #ccc; color:#004447;
}

.users-list tbody td {
    padding:10px; border-bottom:1px solid #eee;
}

.users-list tbody tr:last-child td {
    border-bottom:none;
}

.users-list tbody tr:hover {
    background:#fafafa;
}

.users-list a {
    color:#1E8CD0; text-decoration:none; font-size:0.8rem; border-radius:4px; transition: background 0.3s; padding:3px 5px;
}

.users-list a:hover {
    background:#1E8CD0; color:#fff;
}

/***************************************
 * Adjusted Projects Page with Inline User Assignment
 ***************************************/

.multi-user-selector {
    background:#f9f9f9; 
    padding:10px; 
    border-radius:4px; 
    max-height:200px; 
    overflow:auto; 
    border:1px solid #ccc;
    margin-bottom:10px;
}
.multi-user-selector label {
    display:block; 
    margin-bottom:5px; 
    font-size:0.9rem; 
    color:#004447;
}

.projects-form .form-instructions {
    font-size:0.85rem; 
    color:#555; 
    margin-bottom:10px;
}


/***************************************
 * Roles Page Styles
 ***************************************/

.roles-container {
    margin-top:20px;
    min-width: 1200px;
}

.roles-container h2.page-title {
    font-size:1.4rem; 
    margin-bottom:20px; 
    border-bottom:2px solid #D2D200; 
    padding-bottom:10px; 
    color:#004447;
}

.roles-flex {
    display:flex; gap:20px; margin-top:20px;
}

.roles-list {
    flex:2; overflow:auto;
}

.roles-form {
    flex:1; background:#fff; padding:20px; border-radius:8px; box-shadow:0 2px 10px rgba(0,0,0,0.1);
    display:flex; flex-direction:column; gap:15px;
}

.roles-form h3 {
    margin-top:0; font-size:1.2rem; font-weight:400; color:#00797F;
    border-bottom:1px solid #ccc; padding-bottom:10px;
}

.roles-form label {
    display:block; font-size:0.9rem; margin-bottom:5px; color:#004447; font-weight:500;
}

.roles-form input[type="text"] {
    width:100%; padding:10px; border:1px solid #ccc; border-radius:4px;
    font-size:0.9rem; box-sizing:border-box; transition:border-color 0.3s; margin-bottom:10px;
}

.roles-form input[type="checkbox"] {
    margin-right:5px; vertical-align:middle;
}

.roles-form input[type="text"]:focus {
    border-color:#777; outline:none;
}

.roles-form input[type="submit"] {
    background:#004447; color:#fff; border:none; padding:10px; border-radius:4px; font-size:0.9rem; cursor:pointer;
    transition: background 0.3s; width:100%; text-align:center; margin-top:10px;
}

.roles-form input[type="submit"]:hover {
    background:#00797F;
}

.roles-form .cancel-link {
    font-size:0.9rem; text-decoration:none; color:#333; display:inline-block; margin-top:10px; transition: color 0.3s;
}

.roles-form .cancel-link:hover {
    color:#000;
}

.roles-list table {
    width:100%; border-collapse:collapse; font-size:0.9rem;
    background:#fff; border-radius:8px; box-shadow:0 2px 10px rgba(0,0,0,0.05);
    overflow:hidden; margin-bottom:20px;
}

.roles-list thead {
    background:#f0f0f0;
}

.roles-list thead th {
    padding:10px; text-align:left; font-weight:400; text-transform:uppercase; font-size:0.8rem;
    border-bottom:1px solid #ccc; color:#004447;
}

.roles-list tbody td {
    padding:10px; border-bottom:1px solid #eee;
}

.roles-list tbody tr:last-child td {
    border-bottom:none;
}

.roles-list tbody tr:hover {
    background:#fafafa;
}

.roles-list a {
    color:#1E8CD0; text-decoration:none; font-size:0.8rem; border-radius:4px; transition: background 0.3s; padding:3px 5px;
}

.roles-list a:hover {
    background:#1E8CD0; color:#fff;
}

/* Messages */
.error {
    color:#D26100; font-size:0.9rem; margin-bottom:20px;
}

.success {
    color:#1E8CD0; font-size:0.9rem; margin-bottom:20px;
}


/* Invitation Page Specific Styles */
.invitation-body {
    margin:0;
    padding:0;
    background:#f0f0f0;
    font-family: Roboto, sans-serif;
    height:100vh;
    display:flex;
    justify-content:center;
    align-items:center;
}

/* A wrapper that centers the container */
.invitation-wrapper {
    width:700px;
    height:700px;
    display:flex;
    justify-content:center;
    align-items:center;
}

/* The container where the form and content appear */
.invitation-container {
    background:#fff;
    width:100%;
    height:100%;
    border-radius:8px;
    box-shadow:0 2px 10px rgba(0,0,0,0.1);
    box-sizing:border-box;
    padding:40px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
}

.company-logo {
    max-width:400px;
    width:100%;
    height:auto;
    margin-bottom:20px;
}

.invitation-container h2 {
    font-size:1.4rem;
    color:#00797F;
    margin-bottom:20px;
    font-weight:400;
}

.invitation-container label {
    display:block;
    text-align:left;
    font-size:0.9rem;
    margin-bottom:5px;
    color:#004447;
    font-weight:500;
    margin-top:10px;
    width:100%;
}

.invitation-container input[type="password"] {
    width:100%;
    padding:10px;
    border:1px solid #ccc;
    border-radius:4px;
    font-size:0.9rem;
    box-sizing:border-box;
    transition:border-color 0.3s;
    margin-bottom:10px;
}

.invitation-container input[type="password"]:focus {
    border-color:#777;
    outline:none;
}

.form-info {
    font-size:0.8rem;
    color:#555;
    margin-bottom:20px;
    text-align:left;
    width:100%;
}

.button {
    background:#004447;
    color:#fff;
    border:none;
    padding:10px;
    border-radius:4px;
    font-size:0.9rem;
    cursor:pointer;
    transition: background 0.3s;
    width:100%;
    text-align:center;
    display:inline-block;
    text-decoration:none;
    margin-top:10px;
}

.button:hover {
    background:#00797F;
}

.error {
    color:#D26100;
    font-size:0.9rem;
    margin-bottom:20px;
}

.success {
    color:#1E8CD0;
    font-size:0.9rem;
    margin-bottom:20px;
}


/* Two-Factor Authentication Setup Page Styles */
.twofa-body {
    margin:0; 
    padding:0; 
    background:#f0f0f0; 
    font-family: Roboto, sans-serif;
    display:flex; 
    justify-content:center; 
    align-items:center; 
    height:100vh;
}

.twofa-container {
    background:#fff; 
    padding:40px; 
    border-radius:8px; 
    box-shadow:0 2px 10px rgba(0,0,0,0.1);
    max-width:400px; 
    width:100%; 
    box-sizing:border-box; 
    text-align:center;
}

.twofa-container h2 {
    font-size:1.4rem; 
    color:#00797F; 
    margin-bottom:20px; 
    font-weight:400;
}

.twofa-container p {
    font-size:0.9rem; 
    color:#004447; 
    margin-bottom:20px;
}

.error {
    color:#D26100; 
    font-size:0.9rem; 
    margin-bottom:20px;
}

.success {
    color:#1E8CD0; 
    font-size:0.9rem; 
    margin-bottom:20px;
}

.qrcode-img {
    margin-bottom:20px;
    max-width:200px;
    width:100%;
    height:auto;
}

.twofa-container label {
    display:block; 
    text-align:left; 
    font-size:0.9rem; 
    margin-bottom:5px; 
    color:#004447; 
    font-weight:500; 
    margin-top:10px;
}

.twofa-container input[type="text"] {
    width:100%; 
    padding:10px; 
    border:1px solid #ccc; 
    border-radius:4px; 
    font-size:0.9rem; 
    box-sizing:border-box; 
    transition:border-color 0.3s; 
    margin-bottom:10px;
}

.twofa-container input[type="text"]:focus {
    border-color:#777; 
    outline:none;
}

.button {
    background:#004447; 
    color:#fff; 
    border:none; 
    padding:10px; 
    border-radius:4px; 
    font-size:0.9rem;
    cursor:pointer; 
    transition: background 0.3s; 
    width:100%; 
    text-align:center; 
    display:inline-block;
    text-decoration:none;
    margin-top:10px;
}

.button:hover {
    background:#00797F;
}

.cancel-link {
    font-size:0.9rem; 
    text-decoration:none; 
    color:#333; 
    display:inline-block; 
    margin-top:10px; 
    transition: color 0.3s;
}

.cancel-link:hover {
    color:#000;
}


/* Adjust login screen and fields */
.login-wrapper {
    width:100%; 
    max-width:400px;
    padding:20px; 
    box-sizing:border-box;
    display:flex; 
    flex-direction:column; 
    align-items:center;
}

.login-container {
    background:#fff; 
    padding:20px; 
    border-radius:8px; 
    box-shadow:0 2px 10px rgba(0,0,0,0.1);
    width:100%; 
    box-sizing:border-box; 
    text-align:center;
}

.login-logo {
    max-width:200px; 
    width:100%; 
    height:auto; 
    margin-bottom:20px;
}

.login-container h2 {
    font-size:1.4rem; 
    color:#00797F; 
    margin-bottom:20px; 
    font-weight:400;
}

.login-container label {
    display:block; 
    text-align:left; 
    font-size:0.9rem; 
    margin-bottom:5px; 
    color:#004447; 
    font-weight:500;
    margin-top:10px;
}

.login-container input[type="text"],
.login-container input[type="password"] {
    width:100%; 
    padding:10px; 
    border:1px solid #ccc; 
    border-radius:4px; 
    font-size:0.9rem; 
    box-sizing:border-box; 
    transition:border-color 0.3s; 
    margin-bottom:10px;
}

.login-container input[type="text"]:focus,
.login-container input[type="password"]:focus {
    border-color:#777; 
    outline:none;
}

.login-container .button {
    background:#004447; 
    color:#fff; 
    border:none; 
    padding:10px; 
    border-radius:4px; 
    font-size:0.9rem;
    cursor:pointer; 
    transition: background 0.3s; 
    width:100%; 
    text-align:center; 
    display:inline-block;
    text-decoration:none;
    margin-top:10px;
}

.login-container .button:hover {
    background:#00797F;
}

/* For consistency, style the forgot password link */
.login-container p a {
    font-size:0.9rem; 
    color:#333; 
    text-decoration:none;
    transition:color 0.3s;
}
.login-container p a:hover {
    color:#000;
}


.content-area {
    display:inherit;
    justify-content:top;
    align-items:center;
    flex-direction:column;
}

.twofa-container {
    background:#fff;
    padding:20px;
    border-radius:8px;
    box-shadow:0 2px 10px rgba(0,0,0,0.1);
    max-width:400px;
    width:100%;
    box-sizing:border-box;
    text-align:center;
}



/* Timesheets Styling */

.content-area {
    width:100%;
    box-sizing:border-box;
    padding:20px;
}

.timesheet-container h2 {
    font-size:1.4rem;
    margin-bottom:20px;
    color:#004447;
}

.error {
    color:#D26100; 
    font-size:0.9rem; 
    margin-bottom:10px;
}

.success {
    color:#1E8CD0; 
    font-size:0.9rem; 
    margin-bottom:10px;
}

.form-control {
    padding:8px;
    border:1px solid #ccc;
    border-radius:4px;
    font-size:0.9rem;
    width:100%;
    box-sizing:border-box;
}

.button {
    background:#004447; 
    color:#fff; 
    border:none; 
    padding:10px; 
    border-radius:4px; 
    font-size:0.9rem;
    cursor:pointer; 
    transition:background 0.3s;
}

.button:hover {
    background:#00797F;
}

.qrcode-img {
    margin-bottom:20px;
    max-width:200px;
    width:100%;
    height:auto;
}


/* Timesheets page adjustments */

/* Container for the entire timesheet page */
.timesheet-container {
    width:100%;
}

/* Week navigation container */
.week-nav {
    width:300px;
    margin-bottom:20px;
}

/* Controls for week navigation */
.week-controls {
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:20px;
}

/* Smaller button styling for << and >> buttons */
.small-button {
    padding:5px 10px;
    font-size:0.8rem;
    width:auto;
}

/* Form that contains the date picker for changing weeks */
.week-form {
    display:inline;
}

/* Week range display */
.week-range {
    margin-bottom:20px;
    font-size:0.9rem;
}

/* Add task button container */
.add-task-container {
    margin-bottom:20px;
}

/* Timesheet form (hours submission) */
.timesheet-form {
    margin-top:20px;
}

/* Timesheet table styling */
.timesheet-table {
    width:100%;
    border-collapse:collapse;
    text-align:center;
    background:#fff;
    border-radius:8px;
    box-shadow:0 2px 10px rgba(0,0,0,0.05);
}

.timesheet-table thead {
    background:#f0f0f0;
}

.timesheet-table thead th {
    padding:10px;
    text-align:center;
    font-weight:400;
    text-transform:uppercase;
    font-size:0.8rem;
    border-bottom:1px solid #ccc;
    color:#004447;
}

.timesheet-table tbody td {
    padding:5px;
    border-bottom:1px solid #eee;
}

.timesheet-table tbody tr:last-child td {
    border-bottom:none;
}

.project-row {
    background:#eaeaea;
    font-weight:bold;
    text-align:left;
}

.task-name-cell {
    text-align:left;
}

/* Disabled cells for out-of-range dates */
.disabled-cell {
    background:#eee;
}

/* Hour input field */
.hour-input {
    width:50px;
    text-align:right;
    padding:5px;
    border:1px solid #ccc;
    border-radius:4px;
    font-size:0.9rem;
    box-sizing:border-box;
}

/* Container for the submit button */
.submit-container {
    margin-top:20px;
    text-align:left;
    max-width:150px;
}

/* Modal styles */
#modalOverlay {
    position:fixed;
    top:0; left:0;
    width:100%; height:100%;
    background:rgba(0,0,0,0.5);
    display:none;
    z-index:999;
}

#addTaskModal {
    position:fixed;
    top:50%; left:50%;
    transform:translate(-50%,-50%);
    background:#fff;
    padding:20px;
    border-radius:8px;
    box-shadow:0 2px 10px rgba(0,0,0,0.1);
    max-width:400px;
    width:100%;
    display:none;
    z-index:1000;
}

#addTaskModal h3 {
    margin-top:0;
    font-size:1.2rem;
    color:#00797F;
    margin-bottom:20px;
}

#addTaskModal .close-button {
    position:absolute;
    top:10px; right:10px;
    background:none; border:none;
    font-size:1.2rem; 
    cursor:pointer;
}

.add-task-form-fields {
    display:flex;
    flex-direction:column;
    gap:10px;
}

.add-task-form-fields label {
    font-size:0.9rem;
    color:#004447;
    font-weight:500;
}

.add-task-form-fields input[type="text"], 
.add-task-form-fields input[type="date"], 
.add-task-form-fields select {
    padding:8px;
    border:1px solid #ccc;
    border-radius:4px;
    font-size:0.9rem;
    width:100%;
    box-sizing:border-box;
}

.add-task-form-fields .button {
    max-width:150px;
    align-self:flex-end;
}

.delete-button {
    background:#D26100; 
    color:#fff; 
    border:none; 
    padding:5px 10px; 
    border-radius:4px; 
    font-size:0.8rem; 
    cursor:pointer; 
    transition: background 0.3s;
}

.delete-button:hover {
    background:#a94a00;
}


.edit-button {
    background:#1E8CD0; 
    color:#fff; 
    border:none; 
    padding:5px 10px; 
    border-radius:4px; 
    font-size:0.8rem; 
    cursor:pointer; 
    transition: background 0.3s;
    margin-right:5px;
}

.edit-button:hover {
    background:#166999;
}

.delete-button {
    background:#D26100; 
    color:#fff; 
    border:none; 
    padding:5px 10px; 
    border-radius:4px; 
    font-size:0.8rem; 
    cursor:pointer; 
    transition: background 0.3s;
}

.delete-button:hover {
    background:#a94a00;
}


.info-icon {
    position:relative;
    color:#1E8CD0;
    cursor:pointer;
    font-size:0.9rem;
    margin-left:5px;
    font-weight:bold;
    display:inline-block;
}

.info-icon .tooltip {
    display:none;
    position:absolute;
    left:0;
    top:120%;
    background:#fff;
    border:1px solid #ccc;
    padding:10px;
    border-radius:4px;
    box-shadow:0 2px 10px rgba(0,0,0,0.1);
    width:200px;
    font-size:0.9rem;
    z-index:9999;
    color:#004447;
}

.info-icon:hover .tooltip {
    display:block;
}


/* Tooltip and info-icon styling */
.info-icon {
    position:relative;
    display:inline-block;
    margin-left:5px;
    vertical-align:middle;
}

.info-icon svg {
    vertical-align:middle;
}

.info-icon .tooltip {
    display:none;
    position:absolute;
    left:0;
    top:120%;
    background:#fff;
    border:1px solid #ccc;
    padding:10px;
    border-radius:4px;
    box-shadow:0 2px 10px rgba(0,0,0,0.1);
    width:200px;
    font-size:0.9rem;
    z-index:9999;
    color:#004447;
}

.info-icon:hover .tooltip {
    display:block;
}

.task-name-cell {
    padding-left:20px;
}


#modalOverlay {
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: rgba(0,0,0,0.5);
    display: none;
    z-index: 999;
}

#addTaskModal {
    position: fixed;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    background: #fff;
    padding: 30px; /* more padding for a spacious layout */
    border-radius: 8px;
    box-shadow: 0 2px 15px rgba(0,0,0,0.1);
    width: 600px; /* increased from ~400px to 600px for more width */
    min-height: 500px; /* ensure about 200px extra height compared to before */
    display: none;
    z-index: 1000;
    font-family: 'Roboto', sans-serif;
}

#addTaskModal h3#modal-title {
    font-size: 1.5rem;
    color: #005f63;
    margin-bottom: 20px;
    font-weight: 600;
    border-bottom: 1px solid #ccc;
    padding-bottom: 10px;
}

.add-task-form-fields {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.add-task-form-fields label {
    font-size: 0.9rem;
    color: #004447;
    font-weight: 500;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.add-task-form-fields input[type="text"],
.add-task-form-fields input[type="date"],
.add-task-form-fields select,
.add-task-form-fields textarea {
    width: 100%;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.9rem;
    box-sizing: border-box;
}

.add-task-form-fields textarea {
    height: 100px; /* more space for typing descriptions */
    resize: vertical;
}

.add-task-form-fields input[type="date"] {
    color: #555;
}

.close-button {
    background: none;
    border: none;
    font-size: 1.5rem;
    color: rgb(255, 255, 255);
    position: absolute;
    top: 20px;
    right: 20px;
    cursor: pointer;
}

.close-button:hover {
    color: rgb(255, 255, 255);
}

.add-task-form-fields div[style*="display:flex"] {
    justify-content: flex-end;
    gap: 10px;
}

.button, .cancel-btn {
    border: none;
    padding: 10px 20px;
    border-radius: 4px;
    font-size: 0.9rem;
    cursor: pointer;
    transition: background 0.3s;
    font-weight: 500;
}

.button {
    background: #005f63;
    color: #fff;
}

.button:hover {
    background: #00797F;
}

.cancel-btn {
    background: #333;
    color: #fff;
}

.cancel-btn:hover {
    background: #555;
}

.footer-version {
  margin-left: auto;
  display: flex;
  justify-content: flex-end;
}