﻿@import url("colors.css");
@import url("spacing.css");
/* === Basic Reset === */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
/* Chrome, Edge, Safari */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Firefox */
input[type="number"] {
    -moz-appearance: textfield;
}
html {
    font-size: 16px;
    scroll-behavior: smooth;
    width:100%;
    height:100%;
}
.clr-parent
{
    color:inherit !important;
}
.pointer-event-none {
    pointer-events: none;
}
body {
    /*    font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
    background-color: var(--backgroud-default);
    color: var(--text-primary);
    line-height: 1.6;*/

    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    margin: 0;
    text-align: left;
    width: 100%;
    height: 100%;
}

/* === Layout Helpers === */
.container {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
}

.flex {
    display: flex;
    gap: 1rem;
}

.grid {
    display: grid;
    gap: 1rem;
}

.text-center {
    text-align: center;
}

/* === Header and Navigation === */
header {
    background-color: var(--backgroud-default);
    color: var(--text-on-dark);
    padding: 1rem 0;
    display:flex;
    flex-direction:column;
    gap:var(--space-sm);
    margin-bottom:var(--space-sm);
}
    header.logo {
        height: 62px;
        aspect-ratio: 250 / 62;
    }
    header nav {
        background-image: linear-gradient(to right, #154194 0%, #0080c9 100%) !important;
        background-repeat: repeat-x;
        font-weight: 400 !important;
        color: var(--text-on-dark);
        display: flex;
        align-items:center;
        justify-content:center;
    }

nav a {
    color: var(--text-on-dark);
    text-decoration: none;
    margin: 0 1rem;
    font-weight: 500;
}

    nav a:hover {
        color: var(--yellow);
    }
.nav-link.active {
    color: var(--yellow) !important; /* golden text */
    font-weight: bold;
    border-bottom: 2px solid var(--yellow); /* underline accent */
}
    /*===Forms===*/
form {
    padding: var(--space-md);
    margin: var(--space-md);
}
    form.border{
        border:1px solid var(--dark-gray);
    }
.form {
    padding: var(--space-md);
    margin: var(--space-md);
    width:fit-content;
    height:auto;
    display:flex;
    flex-direction:column;
}
    .form.border {
        border: 1px solid var(--dark-gray);
    }
/* === Inputs === */
label.required::after {
    color: var(--danger);
    font-weight: 900; /* solid icons need this */
    content: "*"; /* Unicode for fa-asterisk */
    margin-left: 6px;
}
input.required,
select.required,
.input-group.required {
    border: 1px solid red;
    box-shadow: 0 0 3px rgba(255, 0, 0, 0.6);
    outline: none; /* prevents double highlight */
}
input.number{
    text-align:right;
}
input.number-3{
    text-align:right;
    max-width:7ch;
}
input.number-4{
    text-align:right;
    max-width:8ch;
}
input.number-5{
    text-align:right;
    max-width:9ch;
}
input.number-6{
    text-align:right;
    max-width:11ch;
}
input.number-10{
    text-align:right;
    max-width:14ch;
}
input.number-12{
    text-align:right;
    max-width:16ch;
}
    /* === Buttons === */
    .button,
    button {
        background-color: var(--green);
        color: var(--text-on-dark);
        border: none;
        padding: 0.75rem 1.5rem;
        border-radius: 4px;
        font-size: 1rem;
        cursor: pointer;
        transition: background-color 0.3s;
    }

    .button:hover,
    button:hover {
        background-color: var(--blue);
    }

/* === Links === */
a {
    color: var(--text-link);
    text-decoration: none;
}

    a:hover {
        color: var(--text-link-hover);
        text-decoration: underline;
    }

/* === Headings === */
h1, h2, h3, h4, h5, h6 {
    color: var(--text-heading);
    /*margin-bottom: 0.5rem;*/
    margin-bottom: 0.5rem !important;
    margin-top: 0.5rem !important;
    font-weight: 600;
}

/* === Sections === */
section {
    padding: 1rem 0;
}

    section.alt {
        background-color: var(--light-gray);
    }

/* === Footer === */
footer {
    background-color: var(--dark-gray);
    color: var(--text-on-dark);
    padding: 2rem 1rem;
    text-align: center;
}
/**===Bootstrap Overrides===*/
.btn-outline-primary {
    color: var(--blue);
    border-color: var(--blue);
}

    .btn-outline-primary:hover,
    .btn-outline-primary:active,
    .show > .btn-outline-primary.dropdown-toggle {
        color: #fff;
        background-color: var(--blue);
        border-color: var(--blue);
    }
.btn-outline-green {
    color: var(--green);
    border-color: var(--green);
}

    .btn-outline-green:hover,
    .btn-outline-green.active,
    .show > .btn-outline-green.dropdown-toggle {
        color: #fff;
        background-color: var(--green);
        border-color: var(--green);
    }
table.table-striped > tbody > tr.bg-success>td {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important;
}

table.table-striped > tbody > tr.bg-success-subtle>td {
    background-color: var(--bs-success-bg-subtle) !important;
}
table.table-striped > tbody > tr.bg-danger-subtle>td {
    background-color: var(--bs-danger-bg-subtle) !important;
}
table.table-striped > tbody > tr.bg-danger>td {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important;
}
.btn-primary {
    background-color: var(--blue) !important;
    border-color: var(--blue) !important;
}

    .btn-primary:hover,
    .btn-primary:focus,
    .btn-primary:active {
        background-color: color-mix(in srgb, var(--blue) 85%, black) !important;
        border-color: color-mix(in srgb, var(--blue) 85%, black) !important;
    }
.btn-secondary {
    background-color: var(--green) !important;
    border-color: var(--green) !important;
}

    .btn-secondary:hover,
    .btn-secondary:focus,
    .btn-secondary:active {
        background-color: color-mix(in srgb, var(--green) 85%, black) !important;
        border-color: color-mix(in srgb, var(--green) 85%, black) !important;
    }
.btn-trinary {
    background-color: var(--yellow) !important;
    border-color: var(--yellow) !important;
    color: var(--text-primary) !important;
}

    .btn-trinary:hover,
    .btn-trinary:focus,
    .btn-trinary:active {
        background-color: color-mix(in srgb, var(--yellow) 85%, black) !important;
        border-color: color-mix(in srgb, var(--yellow) 85%, black) !important;
    }
.btn-light-outline {
    background-color: transparent !important;
    border-color: var(--gray) !important;
    color: var(--gray) !important;
    padding-left: var( --space-sm);
    padding-right: var( --space-sm);
    padding-top: var( --space-xs);
    padding-bottom: var( --space-xs);
    font-size:120%;
}

    .btn-light-outline:hover,
    .btn-light-outline:active {
        background-color: color-mix(in srgb, var(--white) 85%, black) !important;
        border-color: color-mix(in srgb, var(--white) 85%, black) !important;
        color: var(--text-on-dark) !important;
    }
/* === Utilities === */
.muted {
    color: var(--text-muted);
}

.highlight {
    color: var(--text-accent);
}
.bg-primary{
    background-color:var(--blue) !important
}
.bg-green{
    background-color:var(--green) !important
}
.bg-light-blue {
    background-color: var(--light-blue) !important;
}
.clr-blue
{
    color:var(--blue) !important;
}
.clr-light-blue {
    color: var(--light-blue) !important;
}
.clr-green
{
    color:var(--green) !important;
}
.clr-yellow
{
    color:var(--yellow) !important;
}
.clr-text-primary {
    color: var(--text-primary) !important;
}
.clr-text-secondary {
    color: var(--text-secondary) !important;
}
.title-blue {
    color: var(--blue) !important;
    border-bottom:1px solid var(--blue);
}
.title-green {
    color: var(--green) !important;
    border-bottom:1px solid var(--green);
}
.title-yellow {
    color: var(--yellow) !important;
    border-bottom:1px solid var(--yellow);
}
.fit-content{
    width:fit-content;
}
section.main{
    display:flex;
    flex-direction:column;
    padding:var(--space-sm);
    justify-content:center;
    align-content:center;
    justify-items:center;
}
/*===3 State Buttons*/
/* Base style for all tristate buttons */
.btn-tristate {
    border-radius: var(--space-sm); /* keep rounded look */
    /*display: inline-flex;*/ /* flexbox inside button */
    /*display:flex;
    align-items: center;*/ /* center icon vertically */
    /*justify-content: center;*/ /* center icon horizontally */
    /*font-size: 1rem;*/ /* inherit bootstrap sizing */
    /*padding: 0.375rem 0.75rem;*/ /* same as .btn default */
    /*line-height: 1.5rem;*/
    /*min-height:40px;*/
}
    /* Negative */
    .btn-tristate.negative.selected,
    .btn-tristate.negative.active {
        background-color: #dc3545; /* Bootstrap red */
        color: white;
        border-color: #dc3545;
    }
    /* Neutral */
    .btn-tristate.neutral.selected,
    .btn-tristate.neutral.active {
        background-color: #6c757d; /* Bootstrap secondary gray */
        color: white;
        border-color: #6c757d;
    }
    /* Positive */
    .btn-tristate.positive.selected,
    .btn-tristate.positive.active {
        background-color: #28a745; /* Bootstrap green */
        color: white;
        border-color: #28a745;
    }

    /* Inverted Negative */
    .inverted>.btn-tristate.negative.selected,
    .btn-tristate.negative.active {
        background-color: #28a745; /* Bootstrap green */
        color: white;
        border-color: #28a745;
    }

    /* Inverted Positive */
.inverted > .btn-tristate.positive.selected,
.inverted > .btn-tristate.positive.active {
    background-color: #dc3545; /* Bootstrap red */
    color: white;
    border-color: #dc3545;
}
/*===DMC STYLES ===*/
.shadow-subtle {
    box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
}
.dmc-list-item {
    margin-block: var(--space-sm);
    padding: var(--space-sm) !important;
}
    .dmc-list-item:nth-child(odd) {
        background-color: color-mix(in srgb, var(--light-blue) 40%, white);
    }
    .dmc-list-item:nth-child(even) {
        background-color: color-mix(in srgb, var(--yellow) 40%, white);
    }