@import url('https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap');


* {
    font-family: 'Nunito', sans-serif;
    text-decoration: none;
    list-style-type: none;
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

body {
    color: #333; /* Default text color to dark grey for readability on light bg */
    background-color: #5c88c9; /* Light grey background */
    background-image: none; /* Remove any background images/gradients */
    min-height: 100vh;
    overflow-x: hidden;
}

#menu-toggle {
    display: none;
}

/* --- TRANSITION LOGIC START --- */
#menu-toggle:checked~.sidebar {
    width: 0;
    margin-left: 0;
    padding: 0;
    opacity: 0;
}

/* --- TRANSITION LOGIC END --- */

#menu-toggle:checked~.main-content .engage-card {
    max-width: 698px;
}

#menu-toggle:checked~.main-content .emails-card {
    max-width: 344px;
}

.page-wrapper {
    width: 93%;
    margin: auto;
    display: flex;
}

.page-wrapper::before {
    content: "";
    width: 100%;
    max-width: 100%;
    height: 430px;
    position: absolute;
    left: 0;
    top: 0;
    background: var(--color-main);
    z-index: -1;
    border-radius: 0px 0px 0px 100px;
}

.sidebar {
    width: 250px;
    margin-left: 40px;
    transition: width 0.4s ease, margin-left 0.4s ease, opacity 0.4s ease;
    overflow: hidden;
    white-space: nowrap;
    opacity: 1;
}

.brand {
    height: 70px;
    display: flex;
    align-items: center;
    padding-left: 1.3rem;
}

.brand h3 {
    font-size: 1.8rem;
    color: white;
}

.profile-card {
    text-align: center;
    margin: 1rem 0rem;
}

.profile-img {
    height: 100px;
    width: 100px;
    border-radius: 50%;
    margin: auto;
    background-size: cover;
    background-repeat: no-repeat;
    margin-top: 1.8rem;
    margin-bottom: 1.5rem;
}

.profile-info {
    color: rgb(4, 51, 146);
}

.profile-info h2 {
    margin-bottom: .3rem;
}

.profile-info small {
    font-size: 1rem;
    color: rgb(4, 51, 146);
}

.profile-action {
    margin: 1.7rem;
}

.btn {
    border: none;
    outline: none;
    border-radius: 20px;
    padding: .6rem 2rem;
    display: flex;
    align-items: center;
}

.btn-white {
    background: white;
}

.btn-main {
    color: #ffffff;
    background: #2a42ac;
}

.btn span {
    font-size: 1.5rem;
    display: inline-block;
    margin-right: .6rem;
}

.profile-icons {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 3.8rem;
}

.profile-icons span {
    display: inline-block;
    color: white;
    font-size: 1.5rem;
}

.sidebar-menu {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 1.8rem;
}

.menu-item a {
    display: block;
    width: 100%;
    padding: 1rem 0rem;
    border-radius: 10px;
}

.menu-item a span {
    display: block;
    text-align: center;
    color: var(--main-text);
    font-size: 1rem;
}

.menu-item a span:first-child {
    font-size: 2rem;
    margin-bottom: .4rem;
}

.menu-item a.active {
    background: var(--color-main);
}

.menu-item a.active span {
    color: rgb(0, 110, 255);
}

.sidebar-card {
    padding: 1rem;
    border-radius: 10px;
    background: var(--color-secondary);
    margin: 2rem 0rem;
    color: white;
}

.sidebar-card h3 {
    margin-bottom: 1rem;
    font-size: 1.5rem;
}

.sidebar-card p {
    line-height: 1.5rem;
    margin-bottom: 1rem;
    font-size: .9rem;
    text-align: justify;
    white-space: normal;
}

.sidebar-card a {
    text-align: center;
    font-weight: 600;
    color: var(--main-text);
    display: block;
    font-size: 1.1rem;
}

.main-content {
    padding: 0 20px 0px 60px;
    flex: 1;
    transition: margin-left 0.4s ease;
}

