.topic {
    border-bottom: 2px solid black;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 20px;
    padding: 5px;
}

.topic-title {
    font-size: 18px;
    font-weight: bold;
    color: #333;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
    letter-spacing: 0.5px;
    font-family: 'Arial', sans-serif;
}


.questions-panel {
    background-color: white;
    padding-bottom: 10px;
}

.scenario-options-row {
    display: flex; /* Use flexbox for layout */
    margin-top: 20px; /* Space between the first and second rows */
    overflow-y: auto;
}

/* Stacked layout for shorter scenarios */
.scenario-options-row.stacked {
    flex-direction: column; /* Stack the sections vertically */
}

.scenario-options-row.stacked .scenario-column {
    border-right: none; /* Remove the divider */
    border-bottom: 2px solid #ddd; /* Add a bottom border instead */
    max-width: 100%; /* Allow full width */
}

.scenario-options-row.stacked .options-column {
    flex: none; /* Remove flex behavior */
    width: 100%; /* Take full width */
}

.resizable-container {
    display: flex;
    width: 100%;
    height: 100%;
}

.question-navigation {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 20px;
    padding-right: 10px;
    padding-left: 10px;
    border-bottom: 1px solid #ddd;
}

.nav-button {
    padding: 10px;
    background-color: transparent;
    color: black;
    border: none;
    cursor: pointer;
    border-radius: 5px;
    text-decoration: none !important; /* Remove underline */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.3s;
}

.nav-button:hover {
    background-color: #f0f0f0;
}

.nav-button i {
    font-size: 16px;
    text-decoration: none !important; /* Ensure no underline on icon */
}

.nav-button:link,
.nav-button:visited,
.nav-button:focus,
.nav-button:hover,
.nav-button:active {
    text-decoration: none !important; /* Remove underline in all states */
}


#progress-text {
    flex-grow: 1;
    text-align: center;
    white-space: nowrap;
    font-size: 16px;
}

.custom-progress-bar {
    width: 80%;
    background-color: #e0e0e0;
    height: 20px; /* Increased height for better visibility */
    border-radius: 10px; /* More rounded corners */
    margin-left: 20px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); /* Subtle shadow for depth */
    overflow: hidden; /* Ensure inner content stays within rounded corners */
    position: relative; /* For positioning the label */
}

.custom-progress {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, #4caf50, #81c784); /* Gradient for a modern look */
    border-radius: 10px; /* Match the outer border radius */
    transition: width 0.4s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white; /* Text color for the label */
    font-weight: bold; /* Bold text for better readability */
    position: relative; /* For positioning the label */
}


.scenario {
    border: 2px solid transparent; /* Default border */
    padding: 10px;
    transition: border-color 0.3s ease;
}

/*.scenario-column {
    flex: 2; 
    padding: 20px; 
    border-right: 2px solid #ddd;
}*/

.scenario-column {
    flex: 2; /* Default size */
    padding: 20px;
    border-right: 2px solid #ddd;
    min-width: 200px; /* Prevents collapsing too much */
    max-width: 80%; /* Prevents expanding too much */
    overflow: auto;
}

.resizer {
    width: 5px;
    cursor: ew-resize; /* Cursor indicates resizing */
    background-color: #ddd; /* Visible separator */
    position: relative;
}

.resizer:hover {
    background-color: #aaa;
}


.tag {
    display: inline-flex;
    align-items: center;
    padding: 5px 15px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: bold;
    color: white;
    margin-right: 10px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease;
}

.tag i {
    margin-right: 5px;
}

