* {
    z-index: 1;
}
:root {
    --background-color-main: #000;
    --background-color-sidebar: #111;
    --background-color-hover: #575757;
    --background-color-table: #333;
    --background-color-table-header: #535353;
    --background-color-input: rgb(18,18,18);
    --background-color-invalid-input: rgb(82, 0, 0);
    --background-color-highlight: #FF0;
    --background-color-footer: rgba(51, 51, 51, 0.8);
    --background-color-rAccent: rgb(139, 47, 47);
    --background-color-excelAccent: #217346;

    --color-main: #FFF;
    --color-link: white;
    --color-text-accent1: #00FF00;
    --color-text-accent2: #0FF;
    --color-text-delim: rgb(150, 150, 150);
    --color-delete: #F00;
    --color-copy: rgb(14, 98, 207);
    --color-invalid-input: #F00;
    --color-rot45: lightblue;
    --color-light-stroke: #FFF;
    --color-copy-text-label: #FFF;
    --color-copy-table-formatted: #FFF;
    --color-pdf: #FFF;
    --color-excel: #FFF;
    --color-r: #F00;
    --color-highlight: #000;
    --color-g: #ccc;
    --color-full-width: #ffffff;
    --backgroundcolor-button-full-width: #4CAF50;

    --border-color-input: rgb(133,133,133);
    --border-color-copy-text-label: #4b78bb;
    --border-color-copy-table-formatted: #FFF;
}

.theme-dark {
    --background-color-main: #000;
    --background-color-sidebar: #111;
    --background-color-hover: #575757;
    --background-color-table: #333;
    --background-color-table-header: #535353;
    --background-color-input: rgb(18,18,18);
    --background-color-invalid-input: rgb(82, 0, 0);
    --background-color-highlight: #FF0;
    --background-color-footer: #333;
    --background-color-rAccent: rgb(139, 47, 47);
    --background-color-excelAccent: #217346;

    --color-main: #FFF;
    --color-link: white;
    --color-text-accent1: #00FF00;
    --color-text-accent2: #0FF;
    --color-text-delim: rgb(150, 150, 150);
    --color-delete: #F00;
    --color-copy: rgb(14, 98, 207);
    --color-invalid-input: #F00;
    --color-rot45: lightblue;
    --color-light-stroke: #FFF;
    --color-copy-text-label: #FFF;
    --color-copy-table-formatted: #FFF;
    --color-pdf: #FFF;
    --color-excel: #FFF;
    --color-r: #F00;
    --color-highlight: #000;
    --color-g: #ccc;
    --color-full-width: #ffffff;
    --backgroundcolor-button-full-width: #4CAF50;

    --border-color-input: rgb(133,133,133);
    --border-color-copy-text-label: #4b78bb;
    --border-color-copy-table-formatted: #FFF;
}
.theme-light {
    --background-color: #ffffff;
    --text-color: #282828;
    --accent-color: #c9c9df;

    --background-color-main: #ffffff;
    --background-color-sidebar: rgb(144, 179, 171);
    --background-color-hover: #646e6e;
    --background-color-table: #e7e7e7;
    --background-color-table-header: #acacac;
    --background-color-input:rgb(144, 179, 171);
    --background-color-invalid-input: rgb(82, 0, 0);
    --background-color-highlight: rgb(242, 248, 150);
    --background-color-footer: #919191;
    --background-color-rAccent: rgb(139, 47, 47);
    --background-color-excelAccent: #217346;

    --color-main: #000;
    --color-link: #156db6;
    --color-text-accent1: #83aeb9;
    --color-text-accent2: #0FF;
    --color-text-delim: rgb(82, 82, 82);
    --color-delete: #F00;
    --color-copy: rgb(14, 98, 207);
    --color-invalid-input: #F00;
    --color-rot45: rgb(10, 116, 84);
    --color-light-stroke: #FFF;
    --color-copy-text-label: #000000;
    --color-copy-table-formatted: #000;
    --color-pdf: #000;
    --color-excel: #000;
    --color-r: #F00;
    --color-highlight: #000;
    --color-g: #4d4d4d;
    --color-full-width: #FFF;
    --backgroundcolor-button-full-width: #328570;

    --border-color-input: rgb(68, 119, 108);
    --border-color-copy-text-label: #4b78bb;
    --border-color-copy-table-formatted: #d1b5d6;
}
::placeholder {
  color: var(--placeholder-main);
  opacity: 1;
}
.theme-pink {
    --background-color: #ffe4e1;
    --text-color: #282828;
    --accent-color: #ff69b4;

    --background-color-main: #ffe4e1;
    --background-color-sidebar: rgb(201, 148, 183);
    --background-color-hover: #FFF;
    --background-color-table: #333;
    --background-color-table-header: #535353;
    --background-color-input:#ff69b4;
    --background-color-invalid-input: rgb(82, 0, 0);
    --background-color-highlight: rgb(255, 0, 234);
    --background-color-footer: #333;
    --background-color-rAccent: rgb(139, 47, 47);
    --background-color-excelAccent: #217346;

    --color-main: #000;
    --color-link: #ff69b4;
    --color-text-accent1: #ff0080;
    --color-text-accent2: #0FF;
    --color-text-delim: rgb(82, 82, 82);
    --color-delete: #F00;
    --color-copy: rgb(14, 98, 207);
    --color-invalid-input: #F00;
    --color-rot45: rgb(212, 173, 230);
    --color-light-stroke: #FFF;
    --color-copy-text-label: #000000;
    --color-copy-table-formatted: #000;
    --color-pdf: #000;
    --color-excel: #000;
    --color-r: #F00;
    --color-highlight: #000;
    --color-g: #4d4d4d;
    --color-full-width: #2b2b2b;
    --backgroundcolor-button-full-width: #c411b5;

    --border-color-input: rgb(245, 166, 255);
    --border-color-copy-text-label: #4b78bb;
    --border-color-copy-table-formatted: #d1b5d6;
}

