/* Back to top button styles */
#back-to-top {
    background: #000;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    border-radius: 50%;
    bottom: 20px;
    -webkit-box-shadow: 0 2px 5px 0 rgba(0,0,0,.26);
    -moz-box-shadow: 0 2px 5px 0 rgba(0,0,0,.26);
    box-shadow: 0 2px 5px 0 rgba(0,0,0,.26);
    color: #fff;
    cursor: pointer;
    display: block;
    height: 56px;
    opacity: 1;
    outline: 0;
    position: fixed;
    right: 20px;
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none;
    -webkit-transition: bottom .2s, opacity .2s;
    -o-transition: bottom .2s, opacity .2s;
    -moz-transition: bottom .2s, opacity .2s;
    transition: bottom .2s, opacity .2s;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    width: 56px;
    z-index: 1;
}

#back-to-top svg {
    display: block;
    fill: currentColor;
    height: 20px;
    margin: 11px auto 0;
    width: 20px;
}

#back-to-top.hidden {
    bottom: -56px;
    opacity: 0;
}

/* Chart.js animations */
@-webkit-keyframes chartjs-render-animation {
    from { opacity: 0.99; }
    to { opacity: 1; }
}

@keyframes chartjs-render-animation {
    from { opacity: 0.99; }
    to { opacity: 1; }
}

.chartjs-render-monitor {
    -webkit-animation: chartjs-render-animation 0.001s;
    animation: chartjs-render-animation 0.001s;
}

/* Medium zoom styles */
.medium-zoom-overlay {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 0;
    transition: opacity .3s;
    will-change: opacity;
}

.medium-zoom--opened .medium-zoom-overlay {
    cursor: pointer;
    cursor: zoom-out;
    opacity: 1;
}

.medium-zoom-image {
    cursor: pointer;
    cursor: zoom-in;
    transition: transform .3s cubic-bezier(.2,0,.2,1) !important;
}

.medium-zoom-image--hidden {
    visibility: hidden;
}

.medium-zoom-image--opened {
    position: relative;
    cursor: pointer;
    cursor: zoom-out;
    will-change: transform;
}

/* MathJax context menu styles */
.CtxtMenu_InfoClose {
    top: .2em;
    right: .2em;
}

.CtxtMenu_InfoContent {
    overflow: auto;
    text-align: left;
    font-size: 80%;
    padding: .4em .6em;
    border: 1px inset;
    margin: 1em 0px;
    max-height: 20em;
    max-width: 30em;
    background-color: #EEEEEE;
    white-space: normal;
}

.CtxtMenu_Info.CtxtMenu_MousePost {
    outline: none;
}

.CtxtMenu_Info {
    position: fixed;
    left: 50%;
    width: auto;
    text-align: center;
    border: 3px outset;
    padding: 1em 2em;
    background-color: #DDDDDD;
    color: black;
    cursor: default;
    font-family: message-box;
    font-size: 120%;
    font-style: normal;
    text-indent: 0;
    text-transform: none;
    line-height: normal;
    letter-spacing: normal;
    word-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    float: none;
    z-index: 201;
    -webkit-border-radius: 15px;
    -moz-border-radius: 15px;
    -khtml-border-radius: 15px;
    border-radius: 15px;
    -webkit-box-shadow: 0px 10px 20px #808080;
    -moz-box-shadow: 0px 10px 20px #808080;
    -khtml-box-shadow: 0px 10px 20px #808080;
    box-shadow: 0px 10px 20px #808080;
    filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color="gray", Positive="true");
}

.CtxtMenu_MenuClose {
    position: absolute;
    cursor: pointer;
    display: inline-block;
    border: 2px solid #AAA;
    border-radius: 18px;
    -webkit-border-radius: 18px;
    -moz-border-radius: 18px;
    -khtml-border-radius: 18px;
    font-family: "Courier New", Courier;
    font-size: 24px;
    color: #F0F0F0;
}