header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 70px;
    border-bottom: 1px solid var(--main-text);
    color: white;
}

header label {
    display: inline-block;
    font-size: 1.1rem;
    cursor: pointer;
}

.head-icons {
    display: flex;
    align-items: center;
}

.head-icons span {
    margin-right: 2.5rem;
    display: inline-block;
    font-size: 1.2rem;
}

.head-avatar {
    display: flex;
    align-items: center;
    border-radius: 20px;
    background: #2a42ac;
}

.head-avatar .avatar {
    height: 40px;
    width: 40px;
    border-radius: 50%;
    background-size: cover;
    background-repeat: no-repeat;
}

.head-avatar span {
    margin-right: 0;
    padding: 0rem .5rem;
    font-size: .85rem;
    font-weight: 600;
}

.page-header {
    color: white;
    margin: 1rem 0rem;
}

.analytics {
    display: grid;
    grid-template-columns: 65% auto;
    grid-gap: 2rem;
    margin-top: 3rem;
}

.card {
    background-color: white;
    border-radius: 10px;
    box-shadow: var(--shadow);
    overflow: hidden;
    /* Keeps animation clean */
}

.card-head {
    font-size: 1rem;
    color: #555;
    font-weight: 600;
    padding: 1rem 2rem;
    border-bottom: 1px solid #eee;
}

.card-body {
    padding: 1.5rem 2rem;
}

.card-footer {
    padding: 1rem 2rem;
}

.engage-card .card-body,
.emails-card .card-body {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0.5rem;
    /* Reduce padding slightly for charts */
}

/* Fix Chart Sizing & Centering */
.chart-wrapper {
    width: 100%;
    max-width: 600px;
    /* Keeps line chart from stretching too wide */
    min-width: 300px;
    /* Keeps line chart from shrinking too small */
    display: block;
    margin: 0 auto;
}

#emailChart {
    width: 100%;
    max-width: 300px;
    /* Keeps radial chart circular and consistent */
    display: flex;
    justify-content: center;
    margin: 0 auto;
}

/* ---------------------------- */


.engage-card,
.emails-card {
    min-width: 100%;
}

.emails-info {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 1rem;
    padding-bottom: 2rem;
}

.bg-success {
    background: var(--success);
    color: #fff;
}

.bg-danger {
    background: var(--danger);
    color: #fff;
}

.bg-warning {
    background: var(--color-secondary);
    color: #fff;
}

.email-stat {
    display: flex;
    align-items: center;
}

.email-stat span {
    display: inline-block;
}

.email-stat .status {
    height: 15px;
    width: 15px;
    display: inline-block;
    border-radius: 50%;
    margin-right: .5rem;
}

table {
    width: 100%;
    border-collapse: collapse;
}

img {
    width: 100%;
    height: auto;
}

table tr {
    border-bottom: 1px solid #efefef;
}

table tr:last-child {
    border-bottom: none;
}

table tr td,
table tr th {
    padding: 1.2rem 1rem;
}

table tr th {
    text-align: left;
    text-transform: uppercase;
    font-size: .9rem;
}

table small {
    font-weight: 500;
}

table h4,
table h3,
.competitors .card-body h3,
.competitors .card-body h4 {
    color: #333;
    margin-bottom: .3rem;
}

.grid-2 {
    display: grid;
    margin-top: 3.5rem;
    grid-template-columns: 65% auto;
    grid-gap: 2rem;
    margin-bottom: 3.5rem;
}

.team-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.team-head small {
    color: var(--main-text);
    font-weight: 600;
}

.team-head select {
    display: inline-block;
    height: 38px;
    padding: .5rem 2rem;
    border-radius: 8px;
    background: #efefef;
    border: none;
    outline: none;
}

.team-info {
    display: flex;
    align-items: center;
}

.team-img {
    height: 50px;
    width: 50px;
    border-radius: 8px;
    background: var(--bg-body);
    margin-right: .7rem;
    padding: .9rem;
}

