/* === Light Mode (default) === */
html { scroll-behavior: smooth; }

/* The floating button */
a.pageup{
  position: fixed;
  right: 1rem;
  bottom: 1rem;

  /* Match your runButton */
  width: 60px;
  height: 60px;
  padding: 3px;
  background-color: #FC6C85;
  border: 2px solid #751F2C;
  border-radius: 30px;

  /* Center icon */
  display: grid;
  place-items: center;

  /* Arrow color (Lucide uses stroke="currentColor") */
  color: #751F2C;

  text-decoration: none;
  z-index: 9999;
  line-height: 0;
  transition: transform .15s ease;
}
a.pageup:hover { transform: translateY(-2px); }

/* Size the icon before and after Lucide replaces it */
a.pageup i[data-lucide],
a.pageup svg.lucide {
  width: 28px !important;
  height: 28px !important;
  display: block;
  stroke-width: 2; /* ensure the stroke is visible */
}

/* Screen-reader only text */
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

h1, .h1 {
    color: #751F2C;
    margin-top: 2rem;
    margin-bottom: 0.9rem;
    font-weight: 600;
}

.quarto-categories:hover .quarto-category:hover {
    padding: .25em .75em;
    font-size: .65em;
    text-transform: uppercase;
    color: #d4fd49;            /* text color */
    border: 1px solid #d4fd49; /* outline color */
    border: solid 1px;
    border-radius: .25rem;
    opacity: .6;
}

.type-badge {
  display: inline-block;
  font-size: 0.65em;         /* larger text */
  padding: 0.3em 0.75em;     /* slightly bigger padding */
  margin: 0 0.25em 0.25em 0;
  font-weight: 600;          /* bolder like category tags */
  color: slategray;            /* text color */
  border: 1px solid slategray; /* outline color */
  border-radius: 0.25rem;
  text-decoration: none;
  background-color: transparent; /* no fill */
  text-transform: uppercase; /* all caps */
  transition: all 0.2s ease-in-out;
}

.type-badge:hover {
  display: inline-block;
  font-size: 0.65em;         /* larger text */
  padding: 0.3em 0.75em;     /* slightly bigger padding */
  margin: 0 0.25em 0.25em 0;
  font-weight: 600;          /* bolder like category tags */
  color: #751F2C;            /* text color */
  border: 1px solid #751F2C; /* outline color */
  border-radius: 0.25rem;
  text-decoration: none;
  background-color: transparent; /* no fill */
  text-transform: uppercase; /* all caps */
  transition: all 0.2s ease-in-out;
}

/* Hide 'Show X entries' dropdown */
.dataTables_length {
  display: none !important;
}

/* Hide search/filter box */
.dataTables_filter {
  display: none !important;
}

/* Hide table info text ("Showing 1 to X of Y entries") */
.dataTables_info {
  display: none !important;
}

/* Hide pagination controls */
.dataTables_paginate {
  display: none !important;
}

.table>:not(caption)>*>* {
    background-color: unset;
    color: #141414;
}

.table {
    --bs-table-color-type: initial;
    --bs-table-bg-type: initial;
    --bs-table-color-state: initial;
    --bs-table-bg-state: initial;
    --bs-table-color: #141414;
    --bs-table-border-color: #141414;
    --bs-table-accent-bg: transparent;
    --bs-table-striped-color: #141414;
    --bs-table-striped-bg: rgba(0, 0, 0, 0.05);
    --bs-table-active-color: #141414;
    --bs-table-active-bg: rgba(0, 0, 0, 0.1);
    --bs-table-hover-color: #141414;
    --bs-table-hover-bg: rgba(0, 0, 0, 0.075);
    width: 100%;
    margin-bottom: 1rem;
    vertical-align: top;
    border-color: #141414;
}

head, tbody, tfoot, tr, td, th {
    border-color: #141414;
    border-style: solid;
    border-width: 0;
}

/* Ensure Ramabhadra is loaded */
@import url('https://fonts.googleapis.com/css2?family=Ramabhadra:wght@900&display=swap');

.navbar-brand,
.navbar-title {
  font-family: 'Ramabhadra', sans-serif !important;
  font-weight: 900 !important;
  font-size: 20px !important;
  text-transform: uppercase; /* Optional for more presence */
  letter-spacing: 0px;     /* Slight spacing makes it read bolder */
  color: #000 !important;    /* Ensure strong color contrast */
}

img {
  border-radius: 6px;
}

.headline {
  font-size: 30px;
  color: #751F2C !important;
  text-shadow: none !important;
}

.sidebar nav[role=doc-toc] ul>li>a, .sidebar nav[role=doc-toc] ul>li>ul>li>a {
    border-left: 2.5px solid #313131;
    color: #313131 !important;
    text-shadow: none !important;
}

.sidebar nav[role=doc-toc] ul>li>a.active, .sidebar nav[role=doc-toc] ul>li>ul>li>a.active {
    border-left: 2.5px solid #B95763;
    color: #B95763 !important;
    text-shadow: none !important;
}

