

:root {
    --nf-input-size: 1.5rem;
    --nf-input-font-size: calc(var(--nf-input-size) * 0.875);
    --nf-small-font-size: calc(var(--nf-input-size) * 0.7);
    --nf-input-font-family: inherit;
    --nf-input-color: #b08ad8;
    --nf-input-border-radius: 0.7rem;
    --nf-input-placeholder-color: #929292;
    --nf-input-border-color: #c0c4c9;
    --nf-input-border-width: 1px;
    --nf-input-border-style: solid;
    --nf-input-border-bottom-width: 1px;
    --nf-input-focus-border-color: #b08ad8;
    --nf-input-background-color: #FFF;
    --nf-invalid-input-border-color: var(--nf-input-border-color);
    --nf-invalid-input-background-color: var(--nf-input-background-color);
    --nf-invalid-input-color: var(--nf-input-color);
    --nf-valid-input-border-color: var(--nf-input-border-color);
    --nf-valid-input-background-color: var(--nf-input-background-color);
    --nf-valid-input-color: inherit;
    --nf-invalid-input-border-bottom-color: red;
    --nf-valid-input-border-bottom-color: green;
    --nf-slider-track-background: #dfdfdf;
    --nf-slider-track-height: 0.25rem;
    --nf-slider-thumb-size: calc(var(--nf-slider-track-height) * 4);
    --nf-slider-track-border-radius: var(--nf-slider-track-height);
    --nf-slider-thumb-border-width: 2px;
    --nf-slider-thumb-border-focus-width: 1px;
    --nf-slider-thumb-border-color: #fff;
    --nf-slider-thumb-background: var(--nf-input-focus-border-color);
    --nf-switch-orb-size: var(--nf-input-size);
    --nf-switch-orb-offset: calc(var(--nf-input-border-width) * 2);
    --nf-switch-width: calc(var(--nf-input-size) * 2.5);
    --nf-switch-height: calc(var(--nf-input-size) * 1.25 + var(--nf-switch-orb-offset));
    --icon-padding:calc(var(--nf-input-size) * 2.25)
}

fieldset legend {
    font-weight: 700;
    margin-bottom:1em;
}

fieldset > * {
    margin-bottom:.5em
}

input[type=checkbox], input[type=date], input[type=email], input[type=month], input[type=number], input[type=password], input[type=radio], input[type=search], input[type=tel], input[type=text], input[type=time], input[type=url], input[type=week], select, textarea {
    background: var(--nf-input-background-color);
    font-family: inherit;
    font-size: var(--nf-input-font-size);
    border-bottom-width: var(--nf-input-border-width);
    font-family: var(--nf-input-font-family);
    box-shadow: none;
    border-radius: var(--nf-input-border-radius);
    border: var(--nf-input-border-width) var(--nf-input-border-style) var(--nf-input-border-color);
    border-bottom: var(--nf-input-border-bottom-width) var(--nf-input-border-style) var(--nf-input-border-color);
    color: var(--nf-input-color);
    width: 100%;
    margin-bottom: 10px;
    padding: calc(var(--nf-input-size) * 0.5);
    height: calc(var(--nf-input-size) * 2.5);
    line-height: normal;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance:none
}

input[type=checkbox]:required:not(:placeholder-shown):invalid, input[type=date]:required:not(:placeholder-shown):invalid, input[type=email]:required:not(:placeholder-shown):invalid, input[type=month]:required:not(:placeholder-shown):invalid, input[type=number]:required:not(:placeholder-shown):invalid, input[type=password]:required:not(:placeholder-shown):invalid, input[type=radio]:required:not(:placeholder-shown):invalid, input[type=search]:required:not(:placeholder-shown):invalid, input[type=tel]:required:not(:placeholder-shown):invalid, input[type=text]:required:not(:placeholder-shown):invalid, input[type=time]:required:not(:placeholder-shown):invalid, input[type=url]:required:not(:placeholder-shown):invalid, input[type=week]:required:not(:placeholder-shown):invalid, select:required:not(:placeholder-shown):invalid, textarea:required:not(:placeholder-shown):invalid {
    background-color: var(--nf-invalid-input-background-color);
    border-bottom-color: var(--nf-valid-input-border-color);
    border-color: var(--nf-valid-input-border-color) var(--nf-valid-input-border-color) var(--nf-invalid-input-border-bottom-color);
    color:var(--nf-invalid-input-color)
}

