/* public/css/custom.css */

:root {
    --bs-primary-rgb: 13, 138, 188; /* Example: A nice blue for primary elements */
    --bs-primary: rgb(var(--bs-primary-rgb));
    --bs-warning-rgb: 253, 183, 20; /* BrightWallet yellow/orange */
    --bs-warning: rgb(var(--bs-warning-rgb));
    --bs-font-sans-serif: 'Inter', sans-serif;
    --bs-body-color: #343a40; /* Darker gray for body text */
    --bs-body-bg: #f8f9fa; /* Light gray page background */
    --bs-border-radius: 0.5rem; /* Default border radius for cards, etc. */
    --bs-card-border-width: 0; /* Remove default card borders */
    --bs-card-cap-bg: transparent; /* Cleaner card headers */
    --bs-card-cap-padding-y: 1rem;
    --bs-card-cap-padding-x: 1.25rem;
}

.app-body {
    font-family: var(--bs-font-sans-serif);
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.app-content-wrapper {
    flex-grow: 1;
}

/* --- Top Navigation --- */
.app-topnav {
    background-color: #ffffff;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
    padding-top: 0.6rem;
    padding-bottom: 0.6rem;
}
.app-topnav .navbar-brand {
    color: var(--bs-body-color);
    font-size: 1.25rem;
}
.app-topnav .nav-link {
    color: #6c757d; /* Muted color for icons */
    position: relative;
}
.app-topnav .nav-link:hover {
    color: var(--bs-body-color);
}
.app-topnav .notification-badge {
    font-size: 0.55em;
    padding: 0.25em 0.45em;
    margin-top: 0.3rem;
    margin-left: -0.4rem;
}
.app-topnav .avatar-img {
    width: 36px;
    height: 36px;
    border-radius: 50%;
}
.app-topnav .dropdown-menu .dropdown-header {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}


/* --- Cards --- */
.card {
    box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.06);
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}
.app-summary-card:hover,
.card.lift-hover:hover { /* For general card lift effect */
    transform: translateY(-4px);
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.1);
}
.card-header-title {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--bs-body-color);
}
.card-footer {
    background-color: #fcfcfc; /* Slightly off-white footer */
    border-top: 1px solid #f0f0f0;
}

