:root {
    --form-control-color: rgb(255, 0, 0);
    --button-background-color: #ff3e3e;
    --button-background-lighter: #ff9898;
    /* new stuff */
    --input-border: rgb(255, 0, 0);
    --input-focus-h: 360;
    --input-focus-s: 100%;
    --input-focus-l: 50%;
    /* select */
    --select-border: rgb(255, 0, 0);
    --select-focus: rgb(255, 125, 125);
    --select-arrow: var(--select-border);

}

/* agreed */

*,
*:before,
*:after {
  box-sizing: border-box;
}

/* search form */
.search-form {
    display: grid;
    place-content: center;
}

/* login form */

.login-form {
    display: grid;
    place-content: center;
    /* min-height: 100vh; */  
}

.search-form {
    display: grid;
    place-content: center;
    /* min-height: 100vh; */  
}

.search-result {
    margin-top: 15px;
    margin-bottom: 5px;
    display: grid;
    /*place-content: center;*/
}

h2 {
    justify-self: center;
}

.alert-danger {
    /* error on form */
    display: block;
    width: 100%;
    margin-top: .25rem;
    font-size: 80%;
    color: #dc3545;
}

.invalid-feedback {
    display: block;
    width: 100%;
    margin-top: .25rem;
    font-size: 80%;
    color: #dc3545;
}

.form-control {
	display: block;
	width: 100%;
	height: calc(1.5em + .75rem + 2px);
	padding: .375rem .75rem;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	color: #495057;
	background-color: #fff;
	background-clip: padding-box;
	border: 1px solid #ced4da;
	border-radius: .25rem;
	transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}

.form-group {
    margin-bottom: 10px;
}

/*
button, input {
	overflow: visible;
}

button, input, optgroup, select, textarea {
	margin: 0;
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
}
*/

.form-control.is-invalid, .was-validated .form-control:invalid {
	border-color: #dc3545;
	padding-right: calc(1.5em + .75rem);
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
	background-repeat: no-repeat;
	background-position: right calc(.375em + .1875rem) center;
	background-size: calc(.75em + .375rem) calc(.75em + .375rem);
}

/* end login form */

/* select control */

select {
    /* A reset of styles, including removing the default dropdown arrow */
    /* appearance: none; */
    /* Additional resets for further consistency */
    background-color: transparent;
    border: none;
    padding: 0 1em 0 0;
    margin: 0;
    width: 100%;
    font-family: inherit;
    font-size: inherit;
    cursor: inherit;
    line-height: inherit;
    outline: none;
}

select::-ms-expand {
    display: none;
}