/* .theme-cocoa {
    --background-color: #d2691e;
    --text-color: #fff;
    --accent-color: #ff7f50;
}

.theme-mint {
    --background-color: #f5fffa;
    --text-color: #005f5f;
    --accent-color: #3eb489;
} */

body {
    /* Improved for long content + fixed sidebar (was 100vh + center which broke flow) */
    display: block;
    height: auto;
    min-height: 100vh;
    margin: 0;
    font-size: x-large;
    font-family: 'Courier New', Courier, monospace;
    background-color: var(--background-color-main);
    color: var(--color-main);
}
.smLabel {
    /* margin-left: 10px; */
    font-size: small;
}
.sidebar {
    height: 100vh; /* Full height of the viewport */
    width: 200px; /* Width of the sidebar */
    position: fixed; /* Fixed Sidebar (stay in place on scroll) */
    left: 0;
    top: 0;
    /* overflow-x: hidden; */
    padding-top: 20px;
    /*background-color: #111;*/
    background-color: var(--background-color-sidebar);
}
.sidebar a {
    padding: 10px 15px;
    text-decoration: none;
    font-size: 18px;
    display: block;
    /* color: white; */
    color: var(--color-main);
}
.sidebar a:hover {
    background-color: var(--background-color-hover);
    /* background-color: rgba(var(--background-color-hover), 0.8); 20% transparency */
    border-left: 8px solid var(--backgroundcolor-button-full-width);
    border-bottom: 2px solid var(--backgroundcolor-button-full-width);
    width:85%;
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7); 
}
/* === Layout fixes for amortization page (v0.8+ cleanup) === */
.content {
    margin-left: 200px;
    padding: 10px 18px 40px 26px; /* extra left breathing room so controls aren't tight against sidebar */
}