.sidebar nav[role=doc-toc] ul>li>a:hover, .sidebar nav[role=doc-toc] ul>li>ul>li>a:hover {
    color: #B95763 !important;
    border-left: 2.5px solid #B95763;
    text-shadow: none !important;
}

details>summary {
    color: #313131;
    text-shadow: none !important;
}

details>summary:hover {
    color: #313131 !important;
    text-decoration: underline !important;
    text-shadow: none !important;
}

:root {
    --bslib-page-sidebar-title-bg: #313131;
    --bslib-page-sidebar-title-color: #313131;
    text-shadow: none !important;
}

/* Base link styling */
a {
  color: #B95763 !important;
  text-decoration: none;
  font-weight: bold;
}

a:hover {
  color: #B95763 !important;
  text-decoration: underline !important;
}

/* Headings */
h1, .h1, h2, .h2 {
  color: #313131;
  margin-top: 2rem;
  margin-bottom: 0.9rem;
  font-weight: 600;
}

/* Inputs */
.input-group-sm > .form-control,
.input-group-sm > .form-select,
.input-group-sm > .input-group-text,
.input-group-sm > .btn {
  padding: 0.5rem 0.75rem;
  font-size: 0.9rem;
  border-radius: 6px;
  background: #f9f9f9;
  color: #141414;
  font-family: 'Ramabhadra', sans-serif;
  border: none;
}

/* Reset */
*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
  font-family: 'Ramabhadra', sans-serif;
  line-height: 1.6;
  background: #f2f0e9;
  color: #313131;
}

:root, [data-bs-theme=light] {
    --bs-blue: #033c73;
    --bs-indigo: #6610f2;
    --bs-purple: #6f42c1;
    --bs-pink: #e83e8c;
    --bs-red: #c71c22;
    --bs-orange: #fd7e14;
    --bs-yellow: #dd5600;
    --bs-green: #73a839;
    --bs-teal: #20c997;
    --bs-cyan: #B95763;
    --bs-black: #000;
    --bs-white: #fff;
    --bs-gray: #6c757d;
    --bs-gray-dark: #343a40;
    --bs-gray-100: #f8f9fa;
    --bs-gray-200: #e9ecef;
    --bs-gray-300: #dee2e6;
    --bs-gray-400: #ced4da;
    --bs-gray-500: #adb5bd;
    --bs-gray-600: #6c757d;
    --bs-gray-700: #141414;
    --bs-gray-800: #343a40;
    --bs-gray-900: #212529;
    --bs-default: #e9ecef;
    --bs-primary: #B95763;
    --bs-secondary: #e9ecef;
    --bs-success: #73a839;
    --bs-info: #033c73;
    --bs-warning: #dd5600;
    --bs-danger: #c71c22;
    --bs-light: #f8f9fa;
    --bs-dark: #343a40;
    --bs-default-rgb: 233, 236, 239;
    --bs-primary-rgb: 47, 164, 231;
    --bs-secondary-rgb: 233, 236, 239;
    --bs-success-rgb: 115, 168, 57;
    --bs-info-rgb: 3, 60, 115;
    --bs-warning-rgb: 221, 86, 0;
    --bs-danger-rgb: 199, 28, 34;
    --bs-light-rgb: 248, 249, 250;
    --bs-dark-rgb: 52, 58, 64;
    --bs-primary-text-emphasis: #13425c;
    --bs-secondary-text-emphasis: #5d5e60;
    --bs-success-text-emphasis: #2e4317;
    --bs-info-text-emphasis: #01182e;
    --bs-warning-text-emphasis: #582200;
    --bs-danger-text-emphasis: #500b0e;
    --bs-light-text-emphasis: #141414;
    --bs-dark-text-emphasis: #141414;
    --bs-primary-bg-subtle: #d5edfa;
    --bs-secondary-bg-subtle: #fbfbfc;
    --bs-success-bg-subtle: #e3eed7;
    --bs-info-bg-subtle: #cdd8e3;
    --bs-warning-bg-subtle: #f8ddcc;
    --bs-danger-bg-subtle: #f4d2d3;
    --bs-light-bg-subtle: #fcfcfd;
    --bs-dark-bg-subtle: #ced4da;
    --bs-primary-border-subtle: #acdbf5;
    --bs-secondary-border-subtle: #f6f7f9;
    --bs-success-border-subtle: #c7dcb0;
    --bs-info-border-subtle: #9ab1c7;
    --bs-warning-border-subtle: #f1bb99;
    --bs-danger-border-subtle: #e9a4a7;
    --bs-light-border-subtle: #e9ecef;
    --bs-dark-border-subtle: #adb5bd;
    --bs-white-rgb: 255, 255, 255;
    --bs-black-rgb: 0, 0, 0;
    --bs-font-sans-serif: 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";
    --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
    --bs-root-font-size: 17px;
    --bs-body-font-family: 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";
    --bs-body-font-size: 1rem;
    --bs-body-font-weight: 400;
    --bs-body-line-height: 1.5;
    --bs-body-color: #141414;
    --bs-body-color-rgb: 73, 80, 87;
    --bs-body-bg: #fff;
    --bs-body-bg-rgb: 255, 255, 255;
    --bs-emphasis-color: #000;
    --bs-emphasis-color-rgb: 0, 0, 0;
    --bs-secondary-color: rgba(73, 80, 87, 0.75);
    --bs-secondary-color-rgb: 73, 80, 87;
    --bs-secondary-bg: #e9ecef;
    --bs-secondary-bg-rgb: 233, 236, 239;
    --bs-tertiary-color: rgba(73, 80, 87, 0.5);
    --bs-tertiary-color-rgb: 73, 80, 87;
    --bs-tertiary-bg: #f8f9fa;
    --bs-tertiary-bg-rgb: 248, 249, 250;
    --bs-heading-color: #313131;
    --bs-link-color: #313131;
    --bs-link-color-rgb: 47, 164, 231;
    --bs-link-decoration: underline;
    --bs-link-hover-color: #2683b9;
    --bs-link-hover-color-rgb: 38, 131, 185;
    --bs-code-color: #7d12ba;
    --bs-highlight-bg: #f8ddcc;
    --bs-border-width: 1px;
    --bs-border-style: solid;
    --bs-border-color: #dee2e6;
    --bs-border-color-translucent: rgba(0, 0, 0, 0.175);
    --bs-border-radius: 0.25rem;
    --bs-border-radius-sm: 0.2em;
    --bs-border-radius-lg: 0.5rem;
    --bs-border-radius-xl: 1rem;
    --bs-border-radius-xxl: 2rem;
    --bs-border-radius-2xl: var(--bs-border-radius-xxl);
    --bs-border-radius-pill: 50rem;
    --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
    --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
    --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);
    --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);
    --bs-focus-ring-width: 0.25rem;
    --bs-focus-ring-opacity: 0.25;
    --bs-focus-ring-color: rgba(47, 164, 231, 0.25);
    --bs-form-valid-color: #73a839;
    --bs-form-valid-border-color: #73a839;
    --bs-form-invalid-color: #c71c22;
    --bs-form-invalid-border-color: #c71c22;
}