.tag.basic {
    background: linear-gradient(45deg, #4caf50, #81c784); /* Green gradient for basic */
}

.tag.application {
    background: linear-gradient(45deg, #2196f3, #64b5f6); /* Blue gradient for application */
}

.tag.scenario-based {
    background: linear-gradient(45deg, #ff9800, #ffb74d); /* Orange gradient for scenario-based */
}

.tag:hover {
    transform: scale(1.1); /* Slightly enlarge on hover */
}

.learning-outcome-container {
    max-height: 300px; /* Set a suitable max-height */
    overflow-y: auto; /* Add scroll if content exceeds container size */
    border: 1px solid #ddd;
    padding: 10px;
    background-color: #f9f9f9;
    border-radius: 5px;
}

/* Style for each checkbox-wrapper to align checkboxes and labels */
.checkbox-wrapper {
    display: flex;
    align-items: center;
    margin-bottom: 8px;
}

.checkbox-wrapper label {
    margin-left: 8px; /* Space between checkbox and label */
}

.learning-outcome-checkbox {
    cursor: pointer;
}

.difficulty-selection {
    margin-top: 10px;
}

.difficulty-tags {
    display: flex;
    gap: 10px;
    margin-top: 5px;
}

.tag.selected {
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    transform: scale(1.05);
    border: 2px solid #fff;
    opacity: 0.9;
}

.options-column {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 20px;
    min-width: 200px;
    overflow: auto;
}

.options{
    display: flex;
    flex-direction: column; /* Change to column to stack items vertically */
    gap: 10px; /* Optional: add some space between the options */
    position: static;
    top:124px;
}

.button-option {
    flex: 1;
    display: flex; /* Make the container a flexbox */
    align-items: center; /* Vertically center the child elements */
    padding: 10px 15px;
    border: 1px solid #ccc;
    margin: 5px;
    cursor: pointer;
    border-radius: 5px;
    transition: background-color 0.3s;
}

.button-option input {
    display: none; /* Hide the original radio buttons */
}

.button-option label {
    text-align: center; /* Center align text within the label */
}

.button-option.selected {
    background-color: #9b9c9e; /* Highlight color */
    border-color: #88898a; /* Darker border for selected */
}

/*.button-option.selected:hover {
    background-color: #007bff; 
}
*/

.button-option:hover:not(.selected) {
    background-color: #9b9c9e;
}


.button-option.correct {
    border: 2px solid green;
}

.button-option.incorrect {
    border: 2px solid red;
}

.confirm-button {
    width: 100%; /* Make the button take the full width of its container */
    padding: 10px; /* Add some padding for better appearance */
    background-color: #007bff; /* Background color matching selected option */
    color: #fff; /* Text color */
    border: none; /* Remove default border */
    border-radius: 5px; /* Rounded corners */
    cursor: pointer; /* Pointer cursor on hover */
    font-size: 16px; /* Increase font size */
    margin-top: 15px; /* Space above the button */
    transition: background-color 0.3s; /* Smooth transition for hover effect */
}

.confirmButton:disabled {
    background-color: #ccc; /* Grey background for disabled state */
    color: #666; /* Darker grey text */
    cursor: not-allowed; /* Change cursor to indicate it's not clickable */
    opacity: 0.7; /* Slightly transparent to indicate disabled state */
}

.confirmButton:hover {
    background-color: #0056b3; /* Darker shade on hover */
}

.confirmButton:disabled:hover {
    background-color: #ccc; /* Ensure background remains grey */
    color: #666; /* Ensure text remains grey */
}

#continueButton {
    width: 100%;
    padding: 10px;
    margin-top: 10px;
}

#solutionContainer {
    margin-top: 10px;
    padding: 10px;
}

.done-button {
    padding: 10px 20px;
    margin-left: 20px;
    background-color: #b3b4b5;
    color: Black;
    border: none;
    cursor: pointer;
    font-size: 16px;
}

.done-button:hover {
    background-color: #88898a; /* Darker green on hover */
    color: black;
}


.topics-table {
    border-collapse: collapse;
    border: none;
    width: 100%;
    margin-top: 20px;
    margin: 20px 0; /* Space above and below the table */
    font-family: Arial, sans-serif; /* Use a clean font */
    background-color: White;
}

.topics-table thead {
    color: #333; /* Dark text color */
    border: none;
}

.topics-table th {
    cursor: default;
}


.topics-table th, .topics-table td {
    padding: 12px; /* Padding inside cells */
    text-align: left; /* Align text to the left */
    border: none; 
}

.topics-table tr {
    border-bottom: 1px solid #ddd; /* Optional: adds a bottom border for each row */
    cursor: pointer; /* Changes cursor to pointer for clickable rows */
    background-color: White;
}

.topics-table tr:hover {
    background-color: #f1f1f1; /* Highlight row on hover */
}

.report-summary {
    padding: 20px;
}

.report-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 20px; /* Space between the table and charts */
}

