html, body {
    height: 100%;
    width: 100%;
    margin: 0;
    padding: 0;
    background-color: var(--theme-background);
    color: var(--paragraph-text-color);
    /*overflow: hidden;*/
}

input, textarea, dropdown {
    color: var(--paragraph-text-color);
    background-color: var(--theme-background);
}

input[type="file"] {
    border: 1px solid var(--heading-text-color);
}

/* MAIN BODY STLES */
.content {
    max-height: 100vh;
    padding: 0px 10px;
}

h1, h2, h3 {
    color: var(--heading-text-color);
    background-color: var(--theme-primary);
    /*font-size: 3rem !important;*/
    text-align: center;
    padding: 20px 0px;
    width: 100%;
    -webkit-box-shadow: 5px 5px 10px 5px rgba(0, 0, 0, .4);
    -moz-box-shadow: 5px 5px 10px 5px rgba(0, 0, 0, .4);
    box-shadow: 5px 5px 10px 5px rgba(0, 0, 0, .4);
}

h4, h5, h6 {
    color: var(--paragraph-text-color);
    /*background-color: var(--theme-primary);*/
    /*text-align: center;*/
}

p, label {
    color: var(--paragraph-text-color);
}

/* Outbound Links Emojis */
a[href]:not(:where(
  /* exclude hash only links */
  [href^="#"],
  /* exclude relative but not double slash only links */
  [href^="/"]:not([href^="//"]),
  /* exclude phones */
  [href^="tel:"],
)):after {
  content: '↗️';
  visibility: hidden;
}

/* Telephone Link Emojis */
a[href]:where(
  /* include phones */
  [href^="tel:"],
):hover:after {
  content: '📞';
  visibility: hidden;
}

/* Show Outbound Emojis */
a[href]:not(:where(
  /* exclude hash only links */
  [href^="#"],
  /* exclude relative but not double slash only links */
  [href^="/"]:not([href^="//"]),
)):hover:after {
  visibility: visible;
}

.trip-badge {
    color: white !important;
    font-size: 10px !important;
    cursor: default;
}

/* CONTAINER STYLES */
.full-width-content {
    display: grid;
    overflow: auto;
    align-content: flex-start;
    row-gap: 10px;
    grid-template-columns: 100%;
    grid-template-rows: max-content;
    grid-template-areas: "fw-column";
}

.full-width-column {
    grid-area: fw-column;
    overflow: auto;
    height: calc(96vh - 100px);
}

.grid-container {
    display: grid;
    align-content: flex-start;
    row-gap: 10px;
    padding-left: 10px;
}

.no-sidebar {
    grid-template-columns: 100%;
    grid-template-rows: max-content;
    grid-template-areas: "main";
}

.has-sidebar {
    grid-template-columns: 85% 15%;
    grid-template-rows: max-content max-content;
    grid-template-areas: "main sidebar";
}

.main {
    grid-area: main;
    overflow: auto;
    height: calc(96vh - 100px);
}

.has-sidebar .main {
    border-right: 1px solid #E8E8E8;
}

.has-sidebar .sidebar {
    display: block;
}

.no-sidebar .sidebar {
    display: none;
}

.sidebar {
    grid-area: sidebar;
    overflow: auto;
    padding-bottom: 10px;
    -webkit-box-shadow: 2px 0 10px 1px rgba(0, 0, 0, .2);
    box-shadow: 2px 0 10px 1px rgba(0, 0, 0, .2);
    padding: 10px 10px;
    max-height: 100%;
    height: calc(96vh - 90px);
}

.sidebar-toggle {
    display: none;
}

.sidebar-toggle button {
    width:100%;
    height: auto !important;
    padding: 5px 5px;
}