.team-progress>h4 {
    color: var(--main-text);
    margin-bottom: .5rem;
}

.progress-bar {
    width: 100%;
    background: #efefef;
    position: relative;
    border-radius: 10px;
    height: 15px;
}

.indicator {
    height: 100%;
    border-radius: 10px;
}

.indicator.success {
    background: var(--success);
}

.indicator.danger {
    background: var(--danger);
}

.indicator.info {
    background: var(--color-main);
}

.indicator.warning {
    background: var(--color-secondary);
}

.compete-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.1rem;
}

.compete-info>div:first-child {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-right: .7rem;
}

.compete-info img {
    width: 100px;
    border-radius: 10px;
    margin-right: .7rem;
}

.competitors .card-body {
    padding: 1rem;
}

.compete-details small {
    display: inline-block;
    margin-bottom: .3rem;
}

.compete-details p>a {
    color: var(--color-main);
    font-weight: 600;
}

.compete-sales {
    text-align: right;
}

.compete-sales span {
    font-size: .9rem;
    font-weight: 600;
}

.compete-sales h3 {
    color: #444 !important;
    font-size: 1.04rem !important;
}

@media only screen and (max-width: 1280px) {
    .sidebar {
        width: 0;
        margin-left: 0;
        padding: 0;
        opacity: 0;
    }

    #menu-toggle:checked~.sidebar {
        width: 250px;
        margin-left: 40px;
        opacity: 1;
    }
}

@media only screen and (max-width: 980px) {
    .main-content {
        padding: 0 20px;
        flex: 1;
    }

    .analytics,
    .grid-2 {
        grid-template-columns: 100%;
    }
}

@media only screen and (max-width: 640px) {
    .page-wrapper::before {
        min-width: 6440px;
    }
}

/* ============================
   LOGIN PAGE STYLES 
   ============================ */

body.login-page {
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;

    color: #333; /* Default text color to dark grey for readability on light bg */
    background-color: #5c88c9; /* Light grey background */
    background-image: none; /* Remove any background images/gradients */
    min-height: 100vh;
    overflow-x: hidden;
}

.login-container {
    width: 100%;
    padding: 20px;
    display: flex;
    justify-content: center;
}

.login-card {
    background: white;
    width: 100%;
    max-width: 400px;
    padding: 2.5rem;
    border-radius: 15px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.2);
    position: relative;
    border: 1px solid rgba(255, 255, 255, 0.5);
}

.login-header {
    text-align: center;
    margin-bottom: 2rem;
}

.login-header h3 {
    font-size: 2rem;
    color: var(--color-main);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-bottom: 0.5rem;
}

.login-header p {
    color: var(--main-text);
    font-size: 0.9rem;
}

.form-group {
    margin-bottom: 1.5rem;
}

.form-group label {
    display: block;
    color: #555;
    font-weight: 600;
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
}

.input-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

.input-wrapper input {
    width: 100%;
    padding: 12px 40px;
    border: 1px solid transparent;
    background: var(--input-bg);
    border-radius: 8px;
    font-size: 1rem;
    color: #333;
    transition: all 0.3s;
    outline: none;
}

.input-wrapper input:focus {
    border-color: var(--color-main);
    background: white;
    box-shadow: 0 0 0 4px rgba(110, 0, 255, 0.1);
}

.input-icon {
    position: absolute;
    left: 12px;
    color: var(--main-text);
    font-size: 1.2rem;
}

.toggle-password {
    position: absolute;
    right: 12px;
    color: var(--main-text);
    font-size: 1.2rem;
    cursor: pointer;
    transition: color 0.3s;
}

.toggle-password:hover {
    color: var(--color-main);
}

.form-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
    font-size: 0.85rem;
}

.remember-me {
    display: flex;
    align-items: center;
    gap: 5px;
    color: var(--main-text);
}

.forgot-password {
    color: var(--color-main);
    font-weight: 600;
}