/* --- Icon Circles --- */
.icon-circle { /* For summary cards */
    height: 48px;
    width: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.icon-circle i[data-feather] {
    width: 22px;
    height: 22px;
}

.icon-circle-sm { /* For lists, notifications */
    height: 36px;
    width: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.feather-sm, .icon-circle-sm i[data-feather] { /* Smaller feather icons */
    width: 16px;
    height: 16px;
}
.feather-xs {
    width: 12px;
    height: 12px;
}


/* Light Backgrounds & Text Colors for Icons/Indicators */
.bg-light-primary { background-color: #e7f1ff; }
.text-primary { color: #0d6efd; } /* Default Bootstrap primary */
.bg-light-success { background-color: #e6f7f0; }
.text-success { color: #198754; } /* Default Bootstrap success */
.bg-light-danger { background-color: #fdecea; }
.text-danger { color: #dc3545; } /* Default Bootstrap danger */
.bg-light-warning { background-color: #fff8e1; }
.text-warning { color: #ffc107; } /* Default Bootstrap warning */
.bg-light-info { background-color: #e3f8fa; }
.text-info { color: #0dcaf0; } /* Default Bootstrap info */
.bg-light-orange { background-color: #fff0e0; }
.text-orange { color: #fd7e14; }
.bg-light-teal { background-color: #e0f7fa; }
.text-teal { color: #20c997; } /* Bootstrap teal */


/* --- List Group --- */
.list-group-item {
    border-left: 0;
    border-right: 0;
}
.list-group-item:first-child {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    border-top: 0;
}
.list-group-item:last-child {
     /* Handled by card-footer or no border if no footer */
}
.list-group-item-action:hover, .list-group-item-action:focus {
    background-color: #f8f9fa;
}


/* --- FAB (Floating Action Button) --- */
.app-fab {
    position: fixed;
    bottom: 25px;
    right: 25px;
    z-index: 1030; /* Below modals but above most content */
}
.app-fab .btn {
    padding-top: 0.8rem;
    padding-bottom: 0.8rem;
    font-weight: 500;
}
.app-fab .btn i[data-feather] {
    width: 20px;
    height: 20px;
    margin-bottom: 2px;
}

/* --- Footer --- */
.app-footer {
    background-color: #ffffff;
    border-top: 1px solid #dee2e6;
    font-size: 0.875rem;
}
.app-footer a.text-muted:hover {
    color: var(--bs-body-color) !important;
    text-decoration: underline;
}

/* Darker text for emphasis on light backgrounds */
.text-dark-emphasis {
    color: #343a40 !important; /* Similar to --bs-body-color for stronger text */
}

/* Ensure Feather Icons are vertically aligned nicely with text */
i[data-feather] {
    vertical-align: middle;
    stroke-width: 2.25; /* Slightly bolder feather icons */
}

/* ... (Keep all existing styles from the previous version) ... */

/* --- Sidebar (Offcanvas) --- */
.app-sidebar {
    width: 260px; /* Adjust width as needed */
    background-color: #ffffff; /* Sidebar background */
}
.app-sidebar .offcanvas-header {
    padding: 1rem 1.25rem;
}
.app-sidebar .offcanvas-title {
    color: var(--bs-body-color);
}
.app-sidebar-nav .nav-link {
    padding: 0.75rem 1.25rem;
    color: #5a5a5a; /* Sidebar link color */
    font-weight: 500;
    display: flex;
    align-items: center;
    border-left: 3px solid transparent;
}
.app-sidebar-nav .nav-link i[data-feather] {
    width: 18px;
    height: 18px;
    stroke-width: 2.25;
    margin-right: 0.75rem !important; /* Ensure feather icon spacing */
}
.app-sidebar-nav .nav-link:hover {
    background-color: #f8f9fa; /* Light hover */
    color: var(--bs-primary);
    border-left-color: var(--bs-primary);
}
.app-sidebar-nav .nav-link.active {
    color: var(--bs-primary);
    font-weight: 600;
    border-left-color: var(--bs-primary);
    background-color: #e7f1ff; /* Light primary background for active */
}
.app-sidebar-nav .sidebar-heading {
    font-size: 0.75rem;
    font-weight: 600;
    color: #88909b;
}
.app-sidebar .offcanvas-footer {
    background-color: #f8f9fa;
}


/* --- Chat Widget --- */
.chat-widget {
    position: fixed;
    bottom: 20px;
    right: 20px;
    width: 350px;
    max-width: 90%;
    z-index: 1040; /* Above FAB, below modals */
    background-color: #fff;
    border-radius: var(--bs-border-radius);
    overflow: hidden; /* To clip corners of children */
    transition: all 0.3s ease-in-out;
}
.chat-widget.closed {
    /* Styles when chat is just the header */
    /* bottom: 20px; */ /* Already set */
}
.chat-widget-header {
    padding: 0.75rem 1rem;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.chat-widget-header h6 {
    font-size: 0.95rem;
}
.chat-widget-header .btn-close {
    filter: brightness(0) invert(1); /* Make close button white on dark header */
    opacity: 0.8;
}
.chat-widget-header .btn-close:hover {
    opacity: 1;
}

.chat-widget-body {
    height: 300px; /* Adjust as needed */
    padding: 1rem;
    overflow-y: auto;
    display: flex; /* Changed to flex */
    flex-direction: column; /* Stack messages vertically */
    background-color: #f8f9fa; /* Light background for chat messages area */
}
.chat-messages {
    display: flex;
    flex-direction: column;
    gap: 0.75rem; /* Space between messages */
}
.chat-message {
    max-width: 85%;
    padding: 0.5rem 0.85rem;
    border-radius: 0.75rem;
    font-size: 0.875rem;
    line-height: 1.5;
}
.chat-message.user {
    background-color: var(--bs-primary);
    color: #fff;
    align-self: flex-end;
    border-bottom-right-radius: 0.2rem; /* Tail effect */
}
.chat-message.bot {
    background-color: #e9ecef;
    color: var(--bs-body-color);
    align-self: flex-start;
    border-bottom-left-radius: 0.2rem; /* Tail effect */
}
.chat-message p {
    margin-bottom: 0;
}

.chat-widget-footer {
    padding: 0.75rem;
    border-top: 1px solid #dee2e6;
    background-color: #fff;
}
.chat-widget-footer .form-control {
    border-right: 0;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}
.chat-widget-footer .form-control:focus {
    box-shadow: none;
    border-color: var(--bs-warning);
}
.chat-widget-footer .btn {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}
.chat-widget-footer .btn i[data-feather] {
    width: 18px;
    height: 18px;
}

/* Remove FAB if chat widget is present */
/* .app-fab {
    display: none;
} */

/* Adjust main content padding if chat widget is tall and fixed */
.app-body {
    /* padding-bottom: 80px; /* Example: if chat widget is always visible and tall */
}