/* Nord Palette - Complete Bootstrap Variable Override */
:root,
[data-bs-theme="light"] {
    /* Nord Polar Night - Dark colors */
    --bs-nord-polar-night-1: #2E3440;
    --bs-nord-polar-night-2: #3B4252;
    --bs-nord-polar-night-3: #434C5E;
    --bs-nord-polar-night-4: #4C566A;

    /* Nord Snow Storm - Light colors */
    --bs-nord-snow-storm-1: #D8DEE9;
    --bs-nord-snow-storm-2: #E5E9F0;
    --bs-nord-snow-storm-3: #ECEFF4;

    /* Nord Frost - Blue/Cyan colors */
    --bs-nord-frost-1: #8FBCBB;
    --bs-nord-frost-2: #88C0D0;
    --bs-nord-frost-3: #81A1C1;
    --bs-nord-frost-4: #5E81AC;

    /* Nord Aurora - Accent colors */
    --bs-nord-aurora-red: #BF616A;
    --bs-nord-aurora-orange: #D08770;
    --bs-nord-aurora-yellow: #EBCB8B;
    --bs-nord-aurora-green: #A3BE8C;
    --bs-nord-aurora-purple: #B48EAD;

    /* Bootstrap color mapping to Nord */
    --bs-blue: var(--bs-nord-frost-4);
    --bs-indigo: var(--bs-nord-aurora-purple);
    --bs-purple: var(--bs-nord-aurora-purple);
    --bs-pink: var(--bs-nord-aurora-red);
    --bs-red: var(--bs-nord-aurora-red);
    --bs-orange: var(--bs-nord-aurora-orange);
    --bs-yellow: var(--bs-nord-aurora-yellow);
    --bs-green: var(--bs-nord-aurora-green);
    --bs-teal: var(--bs-nord-frost-1);
    --bs-cyan: var(--bs-nord-frost-2);
    --bs-black: #000;
    --bs-white: #fff;
    --bs-gray: var(--bs-nord-polar-night-4);
    --bs-gray-dark: var(--bs-nord-polar-night-1);
    --bs-gray-100: var(--bs-nord-snow-storm-3);
    --bs-gray-200: var(--bs-nord-snow-storm-2);
    --bs-gray-300: var(--bs-nord-snow-storm-1);
    --bs-gray-400: var(--bs-nord-polar-night-4);
    --bs-gray-500: var(--bs-nord-polar-night-4);
    --bs-gray-600: var(--bs-nord-polar-night-3);
    --bs-gray-700: var(--bs-nord-polar-night-2);
    --bs-gray-800: var(--bs-nord-polar-night-1);
    --bs-gray-900: var(--bs-nord-polar-night-1);

    /* Semantic colors */
    --bs-primary: var(--bs-nord-frost-4);
    --bs-secondary: var(--bs-nord-polar-night-4);
    --bs-success: var(--bs-nord-aurora-green);
    --bs-info: var(--bs-nord-frost-2);
    --bs-warning: var(--bs-nord-aurora-yellow);
    --bs-danger: var(--bs-nord-aurora-red);
    --bs-light: var(--bs-nord-snow-storm-3);
    --bs-dark: var(--bs-nord-polar-night-1);

    /* RGB values for Nord colors */
    --bs-primary-rgb: 94, 129, 172;
    --bs-secondary-rgb: 76, 86, 106;
    --bs-success-rgb: 163, 190, 140;
    --bs-info-rgb: 136, 192, 208;
    --bs-warning-rgb: 235, 203, 139;
    --bs-danger-rgb: 191, 97, 106;
    --bs-light-rgb: 236, 239, 244;
    --bs-dark-rgb: 46, 52, 64;

    /* Text emphasis colors - Light theme */
    --bs-primary-text-emphasis: #3d5875;
    --bs-secondary-text-emphasis: var(--bs-nord-polar-night-3);
    --bs-success-text-emphasis: #6b7f5e;
    --bs-info-text-emphasis: #5a7f88;
    --bs-warning-text-emphasis: #997f5c;
    --bs-danger-text-emphasis: #7f4d56;
    --bs-light-text-emphasis: var(--bs-nord-polar-night-2);
    --bs-dark-text-emphasis: var(--bs-nord-polar-night-2);

    /* Background subtle colors - Light theme */
    --bs-primary-bg-subtle: #d4dce6;
    --bs-secondary-bg-subtle: var(--bs-nord-snow-storm-2);
    --bs-success-bg-subtle: #e3ead8;
    --bs-info-bg-subtle: #daeef4;
    --bs-warning-bg-subtle: #f9f3e3;
    --bs-danger-bg-subtle: #eed8db;
    --bs-light-bg-subtle: var(--bs-nord-snow-storm-3);
    --bs-dark-bg-subtle: var(--bs-nord-snow-storm-1);

    /* Border subtle colors - Light theme */
    --bs-primary-border-subtle: #a9b9cc;
    --bs-secondary-border-subtle: var(--bs-nord-snow-storm-1);
    --bs-success-border-subtle: #c7d5b1;
    --bs-info-border-subtle: #b5dde9;
    --bs-warning-border-subtle: #f3e7c7;
    --bs-danger-border-subtle: #ddb1b7;
    --bs-light-border-subtle: var(--bs-nord-snow-storm-2);
    --bs-dark-border-subtle: var(--bs-nord-polar-night-4);

    /* Body and UI colors - Light theme */
    --bs-body-font-family: var(--bs-font-sans-serif);
    --bs-body-font-size: 1rem;
    --bs-body-font-weight: 400;
    --bs-body-line-height: 1.5;
    --bs-body-color: var(--bs-nord-polar-night-1);
    --bs-body-color-rgb: 46, 52, 64;
    --bs-body-bg: var(--bs-nord-snow-storm-3);
    --bs-body-bg-rgb: 236, 239, 244;
    --bs-emphasis-color: var(--bs-nord-polar-night-1);
    --bs-emphasis-color-rgb: 46, 52, 64;
    --bs-secondary-color: var(--bs-nord-polar-night-3);
    --bs-secondary-color-rgb: 67, 76, 94;
    --bs-secondary-bg: var(--bs-nord-snow-storm-2);
    --bs-secondary-bg-rgb: 229, 233, 240;
    --bs-tertiary-color: var(--bs-nord-polar-night-4);
    --bs-tertiary-color-rgb: 76, 86, 106;
    --bs-tertiary-bg: var(--bs-nord-snow-storm-1);
    --bs-tertiary-bg-rgb: 216, 222, 233;
    --bs-heading-color: inherit;

    /* Link colors - Light theme */
    --bs-link-color: var(--bs-nord-frost-4);
    --bs-link-color-rgb: 94, 129, 172;
    --bs-link-decoration: underline;
    --bs-link-hover-color: var(--bs-nord-frost-3);
    --bs-link-hover-color-rgb: 129, 161, 193;

    /* Code and highlight */
    --bs-code-color: var(--bs-nord-aurora-purple);
    --bs-highlight-color: var(--bs-nord-polar-night-1);
    --bs-highlight-bg: var(--bs-nord-aurora-yellow);

    /* Borders */
    --bs-border-width: 1px;
    --bs-border-style: solid;
    --bs-border-color: var(--bs-nord-snow-storm-1);
    --bs-border-color-translucent: rgba(67, 76, 94, 0.175);
    --bs-border-radius: 0.375rem;
    --bs-border-radius-sm: 0.25rem;
    --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;

    /* Shadows */
    --bs-box-shadow: 0 0.5rem 1rem rgba(46, 52, 64, 0.15);
    --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(46, 52, 64, 0.075);
    --bs-box-shadow-lg: 0 1rem 3rem rgba(46, 52, 64, 0.175);
    --bs-box-shadow-inset: inset 0 1px 2px rgba(46, 52, 64, 0.075);

    /* Focus ring */
    --bs-focus-ring-width: 0.25rem;
    --bs-focus-ring-opacity: 0.25;
    --bs-focus-ring-color: rgba(94, 129, 172, 0.25);

    /* Form validation */
    --bs-form-valid-color: var(--bs-nord-aurora-green);
    --bs-form-valid-border-color: var(--bs-nord-aurora-green);
    --bs-form-invalid-color: var(--bs-nord-aurora-red);
    --bs-form-invalid-border-color: var(--bs-nord-aurora-red);

    /* RGB helpers */
    --bs-white-rgb: 255, 255, 255;
    --bs-black-rgb: 0, 0, 0;

    /* Fonts */
    --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;

    /* Gradient */
    --bs-gradient: linear-gradient(
            180deg,
            rgba(236, 239, 244, 0.15),
            rgba(236, 239, 244, 0)
    );
}