.push-stack {
    width: auto;
    min-height: 50px;
    margin-top: 20px;
    position: relative; /* was absolute - broke flow */
}
.push-stack div table tbody td {
    padding-right: 20px;
    padding-left: 20px;    
}
.amortization-table table {
    width: 100%;
    border-collapse: collapse;
}
body > div.content > div.push-stack > div > table > tbody > tr:nth-child(odd) {
    /* background-color: #333; */
    background-color: var(--background-color-table);
}
.amortization-table th {
    padding: 8px;
    text-align: left;
    /* background-color: #535353; */
    background-color: var(--background-color-table-header);
}

.amortization-table th:first-child {
    border-top-left-radius: 8px;
}

.amortization-table th:last-child {
    border-top-right-radius: 8px;
}
.amortization-table th:hover {
    background-color: var(--background-color-hover);
}
.textAccent1 {
    color: var(--color-text-accent1);
}
.textAccent2 {
    color: var(--color-text-accent2);
}
.textDelim {
    color: var(--color-text-delim);
}
.Delete {
    cursor: pointer;
    font-size: xx-large;
    font-weight: bolder;
    font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;
    float:right;
    bottom: 0.5em;
    position: relative;
    color: var(--color-delete);
}
.copy {
    margin-left: 10px;
    cursor: pointer;
    z-index: 1;
    font-weight: bolder;
    float:right;
    position: relative;
    top: 0.5em;
    border-style: outset;
    color: var(--color-copy);
}
input[type=button]{
	color-scheme:light;
}
input {
	color-scheme:dark;
	text-rendering: auto;
    color: fieldtext;
    letter-spacing: normal;
    word-spacing: normal;
    line-height: normal;
    text-transform: none;
    text-indent: 0px;
    text-shadow: none;
    display: inline-block;
    text-align: start;
    appearance: auto;
    -webkit-rtl-ordering: logical;
    cursor: text;
    background-color: field;
    margin: 0em;
    padding: 4px;
    border-width: 2px;
    border-style: inset;
    border-image: initial;
    background-color: var(--background-color-input);
    color: var(--color-main);
    border-color: var(--border-color-input);
}
.invalid-input {
    border: 1px solid var(--color-invalid-input);
    background-color: var(--background-color-invalid-input);
    color: var(--color-invalid-input);
}
.payment-container {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 12px 20px;
    margin-bottom: 8px;
}
.payment-item {
    display: flex;
    flex-direction: column;
    min-width: 210px;
    flex: 0 0 auto;
}

/* New control row for proper vertical alignment of input + copy + hold */
.input-group {
    display: flex;
    align-items: center;
    gap: 6px;
}

.input-group input {
    flex: 1 1 160px;
    min-width: 120px;
}
label {
    -webkit-user-select: none; /* Safari */
    -moz-user-select: none; /* Firefox */
    -ms-user-select: none; /* IE 10 and IE 11 */
    user-select: none; /* Standard syntax */
}
div.rot45 {
    /* First pass cleanup: disabled the fancy rotate/negative positioning that broke responsiveness.
       Will be replaced with a proper action toolbar later. */
    transform: none;
    left: 0;
    position: relative;
    margin-top: 12px;
    text-align: left;
    color: var(--color-rot45);
}
.light_stroke {
    width:30%;
    border:2px solid var(--color-light-stroke);
    background-color: var(--background-color-table);    /*HAVE A LOOK HERE*/
}
.copyTextLabel {
    border-right: none;
    width:30%;
    text-align: center;
    border-radius: 12px 0 0 12px;
    color:var(--color-copy-text-label);
    border: 2px solid var(--border-color-copy-text-label);
}
.copyTableFormatted {
    color: var(--color-copy-table-formatted);
    background-color: var(--background-color);
    border: 2px solid var(--border-color-copy-table-formatted);
    border-right: none;
    width:30%;
    text-align: center;
    border-radius: 12px 0 0 12px;
}
.pdf {
    width:30%;
    color: var(--color-pdf);
    background-color: var(--background-color-rAccent);
}
.excel {
    width:30%;
    background-color: var(--background-color-excelAccent);
    color: var(--color-excel);
}
.fullwidth.r,.r {
    color: var(--color-r);
}
body > div.content > div.push-stack > div > table > tbody > tr.highlight,.highlight {
    background-color: var(--background-color-highlight);
    color: var(--color-highlight);
}
.moreLeft {
    left:-40% !important;
}
.fullwidth.g,.g {
    color: var(--color-g);
}

