/* Dark Mode Styles for ACC Portal */

/* CSS Variables for easy theme switching */
:root {
    --bg-primary: #f8f9fa;
    --bg-secondary: #ffffff;
    --bg-tertiary: #e9ecef;
    --text-primary: #212529;
    --text-secondary: #6c757d;
    --text-muted: #6c757d;
    --border-color: #dee2e6;
    --border-light: #e3e6f0;
    --navbar-bg: #0d6efd;
    --navbar-text: #ffffff;
    --card-shadow: rgba(0, 0, 0, 0.1);
    --table-stripe: #f8f9fa;
    --table-hover: #e3f2fd;
    --dropdown-bg: #ffffff;
    --dropdown-border: #e3e6f0;
    --footer-bg: #f8f9fa;
    --footer-border: #e9ecef;
}

/* Dark mode variables */
[data-theme="dark"] {
    --bg-primary: #1a1d23;
    --bg-secondary: #2d3138;
    --bg-tertiary: #3a3f47;
    --text-primary: #e9ecef;
    --text-secondary: #adb5bd;
    --text-muted: #6c757d;
    --border-color: #495057;
    --border-light: #3a3f47;
    --navbar-bg: #1a1d23;
    --navbar-text: #e9ecef;
    --card-shadow: rgba(0, 0, 0, 0.3);
    --table-stripe: #3a3f47;
    --table-hover: #495057;
    --dropdown-bg: #2d3138;
    --dropdown-border: #495057;
    --footer-bg: #1a1d23;
    --footer-border: #495057;
}

/* Apply dark mode styles */
[data-theme="dark"] body {
    background-color: var(--bg-primary);
    color: var(--text-primary);
}

[data-theme="dark"] .navbar {
    background-color: var(--navbar-bg) !important;
    border-bottom: 1px solid var(--border-color);
}

[data-theme="dark"] .navbar-brand,
[data-theme="dark"] .navbar-nav .nav-link {
    color: var(--navbar-text) !important;
}

[data-theme="dark"] .navbar-nav .nav-link:hover {
    color: #ffffff !important;
}

[data-theme="dark"] .dropdown-menu {
    background-color: var(--dropdown-bg);
    border: 1px solid var(--dropdown-border);
}

[data-theme="dark"] .dropdown-item {
    color: var(--text-primary);
}

[data-theme="dark"] .dropdown-item:hover {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
}

[data-theme="dark"] .dropdown-divider {
    border-color: var(--border-color);
}

[data-theme="dark"] .dropdown-header {
    color: var(--text-secondary);
}

/* Card styles */
[data-theme="dark"] .card {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-light);
    box-shadow: 0 4px 6px var(--card-shadow);
}

[data-theme="dark"] .card-header {
    background-color: var(--bg-tertiary);
    border-bottom: 1px solid var(--border-light);
    color: var(--text-primary);
}

[data-theme="dark"] .card-body {
    color: var(--text-primary);
}

[data-theme="dark"] .card-title {
    color: var(--text-primary);
}

/* Table styles */
[data-theme="dark"] .table {
    background-color: var(--bg-secondary);
    color: var(--text-primary);
}