input[type=checkbox]:required:not(:placeholder-shown):invalid:focus, input[type=date]:required:not(:placeholder-shown):invalid:focus, input[type=email]:required:not(:placeholder-shown):invalid:focus, input[type=month]:required:not(:placeholder-shown):invalid:focus, input[type=number]:required:not(:placeholder-shown):invalid:focus, input[type=password]:required:not(:placeholder-shown):invalid:focus, input[type=radio]:required:not(:placeholder-shown):invalid:focus, input[type=search]:required:not(:placeholder-shown):invalid:focus, input[type=tel]:required:not(:placeholder-shown):invalid:focus, input[type=text]:required:not(:placeholder-shown):invalid:focus, input[type=time]:required:not(:placeholder-shown):invalid:focus, input[type=url]:required:not(:placeholder-shown):invalid:focus, input[type=week]:required:not(:placeholder-shown):invalid:focus, select:required:not(:placeholder-shown):invalid:focus, textarea:required:not(:placeholder-shown):invalid:focus {
    background-color: var(--nf-input-background-color);
    border-color: var(--nf-input-border-color);
    color: var(--nf-input-color);
    background-image:none
}

input[type=checkbox]:required:not(:placeholder-shown):valid, input[type=date]:required:not(:placeholder-shown):valid, input[type=email]:required:not(:placeholder-shown):valid, input[type=month]:required:not(:placeholder-shown):valid, input[type=number]:required:not(:placeholder-shown):valid, input[type=password]:required:not(:placeholder-shown):valid, input[type=radio]:required:not(:placeholder-shown):valid, input[type=search]:required:not(:placeholder-shown):valid, input[type=tel]:required:not(:placeholder-shown):valid, input[type=text]:required:not(:placeholder-shown):valid, input[type=time]:required:not(:placeholder-shown):valid, input[type=url]:required:not(:placeholder-shown):valid, input[type=week]:required:not(:placeholder-shown):valid, select:required:not(:placeholder-shown):valid, textarea:required:not(:placeholder-shown):valid {
    background-color: var(--nf-valid-input-background-color);
    border-bottom-color: var(--nf-valid-input-border-color);
    border-color: var(--nf-valid-input-border-color) var(--nf-valid-input-border-color) var(--nf-valid-input-border-bottom-color);
    color:var(--nf-valid-input-color)
}

input[type=checkbox]:disabled, input[type=date]:disabled, input[type=email]:disabled, input[type=month]:disabled, input[type=number]:disabled, input[type=password]:disabled, input[type=radio]:disabled, input[type=search]:disabled, input[type=tel]:disabled, input[type=text]:disabled, input[type=time]:disabled, input[type=url]:disabled, input[type=week]:disabled, select:disabled, textarea:disabled {
    background-color: transparent;
    cursor: not-allowed;
    opacity:.75
}

input[type=checkbox]::-webkit-input-placeholder, input[type=date]::-webkit-input-placeholder, input[type=email]::-webkit-input-placeholder, input[type=month]::-webkit-input-placeholder, input[type=number]::-webkit-input-placeholder, input[type=password]::-webkit-input-placeholder, input[type=radio]::-webkit-input-placeholder, input[type=search]::-webkit-input-placeholder, input[type=tel]::-webkit-input-placeholder, input[type=text]::-webkit-input-placeholder, input[type=time]::-webkit-input-placeholder, input[type=url]::-webkit-input-placeholder, input[type=week]::-webkit-input-placeholder, select::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
    color: var(--nf-input-placeholder-color);
    letter-spacing:0
}