[data-bs-theme="dark"] {
    color-scheme: dark;

    /* Body colors - Dark theme */
    --bs-body-color: var(--bs-nord-snow-storm-2);
    --bs-body-color-rgb: 229, 233, 240;
    --bs-body-bg: var(--bs-nord-polar-night-1);
    --bs-body-bg-rgb: 46, 52, 64;
    --bs-emphasis-color: var(--bs-nord-snow-storm-3);
    --bs-emphasis-color-rgb: 236, 239, 244;
    --bs-secondary-color: var(--bs-nord-snow-storm-1);
    --bs-secondary-color-rgb: 216, 222, 233;
    --bs-secondary-bg: var(--bs-nord-polar-night-2);
    --bs-secondary-bg-rgb: 59, 66, 82;
    --bs-tertiary-color: var(--bs-nord-polar-night-4);
    --bs-tertiary-color-rgb: 76, 86, 106;
    --bs-tertiary-bg: var(--bs-nord-polar-night-3);
    --bs-tertiary-bg-rgb: 67, 76, 94;

    /* Text emphasis colors - Dark theme */
    --bs-primary-text-emphasis: var(--bs-nord-frost-3);
    --bs-secondary-text-emphasis: var(--bs-nord-snow-storm-1);
    --bs-success-text-emphasis: var(--bs-nord-aurora-green);
    --bs-info-text-emphasis: var(--bs-nord-frost-1);
    --bs-warning-text-emphasis: var(--bs-nord-aurora-yellow);
    --bs-danger-text-emphasis: var(--bs-nord-aurora-red);
    --bs-light-text-emphasis: var(--bs-nord-snow-storm-3);
    --bs-dark-text-emphasis: var(--bs-nord-snow-storm-2);

    /* Background subtle colors - Dark theme */
    --bs-primary-bg-subtle: #1a2332;
    --bs-secondary-bg-subtle: var(--bs-nord-polar-night-2);
    --bs-success-bg-subtle: #2d3a29;
    --bs-info-bg-subtle: #263238;
    --bs-warning-bg-subtle: #3d3729;
    --bs-danger-bg-subtle: #33262a;
    --bs-light-bg-subtle: var(--bs-nord-polar-night-2);
    --bs-dark-bg-subtle: #1a1d22;

    /* Border subtle colors - Dark theme */
    --bs-primary-border-subtle: #2c3f5e;
    --bs-secondary-border-subtle: var(--bs-nord-polar-night-3);
    --bs-success-border-subtle: #4d6446;
    --bs-info-border-subtle: #446a73;
    --bs-warning-border-subtle: #7a6e4c;
    --bs-danger-border-subtle: #664850;
    --bs-light-border-subtle: var(--bs-nord-polar-night-3);
    --bs-dark-border-subtle: var(--bs-nord-polar-night-2);

    /* Link colors - Dark theme */
    --bs-link-color: var(--bs-nord-frost-2);
    --bs-link-hover-color: var(--bs-nord-frost-1);
    --bs-link-color-rgb: 136, 192, 208;
    --bs-link-hover-color-rgb: 143, 188, 187;

    /* Code and highlight - Dark theme */
    --bs-code-color: var(--bs-nord-aurora-purple);
    --bs-highlight-color: var(--bs-nord-snow-storm-2);
    --bs-highlight-bg: #665227;

    /* Borders - Dark theme */
    --bs-border-color: var(--bs-nord-polar-night-3);
    --bs-border-color-translucent: rgba(236, 239, 244, 0.15);

    /* Form validation - Dark theme */
    --bs-form-valid-color: var(--bs-nord-aurora-green);
    --bs-form-valid-border-color: var(--bs-nord-aurora-green);
    --bs-form-invalid-color: var(--bs-nord-aurora-red);
    --bs-form-invalid-border-color: var(--bs-nord-aurora-red);

    /* Gradient - Dark theme */
    --bs-gradient: linear-gradient(
            180deg,
            rgba(46, 52, 64, 0.15),
            rgba(46, 52, 64, 0)
    );
}