span.fullWidth {
    width: 33%;
    color: var(--color-full-width);
}
.customCheckbox {
    -webkit-user-select: none;  /* Chrome, Safari and Opera */
    -moz-user-select: none;     /* Firefox */
    -ms-user-select: none;      /* IE/Edge */
    user-select: none;          /* Non-prefixed version, currently supported by Chrome, Edge, Opera and Firefox */
    background-color: var(--background-color-main);
    color: var(--color-main);
    border: 2px solid var(--border-color-input);
    border-radius: 4px;
    font-size: 0.95rem;
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex-shrink: 0;
    cursor: pointer;
    transition: all 0.15s ease;
    /* "Hold" visual: using icon + can be red/green later */
}
.customCheckbox.activeState {
    /* Engaged / holding state - red "stop" / locked feel */
    background-color: #9c2a2a;
    border-color: #e74c3c;
    color: #fff;
    box-shadow: 0 0 0 1px rgba(231, 76, 60, 0.4);
}
input[type=button].fullWidth {
    width: 100%;
    color: var(--color-light-stroke);
    background-color: var(--backgroundcolor-button-full-width);
}
@media print {
  .no-print {
    display: none;
  }
  /* table {
    width: 90%;
    color:#000 !important;
    background-color: #FFF !important;
  } */
}
.initiallyHidden {
    display: none;
}
.leftUi {
    /* First-pass: was z-index -1 which hid the action items. Now visible. */
    z-index: 2;
}
.expandCollapse {
    cursor: pointer;
}
.expandCollapse::after {
    content: " +";
}
.expandCollapse:hover {
    background-color: var(--color-g);
}
.light_stroke_bottom {
    border-bottom: 2px solid var(--color-light-stroke);
}
footer {
    background: linear-gradient(to right, var(--background-color-footer), transparent);
    display: block;
    position: fixed;
    bottom: 0;
    width: 100%;
}
.bold {
    font-weight: bold;
}
span.interestLabel1 {
    margin-left:7em;
}
span.interestLabel2 {
    display: none;
}
/*960 prev*/
@media screen and (max-width: 1200px), screen and (max-width: 430px) {
/* @media screen and (max-width: 430px) { */
    div.sidebar {
        display:none;
    }
    body,.payment-container,.payment-item {
        flex:none;
        display:block;
        margin: 10 10 10 10;
    }
    div.sidebar.no-print {
        display: none !important;
    }
    label::after {
        content: "\A";
        white-space: pre;
    }
    span.interestLabel1 {
        display: none;
    }
    span.interestLabel2 {
        display: block;
    }
    div > table > thead > tr > th:nth-child(1),div > table > tbody > tr > td:nth-child(1) {
        display: none;
    }
    div > table > thead > tr > th:nth-child(2),div > table > tbody > tr > td:nth-child(2) {
        display: none;
    }
    .push-stack {
        position: relative;
    }
    .leftUi::after {
        content: "\A";
        white-space: pre;
    }
    div.rot45 {
        transform:none;
        left:0;
    }
    .copyTextLabel {
        border-radius: 0;
    }
    .copyTableFormatted {
        border: 2px solid var(--border-color-copy-table-formatted);
        border-radius: 0;
    }
    input {
        width: 100%;
    }
}