input[type=checkbox]:-ms-input-placeholder, input[type=date]:-ms-input-placeholder, input[type=email]:-ms-input-placeholder, input[type=month]:-ms-input-placeholder, input[type=number]:-ms-input-placeholder, input[type=password]:-ms-input-placeholder, input[type=radio]:-ms-input-placeholder, input[type=search]:-ms-input-placeholder, input[type=tel]:-ms-input-placeholder, input[type=text]:-ms-input-placeholder, input[type=time]:-ms-input-placeholder, input[type=url]:-ms-input-placeholder, input[type=week]:-ms-input-placeholder, select:-ms-input-placeholder, textarea:-ms-input-placeholder {
    color: var(--nf-input-placeholder-color);
    letter-spacing:0
}

input[type=checkbox]:-moz-placeholder, input[type=checkbox]::-moz-placeholder, input[type=date]:-moz-placeholder, input[type=date]::-moz-placeholder, input[type=email]:-moz-placeholder, input[type=email]::-moz-placeholder, input[type=month]:-moz-placeholder, input[type=month]::-moz-placeholder, input[type=number]:-moz-placeholder, input[type=number]::-moz-placeholder, input[type=password]:-moz-placeholder, input[type=password]::-moz-placeholder, input[type=radio]:-moz-placeholder, input[type=radio]::-moz-placeholder, input[type=search]:-moz-placeholder, input[type=search]::-moz-placeholder, input[type=tel]:-moz-placeholder, input[type=tel]::-moz-placeholder, input[type=text]:-moz-placeholder, input[type=text]::-moz-placeholder, input[type=time]:-moz-placeholder, input[type=time]::-moz-placeholder, input[type=url]:-moz-placeholder, input[type=url]::-moz-placeholder, input[type=week]:-moz-placeholder, input[type=week]::-moz-placeholder, select:-moz-placeholder, select::-moz-placeholder, textarea:-moz-placeholder, textarea::-moz-placeholder {
    color: var(--nf-input-placeholder-color);
    letter-spacing:0
}

input[type=checkbox]:focus, input[type=date]:focus, input[type=email]:focus, input[type=month]:focus, input[type=number]:focus, input[type=password]:focus, input[type=radio]:focus, input[type=search]:focus, input[type=tel]:focus, input[type=text]:focus, input[type=time]:focus, input[type=url]:focus, input[type=week]:focus, select:focus, textarea:focus {
    outline: none;
    border-color: var(--nf-input-focus-border-color);
    transition:all .15s ease-out
}

input[type=email], input[type=password], input[type=tel], input[type=url] {
    --icon-background-offset: calc(var(--nf-input-size) * 0.75);
    background-position: left var(--icon-background-offset) bottom 50%;
    background-size: var(--nf-input-size);
    background-repeat: no-repeat;
    padding-left:var(--icon-padding)
}

input[type=email]:not(:placeholder-shown), input[type=password]:not(:placeholder-shown), input[type=tel]:not(:placeholder-shown), input[type=url]:not(:placeholder-shown) {
    padding-left: calc(var(--nf-input-size) * 0.75);
    background-position:left calc(var(--nf-input-size) * -1) bottom 50%
}

input[type=email]:-webkit-autofill, input[type=password]:-webkit-autofill, input[type=tel]:-webkit-autofill, input[type=url]:-webkit-autofill {
    padding:calc(var(--nf-input-size) * 0.75) !important
}

input[type=email] {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-at-sign'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M16 8v5a3 3 0 006 0v-1a10 10 0 10-3.92 7.94'/%3E%3C/svg%3E")
}

input[type=tel] {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-phone'%3E%3Cpath d='M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z'/%3E%3C/svg%3E")
}

input[type=url] {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-link'%3E%3Cpath d='M10 13a5 5 0 007.54.54l3-3a5 5 0 00-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 00-7.54-.54l-3 3a5 5 0 007.07 7.07l1.71-1.71'/%3E%3C/svg%3E")
}