/* bs5plain theme for Bludit with Nord Palette */
.bs5plain-logo {
}
.bs5plain-logo-img {
    width: 140px !important;
    height: 140px !important;
    min-width: 140px !important;
    min-height: 140px !important;
}
.bs5plain-logo-img-header {
    width: 2.4rem !important;
    height: 2.4rem !important;
    min-width: 2.4rem !important;
    min-height: 2.4rem !important;
}
.bs5plain-cover-img {
    max-height:600px !important;
}
.bs5socialmedia-icon {
    width: 2rem !important;
    height: 2rem !important;
    max-width: 2rem !important;
    max-height: 2rem !important;
}
.bs5offcanvas-section {
    margin-top: 1.6rem !important;
}
.bs5offcanvas-section .h5 {
    font-size: 1.0rem !important;
    text-transform: uppercase !important;
}
.bs5offcanvas-section .plugin {
    margin-top: 1.5rem !important;
}
.bs5offcanvas-section .plugin-content {
    margin-left: 1rem !important;
}
.bs5offcanvas-section .plugin h2 {
    font-size: 1.0rem !important;
    text-transform: uppercase !important;
}
.bs5offcanvas-section .plugin .plugin-content {
    font-size: 0.9rem !important;
}
.bs5offcanvas-section .plugin .plugin-content a {
    text-decoration: none !important;
    color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1)) !important;
}
.bs5offcanvas-section .plugin .plugin-content a:hover {
    text-decoration: underline !important;
    text-underline-offset: 0.25em !important;
    --bs-link-color-rgb: var(--bs-link-hover-color-rgb) !important;;
}
.bs5offcanvas-section .plugin .plugin-content a:not([href]):not([class]),
.bs5offcanvas-section .plugin .plugin-content a:not([href]):not([class]):hover {
    color: inherit;
    text-decoration: none;
}

