html{
    scroll-padding-top: 20px;
}
body{
    padding-left: 20px;
    padding-right: 20px;
    padding-top:8px;
    padding-bottom:8px;
    overflow-y: scroll;
    background-image: linear-gradient(to right, rgba(255, 255, 255, 1), rgba(235, 235, 235, 1));
    position: relative;
    margin:0px
}
/* width */
::-webkit-scrollbar {
    width: 10px;
}

/* Track */
::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius:5px;
}

/* Handle */
::-webkit-scrollbar-thumb {
    background: #888;
    border-radius:5px;
}

/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
    background: #555;
}
.nav_left_hidden{
    color:transparent;
    user-select: none;
    -webkit-user-select: none; /* Safari */
    -moz-user-select: none; /* Firefox */
    -ms-user-select: none; /* Internet Explorer/Edge */
}
.footer {
    text-align: center;
    font-size:.6em;
    padding: 25px;
    padding-top: 10px;
}


.navigation{
    text-align:center;
}

.module_number{
    position: absolute;
    font-weight: 700;
}

  /* Tooltip container */
.footnote_tooltip {
    display: inline-block;
    border-bottom: 1px dotted black; /* If you want dots under the hoverable text */
    color:blue;
    cursor:pointer;
}
  
/* Tooltip text */
.footnote_tooltip .footnote_tooltiptext {
    visibility: hidden;
    background-color: #D6ECFD;
    color: black;
    border-radius: 6px;
    border: 1px solid black;
    
    /* Position the tooltip text - see examples below! */
    position: absolute;
    padding: 10px;
    z-index: 1;
    cursor: initial;
    left: 10px;
    right:10px;
    margin-top: 10px;
    box-shadow: 2px 2px 2px 1px #444;
}
  
  /* Show the tooltip text when you mouse over the tooltip container */
.footnote_tooltip:hover .footnote_tooltiptext {
    visibility: visible;
}
.note{
    border: 1px solid black;
    padding: 20px;
    margin-bottom: 20px;
    font-size:.8em;
    border-top: 0px;
    border-radius: 5px;
    white-space: pre;
    line-height: 1.4;
}