.CtxtMenu_MenuClose span {
    display: block;
    background-color: #AAA;
    border: 1.5px solid;
    border-radius: 18px;
    -webkit-border-radius: 18px;
    -moz-border-radius: 18px;
    -khtml-border-radius: 18px;
    line-height: 0;
    padding: 8px 0 6px;
}

.CtxtMenu_MenuClose:hover {
    color: white !important;
    border: 2px solid #CCC !important;
}

.CtxtMenu_MenuClose:hover span {
    background-color: #CCC !important;
}

.CtxtMenu_MenuClose:hover:focus {
    outline: none;
}

.CtxtMenu_Menu {
    position: absolute;
    background-color: white;
    color: black;
    width: auto;
    padding: 5px 0px;
    border: 1px solid #CCCCCC;
    margin: 0;
    cursor: default;
    font: menu;
    text-align: left;
    text-indent: 0;
    text-transform: none;
    line-height: normal;
    letter-spacing: normal;
    word-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    float: none;
    z-index: 201;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    -khtml-border-radius: 5px;
    border-radius: 5px;
    -webkit-box-shadow: 0px 10px 20px #808080;
    -moz-box-shadow: 0px 10px 20px #808080;
    -khtml-box-shadow: 0px 10px 20px #808080;
    box-shadow: 0px 10px 20px #808080;
}

.CtxtMenu_MenuItem {
    padding: 1px 2em;
    background: transparent;
}

.CtxtMenu_MenuArrow {
    position: absolute;
    right: .5em;
    padding-top: .25em;
    color: #666666;
    font-family: null;
    font-size: .75em;
}

.CtxtMenu_MenuActive .CtxtMenu_MenuArrow {
    color: white;
}

.CtxtMenu_MenuArrow.CtxtMenu_RTL {
    left: .5em;
    right: auto;
}

.CtxtMenu_MenuCheck {
    position: absolute;
    left: .7em;
    font-family: null;
}

.CtxtMenu_MenuCheck.CtxtMenu_RTL {
    right: .7em;
    left: auto;
}

.CtxtMenu_MenuRadioCheck {
    position: absolute;
    left: .7em;
}

.CtxtMenu_MenuRadioCheck.CtxtMenu_RTL {
    right: .7em;
    left: auto;
}

.CtxtMenu_MenuInputBox {
    padding-left: 1em;
    right: .5em;
    color: #666666;
    font-family: null;
}

.CtxtMenu_MenuInputBox.CtxtMenu_RTL {
    left: .1em;
}

.CtxtMenu_MenuComboBox {
    left: .1em;
    padding-bottom: .5em;
}

.CtxtMenu_MenuSlider {
    left: .1em;
}

.CtxtMenu_SliderValue {
    position: absolute;
    right: .1em;
    padding-top: .25em;
    color: #333333;
    font-size: .75em;
}

.CtxtMenu_SliderBar {
    outline: none;
    background: #d3d3d3;
}

.CtxtMenu_MenuLabel {
    padding: 1px 2em 3px 1.33em;
    font-style: italic;
}

.CtxtMenu_MenuRule {
    border-top: 1px solid #DDDDDD;
    margin: 4px 3px;
}

.CtxtMenu_MenuDisabled {
    color: GrayText;
}

.CtxtMenu_MenuActive {
    background-color: #606872;
    color: white;
}

.CtxtMenu_MenuDisabled:focus {
    background-color: #E8E8E8;
}

.CtxtMenu_MenuLabel:focus {
    background-color: #E8E8E8;
}

.CtxtMenu_ContextMenu:focus {
    outline: none;
}

.CtxtMenu_ContextMenu .CtxtMenu_MenuItem:focus {
    outline: none;
}

.CtxtMenu_SelectionMenu {
    position: relative;
    float: left;
    border-bottom: none;
    -webkit-box-shadow: none;
    box-shadow: none;
    -webkit-border-radius: 0px;
    border-radius: 0px;
}