.report-table th, .report-table td {
    border: 1px solid #ddd;
    padding: 8px;
    text-align: left;
}

.report-table th {
    background-color: #f8f8f8;
    font-weight: bold;
}



.chart-container {
    text-align: center;
    width: 100%;
    max-width: 400px; /* Controls maximum width of each chart */
}

.chart-container h3 {
    margin-bottom: 10px;
    font-size: 1.1em;
}

.charts {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    justify-items: center; /* Centers cards within each grid cell */
}

.card {
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    padding: 20px;
    width: 100%;
    max-width: 400px;
    text-align: center;
}

.card h3 {
    margin-bottom: 10px;
    font-size: 1.1em;
}

canvas {
    max-width: 100%;
    height: auto;
}


.custom-practice {
    padding: 20px;
    font-family: Arial, sans-serif;
}

.custom-practice h2 {
    font-size: 1.5em;
    margin-bottom: 20px;
    color: #333;
}

.filter-item {
    display: flex;
    flex-direction: column;
    margin-bottom: 20px;
}

.filter-item label {
    font-weight: bold;
    margin-bottom: 8px;
    color: #333;
}

.practice-filters select, 
.practice-filters input[type="text"], 
.practice-filters input[type="number"] {
    padding: 8px;
    font-size: 1em;
    border: 1px solid #ccc;
    border-radius: 5px;
    background-color: #fff;
    box-sizing: border-box;
}

.difficulty-selection {
    grid-column: span 2; /* Full-width for the difficulty selection */
}

.difficulty-tags {
    display: flex;
    gap: 10px;
}

.tag.selected {
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
    transform: scale(1.1);
    border: 2px solid #fff;
}

#difficulty-tags .tag:hover {
    transform: scale(1.05);
}

#topic-select {
    height: auto;            /* Allows the field to grow if needed */
    min-height: 120px;       /* Ensures a minimum height to display multiple options */
    width: 100%;             /* Makes the field take up the full width of the container */
    padding: 8px;
    font-size: 1em;
    border: 1px solid #ccc;
    border-radius: 5px;
    background-color: #fff;
    box-sizing: border-box;
    overflow-y: auto;        /* Adds a vertical scrollbar if options exceed visible area */
    appearance: none;        /* Removes native styling in most browsers */
    -webkit-appearance: none; /* Removes arrow in Safari */
    -moz-appearance: none;    /* Removes arrow in Firefox */
    background-image: none;
}

@media (max-width: 768px) {
    .practice-filters {
        grid-template-columns: 1fr; /* Stack items on smaller screens */
    }
}

#start-practice-session {
    display: inline-block;
    padding: 12px 20px;
    font-size: 1.1em;
    font-weight: bold;
    color: #fff;
    background: linear-gradient(45deg, #0073e6, #005bb5); /* Gradient background */
    border: none;
    border-radius: 25px; /* Rounded corners */
    cursor: pointer;
    transition: background 0.3s ease, transform 0.2s ease; /* Smooth transitions */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* Shadow for depth */
    text-align: center;
    text-decoration: none;
}

#start-practice-session:hover {
    background: linear-gradient(45deg, #005bb5, #004494); /* Darker gradient on hover */
    transform: translateY(-2px); /* Slight lift effect */
}

#start-practice-session:active {
    transform: translateY(1px); /* Slight press-down effect on click */
}

