/* Custom theme variables */
:root {
  --custom-primary: #6d5cae;       /* Purple as primary color */
  --custom-primary-hover: #5c4a9e; /* Darker purple for hover */
  --custom-text-on-primary: #ffffff;
  --custom-button-radius: 12px;    /* Rounded corners for buttons */

  /* Modern scrollbar */
  --scrollbar-width: 8px;
  --scrollbar-track: transparent;
  --scrollbar-thumb: rgba(155, 155, 155, 0.5);
  --scrollbar-thumb-hover: rgba(155, 155, 155, 0.7);
}

/* Plus Button Styling moved to query-form.css */

/* Modern scrollbar styles */
/* For Webkit browsers (Chrome, Safari, Edge) */
::-webkit-scrollbar {
  width: var(--scrollbar-width);
  height: var(--scrollbar-width);
}

::-webkit-scrollbar-track {
  background: var(--scrollbar-track);
}

::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb);
  border-radius: var(--scrollbar-width);
}

::-webkit-scrollbar-thumb:hover {
  background: var(--scrollbar-thumb-hover);
}

/* For Firefox */
* {
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}

/* Add scrollbar hiding to html/body just in case */
html, body {
  scrollbar-width: none !important; /* Firefox */
  -ms-overflow-style: none; /* IE and Edge */
}
html::-webkit-scrollbar, body::-webkit-scrollbar {
  display: none !important; /* Webkit */
}

/* --- Theme Variables & Overrides (Kept from previous state) --- */
[data-bs-theme="dark"] {
  --bs-body-bg: #121212; /* Changed to a deeper dark */
  --bs-body-color: #e1e1e1; /* Slightly lighter text for contrast */
  --bs-secondary-color: #a8a8a8; /* Adjusted secondary text */
  --bs-border-color: #495057;
  --bs-border-color-translucent: rgba(255, 255, 255, 0.15);
  --bs-input-bg: #2a2a2a;
  --bs-input-border: rgba(255, 255, 255, 0.15);
  --navbar-bg: rgba(18, 18, 18, 0.85); /* Updated to match #121212 with transparency */
  --navbar-text: rgba(255, 255, 255, 0.9);
  --navbar-link-hover: rgba(255, 255, 255, 0.75);
}

[data-bs-theme="light"] {
  --bs-body-bg: #f8f9fa;
  --bs-body-color: #212529;
  --bs-secondary-color: #495057;
  --bs-border-color: #dee2e6;
  --bs-border-color-translucent: rgba(0, 0, 0, 0.175);
  --bs-input-bg: #ffffff; /* Original light input bg */
  --bs-input-border: rgba(0, 0, 0, 0.1);
  --navbar-bg: rgba(255, 255, 255, 0.85);
  --navbar-text: rgba(0, 0, 0, 0.9);
  --navbar-link-hover: rgba(0, 0, 0, 0.7);
}

/* Light theme specific input styling */
[data-bs-theme="light"] #query-input {
  /* Keep input transparent, rely on .query-form-inner for background */
  background-color: transparent;
  color: var(--custom-text-on-primary); /* White text for input */
}
[data-bs-theme="light"] #query-input::placeholder {
  color: rgba(255, 255, 255, 0.7); /* Lighter placeholder */
}
[data-bs-theme="light"] #query-input:focus {
  background-color: transparent; /* Keep transparent on focus */
}
/* Ensure buttons inside light purple container are visible */
[data-bs-theme="light"] .query-form-inner .btn-outline-secondary {
   color: rgba(255, 255, 255, 0.8);
   border-color: rgba(255, 255, 255, 0.5);
   background-color: rgba(0, 0, 0, 0.1); /* Added subtle dark background */
}


[data-bs-theme="light"] .query-form-inner .btn-outline-secondary:hover {
   color: #ffffff;
   background-color: rgba(255, 255, 255, 0.1);
   border-color: rgba(255, 255, 255, 0.7);
}
/* Ensure the plus button icon is also visible */
[data-bs-theme="light"] .query-form-inner #add-context-btn {
    color: rgba(255, 255, 255, 0.8); /* Match other outline buttons */
}
[data-bs-theme="light"] .query-form-inner #add-context-btn:hover {
   color: #ffffff; /* Match other outline buttons hover */
}