@media only screen and (max-width: 1400px) {
    .has-sidebar {
        overflow: auto;
        grid-template-columns: 100% 100% 100%;
        grid-template-rows: 80vh 10vh 100vh;
        grid-template-areas: "sidebar"
                             "sidebar-toggle"
                             "main";
    }

    .badge {
        height: auto !important;
        margin: 10px 0px;
    }

    .grid-container {
        padding-left: 0px;
    }

    .main {
        height: calc(94vh - 100px);
    }

    .sidebar-toggle {
        grid-area: sidebar-toggle;
        align-items: center;
    }

    .has-sidebar .sidebar-toggle span {
        rotate: 180deg;
    }

    .has-sidebar .sidebar-toggle label:after {
        content: "Hide Filters";
    }

    .sidebar-toggle label:after {
        content: "Show Filters";
    }

    .sidebar-toggle {
        padding-top: 0px;
        position: fixed;
        text-align: center;
        display: block;
        align-items: center;
        bottom: 0;
        left: 0;
        width: 100%
    }

    .sidebar-toggle a {
        padding: 10px 10px !important;
        width: 100%;
        height: 100%;
        position: relative;
        margin: auto;
    }

    .sidebar-toggle img {
        display: block;
        margin: auto;
        height: 20px;
        width: 20px;
        margin: auto;
    }

    .sidebar-toggle button {
        padding: 10px 10px !important;
        background-color: var(--theme-primary);
        width: 100%;
        height: 50px;
        position: relative;
    }

    .sidebar-toggle label {
        display: block;
        color: var(--light-text-color);
    }

    .full-width-column {
        height: calc(100vh - 100px);
    }
}

/* MODAL STYLES */
.modal {
    z-index: 20;
}

.modal .modal-body {
    background-color: var(--theme-background);
    color: var(--paragraph-text-color);

}

.modal-backdrop {
    z-index: 10;
}

.modal .modal-header {
    background-color: var(--theme-primary);
}

.modal .modal-header * {
    color: var(--button-text-color);
}

.modal .modal-footer {
    border-top: 2px solid var(--theme-primary);
}

/* MODAL FOOTER */
.input-group {
    position: relative;
}

.input-group input {
    display: block;
    box-sizing: border-box
}

.input-group .htmx-indicator {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--theme-primary);
    z-index: -1;
}

.htmx-request.htmx-indicator {
    z-index: 2;
    opacity: 1;
}

/* INTERACTION GLOBAL STYLES */
a, a *, button, button * {
    cursor: pointer !important;
    text-decoration: none;
}

/*
a:hover label, button:hover {
    text-decoration: underline;
}
*/

a button {
    width: 100%;
}

.material-symbols-outlined {
    vertical-align: middle;
}

td > .material-symbols-outlined {
    color: var(--theme-primary);
}

.content .material-symbols-outlined {
    height: 20px;
    width: 20px;
    padding: 2px 2px;
    display: inline;
    width: 100%;
}

.btn .material-symbols-outlined {
    display: block;
}

.header-icon {
    display: inline-block !important;
    width: auto !important;
    height: 100% !important;
}



/* THEME STYLES */
.theme-primary-bg {
    background-color: var(--theme-primary) !important;
}

.theme-primary-text {
    color: var(theme-primary) !important;
}

.theme-secondary-bg {
    background-color: var(--theme-secondary) !important;
}

.theme-secondary-text {
    color: var(theme-primary) !important;
}

.theme-accent-bg {
    background-color: var(--theme-accent) !important;
}

a.theme-accent-bg, a.theme-accent-bg:hover {
    background-image: none !important;
}

.theme-accent-text {
    color: var(--theme-accent) !important;
}

.error-text {
    color: #8a1e16;
}

/* TOAST STYLES */
.success {
    background: #198754 !important;
}

.info {
    background: #08549c !important;
}

.warning {
    background: #eebe21 !important;
}

.error {
    background: #8a1e16 !important;
}

.errorlist, .errorlist li {
    color: #8a1e16;
    list-style-type: none !important;
}

/* NAVBAR STYLES */

.topnav {
    overflow: hidden;
    background-color: var(--theme-primary);
    padding: 10px 0px;
    min-height: 6%;
}

.topnav a, #theme-picker {
    float: left;
    position: relative;
    display: block;
    color: #f2f2f2;
    text-align: center;
    padding: 10px 14px;
    text-decoration: none;
    font-size: 15px;
    -webkit-transform: perspective(4px) translateZ(0);
    transform: perspective(4px) translateZ(0);
}

.topnav a::before, .topnav .active::before, #theme-picker::before {
    content: "";
    position: absolute;
    z-index: -1;
    left: 51%;
    right: 51%;
    bottom: 0;
    background: white;
    height: 4px;
    -webkit-transition-property: left, right;
    transition-property: left, right;
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
    -webkit-transition-timing-function: ease-out;
    transition-timing-function: ease-out;
}

.topnav a:hover::before, .topnav .active::before, #theme-picker:hover::before {
    left: 0;
    right: 0;
}

.topnav span {
    padding-right: 5px;
    vertical-align: middle;
}

#theme-picker {
    /*max-width: 200px;*/
    /*display: flex;*/
    vertical-align: middle;
    color: white;
}

#theme-choice {
    padding-left: 10px;
    display: none;
    position: absolute;
    transform: translateX(-50px);
}

