body,html {
    --bs-blue: #005da6 !important;
    --bs-primary-rgb: 0, 93, 166 !important; 
    height: 100%;
    --default-bg: #f8f9fa;
    --default-color: #212529;
    --head-foot-bg: var(--bs-blue);
    --content-pane-bg: #d3d5d8;
    --anchor-color: var(--bs-blue);
    --anchor-hover: #0253cc;
    --active-side-nav-color: var(--bs-blue);
    --active-main-nav-bg: #f8f9fa;
    --active-main-nav-color: var(--bs-blue);
    --inactive-main-nav-hover: #78a4d3;
    --tooltip-bg: rgba(0,0,0,.5);
    background-color: var(--default-bg);
    color: var(--default-color);
    transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out;
    --bs-font-sans-serif: "Open Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  }    

  body.dark-mode {
    --default-bg: #343a40;
    --default-color: #ffffff;
    --content-pane-bg: #1c2b3b;
    --anchor-color: #9fcdff;
    --anchor-hover: #78a4d3;
    --active-side-nav-color: #ffffff;
    --active-main-nav-bg: var(--bs-blue);
    --active-main-nav-color: #f8f9fa;
    --inactive-main-nav-hover: #f8f9fa;
    --head-foot-bg: #212529;
    --bs-card-bg: #212529;
    --bs-secondary-color: rgba(233, 236, 239, 0.75);
  }

  input::placeholder {
    color: rgba(33, 37, 41, .75) !important;
  }

  .badge {
    cursor: default;
  }

  body.dark-mode .form-check-input:checked {
    background-color: var(--default-bg);
    border-color: var(--default-bg);
  }

  body.dark-mode .form-check-input:focus {
    box-shadow: 0 0 0 .15rem rgba(52, 58, 64, .25);
  }

  nav.navbar, footer, .sticky-toolbar {
    background-color: var(--head-foot-bg);
    --default-color: #ffffff !important;
    color: var(--default-color);
  }

  body.light-mode nav {
    --anchor-color: #ffffff;
  }

  body.dark-mode .card {
    --bs-card-bg: #212529;
  }

  body.dark-mode .modal {
    --bs-modal-bg: #212529;
  }

  body.dark-mode .btn-close {
    filter: invert(100%);
    opacity: .75;
  }

  body.dark-mode .card, body.light-mode .sticky-toolbar {    
    --bs-secondary-color: rgba(233, 236, 239, 0.75);
    --bs-card-color: #ffffff !important;
  }

  .msd-da .bg-warning  {
    background-color: var(--bs-orange) !important;
  }

  .msd-da .border-warning {
    border-color: var(--bs-orange)!important;
  }

  .text-default {
    color: var(--default-color) !important;
  }

  .text-warning {
    color: var(--bs-orange) !important;
  }

  .text-purple {
    color: var(--bs-purple) !important;
  }

  a, a.nav-link {
    color: var(--anchor-color);
    cursor:pointer;
  } 

  .bg-purple {
    background-color: var(--bs-purple);
  }

  .pointer {
    cursor: pointer;
  }

  .theme-toggle-label {
    color: #fff !important;
  }

  .text-default {
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
  }

  .card {    
    --bs-card-color: var(--default-color) !important;
  }

/* Library Styles (index.html) */
    /* Light polish for cards and sticky toolbar */
    .video-card { transition: transform .08s ease-in-out; }
    .video-card:hover { transform: translateY(-2px); }
    .sticky-toolbar { position: sticky; top: 0; z-index: 1020; }
    .category-header { scroll-margin-top: 6rem; } /* helps anchor scroll with sticky toolbar */
    .badge-duration { font-variant-numeric: tabular-nums; }
    .card-img-top {
      aspect-ratio: 16 / 9;
      object-fit: cover;
    }
    /* Thumbnail overlay + consistent aspect ratio */
    .thumb-wrap {
      position: relative;
      border-top-left-radius: .375rem;  /* matches Bootstrap card default */
      border-top-right-radius: .375rem;
      overflow: hidden;
      background: #e9ecef;
      cursor: pointer;
    }

    .thumb-wrap img {
      width: 100%;
      aspect-ratio: 16 / 9;
      object-fit: cover;
      display: block;
    }

    /* Play button overlay */
    .thumb-play {
      position: absolute;
      inset: 0;
      display: grid;
      place-items: center;
      pointer-events: none; /* click passes through */
    }

    .thumb-play .play-icon {
      width: 64px;
      height: 64px;
      border-radius: 999px;
      background: rgba(0,0,0,.55);
      display: grid;
      place-items: center;
      box-shadow: 0 6px 18px rgba(0,0,0,.35);
      transform: scale(1);
      transition: transform .12s ease-in-out, background .12s ease-in-out;
    }

    .video-card:hover .thumb-play .play-icon {
      transform: scale(1.06);
      background: rgba(0,0,0,.65);
    }

    /* Triangle "play" glyph */
    .thumb-play .play-triangle {
      width: 0;
      height: 0;
      border-left: 18px solid rgba(255,255,255,.95);
      border-top: 12px solid transparent;
      border-bottom: 12px solid transparent;
      margin-left: 3px; /* optical centering */
    }


/* Watcher Styles */

    .video-wrap {
      background: #000;
      border-radius: 0.75rem;
      overflow: hidden;
    }
    video {
      width: 100%;
      height: auto;
      display: block;
      background: #000;
    }
    .add-link-icon {
        font-size: 1.1em;
        cursor: pointer;
    }


/* Markdown Styles */

.dark-mode .markdown-content pre {
  background: #1e1e1e;
  color: #ddd;
}

.dark-mode .markdown-content code {
  color: #ffd479;
}

.dark-mode .markdown-content table {
  color: #ddd;
}

.doc-shell {
  border-radius: 0.75rem;
  overflow: hidden;
}

.markdown-content {
  line-height: 1.75;
  font-size: 1rem;
}

.markdown-content h1,
.markdown-content h2,
.markdown-content h3,
.markdown-content h4 {
  margin-top: 2rem;
  margin-bottom: 1rem;
}

.markdown-content h1:first-child {
  margin-top: 0;
}

.markdown-content pre {
  border-radius: 0.5rem;
  padding: 1rem;
  overflow-x: auto;
  background: #1e1e1e;
  color: #ddd;
  max-width: 100%;
}

.markdown-content code {
  border-radius: 0.25rem;
  padding: 0.15rem 0.35rem;
  font-size: 0.95em;
}

.markdown-content blockquote {
  border-left: 4px solid #0d6efd;
  padding-left: 1rem;
  margin-left: 0;
  opacity: 0.9;
}

.markdown-content table {
  width: 100%;
  margin-bottom: 1rem;
}

.markdown-content img {
  max-width: 100%;
  height: auto;
}

.markdown-content table th,
.markdown-content table td {
  padding: 0.75rem;
  border: 1px solid rgba(255,255,255,0.1);
}

.inline-doc-section,
.faq-section,
.other-docs-section,
.see-also-section {
  margin-top: 3rem;
}

.doc-card img {
  height: 180px;
  object-fit: cover;
}

.doc-overlay-badge {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 5;
}

.doc-card {
  transition:
    transform .08s ease-in-out;
}

.doc-card:hover {
  transform: translateY(-2px);
}

.faq-accordion .accordion-button:not(.collapsed) {
  background-color: rgba(13,110,253,.15);
}

.metadata-row {
  gap: 0.5rem;
}

.metadata-row .badge {
  font-size: 0.8rem;
}

.markdown-content {
  overflow-wrap: break-word;
  word-wrap: break-word;
  min-width: 0;
}

.markdown-content * {
  max-width: 100%;
}

.markdown-content pre,
.markdown-content table,
.markdown-content img,
.markdown-content iframe {
  max-width: 100%;
}

.markdown-content table {
  display: block;
  overflow-x: auto;
  white-space: nowrap;
}

.row > [class*='col-'] {
  min-width: 0;
}

/* override bootstrap for vid filter btn */
body.light-mode .btn-vids {
  --bs-btn-color: #ffffff;
  --bs-btn-border-color: #ffffff;
}