.select {
    width: 100%;
    min-width: 15ch;
    max-width: 45ch;
    border: 1px solid var(--select-border);
    border-radius: 0.25em;
    padding: 0.5em;
    cursor: pointer;
    line-height: 1.1;
    background-color: #fff;
    background-image: linear-gradient(to top, #f9f9f9, #fff 33%);
    display: grid;
    grid-template-areas: "select";
    align-items: center;
    position: relative;
}

.select:after {
    content: "";
    width: 0.8em;
    height: 0.5em;
    background-color: var(--select-arrow);
    clip-path: polygon(100% 0%, 0 0%, 50% 100%);
    justify-self: end;
}

.select:after {
    grid-area: select;
}

select:focus + .focus {
    position: absolute;
    top: -1px;
    left: -1px;
    right: -1px;
    bottom: -1px;
    border: 2px solid var(--select-focus);
    border-radius: inherit;
}



.input {
    font-size: 16px;
    font-size: max(16px, 1em);
    font-family: inherit;
    padding: 0.25em 0.5em;
    background-color: #fff;
    border: 2px solid var(--input-border);
    border-radius: 4px;
    transition: 180ms box-shadow ease-in-out;
}

.input:not(textarea) {
    line-height: 1;
    height: 2.25rem;
}

input[type="file"] {
    display: none;
}

.file-input-group {
    padding-top: 4px;
    padding-bottom: 4px;
}

/* file drag and drop area */

.file-drag-group {
    display: grid;
    grid-template-columns: auto;
    justify-items: center;
    align-items: center;
}

.file-drag-text {
    display: grid;
    grid-template-columns: auto;
    justify-items: center;
}

.file-drag-text p {
    font-size: 18px;
    padding-top: 0px;
    padding-left: 0px;
}

.file-input {
    display: none;
}

.drop_file_zone {
    background-color: #EEE;
    border: #999 5px dashed;
    width: 100%;
    height: 200px;
    padding: 8px;
    font-size: 18px;
}

/* end file drag and drop area */


.fileload {
    /* on the label */
    border: 2px solid rgb(255, 0, 0);
    display: inline-block;
    padding: 6px 12px;
    cursor: pointer;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: var(--button-background-color);
    align-self: flex-start;
    color: #fff;
    border-radius: 8px;
    box-shadow: 0 3px 5px rgba(0, 0, 0, 0.18);
    padding: 0.25em 0.75em;
    min-width: 10ch;
    min-height: 44px;
    text-align: center;
    line-height: 1.1;
    transition: 220ms all ease-in-out;
}

.fileload:hover {
    background-color: var(--button-background-lighter);
}

.fileload:focus {
    outline-style: solid;
    outline-color: transparent;
    box-shadow: 0 0 0 4px var(--button-background-lighter);
}

.input[readonly] {
    border-style: dotted;
    cursor: not-allowed;
    color: #777;
}

.input[disabled] {
    --input-border: #ccc;
  
    background-color: #eee;
    cursor: not-allowed;
}

textarea.input {
    resize: vertical;
}

.input:focus {
    outline: 3px solid transparent;
    border-color: hsl(var(--input-focus-h), var(--input-focus-s), var(--input-focus-l));
    box-shadow: 0 0 0 3px hsla(var(--input-focus-h), var(--input-focus-s), calc(var(--input-focus-l) + 40%), 0.8);
}

form {
    display: grid;
    place-content: center;
    /*min-height: 100vh;*/
}

.input-group {
    display: grid;
    place-content: center;
    padding-bottom: 10px;
    grid-template-columns: auto;
    max-width: 45ch;
}

/* radio and checkboxes here */
.pf-control {
    font-family: system-ui, sans-serif;
    font-size: 1rem;
    font-weight: bold;
    line-height: 1.1;
    display: grid;
    grid-template-columns: 1em 1em auto;
    gap: 0.5em;
}

.pf-control + .pf-control {
    margin-top: 1em;
}

.pf-control:focus-within {
    color: var(--form-control-color);
}

/* checkboxes */

input[type="checkbox"] {
    /* Add if not using autoprefixer */
    -webkit-appearance: none;
    appearance: none;
    /* For iOS < 15 to remove gradient background */
    background-color: #fff;
    /* Not removed via appearance */
    margin: 0;

    font: inherit;
    color: currentColor;
    width: 1.15em;
    height: 1.15em;
    border: 0.15em solid currentColor;
    border-radius: 0.15em;
    transform: translateY(-0.075em);

      
    display: grid;
    place-content: center;
      
}

input[type="checkbox"]::before {
    content: "";
    width: 0.65em;
    height: 0.65em;
    transform: scale(0);
    transition: 120ms transform ease-in-out;
    box-shadow: inset 1em 1em var(--form-control-color);
}

input[type="checkbox"]:checked::before {
    transform: scale(1);
}

/* radioboxes */

input[type="radio"] {
    /* Add if not using autoprefixer */
    -webkit-appearance: none;
    appearance: none;
    /* For iOS < 15 to remove gradient background */
    background-color: #fff;
    /* Not removed via appearance */
    margin: 0;

    display: grid;
    place-content: center;

    font: inherit;
    color: currentColor;
    width: 1.15em;
    height: 1.15em;
    border: 0.15em solid currentColor;
    border-radius: 50%;
    transform: translateY(-0.075em);
}

input[type="radio"]::before {
  content: "";
  width: 0.65em;
  height: 0.65em;
  border-radius: 50%;
  transform: scale(0);
  transition: 120ms transform ease-in-out;
  box-shadow: inset 1em 1em var(--form-control-color);
  /* Windows High Contrast Mode */
  background-color: CanvasText;
}

input[type="radio"]:checked::before {
    transform: scale(1);
}

input[type="radio"]:focus {
    outline: max(2px, 0.15em) solid currentColor;
    outline-offset: max(3px, 0.15em);
}

/* input type based on text input here */
/* uses the class='input' to capture it */



/* buttons and links here */

a, button {
    font-size: 16px;
}

input[type=reset].button {
    font-size: 16px;
    border: none;
    background-color: transparent;
    font-family: inherit;
    padding: 0;
    cursor: pointer;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: var(--button-background-color);
    align-self: flex-start;
    color: #fff;
    border-radius: 8px;
    box-shadow: 0 3px 5px rgba(0, 0, 0, 0.18);
    padding: 0.25em 0.75em;
    min-width: 10ch;
    min-height: 44px;
    text-align: center;
    line-height: 1.1;
    transition: 220ms all ease-in-out;
}

input[type=submit].button {
    font-size: 16px;
    border: none;
    background-color: transparent;
    font-family: inherit;
    padding: 0;
    cursor: pointer;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: var(--button-background-color);
    align-self: flex-start;
    color: #fff;
    border-radius: 8px;
    box-shadow: 0 3px 5px rgba(0, 0, 0, 0.18);
    padding: 0.25em 0.75em;
    min-width: 10ch;
    min-height: 44px;
    text-align: center;
    line-height: 1.1;
    transition: 220ms all ease-in-out;
}

input[type=submit].button:hover {
    background-color: var(--button-background-lighter);
}

input[type=submit].button:active {
    background-color: var(--button-background-lighter);
}

input[type=submit].button:focus {
    outline-style: solid;
    outline-color: transparent;
    box-shadow: 0 0 0 4px var(--button-background-lighter);
}

a.button {
    font-size: 16px;
    text-decoration: none;
    border: none;
    background-color: transparent;
    font-family: inherit;
    padding: 0;
    cursor: pointer;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: var(--button-background-color);
    align-self: flex-start;
    color: #fff;
    border-radius: 8px;
    box-shadow: 0 3px 5px rgba(0, 0, 0, 0.18);
    padding: 0.25em 0.75em;
    min-width: 10ch;
    min-height: 44px;
    text-align: center;
    line-height: 1.1;
    transition: 220ms all ease-in-out;
}

a.button:hover {
    background-color: var(--button-background-lighter);
}

a.button:active {
    background-color: var(--button-background-lighter);
}

a.button:focus {
    outline-style: solid;
    outline-color: transparent;
    box-shadow: 0 0 0 4px var(--button-background-lighter);
}