/* Dark Mode Theme Variables and Styles */

/* Light theme (default) */
:root {
    --body-bg: #ffffff;
    --body-color: #212529;
    --card-bg: #ffffff;
    --card-border: #dee2e6;
    --sidebar-bg: #f8f9fa;
    --navbar-bg: #0d6efd;
    --navbar-color: #ffffff;
    --border-color: #dee2e6;
    --input-bg: #ffffff;
    --input-border: #ced4da;
    --input-color: #212529;
    --dropdown-bg: #ffffff;
    --dropdown-link-hover-bg: #f8f9fa;
    --alert-bg-success: #d1e7dd;
    --alert-color-success: #0f5132;
    --alert-bg-danger: #f8d7da;
    --alert-color-danger: #842029;
    --alert-bg-info: #cff4fc;
    --alert-color-info: #055160;
    --alert-bg-warning: #fff3cd;
    --alert-color-warning: #664d03;
    --modal-bg: #ffffff;
    --modal-header-border: #dee2e6;
    --table-bg: transparent;
    --table-striped-bg: rgba(0, 0, 0, 0.05);
    --table-hover-bg: rgba(0, 0, 0, 0.075);
    --badge-bg-secondary: #6c757d;
    --note-card-bg: #f8f9fa;
    --note-border-color: #6c757d;
    --star-empty-color: #dee2e6;
    --star-filled-color: #ffc107;
    --star-hover-color: #ffca2c;
    --quill-border: #dee2e6;
    --text-muted: #6c757d;
}

/* Dark theme */
[data-theme="dark"] {
    --body-bg: #1a1a1a;
    --body-color: #e9ecef;
    --card-bg: #2d2d2d;
    --card-border: #404040;
    --sidebar-bg: #212529;
    --navbar-bg: #0a4a99;
    --navbar-color: #ffffff;
    --border-color: #404040;
    --input-bg: #2d2d2d;
    --input-border: #404040;
    --input-color: #e9ecef;
    --dropdown-bg: #2d2d2d;
    --dropdown-link-hover-bg: #404040;
    --alert-bg-success: #1a4731;
    --alert-color-success: #a3cfbb;
    --alert-bg-danger: #58151c;
    --alert-color-danger: #ea868f;
    --alert-bg-info: #055160;
    --alert-color-info: #6edff6;
    --alert-bg-warning: #664d03;
    --alert-color-warning: #ffda6a;
    --modal-bg: #2d2d2d;
    --modal-header-border: #404040;
    --table-bg: transparent;
    --table-striped-bg: rgba(255, 255, 255, 0.05);
    --table-hover-bg: rgba(255, 255, 255, 0.075);
    --badge-bg-secondary: #5a6268;
    --note-card-bg: #212529;
    --note-border-color: #5a6268;
    --star-empty-color: #404040;
    --star-filled-color: #ffc107;
    --star-hover-color: #ffca2c;
    --quill-border: #404040;
    --text-muted: #adb5bd;
}

/* Apply theme variables */
body {
    background-color: var(--body-bg);
    color: var(--body-color);
    transition: background-color 0.3s ease, color 0.3s ease;
}

/* Card styling */
.card {
    background-color: var(--card-bg);
    border-color: var(--card-border);
    color: var(--body-color);
}

.card-header,
.card-footer {
    background-color: var(--card-bg);
    border-color: var(--card-border);
}

/* Sidebar */
.sidebar {
    background-color: var(--sidebar-bg);
}

/* Navbar - keep Bootstrap primary colors */
.navbar.navbar-dark {
    background-color: var(--navbar-bg) !important;
}

/* Forms */
.form-control,
.form-select {
    background-color: var(--input-bg);
    border-color: var(--input-border);
    color: var(--input-color);
}

.form-control:focus,
.form-select:focus {
    background-color: var(--input-bg);
    border-color: var(--input-border);
    color: var(--input-color);
}

/* Dropdowns */
.dropdown-menu {
    background-color: var(--dropdown-bg);
    border-color: var(--border-color);
}

.dropdown-item {
    color: var(--body-color);
}