.bs5offcanvas-section .plugin .plugin-content ul {
    margin-left: 0.25rem !important;
    padding-left: 0 !important;
}
.bs5offcanvas-section .plugin .plugin-content li {
    list-style: none !important;
    padding-left: 0 !important;
    margin-left: 0.25rem !important;
    margin-bottom: 0.5rem !important;
}
.bs5offcanvas-section .plugin-search {
    margin-bottom: 1.2rem !important;
}
.bs5offcanvas-section .plugin-search .plugin-content input {
    padding: 0.5rem !important;
}
.bs5offcanvas-section .plugin-search .plugin-content input[type=text] {
    font-size: 1.0rem !important;
    font-family: monospace !important;
    border:1px solid var(--bs-secondary) !important;
    border-radius: 3px !important;
}
.bs5offcanvas-section .plugin-tags li {
    display: inline !important;
    margin-right: 0.4rem !important;
}
.bs5offcanvas-section .plugin-tags li:hover {
    text-transform: uppercase !important;
    font-weight: bold !important;
}
.bs5offcanvas-section .plugin-categories li {
    display: inline !important;
    margin-right: 0.4rem !important;
}
.bs5offcanvas-section .plugin-categories li:hover {
    text-transform: uppercase !important;
    font-weight: bold !important;
}

.bs5offcanvas-section .plugin .plugin-content .counter {
    margin-left: 10px !important;
    margin-bottom: 10px !important;
    padding: 5px !important;
    font-variant-numeric: oldstyle-nums slashed-zero !important;
}
.bs5offcanvas-section .plugin .plugin-content .counter:hover {
    font-weight: bold !important;
}

