:root {
--primary-color: #1795D3;
--secondary-color: #26D9CA;
--background-color: #f0f2f5;
--white: #fff;
--gray: #f8f9fa;
--orange:#FFF3C2;
--orange-text:#C28B0A;
--no-add-savings-bg:#E5FFF3;
--no-add-savings-text:#00C261;
--text-color:#80878A;/*grey*/

}
.field { color: #0d636b; font-size: clamp(0.80rem, 2.5vw, 0.875rem); }
.value { color: #333; font-size: clamp(0.80rem, 2.5vw, 0.875rem); }
.accordion-button{
font-family: var(--heading-font);
font-weight: 500;
text-align: center;
cursor: pointer;
justify-content: center;
align-items: center;
color: #333;
font-size: 1rem;
letter-spacing: 0.6px;
}
.accordion-button:not(.collapsed) {
color: var(--blue-text);
background-color: var(--gray); /* Set the active background color */
}
.accordion-button:focus {
border: none;
box-shadow: none;

}

.bg-gray{background-color:#F5F7FA;}
.sidebar {
width: 250px;
/*background-color: #26D9CA;*/
background-color: #F5F7FA; /* Light Grayish Blue */
box-sizing: border-box; /* Ensure padding is included within the width */
flex-shrink: 0; /* Prevent the sidebar from shrinking */
position: fixed; /* Keep it fixed */
padding-bottom:20px;
left: 0;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
transition: 0.5s;
overflow-y: auto; /* Allow scrolling within the sidebar if content overflows */
scrollbar-width: none; /* Hide scrollbar for Firefox */
-ms-overflow-style: none; /* Hide scrollbar for Internet Explorer and Edge */
height: 100%;     /* Make the sidebar take full height of the window */
}
.sidebar::-webkit-scrollbar {
    display: none; /* Hide scrollbar for WebKit browsers */
}
.sidebar-header{
margin:0px;display:flex;
background: #FCFDFD;
padding:1rem 0.2rem;
}
/* Profile section styling */
.profile-section {
display: flex;
align-items: center;
padding: 20px 15px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
margin-bottom: 10px;
}

.profile-circle {
width: 50px;
height: 50px;
background-color: #0063b1;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
color: var(--white);
font-size: 20px;
font-weight: bold;
margin-bottom: 0;
}

.user-info {
margin: 5px 10px;
}

.username {
font-size: 0.95rem;
margin-bottom: 4px;
}

.user-details {
font-size: 12px;
color: #333;
padding-bottom: 4px;
}

.user-info .blue-text {
font-size: 0.7rem;
white-space: nowrap;
margin: 0;
}

.sidebar-menu {
list-style-type: none;
padding: 0;
margin: 20px 20px 100px 20px;
}
.profile-section:hover{transform: scale(1); }
.sidebar-menu li {
margin: 7px 0;
}
.faq .sidebar{ width: 300px;}
.faq .sidebar-menu li a{ font-size: 18px;}
.sidebar-menu li a {
text-decoration: none;
color: #333333; /* Dark Gray Text */
font-size: 0.875rem;
display: block;
padding: 2px 5px;
cursor:pointer;
transition: background-color 0.3s, color 0.3s;

}

.sidebar-menu li.active a {

border-radius: 0.5rem; /* Smoothly rounded corners */
padding: 0.5rem 1rem; /* Add padding for better spacing */
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* Subtle shadow for depth */
/*font-weight: bold; Make the text stand out */
transition: all 0.3s ease-in-out; /* Smooth transition on hover or focus */
background-color: #42A5F5; /* Bright Blue */
color: white; /* White Text */
}

/* Category Headers */
.sidebar-menu li.sidebar-category {
font-size: 0.875rem;
font-weight: 600;
color: #0d636b;
letter-spacing: 0.3px;
padding: 1rem 0.5rem 0.5rem 0.5rem;
margin-top: 0.5rem;
border-top: 1px solid #dee2e6;
cursor: default;
white-space: nowrap;
}

.sidebar-menu li.sidebar-category:first-of-type {
border-top: none;
margin-top: 0;
}

/* Top-level standalone items (like Overview) */
.sidebar-menu li.sidebar-toplevel a {
font-size: 0.875rem;
font-weight: 600;
color: #0d636b;
}

/* Sub-items (indented under categories) */
.sidebar-menu li.sidebar-subitem {
padding-left: 1.25rem;
}

.sidebar-menu li.sidebar-subitem a {
font-size: 0.825rem;
color: #555;
}

/* Optional hover effect for active link */
.sidebar-menu li a:hover {
transform: scale(1.05); /* Subtle scaling effect */
border-radius: 0.5rem; /* Smoothly rounded corners */
padding: 0.5rem 1rem; /* Add padding for better spacing */
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* Subtle shadow for depth */
transition: all 0.3s ease-in-out; /* Smooth transition on hover or focus */
background-color: #E3F2FD; /* Very Light Blue */
color: #42A5F5; /* Bright Blue Text */
}

.main-content {
flex-grow: 1;
padding: 0 15px 0 10px;
box-sizing: border-box; /* Ensure padding is included within the width */
/* background:#5cc1e124;*/
margin-left: 250px;


}
/* Close Button Styling */
.close-btn {
font-size: 30px;
position: absolute;
top: 10px;
right: 10px;
border: none;
background: none;
cursor: pointer;
display: none;
}
.toggle-button {display:none;}
.faq .sidebar {
width: 250px;
/*background-color: #26D9CA;*/
background-color: #F5F7FA; /* Light Grayish Blue */
box-sizing: border-box; /* Ensure padding is included within the width */
flex-shrink: 0; /* Prevent the sidebar from shrinking */
position: relative; /* Keep it fixed */
padding-bottom:20px;
left: 0;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
transition: 0.5s;
overflow-y: auto; /* Allow scrolling within the sidebar if content overflows */

}
.faq .main-content{flex-grow: 1;
padding: 0px 20px;
box-sizing: border-box;
margin-left:0;}
@media (max-width: 768px) {
.faq .sidebar{  width: 100%;}
.faq .sidebar{display:block;}
.faq .sidebar {
width: 100%;
position: fixed;
z-index: 1000;
transform: translateX(-100%);
transition: transform 0.3s ease-in-out;
top: 120px;
}
.offcanvas{z-index:1100 !important}
.sidebar {
display: none;
}
/* When the sidebar is active (clicked on), show it */
.sidebar.active {
transform: translateX(0);
}
/* Style the toggle button for mobile */
.toggle-button {
display: block;
position: fixed;
top: 70px;
right: 10px;
background-color: #007bff;
color: #fff;
padding: 10px;
border: none;
z-index: 1050;
cursor: pointer;
}
.main-content {
margin: 0;
padding:0px 10px 10px;
width: 100%;
}
.close-btn {
display: block;
}
}

/*header bar*/
.header-bar {
display: flex;
justify-content: space-between; /* Aligns the items to the far left and right */
align-items: center; /* Vertically centers the content */
padding:1rem 0;
background-color:transparent; /* Set the background color */
border-bottom: 1px solid #00c0c7;
margin-bottom:20px;


}

.header-title {
font-size: clamp(1rem, 1.2vw + 1rem, 1.5rem); /* Adjust middle value for desired scaling */
color: #333; /* Set text color */
font-family:var(--heading-font);
}

.header-button {
padding: 10px 20px; /* Adjust padding for the button */
border: none;
border-radius: 20px; /* Rounded corners */
background-color: #00b5d8; /* Button background color */
color: #fff; /* Button text color */
cursor: pointer;
}
.message-container {
background-color:#E3F2FD ;
padding: 1rem;
border-radius:0.5rem;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
transition: 0.5s;
border:1px solid #E4EDF1;
align-items:center;
}

.message-container .message {
font-size: 1rem;
color: #0D47A1 ;
text-align:justify;


}

/* Expenses */
.expenses-container {
background-color:#FFF3C2; /* Soft Orange */
/* border-left: 4px solid #FF9800; Bright Orange */
}
.exp-text{color: #C28B0A; /* Deep Orange */
font-size: 1rem;}
/* Average Monthly Savings */
.savings-container {
background-color: #E5FFF3; /* Pale Mint Green */
padding:1rem;
border:none;
box-shadow:none;
/* border-left: 4px solid #66BB6A; Fresh Green */
}
.save-text{color: #1B5E20; /* Deep Green */
font-size: 1rem;}
/* Savings Goal */
.goal-container {
background-color:#C9EDFF; /* Light Sky Blue */
border:none;
box-shadow:none;
}

/* Spend Alert */
.alert-container {
background-color: #FFF9C4; /* Soft Yellow */
 /* border-left: 4px solid #FFCA28;Bright Yellow */
}
.spend-text{ color: #F57F17; /* Golden Amber */}
.table-responsive {
overflow-x: auto; /* Enables horizontal scrolling */
display: block; /* Ensures the container is treated as a block element */
width: 100%;
max-width: 100%; /* Ensure it does not go beyond parent container */
-webkit-overflow-scrolling: touch; /* For smoother scrolling on mobile devices */
padding: 0.5rem;
border-radius:0.5rem;
border:1px solid #E4EDF1;
margin-bottom:20px;
}
.transaction-table {
width: 100%;
max-width:100%;
border-collapse: collapse; /* To ensure proper table structure */
}


.table thead tr th {
color: var(--green-text);
font-family: var(--heading-font);
font-weight: 400;
}

.transaction-table {
    border-collapse: collapse;
}

.transaction-table tr td {
    padding: 0.75rem;
    border-bottom: 1px solid #dee2e6;
}

.border-thick {
    border-bottom: none !important; /* Remove the default border */
}

/* Remove any border from the separator row */
.transaction-table tr:has(+ tr td div[style*="border-top: 3px"]) {
    border-bottom: none;
}

.transaction-table tr th {
padding: 10px;
font-weight: 400;
font-family: var(--text-font);
color: var(--green-text);
}

.transaction-table td {
padding: 10px;
font-weight: 300;
word-wrap: break-word;
white-space: normal;
font-family: var(--text-font);
font-size: 12px;
vertical-align: middle;
overflow-wrap: break-word; /* Ensures long words break */
}

.table .restaurant-name, .table .amount-column {
color: #333;
}

.table .category-column {
color: var(--blue-text);
}

.table .card-column, .table .date-column {
color: #333;
}

/* Media query for mobile view */
@media (max-width: 768px) {
.transaction-table td {
font-size: 10px; /* Reduce font size on mobile */
padding: 8px; /* Reduce padding to save space */
}

.table thead tr th {
font-size: 12px; /* Slightly smaller headers for mobile */
}


}

/*overview css*/
/*your asserts container css*/


.assets-header {
background-color: var(--gray);
padding: 15px;
font-size: 18px;
color: var(--black-text);
text-align: left;
border-radius: 0.5rem;

}

.assets-list {
list-style-type: none;
padding: 20px;
}

.asset-item {
display: flex;
justify-content: space-between;
padding: 10px 0;
font-size: 1rem;

border-bottom: 1px solid #e0e7e8;
}
.asset-label{color:var(--green-text);}
.asset-value{color:var(--blue-text);}
.asset-item:last-child {
border-bottom: none;
}

.tracker {
background-color: #F5F7FA;
    border: none;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    margin-top: 20px;
}
.tracker-heading{
color:var(--green-text);
font-family:var(--heading-font);
font-size:16px;
line-height: 1.5;

}
.goal-values {
  display: flex;
  justify-content: space-evenly; /* Ensures even spacing between all items */
  align-items: stretch;
  flex-wrap: wrap;
  gap: 1rem;
  margin: 1.5rem 0;
}

/*.goal-values .text-center {
  flex: 1 1 0;
  min-width: 0;
}
*/

.goal-values .value {
  font-size: clamp(0.9rem, 2.5vw, 0.825rem); /* Shrinks on small viewports */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.goal-values .goal-text {
  font-size: clamp(0.75rem, 2vw, 0.825rem); /* Responsive title font size */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
   color: #d6a315; /* gold tone as in image */
    font-weight:400;
}

.income-values, .spend-values {
display: flex;
justify-content: space-between;
margin: 10px 0;
}
.tracker .label {
font-size: 0.825rem;
color:var(--green-text);
}
.tracker .value {
font-size: 0.825rem;
color:var(--black-text);

}

.value h3 {
margin: 5px 0;
font-size: 1.5rem;
}

.divider {
border: 1px dashed #4f4f4f;
}
.income-tracker, .spend-tracker {padding: 0 1rem;}
.income-tracker p, .spend-tracker p {
font-size: 0.825rem;
margin: 5px 0;
color: #9e9e9e;
}

.income-tracker span, .spend-tracker span {
font-size:0.825rem;
color: var(--text-color);
}

.spend-values {
align-items: center;
margin-bottom: 1rem;
}
/* Income Cards */
.income-details .card {
    border: 1px solid #CEDEE4;
    background-color: #ffffff;
    padding: 1rem;
    transition: 0.3s;
    min-height: 320px;
    height: 100%;
    box-shadow: none;
}

.income-details .card-body {
    padding: 1rem;
    flex: none;
    overflow: visible;
}

.income-details .card:hover {
    transform: scale(1);
    scrollbar-color: var(--text-color) #E3F2FD;
}

.card-header,
.card-footer {
    background: transparent;
    border: none;
}

/* Net Household Income Box */
.net-income-box {
    background-color: #fff;
    border: 1px solid #CEDEE4;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.05);
    flex-wrap: wrap;
    white-space: normal;
    overflow: hidden;
    border-radius: 0.5rem;
    margin: 1rem 0;
    padding: 1.5rem;
}

.net-income-box .value {
    margin-left: auto;
    font-weight: 400;
    font-size: 1rem;
}

/* Responsive fix: stack content on mobile */
@media (max-width: 768px) {
    .net-income-box {
        flex-direction: column;
        align-items: flex-start;
    }

    .net-income-box .value {
        margin-left: 0;
        margin-top: 0.5rem;
    }
}

.detail-list {
list-style-type: none; /* Removes bullet points */
padding: 0;
}

.detail-item {
display: flex;
justify-content: space-between;
padding: 2px 0;
border-bottom: 1px solid #ddd; /* Optional: adds a divider line between items */
}

.detail-item .field {
color:#333;
flex: 1;
}

.detail-value {
text-align: right;
flex: 1;
color:var(--text-color);
}

.toggle-icon {
cursor: pointer;
transition: transform 0.3s;
}

.toggle-icon.bi-dash {
transform: rotate(0);
}

.toggle-icon.bi-plus {
transform: rotate(0);
}

/*overview css*/
/*monthly cash flow report css*/
/* Report container styles */
.report-container {
    background-color: var(--blue-text);
    padding: 5px;
    margin-bottom: 0px;
    border-radius: 8px;
}

/* Report title styles */
.report-title {
    color:#000;
    font-size: 1.2rem;
    font-weight: 600;
    margin:0.825rem;
}

/* Field label and value styles */
.field-label {
    color: white;
    font-size: 1rem;
    margin-right: 8px;
}

.field-value {
    color: #333;
    font-size: 1.1rem;
    font-weight: 500;
}

/* Year select dropdown styles */
.year-select {
    padding: 2px;
    border: 1px solid var(--text-box-border);
    color: var(--green-text);
}

/* Month list container styles */
.month-list {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    background-color: var(--gray);
    padding: 0;
    margin: 0;
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
    gap: 10px;
}

/* Individual month item styles */
.month-list li {
    cursor: pointer;
    padding: 0.5rem;
    margin: 0;
    font-size: 10px;
    color: var(--green-text);
    text-align: center;
}

/* Hover effect for month items */
.month-list li:hover {
    background-color: var(--blue-text);
    color: white;
}

/* Highlight the selected month */
.month-list li.selected {
    background-color: var(--blue-text);
    color: white;
}

/* Hide scrollbar for cleaner look */
.month-list::-webkit-scrollbar {
    display: none;
}
/*income card styles
.bi-pencil-square,
.bi-trash {
font-size:0.875rem;;
color:var(--blue-text);
}*/
/*scenarios*/

.action-card {
    background-color: #f8f9fa;
    border-radius: 8px;
    padding: 20px;
        border: 1px solid #CEDEE4;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.action-text {
    max-width: 65%;
}

.action-card p {
    font-size: 0.95rem;
    color: #6c757d;
}
.plan-input {
    background-color: #fff;
    border-radius: 8px;
    padding: 20px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}


/*retirement plan section*/
.retirement-plan-section {
    border-bottom: 1px solid #e9ecef;
    padding-bottom: 15px;
}

.retirement-plan-section:last-child {
    border-bottom: none;
}

.retirement-plan-section h3 {
    font-size: 1rem;
    font-weight: 500;
    color:var(--blue-text);
    margin-bottom: 10px;
}
        /* Content sections */
        .content-section1 {
               background-color: #fff;
    border-radius: 8px;
    padding: 20px;
     border: 1px solid #CEDEE4;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
        }
.retirement-plan-section .content {
    color:#6c757d;
    font-size: 0.9rem;
    line-height: 1.5;
}
/* Responsive adjustments */
@media (max-width: 992px) {
    .action-card {
        flex-direction: column;
        text-align: center;
    }

    .action-text {
        max-width: 100%;
        margin-bottom: 15px;
    }
}
       .section-title {
    font-size: 1.25rem;
    font-weight: 500;
    color: var(--green-text);
    margin: 20px 0;

}

.section-content p {
    color: #6c757d;
    font-size: 0.95rem;
    line-height: 1.6;
}

 .warning {
      background-color: #fff8e6;
            border-left: 4px solid #ffc107;
            padding: 16px 20px;
            margin-bottom: 25px;
            border-radius: 0 8px 8px 0;
            color: #856400;
    }
 .scenario-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 25px;
margin-bottom: 30px;
}

.scenario {
background: #ffffff;
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
overflow: hidden;
transition: all 0.3s ease;
border: 2px solid transparent;
padding: 20px;
display: flex;
flex-direction: column;
justify-content: space-between;
height: 100%;
min-height: 350px; /* ensure same height */
}

.scenario h4 {
  margin-top: 30px;
  margin-bottom: 30px;
   font-size: 18px;
            font-weight: 600;
            color: var(--blue-text);
            padding: 20px;
}

.scenario-content {
  text-align: justify;

  line-height: 1.4;
  flex-grow: 1;

   font-size: 14px;
            color: #555;
            margin-bottom: 25px;
            line-height: 1.6;
}

.scenario-chart {
  /*height: 150px;*/
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 100%;
    height: auto;

}
 @media (max-width: 768px) {
            .scenario-container {
                grid-template-columns: 1fr;
            }
            }
.chart-img {
  max-height: 100%;
  max-width: 100%;
  border-radius: 10px;
  object-fit: contain;
}
/*Scenario projection modal window styles*/
 .options-table-row {
      display: flex;
      flex-wrap: wrap;


    }


    .expand-link {
      color: #38a0db;
      text-decoration: underline;
      cursor: pointer;
      margin-left: 0.8em;
      font-size: .625rem;
      font-weight: normal;
    }
    .expand-content {
  transition: all 0.3s ease;
}

    .expand-content {
      margin: 12px 0 6px 12px;
      padding: 12px;
      display: none;
      background: #f6fafd;
      border-radius: 4px;
      font-size: .825rem;
    }
    .strategy table {
      width: 100%;
      border-collapse: collapse;
      font-size: 1em;
      margin-top: 8px;
      background: #f9f9fa;
      border-radius: 8px;
      overflow: hidden;
    }
    .strategy th, .strategy td {
      border: 1px solid #dbdde1;
      padding: .7em;
      text-align: center;
      font-weight: 500;
      vertical-align: middle;
    }
    .strategy th {
      background: #e7f3fa;
      color:var(--green-text);
      font-size:1rem;
    }
    .strategy td{
      color: #333;
      font-size: 0.825rem;
    }
    /* ---------- Strategy ---------- */
    .strategy-section {
      background: #ededed;
      /*padding: 24px;*/
      margin: 32px 0 12px 0;
      border-radius: 8px;
    }
    .strategy-content{
    padding: 14px;
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      gap: 22px;
        /*align-items: flex-start;*/
    }
    .strategy-block {
      flex: 1 1 280px;
      background: #f6fafd;
      border-radius: 5px;
      padding: 18px 20px 18px 20px;
      box-shadow: 0 1.5px 6px #e6e9f0;
      margin: 0;
      /*min-width: 260px;*/
    }

    .strategy-block ul {
      padding-left: 18px;
      margin: 0;
      font-size: 0.825em;
    }
    /* --------- Section lists --------- */

    .highlight-box {
      background: #f8f9fa;
      padding: 1em 1.3em;
      border-radius: 0.5em;
      font-size: 1em;
      margin-bottom: 1.5em;
    }

    .two-column-list {
   display: flex;
   gap: 2rem;
 }

 .two-column-list ul {
   list-style: disc;
   padding-left: 1.2rem;
   margin: 0;
 }

 .two-column-list ul li {
   margin-bottom: 0.5rem;
 }

 .right-column {
   display: flex;
   flex-direction: column;
   justify-content: flex-start;
 }

 .right-column div {
   margin-bottom: 0.5rem;
 }


/*Scenario projection end*/
/*housing-details display*/
.housing-heading{
border-bottom: 1px solid #089199;
margin-bottom: 1rem;
}
.details-row {
display: flex;
justify-content: space-between;
align-items: center;
gap: 20px; /* Reduced gap between label and value */

}

.housing-details {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap:30px; /* Adjusted spacing between grid items */
font-size:0.875rem;;
padding:1rem;

}
.housing-details div {
display: flex;
justify-content: start;
}

.housing-details .label {
flex: 1; /* Label width */
margin-right: 20px; /* Reduced margin to minimize the gap */
color: #0d636b;
font-size: clamp(0.80rem, 2.5vw, 0.875rem);
}

.housing-details .value {
color:#333;
font-size:0.875rem;
}

/* wants needs inflow nav tabs css */
.nav-tabs{border:none;}
.nav-tabs .nav-link {
position: relative; /* Position relative to allow absolute positioning of the pseudo-element */
border: none; /* Remove default border */
padding-bottom: 5px; /* Adjust padding as needed */
color:var(--blue-text);
font-size:16px;
}
.nav-tabs .nav-link.active{background-color:transparent;}
/* Style for the active tab link */
.nav-tabs .nav-link.active::after {
content: ""; /* No content, only styled as a line */
display: block;
width: 20px; /* Set the desired width of the border line */
height: 2px; /* Set the height of the line */
background-color:var(--blue-text); /* Set the color of the line */
position: absolute;
bottom: 0; /* Position at the bottom of the link */
left: 50%; /* Start the line in the center */
transform: translateX(-50%); /* Center the line */
border-radius: 2px; /* Optional: Add rounded edges to the line */
}
.nav-tabs .nav-item {
margin: 0 0px;
}

.field-label {
color:#094b8c;
}

.field-value {
min-width: 50px; /* Set a minimum width for values */
text-align: right; /* Right align the values for better readability */

}


.chart-container {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
margin-bottom: 20px;
   position: relative;
        width: 100%;

}


/* Maintain aspect ratio for charts */
img[alt*="Chart"] {
object-fit: contain;
max-height: 350px;
}
.chart-wrapper {
width: 50%;
min-width: 300px;
margin-bottom: 20px;
padding:0.825rem;
}
.chart-change {
text-align: center;
font-size: 15px;
margin-top: 5px;
}
@media (max-width: 768px) {
.chart-wrapper {
width: 100%;
}
}
.image-container {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 20px 0;
}

.image-container img {
    max-width: 100%;
    height: auto;

}

/*budget*/

.budget .nav-tabs .nav-link {
position: relative;
border: none;
padding-bottom: 5px;
font-size:0.825rem;;
}
.list-group-item {
/* background: #FAFDFF;*/
background:transparent;
border: 0;
font-size: 0.825rem;
padding: 0.825rem 0;
transition: background 0.3s ease, transform 0.2s;
color:var(--green-text);
/*box-shadow: 0 4px 8px rgba(0,0,0,0.1);*/
}

/* Heading Row Styling */
.heading-row, .content-row {
padding: 0.5rem;
}
.heading-row {
border-bottom: 1px solid var(--text-box-border); /* Bold border for header */
color:var(--blue-text);
font-size:14px;
}

.add-savings
{
color:#C28B0A;
background:#FFF3C2;
margin:20px 0px;
padding:12px;
border-radius:0.5rem;
}
.no-add-savings
{
color: #0A6236;
background: #E5FFF3;
margin:20px 0px;
padding:12px;
border-radius:0.5rem;

}
.list-group-item.active{background-color: var(--gray);color:var(--green-text);}
.box .details div {
margin: 10px 0;
}

/*account-settings*/
.account-section {
margin-bottom: 20px;
display: flex;
}
.profile-item {
display: flex;
justify-content: space-between;
align-items: center;
background-color: #fff;
padding: 10px;
border-radius: 0.5rem;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
padding: 0.5rem;
transition: 0.5s;
border:1px solid #E4EDF1;

}
.profile-item span {
font-size: 1rem;
}

.membership-section {
padding: 15px;
background-color: #fff;
border-radius:0.5rem;
transition: 0.5s;
border:1px solid #E4EDF1;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.membership-level {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px;
}
/*.membership-level:not(:last-child) {
border-bottom: 1px solid #e0e0e0;
}*/
.upgrade-btn {
background-color: #00bcd4;
color: white;
border: none;
border-radius: 5px;
padding: 8px 12px;
}
.newsletter-section {
margin-top: 20px;
}
.newsletter-checkbox {
margin: 10px;
}
.current-membership {
background-color: #e0f7fa; /* Light cyan background to highlight */
border: 2px solid #00bcd4; /* Add a border to make it stand out */
font-weight: bold; /* Bold text */
border-radius: 0.5rem; /* Rounded corners */
padding: 10px;
}
/*retirement plan */
.plan-input {

box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
transition: 0.5s;

color:var(--blue-text);
padding: 20px;
border-radius: 0.5rem;
}
.plan-section {
border-top:1px dashed #4f4f4f;
padding-top: 10px;
margin-top: 20px;
}

.content {
color: var(--text-color);
font-size:0.875rem;;
margin: 10px 0;
}
.change-link {
color: var(--blue-text);
float: right;
font-size:0.875rem;;
cursor: pointer;
}
.content-list {
display: flex;
flex-direction: column;
gap: 10px; /* Adds space between items */
color: #888;
}

.content-item {
display: flex;
align-items: center;
font-size: 1em;
}

/*insights css*/

   /* ========== Timeline Section ========== */
.timeline-section {
    border: 1px solid #009688;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 20px;
    background-color: #fff;
}

.timeline-header {
    text-align: center;
    color: var(--green-text);
   /* font-size: 24px;*/
    margin-bottom: 20px;
}

.timeline {
    display: flex;
    justify-content: space-between;
    position: relative;
    margin-bottom: 10px;
}

.timeline-item {
    flex: 1;
    text-align: center;
}

.age-box {
    background: linear-gradient(180deg, #F7F8F8 0%, #919292 100%);
    color: #000;
    border-radius: 4px;
    padding: 8px 2px;
    margin: 0 2px;
    font-weight: bold;
    font-size: 16px;
}

.descriptor {
    font-size: 12px;
    margin-top: 5px;
    display: flex;
    background: #F7F8F8;
    border: 1px solid #F1F3F4;
    flex-direction: column;
    justify-content: center;
}

/* ========== Main Content Section ========== */
.insight-main-content {
    display: flex;
    gap: 20px;
}

.insight-content-section {
    flex: 2;
    border: 1px solid #009688;
    border-radius: 8px;
    padding: 20px 0px 0px 0px;
    background-color: #fff;
    margin-bottom: 2rem;
}

.insights-header {
    color: var(--green-text);
    /*font-size: 24px;*/
    margin-bottom: 20px;
    text-align: center;
}

.card-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    /*gap: 20px;
    padding:15px;*/
}

.insight-card  {
    border: 1px solid #23C9CD;
    border-radius: 0px;
    padding: 15px;
    background-color: #fff;
   box-shadow: None;
    max-height: 500px;  /* fixed height */
  overflow-y: auto;
    margin: 0.5rem;
}
.insight-card:hover{box-shadow: None;}
.card-title {
    color: #333;
    font-size: 1rem;
    text-align: center;
    margin-bottom: 15px;
}

.card-content {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.card-content .type-title {
    /*font-weight: 600;*/
    font-size: 0.875rem;
    /*color: #333;*/
    margin-bottom: 5px;
}

.card-content p {
    color: #555;
    font-size: 0.725rem;
    line-height: 1.5;
    margin: 0;
}

.card-content a {
    color: #009688;
    text-decoration: none;
    font-weight: 500;
    margin-left: 5px;
}


/* ========== Sidebar Section ========== */
.insight-sidebar {
    background-color: #F7F8F8;
   /* width: 280px;*/
    height: 100vh;
    border-right: 1px solid var(--border-color);
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    flex:1;
}

.insight-sidebar-title {
    padding: 15px;
    margin: 0;
    color: var(--green-text);
    border-bottom: 1px solid var(--border-color);
}

.insight-search-container {
    padding: 10px;
    border-bottom: 1px solid var(--border-color);
}

.search-input {
    width: 100%;
    padding: 10px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    font-size: 14px;
    outline: none;
    transition: all 0.3s ease;
}

.search-input:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 2px rgba(58, 134, 255, 0.2);
}

.menu {
    overflow-y: auto;
    padding: 10px;
    flex: 1;
}

.menu-item {
    margin-bottom: 5px;
}

.menu-title {
    display: flex;
    align-items: center;
    font-size: 14px;
    padding: 5px;
    border-radius: 3px;
    transition: all 0.2s ease;
    cursor: pointer;
}

.menu-title:hover {
    background-color: var(--hover-bg);
}

.menu-icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 16px;
    height: 16px;
    margin-right: 6px;
    color: #6c757d;
    font-size: 14px;
    font-weight: bold;
}

.submenu {
    margin-left: 20px;
    margin-top: 3px;
    border-left: 1px dashed var(--border-color);
    padding-left: 8px;
}

.active > .menu-title {
    background-color: var(--hover-bg);
    color: var(--blue-text);
    font-weight: 500;
}
/* Responsive for Mobile */
@media (max-width: 768px) {
    .insight-main-content {
        flex-direction: column;
    }

    .card-container {
        grid-template-columns: 1fr;
    }

    .insight-sidebar {
        max-width: 100%;
        margin-top: 20px;
    }

    .timeline {
        flex-direction: column;
        overflow-x: visible;
    }

    .timeline-item {
        min-width: 100%;
    }

    .chatbot-container {
        right: 10px;
        bottom: 10px;
    }

    .type-title {
        font-size: 0.8125rem;
    }

    .card-content p {
        font-size: 0.6875rem;
    }
}
/* ========== Chat Section ========== */
.chatbot-container {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 1000;
}

.chatbot-button {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background-color: #009688;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
}

.chatbot-button:hover {
    background-color: #00796b;
    transform: scale(1.05);
}

.chatbot-icon {
    width: 30px;
    height: 30px;
    fill: white;
}
/* Modal overlay */
.content-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: var(--overlay-bg, rgba(0, 0, 0, 0.6));
    display: flex;
    justify-content: center;
    align-items: center;
  z-index: 10001;/* Sit on top */
    opacity: 0;

    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
      font-family: var(--text-font, 'SFUIText', sans-serif);
    font-size: 0.8125rem; /* Base font size: ~13px */
}

/* Active state for showing modal */
.content-modal.active {
    opacity: 1;
    visibility: visible;
}

/* Modal content container */
/* Modal content centered in the screen */
.content-modal .modal-content{
color:var(--text-color);
overflow:auto;
background:white;
  margin: 0;
border-radius:0.5rem;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
transition: 0.5s;
border:1px solid #E4EDF1;
justify-content: center;
width: 50%; }
/* Header */
.content-modal .modal-header {
    padding: 15px 20px;
    border-bottom: 1px solid var(--border-color, #ddd);
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: #f8f9fa;
}

.content-modal .modal-title {
    margin: 0;
    color:#333;
    font-size:1.2rem;
    font-family: var(--heading-font);
}

.content-modal .close-modal {
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
    color: #6c757d;
    transition: color 0.2s;
}

.close-modal:hover {
    color: #dc3545;
}

/* Modal body */
.content-modal .modal-body {
    padding: 1.25rem;
    overflow-y: auto;
    max-height: calc(80vh - 60px);
    color: var(--text-color);
}

/* Breadcrumb */
.breadcrumb {
     display: flex;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    margin: 0 0 1.25rem;
    font-size: 0.8125rem; /* ~14px */
    background-color: transparent;
}

.breadcrumb-item {
    display: flex;
    align-items: center;
    font-size:1rem;
    line-height:2;
}

.breadcrumb-item + .breadcrumb-item::before {
    content: ">";
    margin: 0 8px;
    color: #6c757d;
}

.breadcrumb-item a {
   color: var(--accent-color);
    text-decoration: none;

}

.breadcrumb-item.active {
    color: #6c757d;
}

/* Description */
.content-description {
    margin-bottom: 1.25rem;
    line-height: 2;
    font-size: 0.8125rem;
    color:#333;
}

/* Types section */
.content-types {
    margin-top: 20px;
}

.type-item {
   background-color: #f8f9fa;
    border-radius: 0.375rem;
    padding: 1rem;
    margin-bottom: 1rem;
    /*border-left: 0.25rem solid var(--accent-color);*/
}

.type-name {

    color: var(--green-text);
    margin: 0 0 0.625rem;
    font-size: 1rem;
}

.type-description {
    margin: 0;
    line-height: 2;
    font-size: 0.8125rem;
    color:#333;
}

/* ========== End of Insights CSS ========== */