/* Icons */
i[data-lucide],
svg.lucide {
  width: 1.36em;
  height: 1.36em;
  stroke-width: 2.5;
  vertical-align: middle;
  margin: 0.125rem;
  position: fixed;
  transition: stroke 0.2s ease;
  stroke: #141414;
}

i[data-lucide],
svg.lucide {
  transition: stroke 0.2s ease, opacity 0.2s ease;
}

i:not([data-lucide]) {
  display: none !important;
}

/* Copy button */
button.copy-code-button {
  background: transparent;
  border: none;
  cursor: pointer;
  vertical-align: middle;
}

/* Header */
[data-bs-theme=dark] .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h16'/%3E%3Cpath d='M4 18h16'/%3E%3Cpath d='M4 6h16'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1.5rem 1.5rem;
  border: none;
}

nav.navbar,
.blog-header {
  background: #f2f0e9;
  background-size: 200% 100%;
  padding: 0.9rem 2rem;
}

nav.navbar .navbar-brand,
nav.navbar a,
.blog-header a {
  font-size: 18px;
  color: #313131 !important;
  font-family: Ramabhadra, sans-serif;
  font-weight: bold;
  text-shadow: none !important;
}

.blog-header h1,
nav.navbar .navbar-brand {
  font-size: 20px;
  color: #313131 !important;
  text-shadow: none !important;
}

/* Title banner */
.quarto-title-banner {
  margin-bottom: 1em;
  padding: 1rem 2rem;
  color: #fff;
  background: linear-gradient(90deg, var(--token-3f2c6dbc-8987-465f-a56b-e509e01f1b8e, #3f4b26) 0%, rgb(95, 105, 60) 100%);
}

/* Code blocks */
code,
pre code,
div.sourceCode,
div.sourceCode pre.sourceCode {
  font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
  font-weight: bold;
  font-size: 0.81rem;
  background: #FAF8F1;
  border-radius: 6px;
  padding: 0.5em;
  border: none;
}

pre {
  font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
  font-weight: bold;
  font-size: 0.9rem;
  color: #FFFFFF;
  background: #313131;
  border-radius: 6px;
  padding: 0.5em;
  border: none;
}

/* Responsive nav spacing */
@media (max-width: 768px) {
  .navbar-nav > li:first-child {
    margin-top: 1.5rem;
  }
}

/* Search box */
.search-box-wrapper {
  position: relative;
  max-width: 400px;
  margin-bottom: 1.5rem;
}

.search-box-wrapper input {
  width: 100%;
  padding: 0.5rem 0.5rem 0.5rem 0.5rem;
  font-size: 0.9rem;
  border-radius: 0.5em;
  font-family: 'Ramabhadra', sans-serif;
  color: #141414;
  background: #ffffff;
  border: none;
}

.search-box-wrapper input:hover,
.search-box-wrapper input:focus {
  background: #f0f0f0;
}

.search-box-wrapper i[data-lucide="search"] {
  position: absolute;
  top: 50%;
  left: 0.75rem;
  transform: translateY(-50%);
  stroke: #141414;
  pointer-events: none;
}