main > .container {
    padding-top: 100px !important;
    padding-bottom: 10px !important;
}

.footer > .container {
    padding-right: 5px !important;
    padding-left: 5px !important;
}

/* Disable transitions */
.bs5plain-notransition {
    transition-delay: .0ms !important;
    transition: none !important;
}

/* Overrides */

a {
    text-underline-offset: 0.25em !important;
}
a:hover {
    text-underline-offset: 0.25em !important;
}
.collapsing {
    transition-delay: 0ms !important;
    transition: none !important;
}
.offcanvas-backdrop {
    transition-delay: 0ms !important;
    transition: none !important;
}
blockquote {
    margin-bottom: 1rem !important;
    margin-right: 2rem !important;
    font-size: 1.1rem !important;
    font-style: italic !important;
    border-left: 3px solid var(--bs-secondary) !important;
    padding-left: 1rem !important;
    margin-left: 1rem !important;
}
blockquote > :last-child {
    margin-bottom: 0;
}
kbd,samp,pre,code {
    font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace !important;
}
pre,samp,pre,code {
    font-size: 0.9em !important;
    line-height: 1.0em !important;
}
pre, code {
    white-space: pre-wrap !important;
    tab-width: 4 !important;
}
[data-bs-theme=dark] {
    --color-monostuff: var(--bs-dark-bg-subtle);
}
[data-bs-theme=light] {
    --color-monostuff: var(--bs-light-bg-subtle);
}
pre {
    background-color: var(--color-monostuff) !important;
    color: var(--bs-light-text-emphasis) !important;
    border: 1px solid var(--bs-light-border-subtle) !important;
    border-radius: .4rem !important;
    color: var(--bs-light-text-emphasis) !important;
    line-height: 1.4em !important;
    margin-bottom: 20px;
    overflow-wrap: break-word;
    white-space: pre !important;
    padding: 0.6em 0.6em !important;
    overflow-x: auto !important;
}
div > code,
p > code,
li > code,
dd > code,
td > code {
    background-color: var(--color-monostuff) !important;
    color: var(--bs-light-text-emphasis) !important;
    border: 1px solid var(--bs-light-border-subtle) !important;
    border-radius: .4rem !important;
    word-wrap: break-word !important;
    page-break-inside: avoid !important;
    padding: .3rem .3rem .2rem !important;
    box-decoration-break: clone !important;
    -webkit-box-decoration-break: clone !important;
    overflow-x: auto !important;
    white-space: pre !important;
}
p > code {
    border: 0 !important;
}
div > code {
    display: block !important;
    margin-top: 0.5em !important;
    margin-bottom: 0.6em !important;
    padding: 0.4rem !important;
    line-height: 1.3em !important;
}
p img {
    padding: 0.25rem;
    background-color: var(--bs-body-bg);
    border: var(--bs-border-width) solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    max-width: 100%;
    height: auto;
}
caption {
    margin-bottom: 1em;
}

table {
    empty-cells: show;
    border: 1px solid var(--bs-secondary-bg);
    width: 100%;
    font-size: 0.9em;
}

thead {
    background-color: var(--bs-secondary-bg);
    color: var(--bs-secondary-color);
    text-align: left;
    vertical-align: bottom;
}

tr {
    display: table-row;
    vertical-align: inherit;
    border-color: inherit;
}

th, td {
    padding: 0.5em 1em;
    font-variant-numeric: oldstyle-nums slashed-zero !important;
}

/* Theme-toggle icon visibility */
.theme-toggle .icon-light { display: none; }
.theme-toggle .icon-dark  { display: inline-block; }

/* When the page is set to light, show sun, hide moon */
[data-theme="light"] .theme-toggle .icon-light,
[data-bs-theme="light"] .theme-toggle .icon-light {
    display: inline-block;
}
[data-theme="light"] .theme-toggle .icon-dark,
[data-bs-theme="light"] .theme-toggle .icon-dark {
    display: none;
}

/* optional small visual state for the button */
.theme-toggle.is-light { /* you can style the button when in light mode */ }