/* Styling for the Multi-Select Control */
.multi-select-control {
    display: flex;
    flex-direction: column;
    max-height: 200px; /* Limits height; scrolls if items exceed this height */
    overflow-y: auto; /* Adds vertical scrolling when needed */
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 5px;
    background-color: #fff;
}

.multi-select-item {
    display: flex;
    align-items: center;
    padding: 5px 0;
    font-size: 0.9em;
}

.multi-select-item input[type="checkbox"] {
    margin-right: 8px;
    cursor: pointer;
}

.multi-select-control::-webkit-scrollbar {
    width: 8px;
}

.multi-select-control::-webkit-scrollbar-thumb {
    background-color: #ccc;
    border-radius: 4px;
}





/*styles for the contact page */
.error {
    border: 2px solid red;
}

.success-text {
    color: green;
}

.error-text {
    color: red;
}

#form_message {
    margin-top: 10px;
}


input.error, textarea.error {
    border: 2px solid red;
}


/*styles for the tabs in dashboard page */
.dashboard-tabs {
    margin-top: 20px;
}

.tab-list {
    display: flex;
    list-style-type: none;
    padding: 0;
    margin: 0;
    border-bottom: 2px solid #ccc;
}

.tab-item {
    padding: 10px 20px;
    cursor: pointer;
    border: 1px solid #ccc;
    border-bottom: none;
    background-color: #f9f9f9;
    margin-right: 5px;
}

.tab-item.active {
    background-color: #fff;
    border-top: 2px solid #0073aa;
}

.tab-content {
    display: none;
    padding: 20px;
    border: 1px solid #ccc;
    border-top: none;
    background-color: White;
}

.tab-content.active {
    display: block;
}



input.fa::placeholder {
    font-family: 'Font Awesome 5 Free';
    font-weight: 400;
}


.login-separator {
    text-align: center;
    margin: 1em 0;
    position: relative;
  }

.login-separator::before,
.login-separator::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 40%;
    height: 1px;
    background-color: #ccc;
  }

.login-separator::before {
    left: 0;
  }

.login-separator::after {
    right: 0;
  }

.login-separator span {
    background-color: #fff;
    padding: 0 10px;
    color: #666;
}


.question-error {
    border: 1px solid #cb7d75;
    background-color: #f8e7e6;
}

.question-correct {
    border: 1px solid #8addae;
    background-color: #dcffdc;
}


.correct {
    border: 1px solid #8addae;
    background-color: #dcffdc;
}
.incorrect {
    border: 1px solid #cb7d75;
    background-color: #f8e7e6;
}

.options-div {
    display: flex;
    flex-direction: column;
}


.vertical {
  display: flex;
  flex-direction: column;
}

.horizontal {
  display: flex;
  flex-direction: row;
}

.vertical-tabs {
  flex: 1;
  max-width: 20%;
}

.vertical-tabs-content {
  flex: 4;
}

.admin-controls {
    margin-bottom: 10px;
    display: flex;
    flex-direction: column;
}

.editable-content {
    padding: 10px;
    border: 1px solid #ccc;
    background-color: #f9f9f9;
}

.editable-content.editable-active {
    border-color: #0073aa;
    background-color: #fff;
}

.save-button-admin {
    margin-left: 10px;
    background-color: #0073aa;
    color: #fff;
    border: none;
    padding: 5px 10px;
    cursor: pointer;
}

.save-button-admin:hover {
    background-color: #005177;
}




/*This is from Global CSS , needs cleanup */
/*needs to be removed once done
#wpadminbar {
    display: none;
}*/

.site-header {
	position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background-color: #fff; /* Change this if needed */
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

body {
    background: #f0f0f0 !important;
}

.site-content {
    padding-top: 100px;
}

/* Grid container for programs */
.program-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: center;
}