#theme-picker:hover #theme-choice {
    display: block;
    float: right;
}


/* LOGIN PAGE NAVBAR STYLES */
.topnav .title {
    display: block;
    padding: 14px 16px 10px 10px;
    font-size: 17px;
    color: var(--header-text-color);
}

.topnav .brand-logo {
    color: #fff;
    vertical-align: middle;
    display: inline;
    height: 30px;
    width: 30px;
}

.topnav .icon {
    display: inline;
    fill: var(--button-text-color);
    margin: 5px;
    height: 20px;
    width: 20px;
    vertical-align: middle;
}

.topnav .ddicon {
    display: none;
}

@media screen and (max-width: 1400px) {
    .topnav a:not(:first-child) {
        display: none;
        border-right: none;
        border-bottom: 1px white solid;
    }
    .topnav a.ddicon {
        float: left;
        display: block;
    }
    .responsive {
        position: absolute;
        z-index: 100;
        width: 100%;
    }
    .topnav .responsive .ddicon {
        right: 0;
        top: 0;
    }
    .topnav.responsive a {
        float: none;
        display: block;
        text-align: left;
    }
    .topnav .right {
        float: none !important;
    }
    .topnav {
        padding: 5px 0px 0px 0px;
    }
    
    .topnav .active {
        border-left: 10px solid white;
    }
}

/* SIDEBAR STYLES */
.info-card-wrapper {
    display:flex;
    gap: 7px;
    justify-content: space-evenly;
}

.info-card-wrapper div {
    background: var(--theme-primary);
    color: white;
    padding: 5px 15px;
    /*margin-bottom: 5px;*/
    -webkit-box-shadow: 0px 0px 10px 5px rgba(0, 0, 0, .2);
    -moz-box-shadow: 0px 0px 10px 5px vrgba(0, 0, 0, .2);
    box-shadow: 0px 0px 10px 5px rgba(0, 0, 0, .2);
    width: 100%;
    /*width: 50%*/
}

.info-card-wrapper h5, .info-card-wrapper label {
    color: var(--button-text-color);
    text-align: center;
}

.btn-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 5px;
}

.btn-wrapper a, .btn-wrapper button {
    width: calc(50% - 2.5px);
}

.btn-wrapper .full-width, .full-width {
    width: 100%;
}

.btn-wrapper label, .sidebar form button label {
    color: var(--button-text-color);
}

.sidebar form label {
    color: var(--table-label-color);
}


/* FOOTER STYLES */
#footer {
    position: fixed;
    left: 0;
    bottom: 0;
    width: 100%;
    text-align: center;
    height: 50px;
    max-height: 10%;
    padding: 5px 5px;
    color: var(--heading-text-color);
}

#footer a {
    width: 300px;
    height: 30px;
    color: var(--heading-text-color);
    text-decoration: underline;
    text-decoration-color: white;
}

#footer img {
    height: 40px;
}

/* LOGIN STYLES */
.login {
    margin: auto;
    height: 100%;
    width: 100%;
    padding: 3% 20px 20px 20px;
    background: linear-gradient(-45deg, var(--theme-primary), var(--theme-secondary), var(--theme-background), var(--theme-accent));
    background-size: 500% 500%;
    animation: gradient 5s ease infinite;
}

.login img {
    max-width: 100%;

}

.login .container {
    max-width: 750px;
    height: auto;
    width: auto;
    background: var(--heading-text-color);
    margin: auto;
}

.login .row {
    padding: 20px 20px;
}


/* ANIMATIONS */
@keyframes gradient {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}


/* TABLE STYLES */
.table {
    width: 100%;
    margin-bottom: 1rem;
    border-collapse: separate;
}

.table th, .table td {
    padding: 0.75rem;
    vertical-align: middle;
    color: var(--table-label-color);
}

.table thead th {
    margin: 10px 10px;
    position: sticky;
    top: 0;
    background-color: var(--theme-background);
    height: 75px;
    border-bottom: 2px solid var(--theme-primary);
}

.table tbody {
    height: calc(100vh - (125px + 6%));
}

/*
.table tbody tr {
    border: 5px solid transparent;
    border-image: linear-gradient(90deg, var(--table-label-color) 0%, var(--theme-accent) 15%, var(--theme-accent) 85%, var(--table-label-color) 100%);
}
*/

.table-striped tbody tr:nth-of-type(odd) {
    background-color: rgba(0, 0, 0, 0.05);
}