input[type=password] {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-lock'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'/%3E%3Cpath d='M7 11V7a5 5 0 0110 0v4'/%3E%3C/svg%3E")
}

input[type=search]:placeholder-shown {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-search'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='M21 21l-4.35-4.35'/%3E%3C/svg%3E");
    background-position: left calc(var(--nf-input-size) * 0.75) bottom 50%;
    padding-left: calc(var(--nf-input-size) * 2.25);
    background-size: var(--nf-input-size);
    background-repeat:no-repeat
}

input[type=search]::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none;
    width: var(--nf-input-size);
    height: var(--nf-input-size);
    background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-x'%3E%3Cpath d='M18 6L6 18M6 6l12 12'/%3E%3C/svg%3E")
}

input[type=search]:focus {
    padding-left: calc(var(--nf-input-size) * 0.75);
    background-position:left calc(var(--nf-input-size) * -1) bottom 50%
}

input[type=password] {
    letter-spacing:2px
}

input[type=range] {
    -webkit-appearance: none;
    width: 100%;
    cursor:pointer
}

input[type=range]:focus {
    outline:none
}

input[type=range]::-webkit-slider-runnable-track {
    width: 100%;
    height: var(--nf-slider-track-height);
    background: var(--nf-slider-track-background);
    border-radius:var(--nf-slider-track-border-radius)
}

input[type=range]::-moz-range-track {
    width: 100%;
    height: var(--nf-slider-track-height);
    background: var(--nf-slider-track-background);
    border-radius:var(--nf-slider-track-border-radius)
}

input[type=range]::-webkit-slider-thumb {
    height: var(--nf-slider-thumb-size);
    width: var(--nf-slider-thumb-size);
    border-radius: var(--nf-slider-thumb-size);
    background: var(--nf-slider-thumb-background);
    border: 0;
    border: var(--nf-slider-thumb-border-width) solid var(--nf-slider-thumb-border-color);
    -webkit-appearance: none;
    appearance: none;
    margin-top:calc(var(--nf-slider-track-height) * 0.5 - var(--nf-slider-thumb-size) * 0.5)
}

input[type=range]::-moz-range-thumb {
    height: var(--nf-slider-thumb-size);
    width: var(--nf-slider-thumb-size);
    border-radius: var(--nf-slider-thumb-size);
    background: var(--nf-slider-thumb-background);
    border: 0;
    border: var(--nf-slider-thumb-border-width) solid var(--nf-slider-thumb-border-color);
    -moz-appearance: none;
    appearance: none;
    box-sizing:border-box
}

input[type=range]:focus::-webkit-slider-thumb {
    box-shadow:0 0 0 var(--nf-slider-thumb-border-focus-width) var(--nf-slider-thumb-background)
}

input[type=range]:focus::-moz-range-thumb {
    box-shadow:0 0 0 var(--nf-slider-thumb-border-focus-width) var(--nf-slider-thumb-background)
}

input[type=color] {
    border: var(--nf-input-border-width) solid var(--nf-input-border-color);
    border-bottom-width: var(--nf-input-border-bottom-width);
    height: calc(var(--nf-input-size) * 2);
    border-radius: var(--nf-input-border-radius);
    padding:calc(var(--nf-input-border-width) * 2)
}

input[type=color]:focus {
    outline: none;
    border-color:var(--nf-input-focus-border-color)
}

input[type=color]::-webkit-color-swatch-wrapper {
    padding:5%
}

input[type=color]::-moz-color-swatch {
    border-radius: calc(var(--nf-input-border-radius) /2);
    border:none
}

input[type=color]::-webkit-color-swatch {
    border-radius: calc(var(--nf-input-border-radius) /2);
    border:none
}

input[type=number] {
    width:auto
}

input[type=date], input[type=month], input[type=week] {
    min-width: 14em;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-calendar'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E")
}

input[type=time] {
    min-width: 6em;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-clock'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E")
}