.btn-login {
    width: 100%;
    background: var(--color-main);
    color: white;
    border: none;
    padding: 12px;
    border-radius: 8px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: background 0.3s, transform 0.2s;
}

.btn-login:hover {
    background: #5a00d1;
    transform: translateY(-2px);
}

.btn-login:active {
    transform: translateY(0);
}

.login-footer {
    text-align: center;
    margin-top: 1.5rem;
    font-size: 0.9rem;
    color: #eee;
}

.login-footer a {
    color: var(--color-secondary);
    font-weight: 600;
}

.login-footer a:hover {
    text-decoration: underline;
}

@media (max-width: 480px) {
    body.login-page {
        background: var(--color-main);
    }

    .login-card {
        padding: 1.5rem;
        box-shadow: none;
    }
}

/* ============================
   CLIENT FORM STYLES
   ============================ */

.form-card-container {
    margin-top: 2rem;
}

/* Default State (Sidebar Open): Fixed 800px width centered */
.form-card {
    max-width: 800px;
    margin: 0 auto;
    transition: max-width 0.4s ease;
    /* Smooth transition for width change */
}

/* Dynamic State (Sidebar Closed): Stretch to full width */
#menu-toggle:checked~.main-content .form-card {
    max-width: 90%;
}

/* ... (Keep the rest of the form styles below unchanged) ... */
.client-form {
    width: 100%;
}

.form-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 2rem;
    margin-bottom: 1.5rem;
}

.form-group {
    display: flex;
    flex-direction: column;
}

.form-group.full-width {
    margin-bottom: 1.5rem;
}

.form-group label {
    font-size: 0.9rem;
    font-weight: 600;
    color: #555;
    margin-bottom: 0.5rem;
}

.form-input {
    padding: 10px 15px;
    border: 1px solid #eee;
    border-radius: 8px;
    background: var(--input-bg);
    color: #333;
    outline: none;
    transition: border-color 0.3s;
    font-family: 'Nunito', sans-serif;
}

.form-input:focus {
    border-color: var(--color-main);
    background: white;
}

textarea.form-input {
    resize: vertical;
}

/* File Upload Style */
.file-upload-wrapper {
    width: 100%;
}

.file-upload-label {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    border: 2px dashed #ddd;
    border-radius: 10px;
    cursor: pointer;
    background: #fafafa;
    transition: all 0.3s;
    color: var(--main-text);
}

.file-upload-label:hover {
    border-color: var(--color-main);
    background: #f0f0ff;
    /* Light purple tint */
    color: var(--color-main);
}