.table-hover tbody tr:hover {
    background-color: rgba(0, 0, 0, 0.15);
}

.values-empty:empty {
    background: #8a1e16;
    color: white;
}

.table-empty {
    padding: 50px;
    position: relative;
    text-align: center;
    color: var(--button-text-color);
    font-size: 30px;
    background-color: var(--theme-primary);
    width: 100%;
    display: block;
}

.table .btn label {
    color: var(--button-text-color);
}

.table label {
    color: var(--table-label-color);
}

.table a p {
    color: var(--table-link-color);
}

.mytrips-wrapper {
    display: flex;
    gap: 5px;
}

.mytrips-wrapper a:not(.li-modal) {
    display: flex;
    justify-content: center;
    align-items: center
}

.mytrips-wrapper a:not(.li-modal) * {
    flex: 0 0 30px;
}

.mytrips-wrapper .li-modal {
    display: flex;
    width: 100%;
    align-items: center;
    align-content: center;
}

.mytrips-wrapper .li-modal span {
    width: unset;
    height: 100px;
    max-height: 30px;
    display: block;
}

/* BUTTON STYLES */
.btn {
    border: none;
    border-radius: 2px;
    display: inline-block;
    height: auto;
    min-width: 90px;
    line-height: 36px;
    padding: 2px 16px;
    text-transform: uppercase;
    vertical-align: middle;
    -webkit-tap-highlight-color: transparent;
    text-decoration: none;
    color: var(--button-text-color);
    background: linear-gradient(to right, var(--theme-accent) 34%, var(--theme-primary) 65%) right;
    text-align: center;
    letter-spacing: 0.5px;
    cursor: pointer;
    moz-transition: all .4s ease-in-out;
    -o-transition: all .4s ease-in-out;
    -webkit-transition: all .4s ease-in-out;
    transition: all .4s ease-in-out;
    background-size: 300% 100%;
}

.btn:hover {
    background-position: left;
    moz-transition: all .4s ease-in-out;
    -o-transition: all .4s ease-in-out;
    -webkit-transition: all .4s ease-in-out;
    transition: all .4s ease-in-out;
}

.btn-active {
    background: linear-gradient(to right, var(--theme-accent) 34%, var(--theme-accent) 65%) right;
}


/* GOOGLE MAPS / AUTOCOMPLETE STYLING */
#map {
    height: 100%;
}

#locationField,
#controls {
    position: relative;
    width: 480px;
}

#autocomplete {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 99%;
}

.label {
    text-align: right;
    font-weight: bold;
    width: 100px;
    color: #303030;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
}

#address {
    border: 1px solid #000090;
    background-color: #f0f9ff;
    width: 480px;
    padding-right: 2px;
}

#address td {
    font-size: 10pt;
}

.field {
    width: 99%;
}

.slimField {
    width: 80px;
}

.wideField {
    width: 200px;
}

#locationField {
    height: 20px;
    margin-bottom: 2px;
}

/* INVOICE STYLES */
.invoice-title {
    font-size: 40px;
    padding-left: 50px;
    display: inline-block;
    text-align: left;
    vertical-align: middle;
}

/* AUTOCOMPLETE STYLES */
.pac-container {
    background-color: #fff;
    z-index: 9999999;
    position: fixed;
    display: inline-block;
    float: left;
}

.ui-menu .ui-menu-item a {
    font-size: 12px;
}

.ui-autocomplete {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 9999999999 !important;
    float: left;
    display: none;
    min-width: 160px;
    width: 160px;
    padding: 4px 0;
    margin: 2px 0 0 0;
    list-style: none;
    background-color: #ffffff;
    border-color: #ccc;
    border-color: rgba(0, 0, 0, 0.2);
    border-style: solid;
    border-width: 1px;
    -webkit-border-radius: 2px;
    -moz-border-radius: 2px;
    border-radius: 2px;
    -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
    -webkit-background-clip: padding-box;
    -moz-background-clip: padding;
    background-clip: padding-box;
}

.ui-menu-item > a.ui-corner-all {
    display: block;
    padding: 3px 15px;
    clear: both;
    font-weight: normal;
    line-height: 18px;
    color: #555555;
    white-space: nowrap;
    text-decoration: none;
}

.ui-state-hover, .ui-state-active {
    color: #ffffff;
    text-decoration: none;
    background-color: #0088cc;
    border-radius: 0px;
    -webkit-border-radius: 0px;
    -moz-border-radius: 0px;
    background-image: none;
}

/* FORM STYLES */
.modal-body label {
    display: block;
    margin-top: 10px;
}