.capstone{
    background-color: #D4FCB2;
    background: linear-gradient(to right, #D4FCB2, #e5fcc8);
}
.math{
    background-color: #AFD5FC;
    background: linear-gradient(to right, #AFD5FC, #c8e5fc);
}
.definitions{
    background-color: #C0AFE2;
    background: linear-gradient(to right, #C0AFE2, #DDD5F3);
}
.code{
    background-color: #FFFFFF;
    font-size: .64em;
    font-family: "Lucida Console", "Courier New", monospace;
    padding:10px;
}
.output{
    background-color: #f8fcff;
    font-size: .64em;
    background: linear-gradient(to right, #f8fcff, #FFFFFF);
    font-family: "Lucida Console", "Courier New", monospace;
    padding:10px;
}
.feature{
    background-color: #FFB668;
    background: linear-gradient(to right, #FFB668, #FFC78F);
    
}
.note_label{
    position: absolute;
    margin-top: -27px;
    right:80px;
    font-weight: 700;
    font-size: 1.1em;
}
.note_false_border_left_capstone{
    position: absolute;
    height: 1px;
    margin-top: -20px;
    left: 32px;
    right: 145px;
    border-top: 1px solid black;
}
.note_false_border_left_math{
    position: absolute;
    height: 1px;
    margin-top: -20px;
    left: 32px;
    right: 120px;
    border-top: 1px solid black;
}
.note_false_border_left_definitions{
    position: absolute;
    height: 1px;
    margin-top: -20px;
    left: 32px;
    right: 155px;
    border-top: 1px solid black;
}
.note_false_border_left_feature{
    position: absolute;
    height: 1px;
    margin-top: -20px;
    left: 32px;
    right: 225px;
    border-top: 1px solid black;
}

.note_false_border_left_code{
    position: absolute;
    height: 1px;
    margin-top: -20px;
    left: 24px;
    right: 125px;
    border-top: 1px solid black;
}

.note_false_border_left_output{
    position: absolute;
    height: 1px;
    margin-top: -20px;
    left: 24px;
    right: 130px;
    border-top: 1px solid black;
}

.note_false_border_right{
    position:absolute;
    height:1px;
    margin-top: -20px;
    right: 24px;
    width: 46px;
    border-top: 1px solid black;
}
.exercise{
    .note_false_border_right{
        right:34px;
        width: 36px;
    }
    .note_false_border_left_code{
        left: 34px;
    }
    .note_false_border_left_output{
        left: 34px;
    }
    td{
        .note_false_border_right{
            right:48px;
            width: 24px;
        }
        .note_false_border_left_code{
            left: 48px;
        }
        .note_false_border_left_output{
            left: 48px;
        }
    }
}
ul{
    .note_false_border_left_code{
        left: 63px;
    }
    .note_false_border_left_output{
        left: 63px;
    }
}
td{
    .note_false_border_right{
        right:38px;
        width: 34px;
    }
    .note_false_border_left_code{
        left: 38px;
    }
    .note_false_border_left_output{
        left: 38px;
    }
}


.note .note .note_false_border_right{
    position:absolute;
    height:1px;
    margin-top: -10px;
    right: 53px;
    width: 18px;
    border-top: 1px solid black;
}
.note .note .note_false_border_left_code{
    position: absolute;
    height: 1px;
    margin-top: -10px;
    left: 53px;
    right: 120px;
    border-top: 1px solid black;
}
.code .note_false_border_right{
    margin-top: -10px;
}
.code .note_false_border_left_code{
    margin-top: -10px;
}
.code .note_label{
    margin-top: -17px;
}

.output .note_false_border_right{
    margin-top: -10px;
}
.output .note_false_border_left_output{
    margin-top: -10px;
}
.output .note_label{
    margin-top: -15px;
}

.note .note .note_label{
    font-size: 1.2em;
}
.note .note{
    padding:10px;
    margin-top: 20px;
    margin-bottom: 0px;
    box-shadow: 1px 1px 1px 1px #AAA;
}

.note .code{
    font-size: .8em;
}
.code .note_label{
    font-size: 1.3em;
}

.note .output{
    font-size: .8em;
}
.output .note_label{
    right: 75px;
}

.definitions ul{
    padding-left: 20px;
    margin: 0;
}

.code:has(+.output) {
    margin-bottom: -1px;
}

.note_code_button{
    float: right;
    margin-right: -6;
    margin-left: 12px;
    margin-top: -3;
    cursor: pointer;
    opacity: .8;
    z-index: 3;
    position: relative;
}
.node_code_button:hover{
    opacity: 1;
}

.code_container{
    white-space: pre;
    -webkit-user-select: none; /* Safari */
    -moz-user-select: none;    /* Firefox */
    -ms-user-select: none;     /* IE 10+ */
    user-select: none;         /* Standard */
}

/* Code formatting related colors */

.code_span_input {
    color: blue;
    color:#22863a;
}

.code_span_output {
    color: green;
}

.code_span_error {
    color: red;
    background-color: #fffacc;
}

.code_span_list {
    color: purple;
    color:#22863a;
}

.code_span_quote {
    color: red;
    color:#b46092;
    color:#815ba4;
}

.code_span_comment {
    color: fuchsia;
    /*color:#CC79A7;*/
    color: royalblue;
    background-color: lightyellow;
    color:#6a737d;
    background-color: #ffe9cc;
}

.code_span_number {
    color: #0072B2;
    color: blue;
    color:#b31d28;
}

.code_span_special_number {
    color: #56B4E9;
    color:#d73a49;
}

.code_span_character {
    color: #009E73;
    color:#de7cb6;
    color:#a379c9;
}

.code_span_not_variable {
    text-decoration: underline;
    text-decoration-line: grammar-error;
}

.code_span_extra_argument {
    text-decoration: underline;
    text-decoration-line: spelling-error;
}

.code_span {
    color: default;
}

.code_span_func {
    color: orange;
    color:#005cc5;
}

.code_span_variable {
    color: #BF7C00;
    color:#24292e;
}

.code_span_parse_error{
    color:red;
    background-color: #F1F9FE;
}

.code_span_suggest {
    color: lightgray;
    background-color: rgba(34, 134, 58, 0.05);
    box-shadow: 0 0 0 1px rgba(34, 134, 58, 0.15);
    box-sizing: border-box;
    display:none;
}

.highlight_span_suggest .code_span_suggest {
    background-color: lightyellow;
}

.highlight_span_definition{
    background-color: #f3e8ff;
    border-radius: 5px;
    box-shadow: rgb(243, 232, 255) 0px 0px 0px 1px;
    z-index: -1;
    position: relative;
}
.highlight_span_definition:hover{
    z-index:initial;
}
.highlight_span_reference{
    background-color: #ffe8b3;
    border-radius: 5px;
    box-shadow: #ffe8b3 0px 0px 0px 1px;
    z-index: -1;
    position: relative;
}
.highlight_span_reference:hover{
    z-index:initial;
}
.highlight_span_z_index{
    z-index:initial;
}
.highlight_span_obscured_reference{
    background-color: #FFCCCC;
    border-radius: 5px;
    box-shadow: #FFCCCC 0px 0px 0px 1px;
    z-index: -1;
    position: relative;
}
.highlight_span_reference:hover{
    z-index:initial;
}



/* Tooltips */
.GoodTooltip {
	color: #444444;
	text-decoration: none;
	position: absolute;
	padding: 10px;
	z-index: 10000002;
    /* background: #F5F5DC;*/
    background-color: #3a3f4b;
    color:#fef3c7;
	border: thin solid #6c7685;
	text-align: left;
	opacity:0;
	box-shadow: 1px 1px 1px #6c7685;
	overflow:hidden;
    font-size:.67em;
    font-family: Arial;
}
.TooltipMessage{
    float:left;
    clear:both;
}
.TooltipMessageCode{
    float:left;
    font-family: "Lucida Console", "Courier New", monospace;
    padding:7px;
}
.TooltipMessageSmall{
    float:left;
    clear:both;
    font-size:.8em;
}
.ConsoleMessageLabel{
    float:left;
    font-weight:600;
}
.TooltipMessageLabel{
    float:left;
    font-weight:600;
    white-space:pre;
    color:white;
}
.TooltipMessageLight{
    float:left;
    font-weight:300;
    white-space:pre;
    color:#d1d5db;
}
.TooltipSpacer{
    float:left;
    clear:both;
    height:3px;
}
.TooltipTreeContainer{
    clear:both;
    float:left;
}
.TooltipMessageBody{
    float:left;
}
.TooltipMessageAuthor{
    float:right;
    clear:both;
    position:relative;
    padding-top:3px;
}
.TooltipMessageTime{
    float:right;
    clear:both;
    position:relative;
}
.TooltipMessageHR{
    margin:2px;
    margin-left:10px;
    margin-right:10px;
    clear:both;
    background-color:#4f4f4f;
}
.TooltipMessageEllipses{
    text-align:center;
    margin:2px;
    margin-left:10px;
    margin-right:10px;
    clear:both;
}














.Tooltip {
	display:none;
	color: #444444;
	text-decoration: none;
	position: absolute;
	top: 0px; left: 700px;
	width: 275px;
	margin: 10px;
	z-index: 1000000;
        background: #d6ebf2;
	border: 1px solid #4f4f4f;
	text-align: left;
}
.TooltipPanel{
    background-color:lightblue;
    border: thin solid #4f4f4f;
    margin:8px;
    padding:5px;
    box-shadow:2px 2px 1px #888888;
}
.TooltipHeader{
    margin:3px;
}
.TooltipHR{
    margin:1px;
}

/*.Tooltip:hover {
	position: relative;
	text-decoration: none
}

/*.Tooltip span {
	display: none
}

.Tooltip:hover span {
	display: block;
   	position: absolute;
	top: 0px; left: 100px;
	width: 200px;
        padding: 5px;
	margin: 10px;
	z-index: 100;
        background: #f0f2f6;
	border: 1px solid #955F1F;
	opacity: 0.9;
	text-align: left;
}*/

.TooltipSubtitle{
    font-weight:600;
    margin-left:10px;
}
.TooltipBody{
    margin-left:10px;
}

.BasicDisplayIcon{
    width:13px;
    height:13px;
    float:right;
    margin:2px;
}
.epigraph {
    font-size: 75%;
}
.chapter_header{
    margin-top: -32px;
}


div:has(table){
    padding:10px;
    box-sizing: border-box;
    border:1px transparent solid;
}
div:has(:target) {
    background-color: #ffe8b3;
    border-radius:5px;
    border:1px solid #888;
    box-shadow: 2px 2px 2px 1px #888;
}
div:has(.highlight_figure) {
    background-color: #ffe8b3;
    border-radius:5px;
    border:1px solid #888;
    box-shadow: 2px 2px 2px 1px #888;
}
div:has(.highlight_figure:target) {
    background-color: #ffd085;
    border-radius:5px;
    border:1px solid #666;
    box-shadow: 2px 2px 2px 1px #666;
}
.figure_popup{
    position:absolute;
    z-index:100000;
    background-color: #ffe8b3;
    border-radius:5px;
    border:1px solid #888;
    box-shadow: 2px 2px 2px 1px #888;
    cursor: initial;
    left: 10px;
    right: 10px;
    padding: 10px;
    padding-left: 26px;
    padding-right: 26px;
    color: black;
}
caption:has(.figure_popup){
    margin: -11px;
}
.exercise{
    margin-bottom: 10px;
    border: solid 1px transparent;
    padding:10px;
}
.exercise:target {
    background-color: #ffe8b3;
    border-radius:5px;
    border:1px solid #888;
    box-shadow: 2px 2px 2px 1px #888;
}
.exercise.highlight_figure {
    background-color: #ffe8b3;
    border-radius:5px;
    border:1px solid #888;
    box-shadow: 2px 2px 2px 1px #888;
}
.exercise.highlight_figure:target {
    background-color: #ffd085;
    border-radius:5px;
    border:1px solid #666;
    box-shadow: 2px 2px 2px 1px #666;
}
.definition{
    border-top: 1px solid transparent;
    border-left: 1px solid transparent;
    border-right: 1px solid transparent;
    border-bottom: 2px solid #7F38EC;
    padding:1px;
    padding-top:0;
    padding-bottom:0;
    border-style: dashed;
    cursor:pointer;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone; /* For Safari/older WebKit */
}
.definition_text{
    border-top: 1px solid transparent;
    border-left: 1px solid transparent;
    border-right: 1px solid transparent;
    border-bottom: 2px solid transparent;
    padding:1px;
    padding-top:0;
    padding-bottom:0;
    border-style: dashed;
    cursor:pointer;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone; /* For Safari/older WebKit */
}
div.definition_text{
    display: inline-block;
}
.definition_highlight{
    background-color: #f3e8ff;
    border-radius: 5px;
    border-top: 1px solid black;
    border-left: 1px solid black;
    border-right: 1px solid black;
    z-index: 99;
}
.definition_highlight_right{
    border-bottom: solid 1px black;
}
.definition_highlight_left{
    border-bottom: solid 1px black;
}
.definition_highlight:hover{
    position:relative;
    z-index:101;
}
.definition_text_highlight{
    background-color: #ffe8b3;
    border-radius: 5px;
    border-top: 1px solid black;
    border-left: 1px solid black;
    border-right: 1px solid black;
    border-bottom: 1px solid black;
    position: relative;
    z-index: 101;
    box-shadow: 2px 2px 2px 1px #888;
}
.definition_text_highlight:hover{
    z-index:101;
}
.arrow_film_full_page{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}

.definition_popup{
    position: absolute;
    z-index: 100000;
    background-color: #ffe8b3;
    border-radius: 5px;
    border: 1px solid #000;
    /* border-top: 2px dashed #FF5F1F; */
    box-shadow: 2px 2px 2px 1px #888;
    cursor: initial;
    padding: 10px;
    padding-left: 15px;
    padding-right: 15px;
    color: black;
    font-size: 1em;
    max-width: 300px;
    font-weight: 500;
    font-style: normal;
    width: 300px;
    z-index:101;
}

.definition_popup span{
    font-size: .9em;
}
.definition_popup img{
    max-width: 250px;
    border:1px solid black;
    margin-bottom:5px;
}

/* used to highlight potential but unlikely definitions while reviewing
em:not(.definition){
    background-color: red;
    border-radius: 5px;
    padding:2px;
    margin:-2px;
}
*/





/* --- Custom CSS for Message Box (Replacing Tailwind) --- */
.message-box {
    position: fixed;
    top: 1rem; /* 4 units / 16px */
    right: 1rem; /* 4 units / 16px */
    padding: 1rem; /* 16px */
    border-radius: 0.75rem; /* xl rounded */
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.2), 0 10px 10px -5px rgba(0, 0, 0, 0.1);
    color: white;
    opacity: 0;
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
    pointer-events: none; /* Allows clicks to pass through when inactive */
    font-size: 1rem;
    max-width: 300px;
    z-index: 1000;
}

.message-box-success {
    background-color: #10B981; /* Green-500 equivalent */
}

.message-box-error {
    background-color: #EF4444; /* Red-500 equivalent */
}

.message-box.show {
    opacity: 1;
    transform: translateY(0);
}

.message-box.hide {
    opacity: 0;
    transform: translateY(-20px);
}


.inline_code{
    background-color: red;
}
.outline_code{
    background-color: green;
}


.definition_text[name="defTextchurch_numerals"]{
    display:block;
}

.definition_text_highlight.note{
    background-color: #ffe8b3;
    border-radius: 5px;
    border-top:0;
    border-left: 1px solid black;
    border-right: 1px solid black;
    border-bottom: 1px solid black;
    position: initial;
    box-shadow: 2px 2px 2px 1px #888;
}