input[type=date], input[type=month], input[type=time], input[type=week] {
    background-position: right calc(var(--nf-input-size) * 0.75) bottom 50%;
    background-repeat: no-repeat;
    background-size: var(--nf-input-size);
    width:auto
}

input[type=date]::-webkit-calendar-picker-indicator, input[type=date]::-webkit-inner-spin-button, input[type=month]::-webkit-calendar-picker-indicator, input[type=month]::-webkit-inner-spin-button, input[type=time]::-webkit-calendar-picker-indicator, input[type=time]::-webkit-inner-spin-button, input[type=week]::-webkit-calendar-picker-indicator, input[type=week]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    cursor: pointer;
    opacity:0
}

@-moz-document url-prefix() {
    input[type=date], input[type=month], input[type=time], input[type=week] {
        min-width: auto;
        width: auto;
        background-image:none
    }
}

textarea {
    height:auto
}

input[type=checkbox], input[type=radio] {
    width: var(--nf-input-size);
    height: var(--nf-input-size);
    padding: 8px;
    margin: 0;
    margin-bottom: 30px;
    display: flex;
    text-align: left;
    float: left;
    vertical-align: top;
    border-radius: calc(var(--nf-input-border-radius) /2);
    border-width: var(--nf-input-border-width);
    cursor: pointer;
    background-position:50%
}

input[type=checkbox]:focus:not(:checked), input[type=radio]:focus:not(:checked) {
    border: var(--nf-input-border-width) solid var(--nf-input-focus-border-color);
    outline:none
}

input[type=checkbox]:hover, input[type=radio]:hover {
    border:var(--nf-input-border-width) solid var(--nf-input-focus-border-color)
}

input[type=checkbox] + label, input[type=radio] + label {
    display: grid;
    margin-bottom: 0;
    padding-left: calc(var(--nf-input-size) /2.5);
    font-weight: 400;
    -webkit-user-select: none;
    user-select: none;
    cursor: pointer;
    max-width: calc(100% - var(--nf-input-size) * 2);
    line-height:normal;
    text-align: left;
}

input[type=checkbox] + label > small, input[type=radio] + label > small {
    font-size: var(--nf-small-font-size);
    display: grid;
    margin-top: calc(var(--nf-input-size) /4);
    opacity:.75
}

input[type=checkbox]:checked {
    background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' class='feather feather-check'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") no-repeat 50%/85%;
    background-color: var(--nf-input-focus-border-color);
    border-color:var(--nf-input-focus-border-color)
}

input[type=radio] {
    border-radius:100%
}

input[type=radio]:checked {
    background-color: var(--nf-input-focus-border-color);
    border-color: var(--nf-input-focus-border-color);
    box-shadow:inset 0 0 0 3px #fff
}

input[type=file] {
    background: rgba(0, 0, 0, .025);
    padding: var(--nf-input-size);
    display: block;
    width: 100%;
    border-radius: var(--nf-input-border-radius);
    border: 1px dashed var(--nf-input-border-color);
    outline: none;
    cursor:pointer
}

input[type=file]:focus, input[type=file]:hover {
    border-color:var(--nf-input-focus-border-color)
}

input[type=file]::file-selector-button {
    background: var(--nf-input-focus-border-color);
    border: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding: .5rem;
    border-radius: var(--nf-input-border-radius);
    color: #fff;
    margin-right: 1rem;
    outline: none;
    font-family: var(--nf-input-font-family);
    cursor:pointer
}

input[type=file]::-webkit-file-upload-button {
    background: var(--nf-input-focus-border-color);
    border: 0;
    -webkit-appearance: none;
    appearance: none;
    padding: .5rem;
    border-radius: var(--nf-input-border-radius);
    color: #fff;
    margin-right: 1rem;
    outline: none;
    font-family: var(--nf-input-font-family);
    cursor:pointer
}

select {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-chevron-down'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-position: right calc(var(--nf-input-size) * 0.75) bottom 50%;
    background-repeat: no-repeat;
    background-size:var(--nf-input-size)
}

*, :after, :before {
    box-sizing:inherit
}