.program-card {
    border: 1px solid #ddd;
    border-radius: 15px;
    padding: 20px;
    margin: 15px;
    box-shadow: 0px 6px 15px rgba(0, 0, 0, 0.1);
    background-color: #f9f9f9;
    width: 350px;
    text-align: center;
    transition: transform 0.3s, box-shadow 0.3s;
}

.program-card:hover {
    transform: translateY(-10px);
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.2);
}

.card-header {
    background-color: #007bff; /* Can be customized per category */
    padding: 15px;
    border-radius: 10px 10px 0 0;
    color: #fff;
    font-size: 24px;
    text-transform: uppercase;
}

.card-body {
    margin: 20px 0;
}

.program-dropdown {
    width: 100%;
    padding: 10px;
    border-radius: 5px;
    border: 1px solid #ccc;
    margin-top: 10px;
    font-size: 16px;
}

.coming-soon {
    color: #ff6347;
    font-weight: bold;
    font-size: 18px;
    margin: 20px 0;
}

.card-footer {
    margin-top: 20px;
}

.buy-now-btn {
    background-color: #28a745;
    color: #fff;
    border: none;
    padding: 12px 24px;
    border-radius: 25px;
    cursor: pointer;
    font-size: 16px;
    transition: background-color 0.3s;
}

.buy-now-btn:hover {
    background-color: #218838;
}

.program-price {
    font-size: 1.75em; /* Slightly larger for prominence */
    font-weight: 600; /* Semi-bold for emphasis */
    color: #333; /* Neutral, stylish color */
    text-align: center; /* Centered within the card */
    margin: 10px 0; /* Spacing around the price */
}

.currency-symbol {
    margin-right: 5px; /* Space between the symbol and price */
    font-size: 0.9em; /* Slightly smaller than the price */
    vertical-align: middle; /* Aligns with the number */
}

.feature-list {
    list-style: none;
    padding: 0;
    margin: 15px 0;
}

.feature-item {
    display: flex;
    align-items: center;
    font-size: 0.9em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%; /* Ensure the item width matches the container */
}

.available-feature i {
    color: green;
    margin-right: 5px;
}

.unavailable-feature i {
    color: red;
    margin-right: 5px;
}

/* Modal styles */
.modal {
  display: none; /* Hidden by default */
  position: fixed;
  z-index: 1;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
}

.modal-content {
  background-color: #fff;
  margin: 15% auto;
  padding: 20px;
  border-radius: 8px;
  width: 80%;
  max-width: 400px;
  text-align: center;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

.close {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
  cursor: pointer;
}

.close:hover,
.close:focus {
  color: #000;
  text-decoration: none;
}

button#confirmButton {
  background-color: #007bff;
  color: white;
  border: none;
  padding: 10px 20px;
  border-radius: 4px;
  cursor: pointer;
  margin-top: 20px;
}

button#confirmButton:hover {
  background-color: #0056b3;
}


/*Account page styling */
.personal-data {
    margin: 20px;
}

.form-group {
    margin-bottom: 15px;
}

.form-group label {
    display: block;
    font-weight: bold;
}

.form-group input,
.form-group textarea {
    width: 100%;
    padding: 8px;
    margin-top: 5px;
    box-sizing: border-box;
}

.save-button {
    padding: 10px 20px;
    background-color: #0073aa;
    color: #fff;
    border: none;
    cursor: pointer;
}

.save-button:hover {
    background-color: #005177;
}

.success-message {
    color: green;
    margin-top: 15px;
}

.error-message {
    color: red;
    margin-top: 15px;
}

input[readonly],
textarea[readonly] {
    background-color: #f0f0f0; /* Light grey background */
    color: #555; /* Darker text color */
    border: 1px solid #ccc; /* Subtle border color */
    cursor: not-allowed; /* Change cursor to indicate non-editable */
    pointer-events: none; /* Prevent text selection */
}

/* Remove focus outline */
input[readonly]:focus,
textarea[readonly]:focus {
    outline: none;
}

