/* Brand colors */
:root {
  --brand-color: #34a9be;
  --brand-color-dark: #2a8798; /* Darker shade of the brand color */
}

/* Light mode styles (explicit) */
:root {
  --bg-color: #FFF;
  --text-color: #404040;
  --link-color: var(--brand-color);
  --link-hover-color: var(--brand-color-dark);
  --border-color: #EAEAEA;
  --nav-bg: #F5F5F5;
  --nav-color: #000000;
  --nav-hover-color: var(--brand-color);
  --footer-bg: #F5F5F5;
  --blockquote-color: #808080;
  --code-bg: #fff;
  --code-color: #333;
  --table-bg: #ffffff;
  --table-bg-accent: #f8f8f8;
  --table-border: #cccccc;
  --well-bg: #f5f5f5;
  --panel-bg: #fff;
  --panel-item-bg: #fff;
}

/* Dark mode styles */
[data-theme="dark"] {
  --bg-color: black;
  --text-color: white;
  --link-color: var(--brand-color);
  --link-hover-color: var(--brand-color-dark);
  --border-color: #111;
  --nav-bg: #0a0a0a;
  --nav-color: #ffffff;
  --nav-hover-color: var(--brand-color);
  --footer-bg: #222;
  --blockquote-color: #808080;
  --code-bg: #222;
  --code-color: #fbb;
  --table-bg: #181818;
  --table-bg-accent: #303030;
  --table-border: #cccccc;
  --well-bg: #444;
  --panel-bg: #222;
  --panel-item-bg: #333;
}

/* Base styles with CSS variables */
body {
  background-color: var(--bg-color);
  color: var(--text-color);
}

a {
  color: var(--brand-color) !important;
  transition: color 0.3s ease;
}

a:hover,
a:focus {
  color: var(--brand-color-dark) !important;
}

/* Navbar styles */
.navbar-custom {
  background: var(--nav-bg);
  border-bottom: 1px solid var(--border-color);
}

.navbar-custom .navbar-brand,
.navbar-custom .nav li a {
  color: var(--nav-color) !important;
  background-color: var(--nav-hover-bg) !important;
  transition: color 0.3s ease;
}

.navlinks-parent:hover {
  background-color: none !important;
}

.navbar-custom .navbar-brand:hover,
.navbar-custom .navbar-brand:focus,
.navbar-custom .nav li a:hover,
.navbar-custom .nav li a:focus {
  color: #24a9be !important;
  background-color: var(--nav-hover-bg) !important;
}

/* Footer styles */
footer {
  background: var(--footer-bg);
  border-top: 1px solid var(--border-color);
}

footer a {
  color: var(--text-color);
}

/* Code blocks */
code {
  background-color: var(--code-bg);
  color: var(--code-color);
}

pre code {
  color: inherit;
}

/* Tables */
table tr {
  background-color: var(--table-bg);
  border-top: 1px solid var(--table-border);
}

table tr:nth-child(2n) {
  background-color: var(--table-bg-accent);
}

table tr th,
table tr td {
  border: 1px solid var(--table-border);
}

/* Post preview */
.post-preview {
  border-bottom: 1px solid var(--border-color);
}

.post-preview a {
  color: var(--text-color);
}

/* Post title specific styles */
.post-preview .post-title {
  color: var(--text-color) !important;
  transition: color 0.3s ease;
}

.post-preview .post-title:hover,
.post-preview .post-title:focus {
  color: #24a9be !important;
}

/* Other post preview links */
.post-preview a:not(.post-title):focus,
.post-preview a:not(.post-title):hover {
  color: var(--brand-color-dark) !important;
}

/* Tag hover states */
.blog-tags a:hover {
  color: var(--brand-color-dark) !important;
  border-radius: 2px;
  background-color: rgba(52, 169, 190, 0.1);
}

/* Button hover states */
.btn:hover,
.btn:focus {
  color: #fff !important;
  background-color: var(--brand-color-dark) !important;
  border-color: var(--brand-color-dark) !important;
}

/* Pager hover states */
.pager li a:hover,
.pager li a:focus {
  color: #fff !important;
  background-color: var(--brand-color-dark) !important;
  border-color: var(--brand-color-dark) !important;
}