/* Query form specific light theme button styles moved to query-form.css */

/* Navbar styles */
.navbar { 
  background-color: var(--navbar-bg) !important; 
  backdrop-filter: blur(10px); 
  border-bottom: none; 
  padding: 0 !important; 
}

/* Desktop navbar styles */
@media (min-width: 992px) {
  .navbar { 
    min-height: 40px !important; 
    height: 40px !important; 
  }
  .navbar-brand { 
    padding: 0 !important; 
    height: 40px !important; 
    line-height: 40px !important; 
    display: flex !important; 
    align-items: center !important; 
  }
  .navbar-nav { 
    height: 40px !important; 
    margin: 0 !important; 
    margin-left: auto !important; 
  }
  .navbar-nav .nav-item { 
    height: 40px !important; 
  }
  .navbar-nav .nav-link { 
    padding: 0 0.5rem !important; 
    height: 40px !important; 
    line-height: 40px !important; 
  }
  .theme-toggle-btn { 
    height: 40px !important; 
    line-height: 40px !important; 
    padding: 0 0.5rem !important; 
  }
}

/* Mobile navbar styles */
@media (max-width: 991.98px) {
  .navbar {
    min-height: 40px !important;
    height: 40px !important;
  }
  .navbar-brand {
    height: 40px !important;
    line-height: 40px !important;
    padding: 0 !important;
  }
  .navbar-toggler {
    padding: 0.25rem 0.5rem !important;
    margin-right: 0.5rem !important;
  }
  /* Ensure proper collapse behavior */
  .navbar-collapse:not(.show) {
    display: none !important;
  }
  .navbar-collapse.show {
    display: block !important;
    background-color: var(--navbar-bg) !important;
    padding: 1rem;
    border-radius: 0 0 0.5rem 0.5rem;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    position: fixed !important;
    top: 40px;
    right: 0;
    width: auto;
    min-width: 200px;
    max-width: 80%;
    z-index: 9999 !important;
    margin-right: 0.5rem;
  }
  .navbar-nav {
    width: 100%;
    padding: 0.5rem 0;
  }
  .navbar-nav .nav-item {
    margin-bottom: 0.5rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding-bottom: 0.5rem;
  }
  .navbar-nav .nav-item:last-child {
    border-bottom: none;
    margin-bottom: 0;
  }
  .navbar-nav .nav-link {
    padding: 0.5rem 1rem !important;
    line-height: 1.5 !important;
    display: block;
    width: 100%;
  }
  .theme-toggle-btn {
    padding: 0.5rem 1rem !important;
    line-height: 1.5 !important;
    width: 100%;
    text-align: left;
    justify-content: flex-start;
  }
  
  /* Fix for message and document counters in mobile view */
  #message-count, #docs-count {
    display: inline-block;
    margin-left: 0.5rem;
    background-color: rgba(255, 255, 255, 0.2);
    padding: 0.1rem 0.5rem;
    border-radius: 1rem;
    font-size: 0.8rem;
  }
}

.navbar-dark .navbar-brand, .navbar-dark .nav-link { color: var(--navbar-text) !important; }
.navbar-dark .nav-link:hover { color: var(--navbar-link-hover) !important; }

.btn-custom { background-color: var(--custom-primary) !important; border-color: var(--custom-primary) !important; color: var(--custom-text-on-primary) !important; border-radius: var(--custom-button-radius); transition: all 0.2s ease; }
.btn-custom:hover, .btn-custom:focus { background-color: var(--custom-primary-hover) !important; border-color: var(--custom-primary-hover) !important; color: var(--custom-text-on-primary) !important; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15); }
.btn-primary { background-color: var(--custom-primary) !important; border-color: var(--custom-primary) !important; border-radius: var(--custom-button-radius) !important; }
.btn-primary:hover, .btn-primary:focus { background-color: var(--custom-primary-hover) !important; border-color: var(--custom-primary-hover) !important; }

/* Apply curved style to additional buttons */
.btn-danger,
.btn-secondary {
  border-radius: var(--custom-button-radius) !important;
}