.CtxtMenu_SelectionItem {
    padding-right: 1em;
}

.CtxtMenu_Selection {
    right: 40%;
    width: 50%;
}

.CtxtMenu_SelectionBox {
    padding: 0em;
    max-height: 20em;
    max-width: none;
    background-color: #FFFFFF;
}

.CtxtMenu_SelectionDivider {
    clear: both;
    border-top: 2px solid #000000;
}

.CtxtMenu_Menu .CtxtMenu_MenuClose {
    top: -10px;
    left: -10px;
}

/* MathJax CHTML styles */
mjx-container[jax="CHTML"] {
    line-height: 0;
}

mjx-container [space="1"] {
    margin-left: .111em;
}

mjx-container [space="2"] {
    margin-left: .167em;
}

mjx-container [space="3"] {
    margin-left: .222em;
}

mjx-container [space="4"] {
    margin-left: .278em;
}

mjx-container [space="5"] {
    margin-left: .333em;
}

mjx-container [rspace="1"] {
    margin-right: .111em;
}

mjx-container [rspace="2"] {
    margin-right: .167em;
}

mjx-container [rspace="3"] {
    margin-right: .222em;
}

mjx-container [rspace="4"] {
    margin-right: .278em;
}

mjx-container [rspace="5"] {
    margin-right: .333em;
}

mjx-container [size="s"] {
    font-size: 70.7%;
}

mjx-container [size="ss"] {
    font-size: 50%;
}

mjx-container [size="Tn"] {
    font-size: 60%;
}

mjx-container [size="sm"] {
    font-size: 85%;
}

mjx-container [size="lg"] {
    font-size: 120%;
}

mjx-container [size="Lg"] {
    font-size: 144%;
}

mjx-container [size="LG"] {
    font-size: 173%;
}

mjx-container [size="hg"] {
    font-size: 207%;
}

mjx-container [size="HG"] {
    font-size: 249%;
}

mjx-container [width="full"] {
    width: 100%;
}

mjx-box {
    display: inline-block;
}

mjx-block {
    display: block;
}

mjx-itable {
    display: inline-table;
}

mjx-row {
    display: table-row;
}

mjx-row > * {
    display: table-cell;
}

mjx-mtext {
    display: inline-block;
}

mjx-mstyle {
    display: inline-block;
}

mjx-merror {
    display: inline-block;
    color: red;
    background-color: yellow;
}

mjx-mphantom {
    visibility: hidden;
}

_::-webkit-full-page-media, _:future, :root mjx-container {
    will-change: opacity;
}