.file-upload-label span:first-child {
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

/* Action Buttons */
.form-actions-right {
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
    margin-top: 1rem;
}

.form-actions-right .btn {
    padding: 0.8rem 2rem;
    font-size: 1rem;
    cursor: pointer;
}

.form-actions-right .btn-white {
    border: 1px solid #ddd;
}

.form-actions-right .btn-white:hover {
    background: #f5f5f5;
}

/* Responsive Form */
@media only screen and (max-width: 768px) {
    .form-row {
        grid-template-columns: 1fr;
        /* Stack inputs on mobile */
        grid-gap: 1rem;
    }
}

/* ============================
   SIDEBAR DROPDOWN STYLES
   ============================ */

/* Wrapper acts as the grid item now */
.dropdown-wrapper {
    position: relative;
    width: 100%;
}

/* By default, hide the dropdown content */
.dropdown-content {
    display: none;
    background: #f1f1f1;
    /* Slightly darker than white for contrast */
    border-radius: 10px;
    margin-top: 5px;
    overflow: hidden;
}

/* Show dropdown on hover */
.dropdown-wrapper:hover .dropdown-content {
    display: block;
}

/* Style the sub-links specific to the dropdown */
.dropdown-content a {
    color: var(--main-text);
    padding: 10px 10px !important;
    /* Override main menu padding */
    font-size: 0.9rem;
    text-align: left !important;
    /* Align text left instead of center */
    display: flex;
    align-items: center;
    justify-content: flex-start;
    /* Align items to start */
    gap: 10px;
}

/* Override the big icon size from the main menu rules */
.dropdown-content a span:first-child {
    font-size: 1.1rem !important;
    margin-bottom: 0 !important;
    display: inline-block;
}

/* Hover effect for sub-items */
.dropdown-content a:hover {
    background: #e2e2e2;
    color: var(--color-main);
}

/* Optional: Add a transition to the main button when active */
.dropdown-wrapper:hover .dropdown-btn {
    background: rgba(110, 0, 255, 0.1);
    /* Light tint of your main color */
    color: var(--color-main);
}

/* ============================
   ANIMATED DROPDOWN STYLES
   ============================ */

/* 1. Style the Wrapper */
.client-dropdown-wrapper.active .sub-menu,
.project-dropdown-wrapper.active .sub-menu,
.news-dropdown-wrapper.active .sub-menu {
    max-height: 150px;
    /* or whatever height fits your content */
    opacity: 1;
}

/* Make sure arrow rotation works for both */
.client-dropdown-wrapper.active .arrow-icon,
.project-dropdown-wrapper.active .arrow-icon,
.news-dropdown-wrapper.active .arrow-icon {
    transform: rotate(90deg);
}

/* 2. Initial Hidden State (Closed) */
.sub-menu {
    max-height: 0;
    /* Height is 0 when closed */
    opacity: 0;
    /* Invisible */
    overflow: hidden;
    /* Hides content that spills out */
    background: transparent;
    /* Light grey background */
    border-radius: 0 0 10px 10px;
    transition: max-height 0.5s ease, opacity 0.5s ease;
    /* The Animation */
}

/* 4. Rotate the arrow icon when open */
.client-dropdown-wrapper .arrow-icon,
.project-dropdown-wrapper .arrow-icon,
.news-dropdown-wrapper.active .arrow-icon {
    transition: transform 0.3s ease;
}


/* 5. Style the inner links specifically */
/* We must use !important or specific selectors to override the big main menu styles */
.sub-menu a {
    padding: 10px 15px !important;
    font-size: 0.9rem !important;
    display: flex;
    align-items: center;
    justify-content: flex-start !important;
    /* Align left */
    color: rgba(7, 71, 121, 0.9) !important;
}

.sub-menu a:hover {
    background: #e2e2e2;
    color: var(--color-main) !important;
}

.sub-menu a span {
    font-size: 1.2rem !important;
    /* Smaller icons for sub-menu */
    margin-right: 10px;
    margin-bottom: 0 !important;
}

/* ============================
   GOOGLE INBOX + SPLIT LAYOUT
   ============================ */

/* Main Container */
.inbox-container {
    background: white;
    border-radius: 10px;
    box-shadow: var(--shadow);
    margin-top: 2rem;
    overflow: hidden;
    /* Ensures rounded corners contain content */
}

/* The Side-by-Side Grid Wrapper */
.inbox-split-layout {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    /* Left | Divider | Right */
    align-items: stretch;
    min-height: 400px;
}

.inbox-column {
    padding-bottom: 1rem;
}

/* The Divider */
.vertical-divider {
    width: 1px;
    background: #f0f0f0;
    height: 100%;
}

.group-label {
    padding: 1.5rem 1rem 1rem 1rem;
    font-size: 0.8rem;
    color: #666;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 800;
    border-bottom: 1px solid #f5f5f5;
    margin-bottom: 0;
}

/* --- The Row Styling --- */
.inbox-row {
    display: flex;
    align-items: center;
    padding: 0.8rem 1rem;
    /* Slightly less padding for split view */
    border-bottom: 1px solid #f9f9f9;
    cursor: pointer;
    transition: background 0.2s;
    position: relative;
}

.inbox-row:hover {
    background: #f8f9fa;
    z-index: 2;
}

/* 1. Star Icon */
.inbox-star {
    width: 30px;
    /* Compact width */
    display: flex;
    align-items: center;
}

.inbox-star span {
    font-size: 1.1rem;
    color: #ccc;
    transition: transform 0.2s;
}

.inbox-star span:hover {
    transform: scale(1.2);
}

.inbox-star span.active {
    color: var(--color-secondary);
}

/* 2. Sender Name */
.inbox-sender {
    width: 120px;
    /* Reduced width for split view */
    min-width: 100px;
    font-size: 0.9rem;
    color: #333;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-right: 10px;
    font-weight: 600;
}

/* 3. Message Content */
.inbox-content {
    flex: 1;
    /* Takes all remaining space */
    font-size: 0.85rem;
    color: #666;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-right: 10px;
    min-width: 0;
    /* Critical for flexbox text-overflow to work */
}

.msg-subject {
    color: #444;
    margin-right: 5px;
}

/* 4. Actions (Reply/Delete) */
/* Position absolute to save space in split view */
.inbox-actions {
    position: absolute;
    right: 90px;
    /* Positions it to the left of the date */
    background: rgba(255, 255, 255, 0.9);
    /* Semi-transparent backing */
    display: none;
    /* Completely hidden until hover */
    gap: 5px;
}

.inbox-row:hover .inbox-actions {
    display: flex;
}

.inbox-actions button {
    background: white;
    border: 1px solid #eee;
    cursor: pointer;
    font-size: 1rem;
    color: #777;
    padding: 4px;
    border-radius: 4px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.inbox-actions button:hover {
    color: #333;
    border-color: transparent;
}

/* 5. Date/Time */
.inbox-date {
    width: 70px;
    text-align: right;
    font-size: 0.8rem;
    font-weight: 600;
    color: #888;
}

/* --- Unread Modifiers --- */
.inbox-row.unread {
    background: white;
    /* Or slightly highlighted if desired */
}

.inbox-row.unread .inbox-sender,
.inbox-row.unread .msg-subject {
    font-weight: 800;
    color: black;
}

.inbox-row.unread .inbox-date {
    color: #888;
    font-weight: 700;
}

/* Responsive: Stack on mobile */
@media only screen and (max-width: 1100px) {
    .inbox-split-layout {
        grid-template-columns: 100%;
        /* Stack vertically */
    }

    .vertical-divider {
        width: 100%;
        height: 1px;
        margin: 0;
    }

    /* Restore widths for stacked view */
    .inbox-sender {
        width: 160px;
    }
}


/* ============================
   MESSAGE MODAL STYLES
   ============================ */

.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    /* Dark transparent background */
    z-index: 1000;
    display: none;
    /* Hidden by default */
    justify-content: center;
    align-items: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.modal-overlay.show {
    display: flex;
    opacity: 1;
}

.modal-content {
    background: white;
    width: 90%;
    max-width: 500px;
    border-radius: 15px;
    padding: 2rem;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
    transform: translateY(20px);
    transition: transform 0.3s ease;
    position: relative;
}

.modal-overlay.show .modal-content {
    transform: translateY(0);
}

.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.5rem;
}

.modal-header h3 {
    font-size: 1.4rem;
    color: #666;
}

.modal-header .las.la-times {
    font-size: 1.5rem;
    cursor: pointer;
    color: #888;
    transition: color 0.3s;
}

.modal-header .las.la-times:hover {
    color: var(--danger);
}

.modal-meta {
    display: flex;
    align-items: center;
    color: #888;
    font-size: 0.85rem;
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #eee;
}

.modal-meta span.las {
    margin-right: 5px;
}

.modal-body {
    display: flex;
    gap: 1.5rem;
}

.modal-icon span {
    font-size: 3.5rem;
    color: var(--color-main);
    opacity: 0.8;
}

.modal-text-wrapper p {
    font-size: 1rem;
    color: #555;
    line-height: 1.6;
}

/* ============================
   VIEW CLIENTS PAGE STYLES
   ============================ */

/* Customizing the row to fit Client Data (Logo, Name, Company, Email, Address) */
.client-row {
    display: flex;
    align-items: flex-start;
    padding: 1.2rem;
    border-bottom: 1px solid #f9f9f9;
    transition: background 0.2s;
    cursor: pointer;
}

.client-row:hover {
    background: #f8f9fa;
}

.client-logo-img {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    margin-right: 15px;
    flex-shrink: 0;
    border: 1px solid #eee;
}

.client-info-grid {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr;
    gap: 2px;
}

.client-name {
    font-weight: 700;
    color: #333;
    font-size: 0.95rem;
}

.company-name {
    color: #777;
    font-weight: 600;
    font-size: 0.85rem;
    margin-bottom: 4px;
}

.client-meta {
    display: flex;
    flex-direction: column;
    font-size: 0.8rem;
    color: #777;
    gap: 2px;
}

.client-meta span {
    display: flex;
    align-items: center;
    gap: 5px;
}

/* To mimic the 'Unread' bold headers from the inbox split view */
.section-header {
    padding: 1.5rem 1.2rem 0.5rem 1.2rem;
    font-size: 0.8rem;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 800;
}



/* ============================
   VIEW PROJECTS PAGE STYLES
   ============================ */

.project-row {
    display: flex;
    align-items: flex-start;
    /* Aligns logo to top */
    padding: 1rem 1.2rem;
    /* Slightly tighter vertical padding than clients */
    border-bottom: 1px solid #f9f9f9;
    transition: background 0.2s;
    cursor: pointer;
}

.project-row:hover {
    background: #f8f9fa;
}

.project-logo-img {
    width: 45px;
    height: 45px;
    border-radius: 8px;
    /* Square radius looks better for projects/folders */
    background-size: cover;
    background-position: center;
    margin-right: 15px;
    flex-shrink: 0;
    border: 1px solid #eee;
    margin-top: 3px;
    /* Visual alignment fix */
}

.project-info-grid {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0px;
    /* Removes gap completely for tight layout */
}

.project-title {
    font-weight: 700;
    color: #333;
    font-size: 0.95rem;
    line-height: 1.2;
    margin-bottom: 2px;
    /* Tiny space between title and company */
}

.project-company {
    color: #777;
    font-weight: 600;
    font-size: 0.8rem;
    margin-bottom: 4px;
    /* Tiny space between company and desc */
}

.project-desc {
    font-size: 0.85rem;
    color: #777;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    /* Limits text to 2 lines */
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.project-date {
    font-size: 0.75rem;
    color: #999;
    font-weight: 600;
    margin-left: auto;
    /* Pushes date to the far right */
    white-space: nowrap;
    padding-left: 10px;
}

/* --- PROJECT POPUP MODAL STYLES --- */
.project-modal-img {
    width: 100%;
    height: 200px;
    background-size: cover;
    background-position: center;
    border-radius: 10px;
    margin-bottom: 1.5rem;
    border: 1px solid #eee;
}

.project-modal-desc {
    color: #555;
    line-height: 1.6;
    font-size: 0.95rem;
    margin-top: 1rem;
}

/* --- LARGE MODAL MODIFIER (2x Size) --- */
.modal-content.modal-lg {
    max-width: 1000px;
    /* Doubled from standard 500px */
    width: 95%;
    /* Ensure it fits on smaller screens */
}

/* Increase image height when inside a large modal */
.modal-content.modal-lg .project-modal-img {
    height: 400px;
    /* Doubled from standard 200px to match scale */
}

/* --- HISTORY NEWS PAGE STYLES --- */
.news-row {
    display: flex;
    align-items: flex-start;
    padding: 1.2rem;
    border-bottom: 1px solid #f9f9f9;
    transition: background 0.2s;
    cursor: pointer;
}

.news-row:hover {
    background: #f8f9fa;
}

/* Thumbnail in the list */
.news-thumb-img {
    width: 60px;
    height: 60px;
    border-radius: 8px;
    background-size: cover;
    background-position: center;
    margin-right: 1.2rem;
    flex-shrink: 0;
    border: 1px solid #eee;
}

.news-info-grid {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.news-title {
    font-size: 1rem;
    font-weight: 700;
    color: #333;
    margin-bottom: 0.4rem;
}

.news-desc-preview {
    font-size: 0.85rem;
    color: #777;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    /* Limit to 2 lines */
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.news-date {
    font-size: 0.75rem;
    color: #aaa;
    font-weight: 600;
    margin-left: 1rem;
    white-space: nowrap;
    align-self: center;
}

/* Adjust card text color back to dark gray since body is now dark */
.card,
.card h3,
.card label {
    color: #555;
}

/* --- SIDEBAR VERTICAL ALIGNMENT TWEAKS --- */
.sidebar-menu {
    display: flex;
    flex-direction: column;
    align-items: center;
    grid-template-columns: 1fr;
    /* Override grid */
}

.menu-item {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    /* Spacing between menu items */
}

/* Target links and dropdown triggers to align vertically */
.menu-item>a,
.client-dropdown-wrapper>a,
.project-dropdown-wrapper>a,
.news-dropdown-wrapper>a {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    padding: 0.5rem !important;
    color: rgba(7, 71, 121, 0.9) !important;
}

/* Icons on top */
.menu-item a span:first-child,
.client-dropdown-wrapper>a span:first-child,
.project-dropdown-wrapper>a span:first-child,
.news-dropdown-wrapper>a span:first-child {
    font-size: 1.8rem !important;
    margin-bottom: 5px !important;
    margin-right: 0 !important;
}

/* Text below icon */
.menu-item a span {
    font-size: 1rem !important;
}

/* Arrow below text */
.arrow-icon {
    margin-top: 5px !important;
    transform: rotate(90deg);
    /* Point down */
}

/* Hover effects */
.menu-item a:hover,
.client-dropdown-wrapper>a:hover,
.project-dropdown-wrapper>a:hover,
.news-dropdown-wrapper>a:hover {
    color: rgb(0, 110, 255) !important;
    background: transparent !important;
    /* Remove block background to fit vertical style */
}

/* --- HEADER DROPDOWN STYLES --- */
.head-avatar-container {
    position: relative;
    cursor: pointer;
}

.profile-dropdown {
    display: none;
    /* Hidden by default */
    position: absolute;
    top: 120%;
    /* Position below the avatar */
    right: 0;
    /* Align to right edge */
    background-color: white;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
    z-index: 1000;
    border-radius: 8px;
    overflow: hidden;
    text-align: left;
    animation: fadeIn 0.2s;
}

.profile-dropdown.show {
    display: block;
}

.profile-dropdown a {
    color: #333 !important;
    /* Force dark text for dropdown items */
    padding: 12px 16px !important;
    text-decoration: none;
    display: flex !important;
    flex-direction: row !important;
    /* Keep dropdown items horizontal */
    align-items: center !important;
    gap: 10px;
    font-size: 0.9rem !important;
    border-bottom: 1px solid #f0f0f0;
}

.profile-dropdown a span:first-child {
    font-size: 1.2rem !important;
    margin-bottom: 0 !important;
}

.profile-dropdown a:last-child {
    border-bottom: none;
}

.profile-dropdown a:hover {
    background-color: #f5f5f5 !important;
    color: rgb(0, 110, 255) !important;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* --- TOGGLE BUTTON STYLES --- */
.status-btn {
    border: none;
    padding: 5px 15px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 600;
    transition: background 0.3s;
}

/* Button to Hide (appears when currently Active) */
.btn-hide {
    background-color: #ffcccc;
    color: #cc0000;
    border: 1px solid #ff9999;
}

.btn-hide:hover {
    background-color: #ff9999;
}

/* Button to Show (appears when currently Hidden) */
.btn-show {
    background-color: #cce5ff;
    color: #004085;
    border: 1px solid #b8daff;
}

.btn-show:hover {
    background-color: #99caff;
}