/* Override btn-success to use primary theme color */
.btn-success {
  background-color: var(--custom-primary) !important;
  border-color: var(--custom-primary) !important;
  border-radius: var(--custom-button-radius) !important;
  color: var(--custom-text-on-primary) !important; /* Ensure text color is correct */
}
.btn-success:hover, .btn-success:focus {
  background-color: var(--custom-primary-hover) !important;
  border-color: var(--custom-primary-hover) !important;
  color: var(--custom-text-on-primary) !important; /* Ensure text color is correct on hover */
}

/* Form container styles moved to forms.css */
/* Dark theme input group styles moved to query-form.css */
/* Dark theme dropdown styles moved to query-form.css */
/* Dark theme general component overrides */
[data-bs-theme="dark"] .card, 
[data-bs-theme="dark"] .card-body, 
[data-bs-theme="dark"] .list-group-item, 
[data-bs-theme="dark"] .offcanvas, 
[data-bs-theme="dark"] .offcanvas-body { 
    background-color: var(--bs-body-bg) !important; 
    color: var(--bs-body-color) !important; 
    border-color: var(--bs-border-color) !important; 
}
[data-bs-theme="dark"] .btn-close { 
    filter: invert(1) grayscale(100%) brightness(200%); 
}

/* Bootstrap Switch Styling (Keep here as it might be used elsewhere) */
/* Light theme */
[data-bs-theme="light"] .form-check-switch .form-check-input {
  background-color: rgba(0, 0, 0, 0.15);
  border-color: rgba(0, 0, 0, 0.2);
  /* Light theme unchecked thumb */
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba(0,0,0,0.4)'/%3e%3c/svg%3e");
}

[data-bs-theme="light"] .form-check-switch .form-check-input:focus {
  border-color: var(--custom-primary);
  box-shadow: 0 0 0 0.25rem rgba(109, 92, 174, 0.25);
}

[data-bs-theme="light"] .form-check-switch .form-check-input:checked {
  background-color: var(--custom-primary);
  border-color: var(--custom-primary);
  /* White thumb when checked */
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}

[data-bs-theme="light"] .form-check-label {
  color: var(--bs-body-color);
}

/* Dark theme */
[data-bs-theme="dark"] .form-check-switch .form-check-input {
  background-color: rgba(255, 255, 255, 0.25); /* Slightly lighter than default dark input bg for contrast */
  border-color: rgba(255, 255, 255, 0.3);
  /* Adjust default SVG background image for dark mode thumb */
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba(255,255,255,0.4)'/%3e%3c/svg%3e");
}

[data-bs-theme="dark"] .form-check-switch .form-check-input:focus {
  border-color: var(--custom-primary-hover); /* Use theme color for focus */
  box-shadow: 0 0 0 0.25rem rgba(109, 92, 174, 0.3); /* Adjusted focus shadow color */
  /* Keep default thumb on focus */
   background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba(255,255,255,0.4)'/%3e%3c/svg%3e");
}

[data-bs-theme="dark"] .form-check-switch .form-check-input:checked {
  background-color: var(--custom-primary); /* Use theme color when checked */
  border-color: var(--custom-primary);
  /* White thumb when checked */
   background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}

/* Ensure label color matches body text in dark mode */
[data-bs-theme="dark"] .form-check-label {
  color: var(--bs-body-color);
}

/* Dark theme feedback icon contrast moved to chat.css */

/* --- Custom Bootstrap Alert Colors for Dark Mode --- */
[data-bs-theme="dark"] .alert-primary {
  background-color: var(--custom-primary) !important;
  color: var(--custom-text-on-primary) !important;
  border-color: var(--custom-primary-hover) !important;
}
[data-bs-theme="dark"] .alert-info {
  background-color: #2a3a4a !important;
  color: #e1e1e1 !important;
  border-color: #3b4b5b !important;
}
[data-bs-theme="dark"] .alert-warning {
  background-color: #4a3a1a !important;
  color: #ffe9b3 !important;
  border-color: #b38b2a !important;
}
[data-bs-theme="dark"] .alert-danger {
  background-color: #5a1a1a !important;
  color: #ffd6d6 !important;
  border-color: #b32a2a !important;
}
[data-bs-theme="dark"] .alert-success {
  background-color: #1a4a2a !important;
  color: #b3ffd6 !important;
  border-color: #2ab38b !important;
}