mjx-assistive-mml {
    position: absolute !important;
    top: 0px;
    left: 0px;
    clip: rect(1px, 1px, 1px, 1px);
    padding: 1px 0px 0px 0px !important;
    border: 0px !important;
    display: block !important;
    width: auto !important;
    overflow: hidden !important;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

mjx-assistive-mml[display="block"] {
    width: 100% !important;
}

mjx-c::before {
    display: block;
    width: 0;
}

.MJX-TEX {
    font-family: MJXZERO, MJXTEX;
}

.TEX-B {
    font-family: MJXZERO, MJXTEX-B;
}

.TEX-I {
    font-family: MJXZERO, MJXTEX-I;
}

.TEX-MI {
    font-family: MJXZERO, MJXTEX-MI;
}

.TEX-BI {
    font-family: MJXZERO, MJXTEX-BI;
}

.TEX-S1 {
    font-family: MJXZERO, MJXTEX-S1;
}

.TEX-S2 {
    font-family: MJXZERO, MJXTEX-S2;
}

.TEX-S3 {
    font-family: MJXZERO, MJXTEX-S3;
}

.TEX-S4 {
    font-family: MJXZERO, MJXTEX-S4;
}

.TEX-A {
    font-family: MJXZERO, MJXTEX-A;
}

.TEX-C {
    font-family: MJXZERO, MJXTEX-C;
}

.TEX-CB {
    font-family: MJXZERO, MJXTEX-CB;
}

.TEX-FR {
    font-family: MJXZERO, MJXTEX-FR;
}

.TEX-FRB {
    font-family: MJXZERO, MJXTEX-FRB;
}

.TEX-SS {
    font-family: MJXZERO, MJXTEX-SS;
}

.TEX-SSB {
    font-family: MJXZERO, MJXTEX-SSB;
}

.TEX-SSI {
    font-family: MJXZERO, MJXTEX-SSI;
}

.TEX-SC {
    font-family: MJXZERO, MJXTEX-SC;
}

.TEX-T {
    font-family: MJXZERO, MJXTEX-T;
}

.TEX-V {
    font-family: MJXZERO, MJXTEX-V;
}

.TEX-VB {
    font-family: MJXZERO, MJXTEX-VB;
}

mjx-stretchy-v mjx-c, mjx-stretchy-h mjx-c {
    font-family: MJXZERO, MJXTEX-S1, MJXTEX-S4, MJXTEX, MJXTEX-A ! important;
}

/* MathJax font faces */
@font-face {
    font-family: MJXZERO;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_Zero.woff") format("woff");
}

@font-face {
    font-family: MJXTEX;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-B;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-I;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-MI;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-BI;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-S1;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-S2;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-S3;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-S4;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-A;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-C;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-CB;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-FR;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-FRB;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-SS;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-SSB;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-SSI;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-SC;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-T;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-V;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff") format("woff");
}

@font-face {
    font-family: MJXTEX-VB;
    src: url("https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff") format("woff");
}

/* Social media icons styling */
.social .contact-icons {
    display: flex;
    gap: 15px;
    margin: 20px 0;
}

.social .contact-icons a {
    color: #6c757d;
    font-size: 2rem;
    transition: color 0.3s ease;
    text-decoration: none;
}

.social .contact-icons a:hover {
    color: #007bff;
    text-decoration: none;
}

.social .contact-icons i {
    display: inline-block;
    width: 1em;
    height: 1em;
    text-align: center;
}

/* Ensure icons are visible and properly styled */
.fa-solid, .fa-brands, .ai {
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    line-height: 1;
}

/* Custom X (Twitter) icon fallback */
.fa-x-twitter:before {
    content: "𝕏";
    font-family: serif;
    font-weight: bold;
}

/* Theme toggle styles */
#light-toggle {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    margin: 0;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
    text-decoration: none;
    display: inline-block;
    width: auto;
    height: auto;
}

#light-toggle:hover {
    color: inherit;
    text-decoration: none;
}

#light-toggle i {
    font-size: 1.2rem;
    display: none;
    width: 1em;
    height: 1em;
    line-height: 1;
    vertical-align: baseline;
    text-align: center;
}

#light-toggle i.active {
    display: inline-block;
}

/* Default state - show system icon */
#light-toggle-system {
    display: inline-block;
}

#light-toggle-dark {
    display: none;
}

#light-toggle-light {
    display: none;
}

/* Show correct icon based on theme */
[data-theme-setting="system"] #light-toggle-system {
    display: inline-block !important;
}

[data-theme-setting="dark"] #light-toggle-dark {
    display: inline-block !important;
}

[data-theme-setting="light"] #light-toggle-light {
    display: inline-block !important;
}

/* Hide other icons when one is active */
[data-theme-setting="system"] #light-toggle-dark,
[data-theme-setting="system"] #light-toggle-light {
    display: none !important;
}

[data-theme-setting="dark"] #light-toggle-light,
[data-theme-setting="dark"] #light-toggle-system {
    display: none !important;
}

[data-theme-setting="light"] #light-toggle-dark,
[data-theme-setting="light"] #light-toggle-system {
    display: none !important;
}

