:root
{
    /* light mode colors */
    --bg-color: #FFFFFF;
    --text-color: #080808;
    --axis-color: #222222;
    --grid-color: #666666;
    --ft-color: #E00039;
    --gt-color: #F89900;
    --conv-color: #2E76F8;
    --area-color: rgba(0, 127, 14, 0.6);
    --err-color: #B22222;
    --path-color: #f5b402;

    /* fonts */
    --sans-serif: "Helvetica", "Roboto", sans-serif;
    --serif: "Cambria Math", "Georgia", "Times", serif;

    /* page margins */
    --margin-lr: clamp(1rem, 10vw, 5rem);
}

[data-theme="dark"]
{
    /* dark mode colors */
    --bg-color: #000B1C;
    --text-color: #FFFFFF;
    --axis-color: #DDDDDD;
    --grid-color: #888888;
    --ft-color: #ff0000;
    --gt-color: #ffa500;
    --conv-color: #00ffff;
    --area-color: rgba(0, 255, 0, 0.3);
    --err-color: #E22222;
    --path-color: #E9F23F;
}

* /* default settings */
{
    margin: 0;
    padding: 0;
    background: var(--bg-color);
}

header
{
    display: flex;
    padding-top: 2.4rem;
    align-items: center;
    justify-content: space-between;
    margin-left: var(--margin-lr);
    margin-right: var(--margin-lr);
}

header h1
{
    font-family: var(--sans-serif);
    font-size: 30pt;
}

.header-buttons
{
    cursor: pointer;
}

.header-buttons button
{
    border: none;
}

.header-buttons button img
{
    width: 24pt;
}

.paragraph
{
    margin-left: var(--margin-lr);
    margin-right: var(--margin-lr);
    margin-top: 2rem;
    margin-bottom: 2rem;
    border-radius: 1rem;
    color: var(--text-color);
}

.paragraph h2
{
    font-family: var(--sans-serif);
    text-align: left;
    margin-top: 2.4rem;
}

.paragraph h3 {
    font-family: var(--sans-serif);
    text-align: left;
    margin-top: 1.5rem;
}

.paragraph p {
    margin-top: 0.5rem;
    font-family: var(--sans-serif); 
    text-align: left;
    background-color: transparent;
    line-height: 1.5;
}

.paragraph li {
    margin-left: 2rem;
    text-align: left;
    font-family: var(--sans-serif);
    line-height: 1.5;
}

.paragraph .equation
{
    text-align: center;
    font-size: 14pt;
    line-height: 1.8;
}

#plot-canvas-container
{
    position: relative;
    display: inline-block;
}

canvas
{
    width: 100%;
}

.legend
{
    position: absolute;
    bottom: 1rem;
    left: 1.6rem;
    color: var(--text-color);
    background: transparent;
    pointer-events: none;
    padding: 0.5rem;
    font-size: 16pt;
    text-align: left; 
}

.legend-item
{
    display: flex;
    margin: 0.2rem;
    align-items: center;
}

.legend-item,
.legend-item *
{
    background: transparent;
    font-family: var(--serif);
}

.legend-checkbox
{
    position: relative;
    cursor: pointer;
    padding-left: 30px;
    line-height: 20px;
    margin-right: 0.4rem;
    pointer-events: auto;
}

.legend-checkbox input
{
    position: absolute;
    cursor: pointer;
    opacity: 0;
}

.checkmark
{
    position: absolute;
    top: 0;
    left: 0;
    height: 15pt;
    width: 15pt;
    border-radius: 3pt;
}

.legend-checkbox .checkmark {
    background-color: transparent;
    border: 1pt solid;
}

#ft-legend-checkbox input:checked ~ .checkmark
{
    background-color: var(--ft-color);
}

#gt-legend-checkbox input:checked ~ .checkmark
{
    background-color: var(--gt-color);
}

#conv-legend-checkbox input:checked ~ .checkmark
{
    background-color: var(--conv-color);
}

.function-input
{
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: 3rem;
    margin-right: 3rem;
    padding: 0.6rem 0;
}

.function-label
{
    color: var(--grid-color);
    font-family: var(--serif);
    font-size: 24pt;
    font-style: italic;
    margin-right: 0.75rem;
    border: none;
}

.function-text
{
    width: calc(100vw - 24rem);
    font-family: var(--serif);
    font-size: 24pt;
    border: none;
    margin-right: 0;
    color: var(--text-color);
}

.function-options
{
    color: var(--text-color);
    border: none;
    width: 10rem;
    font-family: var(--sans-serif);
    font-size: 12pt;
    margin-left: 1rem;
}

table
{
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 1.6rem;
}

td, th
{
    padding: 0.3rem 2rem;
    text-align: left;
    color: var(--text-color);
}

th
{
    font-size: 14pt;
    font-family: var(--sans-serif);
    text-align: center;
}

.funcSyntax
{
    font-size: 12pt;
    font-family: var(--serif);
    color: var(--text-color);
    text-align: center;
}

.funcName
{
    font-size: 12pt;
    font-family: "Helvetica", "Roboto", sans-serif; 
    color: var(--text-color);
    text-align: center;
}

footer
{
    display: flex;
    align-items: space-around;
    width: 100%;
    font-family: var(--sans-serif);
    color: var(--text-color);
    font-size: 12pt;
    text-align: center;
    padding-bottom: 2rem;
}

footer p
{
    width: 100%;
    text-align: center;
}

.function-hr {
    margin-top: 0;
    border: none;
    border-top: 1pt solid var(--axis-color);
}
