/* =============================================================
   Theme: Catppuccin Mocha (default)
   https://github.com/catppuccin/catppuccin
   ============================================================= */

:root,
[data-theme="catppuccin-mocha"] {
  --ctp-base:    #1e1e2e;
  --ctp-mantle:  #181825;
  --ctp-crust:   #11111b;
  --ctp-surface0: #313244;
  --ctp-surface1: #45475a;
  --ctp-surface2: #585b70;
  --ctp-overlay0: #6c7086;
  --ctp-overlay1: #7f849c;
  --ctp-overlay2: #9399b2;
  --ctp-subtext0: #a6adc8;
  --ctp-subtext1: #bac2de;
  --ctp-text:     #cdd6f4;
  --ctp-lavender: #b4befe;
  --ctp-blue:     #89b4fa;
  --ctp-sapphire: #74c7ec;
  --ctp-sky:      #89dceb;
  --ctp-teal:     #94e2d5;
  --ctp-green:    #a6e3a1;
  --ctp-yellow:   #f9e2af;
  --ctp-peach:    #fab387;
  --ctp-maroon:   #eba0ac;
  --ctp-red:      #f38ba8;
  --ctp-mauve:    #cba6f7;
  --ctp-pink:     #f5c2e7;
  --ctp-flamingo: #f2cdcd;
  --ctp-rosewater:#f5e0dc;
}

[data-theme="catppuccin-macchiato"] {
  --ctp-base:     #24273a;
  --ctp-mantle:   #1e2030;
  --ctp-crust:    #181926;
  --ctp-surface0: #363a4f;
  --ctp-surface1: #494d64;
  --ctp-surface2: #5b6078;
  --ctp-overlay0: #6e738d;
  --ctp-overlay1: #8087a2;
  --ctp-overlay2: #939ab7;
  --ctp-subtext0: #a5adcb;
  --ctp-subtext1: #b8c0e0;
  --ctp-text:     #cad3f5;
  --ctp-lavender: #b7bdf8;
  --ctp-blue:     #8aadf4;
  --ctp-sapphire: #7dc4e4;
  --ctp-sky:      #91d7e3;
  --ctp-teal:     #8bd5ca;
  --ctp-green:    #a6da95;
  --ctp-yellow:   #eed49f;
  --ctp-peach:    #f5a97f;
  --ctp-maroon:   #ee99a0;
  --ctp-red:      #ed8796;
  --ctp-mauve:    #c6a0f6;
  --ctp-pink:     #f5bde6;
  --ctp-flamingo: #f0c6c6;
  --ctp-rosewater:#f4dbd6;
}

[data-theme="catppuccin-frappe"] {
  --ctp-base:     #303446;
  --ctp-mantle:   #292c3c;
  --ctp-crust:    #232634;
  --ctp-surface0: #414559;
  --ctp-surface1: #51576d;
  --ctp-surface2: #626880;
  --ctp-overlay0: #737994;
  --ctp-overlay1: #838ba7;
  --ctp-overlay2: #949cbb;
  --ctp-subtext0: #a5adce;
  --ctp-subtext1: #b5bfe2;
  --ctp-text:     #c6d0f5;
  --ctp-lavender: #babbf1;
  --ctp-blue:     #8caaee;
  --ctp-sapphire: #85c1dc;
  --ctp-sky:      #99d1db;
  --ctp-teal:     #81c8be;
  --ctp-green:    #a6d189;
  --ctp-yellow:   #e5c890;
  --ctp-peach:    #ef9f76;
  --ctp-maroon:   #ea999c;
  --ctp-red:      #e78284;
  --ctp-mauve:    #ca9ee6;
  --ctp-pink:     #f4b8e4;
  --ctp-flamingo: #eebebe;
  --ctp-rosewater:#f2d5cf;
}

