:root {
    --ethic-color: #06573c;
    --ethic-color-light: rgba(6,87,60, 0.15);
    --ethic-color-lighter: rgba(6,87,60, 0.08);
    --ethic-color-dark: rgba(6,87,60, 1.2);
}

.ethic-color {color: #06573c;}
.ethic-color-light {color: rgba(6,87,60, 0.15);}
.ethic-color-dark {color: rgba(6,87,60, 1.2);}
.ethic-color-alt {color: #7fa092;}

.ethic-bg {background-color: #06573c;}
.ethic-bg-dark {background-color: rgba(6,87,60, 1.2);}
.ethic-bg-light {background-color: rgba(6,87,60, 0.15);}
.ethic-bg-alt {background-color: #7fa092;}

.ethic-br {border-color: #06573C;}
.ethic-brl {border-left-color: #06573C !important;}


*:not(i), .montserrat {
    font-family: "Montserrat", sans-serif !important;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;

    -webkit-font-smoothing: antialiased;   /* Chrome, Safari */
    -moz-osx-font-smoothing: grayscale;    /* Firefox on macOS */
    text-rendering: optimizeLegibility;
}


/**/

.sw-navbar-link {
    position: relative;
    transition: color 0.3s;
}

.sw-navbar-link.active::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    border-radius: 5px;
    background-color: var(--ethic-color);
    transform: scaleX(1);
    transform-origin: center;
    transition: transform 0.3s ease;
}

.sw-navbar-link::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: var(--ethic-color);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.3s ease;
}

.sw-navbar-link:hover::after,
.sw-navbar-link.active::after {
    transform: scaleX(1);
}

/*.sw-hero img {
    max-width: 100%;
    height: 400px !important
}*/

.service-icon svg {
    width: 50px;
}

.service-icon {
    display: inline-block !important;
    position: relative !important;
    color: var(--ethic-color);
}
.service-icon:before {
    content: "";
    position: absolute;
    z-index: -1;
    width: 40px;
    height: 40px;
    right: -10px;
    bottom: 0;
    border-radius: 50%;
    background-color: var(--ethic-color-light);
}

.whatsapp-widget {
    position: fixed; bottom: 20px; right: 20px; background-color: #25D366;
    color: white; border-radius: 50%; width: 50px; height: 50px;
    display: flex; align-items: center; justify-content: center;
    text-decoration: none; box-shadow: 0 2px 5px rgba(0,0,0,0.3); z-index: 1000;
}

.sw-panel-footer {border-top-color: transparent !important;}
.read-more-icon i {
    position: absolute;
    -webkit-transition: 0.3s all ease-in-out;
    transition: 0.3s all ease-in-out;
}
.read-more-icon i.icon-1 {
    opacity: 1;
    visibility: visible;
    top: 50%;
    left: 50%;
    --webkit-transform: translate(-50%, -50%) rotate(-45deg);
    transform: translate(-50%, -50%) rotate(-45deg);
}
.read-more-icon i.icon-2 {
    opacity: 0;
    visibility: hidden;
    top: 80%;
    left: 20%;
    --webkit-transform: translate(-50%, -50%) rotate(-45deg);
    transform: translate(-50%, -50%) rotate(-45deg);
}

.read-more-link {color: var(--ethic-color)}
.read-more-link:hover .read-more-icon .icon-1 {
    opacity: 0;
    visibility: hidden;
    top: 20%;
    left: 80%;
    --webkit-transform: translate(-50%, -50%) rotate(-45deg);
    transform: translate(-50%, -50%) rotate(-45deg);
}
.read-more-link:hover .read-more-icon .icon-2 {
    opacity: 1;
    visibility: visible;
    top: 50%;
    left: 50%;
    --webkit-transform: translate(-50%, -50%) rotate(-45deg);
    transform: translate(-50%, -50%) rotate(-45deg);
}

footer ul {list-style: none;}
footer a {text-decoration: none;}


@media (min-width: 768px) {
    .custom-order-md-2 {
        order: 2;
    }
}


.app {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.sw-sidebar-left-push {flex: 1;}

.login-bg {
    height: 100vh;
    background-image: linear-gradient(rgba(0,0,0,.35), rgba(0,0,0,.25)), url('../images/bgf.jpg');
    background-size: contain;
    overflow-y: hidden;
}

.sw-dropdown-link {
    color: var(--ethic-color);
}

.sw-dropdown-link:hover {
    background-color: var(--ethic-color-lighter);
}

.font-12 {font-size: 12px !important}
.phone-cascade {max-height: 20rem !important; overflow-y: auto}
.repository-sidebar, .profile-sidebar {
    height: 100%;
}

.google-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: .5rem .75rem;
    border: 1px solid #dcdcdc;
    border-radius: 4px;
    background-color: white;
    color: #5f6368;
    font-size: 14px;
    cursor: pointer;
    transition: background-color 0.2s ease-in-out;
    text-decoration: none;
    box-sizing: border-box;
}

.google-btn:hover {
    background-color: #f7f7f7;
}

.google-icon {
    width: 20px;
    height: 20px;
    margin-right: 12px;
}


.user-status {
    display: flex;
    align-items: center;
    font-family: "Montserrat", sans-serif;
    font-size: 12px;

}

.status-indicator {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-right: 4px;
}

.status-text {text-transform: capitalize;}

/* Online status */
.user-status.online .status-indicator {
    background-color: #28a745; /* Green */
}
.user-status.online .status-text {
    color: #28a745;
}

/* Offline status */
.user-status.offline .status-indicator {
    background-color: #dc3545; /* Red */
}
.user-status.offline .status-text {
    color: #dc3545;
}


.sw-input-switch-outline:checked:before {
    background-color: var(--ethic-color) !important;
}


.password-strength {
    height: 10px;
    width: 100%;
    margin-top: 0;
    background: #eee;
    border-radius: 4px;
    overflow: hidden;
}

.strength-bar {
    height: 100%;
    width: 0;
    transition: width 0.3s;
}

.weak {
    background: red;
    width: 33%;
}

.medium {
    background: orange;
    width: 66%;
}

.strong {
    background: green;
    width: 100%;
}

.password-hint {
    font-size: 13px;
    color: #555;
    margin-top: 10px;
    margin-bottom: 0;
}

.password-hint ul {
    padding-left: 20px;
    margin-top: 0;
}


/* Radial Progress Styles */
.radial-progress {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: conic-gradient(var(--ethic-color) var(--progress), #e6e6e6 0deg);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.radial-progress::before {
    content: '';
    position: absolute;
    width: 60px;
    height: 60px;
    background-color: #fff;
    border-radius: 50%;
}

.radial-progress span {
    position: absolute;
    font-size: 0.8rem;
    color: var(--ethic-color);
}


.timer { font-size: 2rem; margin-bottom: 1rem; }
.tracker-btn { padding: 0.6rem 1rem; margin-right: 0.5rem; }
.admin-wrapper-box {min-height: 305px;}
.admin-shared-wrapper-box {min-height: 210px;}

/**/



/* style.css */

/* Global styles for the container */
/*#toast-container {
    position: fixed;
    top: 10px;
    right: 10px;
    z-index: 1090;
}

!* Base style for a single toast message *!
.toast {
    padding: .5rem .75rem;
    font-size: 0.8rem !important;
    margin-bottom: 10px;
    border-radius: 3px;
    !*color: white;*!
    opacity: 0; !* Start invisible for the fade-in effect *!
    transition: opacity 0.5s, transform 0.5s;
    transform: translateX(100%); !* Start off-screen for slide-in effect *!
    min-width: 400px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    background-color: white;

    display: flex;
    !* 2. Space out the children (message content and close button) *!
    justify-content: space-between;
    align-items: center;
}

!* Specific styling for success alert *!
.toast.success {
    !*background-color: #4CAF50; !* Green *!*!
    border-left: 3px solid #388E3C;
}

!* Specific styling for error alert *!
.toast.error {
    border-left: 3px solid #D32F2F;
}

!* State for showing the toast (fade/slide in) *!
.toast.show {
    opacity: 1;
    transform: translateX(0);
}

!* New: Styling for the close button *!
.toast-close {
    !* Style for the 'X' character *!
    font-size: 30px;


    cursor: pointer;
    line-height: 1;
    opacity: 0.8; !* Slightly translucent *!
    transition: opacity 0.2s;
}

!* Hover effect for the close button *!
.toast-close:hover {
    opacity: 1; !* Fully opaque on hover *!
}*/


#toast-container {
    position: fixed;
    top: 10px;
    right: 10px;
    z-index: 1090;
}

/* Base style for a single toast message */
.toast {
    /* Set position to relative so the absolute progress bar can be positioned correctly */
    position: relative;
    padding: .75rem 1rem;
    font-size: 0.8rem !important;
    margin-bottom: 1rem;
    background-clip: padding-box;;
    border-radius: 3px;
    opacity: 0;
    transition: opacity 0.5s, transform 0.5s;
    transform: translateX(100%);
    min-width: 400px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    background-color: white;
    overflow: hidden; /* Important to contain the absolutely positioned indicator */

    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* --- NEW: Toast Indicator Styles --- */

/* The actual bar that shrinks */
.toast-indicator {
    /* The duration is pulled from the style property set in JS (5s) */
    --toast-duration: 5s;

    position: absolute;
    top: 0;
    left: 0;
    height: 2px; /* Thickness of the indicator bar */
    width: 100%; /* Start at 100% width */

    /* Animation: Name, Duration (from JS var), Timing, Fill Mode */
    animation: flow-indicator var(--toast-duration) linear forwards;
}

/* Set the specific color for success */
.toast.success .toast-indicator {
    background-color: #388E3C; /* Dark Green */
}

/* Set the specific color for error */
.toast.error .toast-indicator {
    background-color: #D32F2F; /* Dark Red */
}

/* Define the shrinking animation */
@keyframes flow-indicator {
    from {
        width: 100%; /* Start full */
    }
    to {
        width: 0%; /* End empty */
    }
}


/* State for showing the toast (fade/slide in) */
.toast.show {
    opacity: 1;
    transform: translateX(0);
}



/* New: Styling for the close button */
.toast-close {
    font-size: 25px;
    cursor: pointer;
    line-height: 1;
    opacity: 0.7;
    transition: opacity 0.2s;
}

/* Hover effect for the close button */
.toast-close:hover {
    opacity: 1;
}

/**/
.confirmation-container {
    background: rgba(255, 255, 255, 0.1);
    padding: 40px 60px;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
    max-width: 400px;
}


/* Loader spinner */
.confirmation-loader {
    border: 5px solid rgba(255, 255, 255, 0.3);
    border-top: 5px solid #fff;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    margin: 0 auto 10px;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/**/

.search-field {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 100%;
    max-width: 500px;
    list-style: none;
    background: #fff;
    border-top: none;
    z-index: 2500;
    box-shadow: 0 8px 12px rgba(0, 0, 0, 0.1);
    max-height: 325px;
    overflow-y: auto;
}

.search-field-hide {display: none;}

.search-field ul {
    margin: 0;
    padding: 0;
}

.search-field li {
    padding: 10px 15px;
    border-bottom: 1px solid #f1f1f1;
    font-size: 0.75rem;
}

.search-field li:not(.search-field-list-header) {
    cursor: pointer;
}


.search-field li a {
    text-decoration: none;
    color: #333;
}

.search-field li:not(.search-field-list-header):hover {background-color: #f9f9f9;}

/**/
.notification-indicator {
    margin-top: -10px;
    margin-left: -10px;
    border-width: 3px;
    border-style: solid;
    border-color: #F9fAFB;
    background-color: #FFA500;
}