/* Blockquotes */
blockquote {
  color: var(--blockquote-color);
  border-left: 5px solid var(--border-color);
}

/* Selection color */
::selection {
  background: var(--brand-color);
  color: white;
}
::-moz-selection {
  background: var(--brand-color);
  color: white;
}

/* Wells and Panels */
.well {
  background-color: var(--well-bg);
  border-color: var(--border-color);
}

.panel {
  background-color: var(--panel-bg);
}

.list-group-item {
  background-color: var(--panel-item-bg);
}

/* Force light mode styles when explicitly set */
[data-theme="light"] {
  color-scheme: light !important;
  --bg-color: #ffffff !important;
  --text-color: #404040 !important;
  --link-color: #337ab7 !important;
  --border-color: #eee !important;
  --nav-bg: #f8f8f8 !important;
  --nav-color: #000000 !important;
  --nav-hover-bg: none !important;
  --nav-hover-color: #333 !important;
  --footer-bg: #f5f5f5 !important;
  --footer-color: #404040 !important;
  --btn-default-bg: #fff !important;
  --btn-default-color: #333 !important;
  --btn-default-border: #ccc !important;
  --btn-primary-bg: #337ab7 !important;
  --btn-primary-color: #fff !important;
  --card-bg: #fff !important;
  --code-bg: #f5f5f5 !important;
  --code-color: #333 !important;
  --blockquote-border: #eee !important;
  --table-border: #ddd !important;
  --table-bg: #fff !important;
  --table-bg-accent: #f9f9f9 !important;
}

/* Base styles */
body {
  background-color: var(--bg-color);
  color: var(--text-color);
}

/* Navbar styles */
.navbar-default {
  background-color: var(--nav-bg);
  border-color: var(--border-color);
}

.navbar-default .navbar-brand,
.navbar-default .navbar-nav > li > a {
  color: var(--nav-color);
}

.navbar-default .navbar-brand:hover,
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
  color: var(--nav-hover-color);
  background-color: var(--nav-hover-bg);
}

.navbar-default .navbar-toggle .icon-bar {
  background-color: var(--nav-color);
}

.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
  border-color: var(--border-color);
}

/* Footer styles */
footer {
  background-color: var(--footer-bg);
  color: var(--footer-color);
  border-top: 1px solid var(--border-color);
}

footer a {
  color: var(--link-color);
}

/* Button styles */
.btn-default {
  color: var(--btn-default-color);
  background-color: var(--btn-default-bg);
  border-color: var(--btn-default-border);
}

.btn-primary {
  color: var(--btn-primary-color);
  background-color: var(--btn-primary-bg);
  border-color: var(--btn-primary-bg);
}

/* Card/Post styles */
.post-preview {
  border-bottom: 1px solid var(--border-color);
}

.blog-post {
  background-color: var(--card-bg);
}

/* Code blocks */
pre, code {
  background-color: var(--code-bg);
  color: var(--code-color);
  border-color: var(--border-color);
}

/* Blockquotes */
blockquote {
  border-left: 5px solid var(--blockquote-border);
}

/* Tables */
table {
  border: 1px solid var(--table-border);
}

table > thead > tr > th,
table > tbody > tr > th,
table > thead > tr > td,
table > tbody > tr > td {
  border: 1px solid var(--table-border);
}

table > tbody > tr:nth-of-type(odd) {
  background-color: var(--table-bg-accent);
}

/* Links */
a {
  color: var(--link-color);
}

a:hover,
a:focus {
  color: var(--link-color);
  opacity: 0.8;
}

/* Selection */
::selection {
  background: var(--link-color);
  color: var(--bg-color);
}

/* Scrollbar (webkit browsers) */
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

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

::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 5px;
}

/* Search box and other inputs */
input[type="text"],
input[type="email"],
input[type="search"],
textarea {
  background-color: var(--bg-color);
  color: var(--text-color);
  border: 1px solid var(--border-color);
}

/* Dropdown menus */
.navlinks-container {
  position: relative;
}