.dropdown-item:hover,
.dropdown-item:focus {
    background-color: var(--dropdown-link-hover-bg);
    color: var(--body-color);
}

.dropdown-divider {
    border-color: var(--border-color);
}

/* Modals */
.modal-content {
    background-color: var(--modal-bg);
    color: var(--body-color);
}

.modal-header,
.modal-footer {
    border-color: var(--modal-header-border);
}

/* Tables */
.table {
    --bs-table-bg: var(--table-bg);
    --bs-table-striped-bg: var(--table-striped-bg);
    --bs-table-hover-bg: var(--table-hover-bg);
    color: var(--body-color);
}

.table > :not(caption) > * > * {
    border-bottom-color: var(--border-color);
}

/* Alerts */
.alert-success {
    background-color: var(--alert-bg-success);
    color: var(--alert-color-success);
    border-color: var(--alert-color-success);
}

.alert-danger {
    background-color: var(--alert-bg-danger);
    color: var(--alert-color-danger);
    border-color: var(--alert-color-danger);
}

.alert-info {
    background-color: var(--alert-bg-info);
    color: var(--alert-color-info);
    border-color: var(--alert-color-info);
}

.alert-warning {
    background-color: var(--alert-bg-warning);
    color: var(--alert-color-warning);
    border-color: var(--alert-color-warning);
}

/* Text colors */
.text-muted {
    color: var(--text-muted) !important;
}

/* Borders */
.border {
    border-color: var(--border-color) !important;
}

hr {
    border-color: var(--border-color);
    opacity: 1;
}

/* Notes styling for dark mode */
[data-theme="dark"] .project-partner-notes .card {
    background-color: var(--note-card-bg);
    border-left-color: var(--note-border-color);
}

[data-theme="dark"] .project-partner-notes .card:hover {
    border-left-color: #adb5bd;
}

/* Star rating colors */
.star-rating .star {
    color: var(--star-empty-color);
}

.star-rating .star.filled {
    color: var(--star-filled-color);
}

.star-rating .star:hover,
.star-rating .star.hover {
    color: var(--star-hover-color);
}

/* Quill editor */
.ql-toolbar,
.ql-container {
    border-color: var(--quill-border);
}

[data-theme="dark"] .ql-toolbar {
    background-color: var(--card-bg);
}

[data-theme="dark"] .ql-container {
    background-color: var(--input-bg);
}

[data-theme="dark"] .ql-editor {
    color: var(--body-color);
}

[data-theme="dark"] .ql-snow .ql-stroke {
    stroke: var(--body-color);
}

[data-theme="dark"] .ql-snow .ql-fill {
    fill: var(--body-color);
}

[data-theme="dark"] .ql-snow .ql-picker {
    color: var(--body-color);
}

/* Dark mode toggle button */
.theme-toggle {
    cursor: pointer;
    padding: 0.5rem;
    border: none;
    background: transparent;
    color: inherit;
    font-size: 1.2rem;
    transition: transform 0.3s ease;
}

.theme-toggle:hover {
    transform: scale(1.1);
}

/* List groups */
.list-group-item {
    background-color: var(--card-bg);
    border-color: var(--border-color);
    color: var(--body-color);
}

.list-group-item:hover {
    background-color: var(--dropdown-link-hover-bg);
}

/* Pagination */
.page-link {
    background-color: var(--card-bg);
    border-color: var(--border-color);
    color: var(--body-color);
}

.page-link:hover {
    background-color: var(--dropdown-link-hover-bg);
    border-color: var(--border-color);
    color: var(--body-color);
}

.page-item.disabled .page-link {
    background-color: var(--sidebar-bg);
    border-color: var(--border-color);
}

/* Breadcrumb */
.breadcrumb {
    background-color: var(--sidebar-bg);
}

.breadcrumb-item.active {
    color: var(--text-muted);
}

/* Badge adjustments for dark mode */
[data-theme="dark"] .badge.bg-secondary {
    background-color: var(--badge-bg-secondary) !important;
}

/* Input groups */
.input-group-text {
    background-color: var(--sidebar-bg);
    border-color: var(--input-border);
    color: var(--body-color);
}

/* Close buttons in dark mode */
[data-theme="dark"] .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}