/* Optional tooltip */
input[readonly]:hover::after,
textarea[readonly]:hover::after {
    content: "This field is pre-filled and cannot be edited";
    position: absolute;
    top: 100%;
    left: 0;
    width: 200px;
    background-color: #333;
    color: #fff;
    padding: 5px;
    border-radius: 3px;
    font-size: 12px;
    text-align: center;
    margin-top: 5px;
    z-index: 10;
}



.favorite-btn {
    background: none !important;
    border: none;
    cursor: pointer;
    font-size: 1.5em;
    color: #ccc; /* Default color for unfavorited */
    padding: 0;
}

.favorite-btn:hover {
    color: #ffcc00; /* Gold color on hover */
}

.favorite-btn i {
    transition: color 0.3s ease;
}

.favorite-btn .fas {
    color: gold; /* Color for favorited */
}



.no-questions-container {
    text-align: center;
    padding: 20px;
    /*background: linear-gradient(135deg, #ff9a9e, #fad0c4);*/
    
    border-radius: 10px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    margin: 40px auto;
    max-width: 600px;
    font-family: 'Arial', sans-serif;
}

.no-questions-text {
    font-size: 1.5rem;
    color: #333;
    margin-bottom: 20px;
    line-height: 1.5;
}

.reset-questions-button {
    padding: 10px 20px;
    font-size: 1rem;
    background-color: #ff6f61;
    color: white;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    transition: background-color 0.3s ease, transform 0.2s ease;
}

.reset-questions-button:hover {
    background-color: #e0554c;
    transform: scale(1.05);
}

.reset-questions-button:active {
    transform: scale(1);
    background-color: #c44236;
}

/* Tree View Container */
.tree-view {
    font-family: Arial, sans-serif;
    margin-left: 20px;
    width: 100%; /* Full width */
    /*max-width: 800px; /* Adjust as needed */
}

/* Tree Name Styling */
.tree-name {
    font-weight: bold;
    white-space: nowrap; /* Prevent text wrapping */
    overflow: hidden; /* Hide overflow */
    text-overflow: ellipsis; /* Add ellipsis for long text */
    max-width: 200px; /* Limit width to prevent overflow */
    position: relative; /* Needed for pseudo-element */
    cursor: pointer; /* Indicate interactivity */
}

/* Show Full Name on Hover */
.tree-name:hover::after {
    content: attr(data-full-name); /* Use data attribute for full name */
    position: absolute;
    top: 100%; /* Position below the truncated text */
    left: 0;
    background-color: #333; /* Tooltip background */
    color: #fff; /* Tooltip text color */
    padding: 5px; /* Padding for tooltip */
    border-radius: 4px; /* Rounded corners */
    font-size: 12px; /* Smaller font size for tooltip */
    white-space: normal; /* Allow text wrapping in tooltip */
    z-index: 10; /* Ensure tooltip appears above other elements */
    max-width: 300px; /* Limit tooltip width */
    word-wrap: break-word; /* Break long words if necessary */
}

/* Card Styling for Parent Nodes */
.card {
    background-color: #f9f9f9; /* Greyish background */
    border-radius: 8px; /* Rounded corners */
    padding: 15px; /* Increased padding */
    margin-bottom: 15px; /* Increased spacing between cards */
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* Subtle shadow */
    max-width: 100%;
}

/* Tree Line Styling */
.tree-line {
    display: flex;
    align-items: center;
    padding: 10px 0; /* Increased vertical padding */
    justify-content: space-between;
}

/* Expand/Collapse Arrow */
.toggle-icon {
    margin-right: 15px; /* Increased spacing */
    font-size: 16px; /* Larger arrow icon */
    cursor: pointer;
    color: #0073aa;
}

/* Circular Progress Indicator */
.progress-circle {
    position: relative;
    width: 40px; /* Increased circle size */
    height: 40px; /* Increased circle size */
    border-radius: 50%; /* Make it a circle */
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 15px; /* Increased spacing */
}

