    /**************************************************************************************************************************************************/
    /** This file will override MaterializeCSS input styles to be more like the material design spec at https://material.io/components/text-fields/  **/
    /**                                                                                                                                              **/
    /** Tweaks to this file should be minimal besides the "top" property of active outlined labels (search for: "input.outline+label.active")        **/
    /** or to the padding of material icons prefixed to an input (search for: i.material-icons.prefix)
    /**************************************************************************************************************************************************/

    /*********************/
    /** STANDARD STYLES **/
    /*********************/

    /* to align select with input field size */
    .input-field select {
        margin: 0 0 20px 0;
    }

    /* extra spacing for all active labels */
    .input-field > label:not(.label-icon).active {
        transform: translateY(-17px) scale(0.8) !important;
        transform-origin: 0 0;
    }
    /* webkit autofill  */
.input-field > input:-webkit-autofill + label:not(.label-icon).active, .input-field > input[type]:-webkit-autofill:not(.browser-default):not([type=search]) + label, .input-field > input[type=date]:not(.browser-default) + label, .input-field > input[type=time]:not(.browser-default) + label  {
        transform: translateY(-17px) scale(0.8) !important;
        transform-origin: 0 0;
    }

    /* extra spacing for active label's with icons */
    .input-field > label.label-icon.active {
        transform: translateY(-20px) scale(0.8) !important;
        transform-origin: 0 0;
    }
    /* webkit autofill .label-icon.active */
    .input-field > input:-webkit-autofill + label.label-icon.active {
        transform: translateY(-20px) scale(0.8) !important;
        transform-origin: 0 0;
    }

    .input-field > label.label-icon i.material-icons {
        vertical-align: bottom;
    }

    input:not([type]), input[type=text], input[type=password], input[type=email], input[type=url], input[type=time], input[type=date], input[type=datetime], input[type=datetime-local], input[type=tel], input[type=number], input[type=search], textarea.materialize-textarea, select {
        background-color  : rgba(0,0,0,.05) !important;
        border-radius     : 4px 4px 0 0 !important;
        padding           : 0 0 0 8px !important;
        transition        : .3s background-color;
        /* margin-top        : 2px !important; */
        -webkit-box-sizing: border-box !important; /* Safari/Chrome, other WebKit */
        -moz-box-sizing   : border-box !important; /* Firefox, other Gecko */
        box-sizing        : border-box !important; /* Opera/IE 8+ */
    }

    /* hover */
    input:not([type]):hover, input[type=text]:hover, input[type=password]:hover, input[type=email]:hover, input[type=url]:hover, input[type=time]:hover, input[type=date]:hover, input[type=datetime]:hover, input[type=datetime-local]:hover, input[type=tel]:hover, input[type=number]:hover, input[type=search]:hover, textarea.materialize-textarea:hover, select:hover {
        background-color : rgba(0,0,0,.16) !important;
        transition       : .3s background-color;
    }

    /* focus */
    input:not([type]):focus, input[type=text]:focus, input[type=password]:focus, input[type=email]:focus, input[type=url]:focus, input[type=time]:focus, input[type=date]:focus, input[type=datetime]:focus, input[type=datetime-local]:focus, input[type=tel]:focus, input[type=number]:focus, input[type=search]:focus, textarea.materialize-textarea:focus, select:focus  {
        background-color : rgba(0,0,0,.08) !important;
        transition       : .3s background-color;
    }

    /* disabled */
    input:disabled, select:disabled, input.disabled, select.disabled, input:disabled+label, select:disabled+label, input.disabled+label, select.disabled+label {
        cursor: not-allowed !important;
    }

    input:disabled, select:disabled, input.disabled, select.disabled {
        opacity: .8;
        border-bottom-style: dotted;
        border-bottom-color: rgb(158, 158, 158) !important;
    }

    input.valid:disabled, select.valid:disabled, input.valid.disabled, select.valid.disabled, select.valid {
        border-color: #4CAF50 !important;
    }

    select.valid, select.invalid {
        border-bottom-width: 2px;
    }

    input.invalid, input.valid, input.valid:disabled, select.valid:disabled, input.valid.disabled, select.valid.disabled, select.valid
    input.invalid:disabled, select.invalid:disabled, input.invalid.disabled, select.invalid.disabled {
        box-shadow: none !important;
        border-bottom-width: 2px !important;
        border-bottom-style: dotted;
    }

    input.invalid:disabled, select.invalid:disabled, input.invalid.disabled, select.invalid.disabled, select.invalid {
        border-bottom-color: #F44336 !important;
    }

    input.invalid:disabled, select.invalid:disabled, input.invalid.disabled, select.invalid.disabled {
        box-shadow: none !important;
        border-bottom-style: dotted;
    }

    select {
        border-bottom-color: rgb(158, 158, 158);
        border-top: none;
        border-left: none;
        border-right: none;
    }

    select:focus {
        outline: 0 !important;
        border-bottom-color: #35617b; /* added for c999 */
        border-width: 2px;              /* added for c999 */
    }

    /* uncomment this to remove blue chrome autofill */
    /* input:-webkit-autofill, select:-webkit-autofill {
        -webkit-box-shadow : 0 0 0 30px #e8e8e8 inset !important;
        box-shadow         : 0 0 0 30px #e8e8e8 inset !important;
    } */


    /************************/
    /** STANDARD ALTERNATE **/
    /************************/

    input:not(.outline).lighten, select:not(.outline).lighten {
        background-color: rgba(255,255,255,.05) !important;
    }

    input:not(.outline).lighten:hover, select:not(.outline).lighten:hover {
        background-color: rgba(255,255,255,.16) !important;
    }

    input:not(.outline).lighten:focus, select:not(.outline).lighten:focus {
        background-color: rgba(255,255,255,.08) !important;
    }

    i.material-icons.lighten {
        color: rgba(255, 255, 255, 0.57) !important;
    }

    i.material-icons.prefix {
        padding: 8px; /* may need to be changed if input prefix icons don't perfectly align */
    }

    /** LABEL OVERRIDES **/
    .input-field.col label, input+label, select+label, input.outline+label, select.outline+label  {
        left : 1.25rem !important;
        width: auto !important;
    }

    /****************************/
    /** OUTLINE DEFAULT STYLES **/
    /****************************/

    input.outline, select.outline {
        border: 1px solid rgba(0,0,0,0.35) !important;
        background-color: rgba(0,0,0,0) !important;
        border-radius: 4px !important;
        transition: .3s all;
    }

    /* for adding .prefix icons to select classes */
    .input-field .prefix ~ select {
        margin-left: 3rem;
        width: 92%;
        width: calc(100% - 3rem)
    }

    /* label */
    input.outline+label.active, select.outline+label.active {
        top: 0.5rem;  /* THIS IS THE DEFAULT - may need to change depending if body font size has been altered */
        /* top: 1.2rem; /* updated for smaller font size on body */
        background-color: #2d2d2d; /* change this to update label colors as needed. DONT USE OPACITY */
        color: #f3f3f3 !important;
        border-radius: 4px;
        padding: 0 4px;
        display: flex;
        align-items: center;
        width: auto !important;
    }

    input.outline+label.active i, select.outline+label.active i {
        font-size: 1rem;
        color: #f3f3f3;
    }

    /* invalid */
    input.outline.invalid+label.active, select.outline.invalid+label.active {
        background-color: #F44336;
    }

    input.outline.invalid:not([type]):not([readonly]), input.outline.invalid[type=text]:not([readonly]), input.outline.invalid[type=password]:not([readonly]), input.outline.invalid[type=email]:not([readonly]), input.outline.invalid[type=url]:not([readonly]), input.outline.invalid[type=time]:not([readonly]), input.outline.invalid[type=date]:not([readonly]), input.outline.invalid[type=datetime]:not([readonly]), input.outline.invalid[type=datetime-local]:not([readonly]), input.outline.invalid[type=tel]:not([readonly]), input.outline.invalid[type=number]:not([readonly]), input.outline.invalid[type=search]:not([readonly]), textarea.materialize-textarea:not([readonly]), select.outline.valid:not(:disabled):not(.disabled):not([readonly]) {
        border: 1px solid #F44336 !important;
        box-shadow: none !important;
    }

    /* valid */
    input.outline.valid+label.active, select.outline.valid+label.active, input.outline.valid+label.active i, select.outline.valid+label.active i {
        background-color: #4CAF50 !important;
        color: black !important;
        transition: .3s all;
    }

    input.outline.valid:not([type]):not([readonly]), input.outline.valid[type=text]:not([readonly]), input.outline.valid[type=password]:not([readonly]), input.outline.valid[type=email]:not([readonly]), input.outline.valid[type=url]:not([readonly]), input.outline.valid[type=time]:not([readonly]), input.outline.valid[type=date]:not([readonly]), input.outline.valid[type=datetime]:not([readonly]), input.outline.valid[type=datetime-local]:not([readonly]), input.outline.valid[type=tel]:not([readonly]), input.outline.valid[type=number]:not([readonly]), input.outline.valid[type=search]:not([readonly]), textarea.materialize-textarea:not([readonly]), select.outline.valid:not(:disabled):not(.disabled):not([readonly]) {
        border: 1px solid #4CAF50 !important;
        box-shadow: none;
    }

    /* disabled */
    input.outline:disabled, select:disabled.outline {
        border: 1px dotted !important;
    }

    select:disabled.outline {
        opacity: 0.8;
    }

    select:disabled.outline+label.active, input.outline:disabled+label.active, select:disabled.outline+label.active i, input.outline:disabled+label.active i  {
        background-color: #929292 !important;
        color: #f3f3f3 !important;
    }

    /* valid - disabled */
    input.outline.valid:disabled, select.outline.valid:disabled {
        border-color: #78b37a !important;
    }

    /* invalid - disabled */
    input.outline.invalid:disabled, select.outline.invalid:disabled {
        border-color: #f56f66 !important;
    }


    select.outline:not([type]):focus:not([readonly]) {
        outline: inherit;
    }

    /* hover */
    select.outline:not(.lighten):not(:disabled):not(.disabled):not(.invalid):not(.valid):hover {
        /* this should be the border */
        border: 1px solid rgba(0,0,0,0.5) !important;
    }

    input.outline:not(.lighten):hover, select.outline:not(.lighten):hover {
        background-color: rgba(0,0,0,0) !important;
        border-color: rgba(0,0,0,.62) !important;
        transition: .3s border-color;
    }

    /* focus */
    input.outline:not(.lighten):focus, select.outline:not(.lighten):focus {
        outline: inherit;
        background-color: rgba(0,0,0,.07) !important;
        border-color: rgba(0,0,0,.6) !important;
    }

    input.outline:not([type]):focus:not([readonly]):not(.invalid):not(.valid), input.outline[type=text]:focus:not([readonly]):not(.invalid):not(.valid), input.outline[type=password]:focus:not([readonly]):not(.invalid):not(.valid), input.outline[type=email]:focus:not([readonly]):not(.invalid):not(.valid), input.outline[type=url]:focus:not([readonly]):not(.invalid):not(.valid), input.outline[type=time]:focus:not([readonly]):not(.invalid):not(.valid), input.outline[type=date]:focus:not([readonly]):not(.invalid):not(.valid), input.outline[type=datetime]:focus:not([readonly]):not(.invalid):not(.valid), input.outline[type=datetime-local]:focus:not([readonly]):not(.invalid):not(.valid), input.outline[type=tel]:focus:not([readonly]):not(.invalid):not(.valid), input.outline[type=number]:focus:not([readonly]):not(.invalid):not(.valid), input.outline[type=search]:focus:not([readonly]):not(.invalid):not(.valid), textarea.materialize-textarea:focus:not([readonly]):not(.invalid):not(.valid) {
        border-bottom: 1px solid #8e8e8e;
        box-shadow: inherit;
    }

    /* focus - .lighten overrides */
    input.outline:not([type]):not([readonly]):not(.lighten):focus:not(.invalid):not(.valid), input.outline[type=text]:not([readonly]):not(.lighten):focus:not(.invalid):not(.valid), input.outline[type=password]:not([readonly]):not(.lighten):focus:not(.invalid):not(.valid), input.outline[type=email]:not([readonly]):not(.lighten):focus:not(.invalid):not(.valid), input.outline[type=url]:not([readonly]):not(.lighten):focus:not(.invalid):not(.valid), input.outline[type=time]:not([readonly]):not(.lighten):focus:not(.invalid):not(.valid), input.outline[type=date]:not([readonly]):not(.lighten):focus:not(.invalid):not(.valid), input.outline[type=datetime]:not([readonly]):not(.lighten):focus:not(.invalid):not(.valid), input.outline[type=datetime-local]:not([readonly]):not(.lighten):focus:not(.invalid):not(.valid), input.outline[type=tel]:not([readonly]):not(.lighten):focus:not(.invalid):not(.valid), input.outline[type=number]:not([readonly]):not(.lighten):focus:not(.invalid):not(.valid), input.outline[type=search]:not([readonly]):not(.lighten):focus:not(.invalid):not(.valid), textarea.materialize-textarea:not([readonly]):not(.lighten):focus:not(.invalid):not(.valid)  {
        background-color : rgba(0,0,0,.07) !important;
        border-color     :  rgba(0,0,0,0.75) !important;
    }

    select.outline:not(.lighten):focus {
        /* this should be the border */
        background-color: rgba(0,0,0,.07) !important;
    }

    /***********************/
    /** OUTLINE ALTERNATE **/
    /***********************/

    input.outline.lighten, select.outline.lighten {
        transition: .3s all;
        background-color: rgba(255,255,255,.1) !important;
        border-color: rgba(255,255,255,.4) !important;
    }

    /* label */
    input.outline.lighten+label, select.outline.lighten+label, input.outline.lighten+label i, select.outline.lighten+label i {
        color: rgba(255, 255, 255, 0.66);
    }

    input.outline.lighten+label.active, select.outline.lighten+label.active, input.outline.lighten+label.active i, select.outline.lighten+label.active i {
        background-color: #f3f3f3;
        color: #2d2d2d !important;
    }

    /* hover */
    input.outline.lighten:hover, select.outline.lighten:hover {
        /* background-color: rgba(255,255,255,.25) !important; */
        border-color: rgba(255,255,255,.8) !important;
    }

    select.outline.lighten:hover {
        background-color: rgba(255,255,255,.1) !important;
    }

    /* focus */
    input.outline.lighten:focus, select.outline.lighten:focus {
        outline: inherit;
        background-color: rgba(255,255,255,.18) !important;
        border-color: rgba(255,255,255,.6) !important;
    }

    select.outline.lighten:focus {
        background-color: rgba(255,255,255,.18) !important;
    }

    select.outline.lighten, input.lighten, input.lighten+label, input.lighten+label.active, select.lighten+label, select.lighten+label.active {
        color: rgba(255, 255, 255, 0.57);
    }

    select.lighten option {
        color: black !important;
    }

    /* disabled */
    select.lighten:disabled, input.lighten:disabled {
        color: rgba(255,255,255,.35) !important;
    }