.modal-body > .btn {
    width: 30%;
}

.time-field {
    width: 60%;
    display: inline-block;
}

.time-btn {
    width: 30%;
    display: inline-block;
}

.red-icon {
    color: red !important;
    font-size: 56px;
}

.green-icon {
    color: green !important;
    font-size: 56px;
}

.blue-icon {
    color: blue !important;
    font-size: 56px;
}

.yellow-icon {
    color: #FDDA0D !important;
    font-size: 56px;
}

#new_assignment {
    box-shadow: 0px 0px 5px 5px var(--theme-primary);
    padding: 10px 10px;
}

.card .card-content {
    color: var(--heading-text-color) !important;
}

.history-date-fields {
    display: flex; 
    gap: 25px;
    align-content: baseline;
    align-items: baseline;
}

.history-date-fields > div {
    border-bottom: 2px solid var(--theme-primary);
}

/* FORM FIELDS */
/*
.input-date {
    background-image: url(/img/calendar.png);
    background-position: 7px 7px;
    background-repeat: no-repeat;
    background-position: right;
    background-size: 30px;
}

.input-time {
    background-image: url(/img/clock.png);
    background-position: 7px 7px;
    background-repeat: no-repeat;
    background-position: right;
    background-size: 30px;
}

.mapsAutoComplete {
    background-image: url(/img/map.png);
    background-position: 7px 7px;
    background-repeat: no-repeat;
    background-position: right;
    background-size: 30px;
}
*/
/* BILLING RATES CUSTOMERS UL */
.customer-list {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    max-width: 300px;
}

.customer-list a, .customer-list span {
    font-size: 10px;
    list-style-type: none !important;
    padding: 4px 4px;
    color: var(--button-text-color);
    background-color: var(--theme-primary);
}

#customer-filter {
    height: 40vh;
    overflow: auto;
}

/* FOR FUNZIES
.card .card-content, .info-card-wrapper div {
    background: linear-gradient(-45deg, #1451A6, #F2604E, #3584F2, #C4F21D, #88A61C);
    background-size: 500% 500%;
    animation: gradient 5s infinite;
    color: lime !important;
}

.card .card-action {
    background: linear-gradient(-30deg, #1451A6, #F2604E, #3584F2, #C4F21D, #88A61C);
    background-size: 500% 500%;
    animation: gradient 3s infinite;
    color: lightblue !important;
}

.topnav {
    background: linear-gradient(-10deg, #1451A6, #F2604E, #3584F2, #C4F21D, #88A61C);
    background-size: 500% 500%;
    animation: gradient 7s infinite;
}

.topnav a {
    color: #F2604E !important;
}

#footer {
    background: linear-gradient(-90deg, #1451A6, #F2604E, #3584F2, #C4F21D, #88A61C);
    background-size: 500% 500%;
    animation: gradient 1s infinite;
}

#footer p {
    background: linear-gradient(90deg, #1451A6, #F2604E, #3584F2, #C4F21D, #88A61C);
    background-size: 500% 500%;
    animation: gradient 4s infinite;
}

body {
    background: linear-gradient(90deg, #1451A6, #F2604E, #3584F2, #C4F21D, #88A61C);
    background-size: 500% 500%;
    animation: gradient 4s infinite;
}

.content {
    background: linear-gradient(90deg, #1451A6, #F2604E, #3584F2, #C4F21D, #88A61C);
    background-size: 500% 500%;
    animation: gradient 10s infinite;
}

.btn:nth-child(n) {
    background: linear-gradient(65deg, #1451A6, #F2604E, #3584F2, #C4F21D, #88A61C);
    background-size: 500% 500%;
    animation: gradient 10s infinite;
}

.btn:nth-child(2n), tr:nth-child(2n) {
    background: linear-gradient(180deg, #1451A6, #F2604E, #3584F2, #C4F21D, #88A61C);
    background-size: 500% 500%;
    animation: gradient 10s infinite;
}

.btn:nth-child(3n), th {
    background: linear-gradient(45deg, #1451A6, #F2604E, #3584F2, #C4F21D, #88A61C);
    background-size: 500% 500%;
    animation: gradient 10s infinite;
}

input {
    color: white !important;
    background-color: white !important;
}

.main h1, .full-width-content h1 {
    background: linear-gradient(90deg, #1451A6, #F2604E, #3584F2, #C4F21D, #88A61C);
    background-size: 500% 500%;
    animation: gradient 1s infinite;
}

#banner p {
    color: red;
}
*/