/* Background Layer (Stroke with Mask) */
.progress-circle::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: conic-gradient(
        #0073aa calc(var(--percentage) * 3.6deg), /* Filled portion (blue) */
        #e0e0e0 0deg /* Empty portion (gray) */
    );
    -webkit-mask: radial-gradient(transparent 50%, #fff 51%);
    mask: radial-gradient(transparent 50%, #fff 51%);
    z-index: 1; /* Ensure the stroke is below the text */
    animation: fill-progress 1s ease-in-out; /* Add animation */
}

/* Inner Circle (Background Color) */
.progress-circle::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: calc(100% - 12px); /* Slightly smaller than the outer circle */
    height: calc(100% - 12px);
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: #fff; /* Inner circle color */
    z-index: 2; /* Ensure the inner circle is above the stroke */
}

/* Inner Text (Percentage Value) */
.circle-value {
    position: relative; /* Keep the text outside the pseudo-elements */
    text-align: center;
    font-size: 12px; /* Larger font size for percentage */
    font-weight: bold;
    color: #333;
    z-index: 3; /* Ensure text appears above everything */
}

.circle-value span {
    font-size: 9px; /* Larger font for "%" symbol */
    display: block;
}

/* Sub-item Separator */
.tree-child {
    border-top: 1px solid #ddd; /* Separator line */
    padding: 10px 0; /* Increased vertical padding */
    margin-left: 40px;
}

/* Smooth Expand/Collapse Animation */
.tree-children {
    overflow: hidden;
    max-height: 0; /* Start collapsed */
    opacity: 0;
    transition: max-height 0.3s ease, opacity 0.3s ease;
}

.tree-children.expanded {
    max-height: none; /* Allow dynamic height */
    opacity: 1;
    display: block !important;
}

/* Animation for Circle Progress */
@keyframes fill-progress {
    from {
        --percentage: 0; /* Start at 0% */
    }
    to {
        --percentage: var(--percentage); /* End at the actual percentage */
    }
}

/* Select All Container */
.select-all-container {
    margin-bottom: 15px;
    font-weight: bold;
}

/* Align the Select All label with the tree view */
.select-all-container label {
    display: flex;
    align-items: center;
    gap: 5px; /* Space between checkbox and text */
}


#report canvas,
#detailed-report canvas {
    max-height: 400px;
    width: 100% !important;
}

#detailed-report {
    height: 450px;
    position: relative;
    margin-top: 20px;
}

#performance-chart {
    transition: opacity 0.4s ease-in-out;
    opacity: 1;
}

.fade-out {
    opacity: 0;
}

.fade-in {
    opacity: 1;
}

.chart-mode {
    margin-bottom: 10px;
    font-size: 16px;
    font-weight: 600;
    color: #555;
    display: flex;
    align-items: center;
    gap: 8px;
}

.chart-tab {
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 6px;
    transition: background-color 0.3s ease;
}

.chart-tab:hover {
    background-color: #f0f0f0;
}

.chart-tab.active {
    color: #000;
    background-color: #e0e0e0;
}

.los-name {
    display: inline-block;
    max-width: 200px; /* Set a max width depending on your layout */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    position: relative;
}

.los-name:hover::after {
    content: attr(data-fulltext); /* Show the full text */
    position: absolute;
    top: 100%;
    left: 0;
    white-space: normal;
    background-color: rgba(0, 0, 0, 0.8);
    color: white;
    padding: 5px;
    border-radius: 3px;
    z-index: 10;
    max-width: 300px; /* Adjust as per the layout */
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}



.form-field {
  position: relative;
  width: 100%;
  max-width: 600px;   /* or whatever you want */
  margin-bottom: 1rem;
}

.form-field input {
  width: 100%;
  padding: 10px 40px 10px 10px;  /* space for icon on right */
  box-sizing: border-box;
  font-size: 1rem;
  border: 1px solid #ccc;
  border-radius: 4px;
}

.form-field .toggle-password {
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
  cursor: pointer;
  color: #888;
  font-size: 1rem;
}