.navlinks-parent:after {
  content: " \25BC";
  font-size: 10px;
  position: relative;
  top: -1px;
}

.navlinks-children {
  min-width: 160px;
  position: absolute;
  background-color: var(--nav-bg);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
  z-index: 1000;
}

.navlinks-container:hover .navlinks-children {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.navlinks-children a {
  color: var(--nav-color) !important;
  padding: 12px 20px !important;
  margin: 0 !important;
  display: block;
  white-space: nowrap;
  border-radius: 4px;
  transition: all 0.2s ease;
  font-size: 14px;
  border: none !important;
}

.navlinks-children a:first-child {
  border-top-left-radius: 6px;
  border-top-right-radius: 6px;
}

.navlinks-children a:last-child {
  border-bottom-left-radius: 6px;
  border-bottom-right-radius: 6px;
}

.navlinks-children a:hover {
  color: var(--brand-color) !important;
  background-color: rgba(52, 169, 190, 0.1) !important;
  transform: translateX(4px);
}

/* Dark mode specific dropdown styles */
[data-theme="dark"] .navlinks-children {
  background-color: var(--nav-bg);
  border: 1px solid var(--border-color);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

/* Mobile dropdown styles */
@media only screen and (max-width: 767px) {
  .navlinks-children {
    position: static;
    display: none;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    border-radius: 0;
    background: transparent;
    padding-left: 15px;
  }

  .navlinks-container.show-children .navlinks-children {
    display: block;
  }

  .navlinks-children a {
    padding: 8px 15px !important;
    border-radius: 0 !important;
  }

  .navlinks-children a:hover {
    transform: none;
  }
}

[data-theme="dark"] .navbar-default {
  background-color: #2d2d2d;
  border-color: var(--border-color);
}

[data-theme="dark"] .navbar-default .navbar-nav > li > a {
  color: var(--text-color);
}

[data-theme="dark"] .navbar-default .navbar-brand {
  color: var(--text-color);
}

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

[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-color);
}

[data-theme="dark"] a {
  color: var(--link-color);
}

/* Theme toggle button styles */
.theme-toggle {
  padding: 15px !important;
  display: flex;
  align-items: center;
  cursor: pointer;
}

.theme-toggle-light,
.theme-toggle-dark {
  font-size: 1.2em;
  line-height: 20px;
}

/* Show sun icon by default (light mode) */
.theme-toggle-light {
  display: none;
}

.theme-toggle-dark {
  display: inline;
}

/* Show moon icon in dark mode */
[data-theme="dark"] .theme-toggle-light {
  display: inline;
}

[data-theme="dark"] .theme-toggle-dark {
  display: none;
}

/* Modal styles */
.modal-content {
  background-color: var(--bg-color);
  color: var(--text-color);
  border-color: var(--border-color);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

[data-theme="dark"] .modal-content {
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
}

.modal-header {
  background-color: var(--nav-bg);
  border-bottom: 1px solid var(--border-color);
  padding: 15px 20px;
}

.modal-title {
  color: var(--text-color);
  font-weight: 600;
}

.modal-header .close {
  color: var(--text-color);
  opacity: 0.7;
  text-shadow: none;
  transition: opacity 0.2s ease;
}

.modal-header .close:hover {
  opacity: 1;
}

.modal-body {
  background-color: var(--bg-color);
  padding: 20px;
}

.modal-footer {
  background-color: var(--nav-bg);
  border-top: 1px solid var(--border-color);
  padding: 15px 20px;
}

/* Style for Google Custom Search in modal */
.modal-body .gsc-control-cse {
  background-color: transparent !important;
  border: none !important;
  padding: 0 !important;
}

.modal-body .gsc-input-box {
  background-color: var(--bg-color) !important;
  border-color: var(--border-color) !important;
}

.modal-body .gsc-input {
  color: var(--text-color) !important;
}

.modal-body .gsc-search-button-v2 {
  background-color: var(--brand-color) !important;
  border-color: var(--brand-color) !important;
}

.modal-body .gsc-search-button-v2:hover {
  background-color: var(--brand-color-dark) !important;
  border-color: var(--brand-color-dark) !important;
}