[data-theme="catppuccin-latte"] {
  --ctp-base:     #eff1f5;
  --ctp-mantle:   #e6e9ef;
  --ctp-crust:    #dce0e8;
  --ctp-surface0: #ccd0da;
  --ctp-surface1: #bcc0cc;
  --ctp-surface2: #acb0be;
  --ctp-overlay0: #6c6f85;
  --ctp-overlay1: #5c5f77;
  --ctp-overlay2: #4c4f69;
  --ctp-subtext0: #5c5f77;
  --ctp-subtext1: #4c4f69;
  --ctp-text:     #3a3b4d;
  --ctp-lavender: #7287fd;
  --bs-body-color: #3a3b4d;
  --bs-body-color-rgb: 58, 59, 77;
  --bs-secondary-color: #5c5f77;
  --bs-secondary-color-rgb: 92, 95, 119;
  --bs-tertiary-color: #6c6f85;
  --bs-card-cap-color: #3a3b4d;
  --bs-nav-link-color: #3a3b4d;
  --bs-nav-link-hover-color: #1e66f5;
  --ctp-blue:     #1e66f5;
  --ctp-sapphire: #209fb5;
  --ctp-sky:      #04a5e5;
  --ctp-teal:     #179299;
  --ctp-green:    #40a02b;
  --ctp-yellow:   #df8e1d;
  --ctp-peach:    #fe640b;
  --ctp-maroon:   #e64553;
  --ctp-red:      #d20f39;
  --ctp-mauve:    #8839ef;
  --ctp-pink:     #ea76cb;
  --ctp-flamingo: #dd7878;
  --ctp-rosewater:#dc8a78;
}

[data-theme="dracula"] {
  --ctp-base:     #282a36;
  --ctp-mantle:   #1e1f29;
  --ctp-crust:    #191a21;
  --ctp-surface0: #3a3c4a;
  --ctp-surface1: #454758;
  --ctp-surface2: #50526a;
  --ctp-overlay0: #6272a4;
  --ctp-overlay1: #6d7fb1;
  --ctp-overlay2: #788cbf;
  --ctp-subtext0: #bfc7d6;
  --ctp-subtext1: #d7dde8;
  --ctp-text:     #f8f8f2;
  --ctp-lavender: #bd93f9;
  --ctp-blue:     #6272a4;
  --ctp-sapphire: #6d7fb1;
  --ctp-sky:      #89b4fa;
  --ctp-teal:     #50fa7b;
  --ctp-green:    #50fa7b;
  --ctp-yellow:   #f1fa8c;
  --ctp-peach:    #ffb86c;
  --ctp-maroon:   #ff5555;
  --ctp-red:      #ff5555;
  --ctp-mauve:    #bd93f9;
  --ctp-pink:     #ff79c6;
  --ctp-flamingo: #ff79c6;
  --ctp-rosewater:#f8f8f2;
}

[data-theme="solarized-dark"] {
  --ctp-base:     #002b36;
  --ctp-mantle:   #073642;
  --ctp-crust:    #00141a;
  --ctp-surface0: #073642;
  --ctp-surface1: #094250;
  --ctp-surface2: #0b5263;
  --ctp-overlay0: #586e75;
  --ctp-overlay1: #657b83;
  --ctp-overlay2: #728a92;
  --ctp-subtext0: #839496;
  --ctp-subtext1: #93a1a1;
  --ctp-text:     #839496;
  --ctp-lavender: #6c71c4;
  --ctp-blue:     #268bd2;
  --ctp-sapphire: #2aa198;
  --ctp-sky:      #2aa198;
  --ctp-teal:     #2aa198;
  --ctp-green:    #859900;
  --ctp-yellow:   #b58900;
  --ctp-peach:    #cb4b16;
  --ctp-maroon:   #dc322f;
  --ctp-red:      #dc322f;
  --ctp-mauve:    #6c71c4;
  --ctp-pink:     #d33682;
  --ctp-flamingo: #d33682;
  --ctp-rosewater:#fdf6e3;
}

[data-theme="solarized-light"] {
  --ctp-base:     #fdf6e3;
  --ctp-mantle:   #eee8d5;
  --ctp-crust:    #e0dbc8;
  --ctp-surface0: #eee8d5;
  --ctp-surface1: #ddd6b8;
  --ctp-surface2: #ccc49b;
  --ctp-overlay0: #586e75;
  --ctp-overlay1: #586e75;
  --ctp-overlay2: #586e75;
  --ctp-subtext0: #586e75;
  --ctp-subtext1: #657b83;
  --ctp-text:     #586e75;
  --ctp-lavender: #6c71c4;
  --bs-body-color: #586e75;
  --bs-body-color-rgb: 88, 110, 117;
  --bs-secondary-color: #657b83;
  --bs-secondary-color-rgb: 101, 123, 139;
  --bs-tertiary-color: #657b83;
  --bs-card-cap-color: #586e75;
  --bs-nav-link-color: #586e75;
  --bs-nav-link-hover-color: #268bd2;
  --ctp-blue:     #268bd2;
  --ctp-sapphire: #2aa198;
  --ctp-sky:      #2aa198;
  --ctp-teal:     #2aa198;
  --ctp-green:    #859900;
  --ctp-yellow:   #b58900;
  --ctp-peach:    #cb4b16;
  --ctp-maroon:   #dc322f;
  --ctp-red:      #dc322f;
  --ctp-mauve:    #6c71c4;
  --ctp-pink:     #d33682;
  --ctp-flamingo: #d33682;
  --ctp-rosewater:#002b36;
}