[data-theme="dark"] .table th {
    background-color: var(--bg-tertiary);
    border-bottom: 2px solid var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .table td {
    border-bottom: 1px solid var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > td {
    background-color: var(--table-stripe);
}

[data-theme="dark"] .table-hover > tbody > tr:hover > td {
    background-color: var(--table-hover);
}

/* Improved table row styling */
[data-theme="dark"] .table > tbody > tr > td {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .table > tbody > tr > th {
    background-color: var(--bg-tertiary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) {
    background-color: var(--table-stripe);
}

[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > td {
    background-color: var(--table-stripe);
}

[data-theme="dark"] .table-hover > tbody > tr:hover {
    background-color: var(--table-hover);
}

[data-theme="dark"] .table-hover > tbody > tr:hover > td {
    background-color: var(--table-hover);
}

/* Form styles */
[data-theme="dark"] .form-control {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .form-control:focus {
    background-color: var(--bg-secondary);
    border-color: #86b7fe;
    color: var(--text-primary);
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

[data-theme="dark"] .form-control::placeholder {
    color: var(--text-muted);
}

[data-theme="dark"] .form-select {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .form-label {
    color: var(--text-primary);
}

/* Alert styles */
[data-theme="dark"] .alert-success {
    background-color: #155724;
    border-color: #155724;
    color: #d4edda;
}

[data-theme="dark"] .alert-danger {
    background-color: #721c24;
    border-color: #721c24;
    color: #f8d7da;
}

[data-theme="dark"] .alert-warning {
    background-color: #856404;
    border-color: #856404;
    color: #fff3cd;
}

[data-theme="dark"] .alert-info {
    background-color: #0c5460;
    border-color: #0c5460;
    color: #cff4fc;
}

/* Button styles - keeping original colors but adjusting for visibility */
[data-theme="dark"] .btn-outline-secondary {
    color: var(--text-secondary);
    border-color: var(--border-color);
}

[data-theme="dark"] .btn-outline-secondary:hover {
    background-color: var(--bg-tertiary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

/* Pagination styles */
[data-theme="dark"] .page-link {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .page-link:hover {
    background-color: var(--bg-tertiary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .page-item.active .page-link {
    background-color: #0d6efd;
    border-color: #0d6efd;
}

[data-theme="dark"] .page-item.disabled .page-link {
    background-color: var(--bg-tertiary);
    border-color: var(--border-color);
    color: var(--text-muted);
}

/* Footer styles */
[data-theme="dark"] footer {
    background-color: var(--footer-bg) !important;
    border-top: 1px solid var(--footer-border);
    color: var(--text-secondary);
}

/* Text utilities */
[data-theme="dark"] .text-muted {
    color: var(--text-muted) !important;
}

/* Headings */
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4,
[data-theme="dark"] h5,
[data-theme="dark"] h6 {
    color: var(--text-primary);
}

/* Links */
[data-theme="dark"] a {
    color: #6ea8fe;
}

[data-theme="dark"] a:hover {
    color: #9ec5fe;
}

/* Badge styles */
[data-theme="dark"] .badge.bg-secondary {
    background-color: #495057 !important;
    color: #ffffff !important;
}

/* Dark mode toggle button styles */
.dark-mode-toggle {
    background: none;
    border: none;
    color: inherit;
    font-size: 1.1rem;
    padding: 0.5rem;
    border-radius: 0.375rem;
    transition: background-color 0.2s ease-in-out;
}

.dark-mode-toggle:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .dark-mode-toggle:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

/* Animation for theme transition */
* {
    transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

/* Ensure form validation states work in dark mode */
[data-theme="dark"] .is-invalid {
    border-color: #dc3545;
}

[data-theme="dark"] .invalid-feedback {
    color: #ea868f;
}

[data-theme="dark"] .is-valid {
    border-color: #198754;
}

[data-theme="dark"] .valid-feedback {
    color: #75b798;
}

/* Ensure tooltips and popovers work in dark mode */
[data-theme="dark"] .tooltip-inner {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
}

[data-theme="dark"] .popover {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
}

[data-theme="dark"] .popover-header {
    background-color: var(--bg-tertiary);
    border-bottom: 1px solid var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .popover-body {
    color: var(--text-primary);
}

/* Specific component styles for dark mode */

/* Dark mode section styling */
[data-theme="dark"] .dark-mode-section {
    background-color: var(--bg-secondary) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-primary);
}

/* Filter section styling */
[data-theme="dark"] .filter-section {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    color: var(--text-primary);
}

/* Product list header styling */
[data-theme="dark"] .product-list-header {
    background-color: var(--bg-tertiary);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
    border-radius: 8px;
    padding: 1rem;
}

/* Quick actions styling */
[data-theme="dark"] .quick-actions {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-radius: 10px;
    padding: 2rem;
    box-shadow: 0 4px 6px var(--card-shadow);
    margin-top: 2rem;
    color: var(--text-primary);
}

[data-theme="dark"] .quick-actions .btn {
    margin: 0.25rem;
}

[data-theme="dark"] .quick-actions h5,
[data-theme="dark"] .quick-actions h6 {
    color: var(--text-primary);
}

/* Additional component styles */
[data-theme="dark"] .section-title {
    color: var(--text-primary) !important;
    border-bottom-color: var(--border-color) !important;
}

[data-theme="dark"] .list-group-item {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .list-group-item:hover {
    background-color: var(--bg-tertiary);
}

[data-theme="dark"] .nav-tabs {
    border-bottom-color: var(--border-color);
}

[data-theme="dark"] .nav-tabs .nav-link {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .nav-tabs .nav-link:hover {
    background-color: var(--bg-tertiary);
    border-color: var(--border-color);
}

[data-theme="dark"] .nav-tabs .nav-link.active {
    background-color: var(--bg-primary);
    border-color: var(--border-color) var(--border-color) var(--bg-primary);
    color: var(--text-primary);
}

/* Modal styles */
[data-theme="dark"] .modal-content {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .modal-header {
    background-color: var(--bg-tertiary);
    border-bottom: 1px solid var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .modal-footer {
    background-color: var(--bg-tertiary);
    border-top: 1px solid var(--border-color);
}

/* Breadcrumb styles */
[data-theme="dark"] .breadcrumb {
    background-color: var(--bg-secondary);
}

[data-theme="dark"] .breadcrumb-item a {
    color: #6ea8fe;
}

[data-theme="dark"] .breadcrumb-item.active {
    color: var(--text-secondary);
}

/* Additional component styles for comprehensive dark mode coverage */

/* Filter card styling */
[data-theme="dark"] .filter-card {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
    border-radius: 8px;
    padding: 1.5rem;
    margin-bottom: 1rem;
}

/* Chart container styling */
[data-theme="dark"] .chart-container,
[data-theme="dark"] .chart-container.full-height {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 1rem;
    color: var(--text-primary);
}

[data-theme="dark"] .chart-container.full-height {
    height: 100vh;
    min-height: 400px;
}

/* Add product section styling */
[data-theme="dark"] .add-product-section {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 2rem;
    margin-bottom: 2rem;
    color: var(--text-primary);
}

/* Action buttons styling */
[data-theme="dark"] .action-buttons {
    background-color: var(--bg-tertiary);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 1rem;
    margin: 1rem 0;
}

[data-theme="dark"] .action-buttons .btn {
    margin: 0.25rem;
}

/* Table light styling - override Bootstrap's table-light */
[data-theme="dark"] .table-light {
    background-color: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .table-light th {
    background-color: var(--bg-tertiary) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .table-light td {
    background-color: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}

/* Invoice header styling */
[data-theme="dark"] .invoice-header {
    background-color: var(--bg-tertiary);
    border: 1px solid var(--border-color);
    border-radius: 8px 8px 0 0;
    padding: 1.5rem;
    color: var(--text-primary);
}

/* Invoice summary styling */
[data-theme="dark"] .invoice-summary {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 1.5rem;
    margin-bottom: 1rem;
    color: var(--text-primary);
}

[data-theme="dark"] .invoice-summary .summary-row {
    border-bottom: 1px solid var(--border-color);
    padding: 0.5rem 0;
}

[data-theme="dark"] .invoice-summary .summary-row:last-child {
    border-bottom: none;
    font-weight: bold;
}

/* Stock location styling */
[data-theme="dark"] .stock-location {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    padding: 1rem;
    margin-bottom: 1rem;
    color: var(--text-primary);
}

[data-theme="dark"] .stock-location h6 {
    color: var(--text-primary);
    margin-bottom: 0.5rem;
}

[data-theme="dark"] .stock-location .location-code {
    color: var(--text-secondary);
    font-size: 0.9rem;
}

/* Tab content styling */
[data-theme="dark"] .tab-content {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-top: none;
    border-radius: 0 0 8px 8px;
    padding: 1.5rem;
    color: var(--text-primary);
}

[data-theme="dark"] .tab-pane {
    color: var(--text-primary);
}

/* Ensure proper styling for nested elements */
[data-theme="dark"] .filter-card .form-control,
[data-theme="dark"] .add-product-section .form-control {
    background-color: var(--bg-primary);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .filter-card .form-label,
[data-theme="dark"] .add-product-section .form-label {
    color: var(--text-primary);
}

/* Chart specific dark mode adjustments */
[data-theme="dark"] .chart-container canvas {
    background-color: transparent;
}

[data-theme="dark"] .chart-container .chart-title {
    color: var(--text-primary);
}

[data-theme="dark"] .chart-container .chart-legend {
    color: var(--text-primary);
}

/* Filter form styling */
[data-theme="dark"] .filterForm {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    color: var(--text-primary);
}

[data-theme="dark"] .filterForm .form-control {
    background-color: var(--bg-primary);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .filterForm .form-label {
    color: var(--text-primary);
    font-weight: 500;
}

[data-theme="dark"] .filterForm .form-select {
    background-color: var(--bg-primary);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
}

/* Summary item styling */
[data-theme="dark"] .summary-item {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    padding: 1rem;
    margin-bottom: 1rem;
    color: var(--text-primary);
}

[data-theme="dark"] .summary-item h6,
[data-theme="dark"] .summary-item .summary-title {
    color: var(--text-primary);
    font-weight: 600;
    margin-bottom: 0.5rem;
}

[data-theme="dark"] .summary-item .summary-value {
    color: var(--text-primary);
    font-size: 1.1rem;
    font-weight: 500;
}

[data-theme="dark"] .summary-item .summary-description {
    color: var(--text-secondary);
    font-size: 0.9rem;
}

/* Enhanced text contrast for better readability */
[data-theme="dark"] .text-light {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .text-dark {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .bg-light {
    background-color: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .bg-white {
    background-color: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .text-body {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .text-body-secondary {
    color: var(--text-secondary) !important;
}

/* Ensure proper contrast for small text elements */
[data-theme="dark"] small,
[data-theme="dark"] .small {
    color: var(--text-secondary);
}

[data-theme="dark"] .text-sm {
    color: var(--text-secondary);
}

/* Improve readability for various text elements */
[data-theme="dark"] .card-text {
    color: var(--text-primary);
}

[data-theme="dark"] .list-group-item-text {
    color: var(--text-secondary);
}

[data-theme="dark"] .blockquote {
    color: var(--text-primary);
    border-left-color: var(--border-color);
}

[data-theme="dark"] .blockquote-footer {
    color: var(--text-secondary);
}

/* Enhanced form element contrast */
[data-theme="dark"] .form-text {
    color: var(--text-secondary);
}

[data-theme="dark"] .form-check-label {
    color: var(--text-primary);
}

[data-theme="dark"] .form-floating > label {
    color: var(--text-secondary);
}

/* Better contrast for navigation elements */
[data-theme="dark"] .nav-link {
    color: var(--text-primary);
}

[data-theme="dark"] .nav-link:hover,
[data-theme="dark"] .nav-link:focus {
    color: var(--text-primary);
}

/* Improve visibility of disabled elements */
[data-theme="dark"] .disabled,
[data-theme="dark"] :disabled {
    color: var(--text-muted) !important;
    background-color: var(--bg-tertiary) !important;
}

/* Better contrast for code elements */
[data-theme="dark"] code {
    background-color: var(--bg-tertiary);
    color: #ff6b6b;
    padding: 0.2em 0.4em;
    border-radius: 3px;
}

[data-theme="dark"] pre {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
    border: 1px solid var(--border-color);
}

/* Enhanced visibility for progress elements */
[data-theme="dark"] .progress {
    background-color: var(--bg-tertiary);
}

[data-theme="dark"] .progress-bar {
    background-color: #0d6efd;
    color: #ffffff;
}

/* Additional specific component styling for better readability */

/* Stock location name styling */
[data-theme="dark"] .stock-location-name {
    color: var(--text-primary) !important;
    font-weight: 600;
}

/* Stock total styling */
[data-theme="dark"] .stock-total {
    color: var(--text-primary) !important;
    font-weight: 500;
    font-size: 1.1rem;
}

/* Card subtitle styling - override Bootstrap's muted text */
[data-theme="dark"] .card-subtitle {
    color: var(--text-secondary) !important;
}

[data-theme="dark"] .card-subtitle.text-muted {
    color: var(--text-secondary) !important;
}

[data-theme="dark"] .mb-2.text-muted {
    color: var(--text-secondary) !important;
}

/* Period filter styling */
[data-theme="dark"] .period-filter {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    padding: 1rem;
    margin-bottom: 1rem;
    color: var(--text-primary);
}

[data-theme="dark"] .period-filter .form-control {
    background-color: var(--bg-primary);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .period-filter .form-label {
    color: var(--text-primary);
    font-weight: 500;
}

[data-theme="dark"] .period-filter .form-select {
    background-color: var(--bg-primary);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
}

/* Sales summary styling */
[data-theme="dark"] .sales-summary {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    color: var(--text-primary);
}

[data-theme="dark"] .sales-summary h5,
[data-theme="dark"] .sales-summary h6,
[data-theme="dark"] .sales-summary .summary-title {
    color: var(--text-primary) !important;
    font-weight: 600;
}

[data-theme="dark"] .sales-summary .summary-value {
    color: var(--text-primary) !important;
    font-size: 1.2rem;
    font-weight: 500;
}

[data-theme="dark"] .sales-summary .summary-label {
    color: var(--text-secondary);
    font-size: 0.9rem;
}

[data-theme="dark"] .sales-summary .summary-percentage {
    color: var(--text-primary);
    font-weight: 500;
}

[data-theme="dark"] .sales-summary .summary-change {
    font-size: 0.85rem;
}

[data-theme="dark"] .sales-summary .summary-change.positive {
    color: #28a745;
}

[data-theme="dark"] .sales-summary .summary-change.negative {
    color: #dc3545;
}

/* Enhanced styling for better component visibility */
[data-theme="dark"] .stock-location .stock-info {
    color: var(--text-primary);
}

[data-theme="dark"] .stock-location .stock-details {
    color: var(--text-secondary);
}

/* Improve visibility of all muted text variants */
[data-theme="dark"] .text-muted,
[data-theme="dark"] .muted {
    color: var(--text-secondary) !important;
}

/* Better contrast for subtitle elements */
[data-theme="dark"] .subtitle {
    color: var(--text-secondary) !important;
}

[data-theme="dark"] .sub-title {
    color: var(--text-secondary) !important;
}