[data-theme="catppuccin-latte"] .dropdown-menu {
  --bs-dropdown-bg: #e6e9ef;
  --bs-dropdown-color: #3a3b4d;
  --bs-dropdown-link-color: #3a3b4d;
  --bs-dropdown-link-hover-color: #1e66f5;
  --bs-dropdown-link-hover-bg: #ccd0da;
  --bs-dropdown-header-color: #5c5f77;
  --bs-dropdown-border-color: #ccd0da;
}

[data-theme="solarized-light"] .dropdown-menu {
  --bs-dropdown-bg: #eee8d5;
  --bs-dropdown-color: #586e75;
  --bs-dropdown-link-color: #586e75;
  --bs-dropdown-link-hover-color: #268bd2;
  --bs-dropdown-link-hover-bg: #ddd6b8;
  --bs-dropdown-header-color: #657b83;
  --bs-dropdown-border-color: #ddd6b8;
}

/* =============================================================
   Layout — Sidebar + Main
   ============================================================= */

:root {
  --sidebar-width: 240px;
}

#sidebar {
  width: var(--sidebar-width);
  min-height: 100vh;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
}

@media (max-width: 991.98px) {
  #sidebar {
    display: none !important;
  }
}

.sidebar-brand {
  color: var(--ctp-text);
}

.sidebar-brand:hover {
  color: var(--ctp-lavender);
}

.sidebar-brand-icon {
  color: var(--ctp-mauve);
  font-size: 1.3rem;
}

#sidebar .nav-link,
.offcanvas .nav-link {
  color: var(--ctp-subtext1);
  border-radius: 0.5rem;
  padding: 0.5rem 0.75rem;
  transition: background-color 0.15s, color 0.15s;
}

#sidebar .nav-link:hover,
.offcanvas .nav-link:hover {
  background-color: var(--ctp-surface0);
  color: var(--ctp-text);
}

#sidebar .nav-link.active,
.offcanvas .nav-link.active {
  background-color: var(--ctp-surface1);
  color: var(--ctp-lavender);
}

.sidebar-divider {
  border-color: var(--ctp-surface0);
  margin: 0.75rem 0;
}

.sidebar-footer {
  color: var(--ctp-subtext0);
}

.sidebar-username {
  color: var(--ctp-subtext1);
}

.sidebar-avatar {
  color: var(--ctp-overlay1);
}

.main-content {
  min-height: 100vh;
  background-color: var(--ctp-base);
}

.topbar {
  background-color: var(--ctp-mantle);
  border-bottom: 1px solid var(--ctp-surface0);
  min-height: 60px;
}

.topbar-title {
  color: var(--ctp-text);
}

.btn-sidebar-toggle {
  background: transparent;
  border-color: var(--ctp-surface1);
  color: var(--ctp-subtext1);
}

/* =============================================================
   Bootstrap overrides using Catppuccin tokens
   ============================================================= */

body {
  background-color: var(--ctp-base);
  color: var(--ctp-text);
}

.card {
  background-color: var(--ctp-mantle);
  border-color: var(--ctp-surface0);
}

.card-header {
  background-color: var(--ctp-surface0);
  border-color: var(--ctp-surface1);
}

.navbar, .sidebar {
  background-color: var(--ctp-crust) !important;
}

.btn-primary {
  background-color: var(--ctp-blue);
  border-color: var(--ctp-blue);
  color: var(--ctp-base);
}

.btn-primary:hover {
  background-color: var(--ctp-sapphire);
  border-color: var(--ctp-sapphire);
  color: var(--ctp-base);
}

.form-control, .form-select {
  background-color: var(--ctp-surface0);
  border-color: var(--ctp-surface1);
  color: var(--ctp-text);
}

.form-control:focus, .form-select:focus {
  background-color: var(--ctp-surface0);
  border-color: var(--ctp-blue);
  color: var(--ctp-text);
  box-shadow: 0 0 0 0.2rem rgba(137, 180, 250, 0.25);
}

a {
  color: var(--ctp-blue);
}

a:hover {
  color: var(--ctp-lavender);
}

.text-muted {
  color: var(--ctp-subtext0) !important;
}

hr {
  border-color: var(--ctp-surface1);
}
