*, *::before, *::after{
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

tbody input {
  background-color: #D4EBD0;
}

input {
  width: 100%;
  box-sizing: border-box;
  border: none;
  border-bottom: 1px solid #000;
  background-color: #FAF4FF;
  padding: 0;
}

.dark input {
  border-bottom: 1px solid #FFF;
  color: #FFF;
  background-color: #000;
}

.dark tbody input {
  background-color: #313131;
}

.dark tfoot td {
  background-color: #000;
}

input:focus {
  border: none;
  background-color: #D4EBD0;
}

.dark input:focus {
  background-color: #313131;
}


th > button {
  background-color: #A4C5C6;
}

.dark th > button {
  background-color: #181818;
  color: #FFF;
}

h1 {
  text-align: center;
  margin: 0;
  margin-bottom: 1rem;
}

body {
  font-family: sans-serif;
  background-color: #FAF4FF;
  margin: 0;
}

th, td {
  padding: .3rem;
}

td {
  background-color: #FAF4FF; 
}

td:last-child {
  text-align: center;
}

.dark tbody td:not(:last-child){
  background-color: #313131;
}

tbody td:not(:last-child) {
  background-color: #D4EBD0;
}

div {
  display: flex;
  justify-content: space-between;
}

p {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

div button {
  padding: 0;
}

.dark tbody td:last-child {
  background-color: #313131;
}

tbody td:last-child {
  background-color: #D4EBD0;
}

td:focus-within:not(:last-child) {
  background-color: #D4EBD0;
}

.dark td:focus-within:not(:last-child) {
  background-color: #313131;
}

th {
  background-color: #A4C5C6;
}

.dark {
  background-color: #000;
  color: #FFF;
}

.dark td {
  background-color: #313131;
}

.dark th {
  background-color: #181818;
}

nav {
  margin-bottom: 8px;
}

table {
  table-layout: fixed;
  width: 100%;
}

button {
  border-radius: .375rem;
  padding: 0 .3rem;
  margin: .1rem;
  border: 0;
  cursor: pointer;
}

/* remove arrows/spinners from number input */

/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox */
input[type=number] {
  -moz-appearance: textfield;
}

input:disabled, button:disabled{
  cursor: not-allowed; 
}

th {
  position: sticky;
  top: 0;
}

.dark ::placeholder{
  color: #E0E0E0;
  opacity: 1; /* FireFox */
}

/* target parent containers to
fix whitespace between buttons */
nav, td:last-child {
  font-size: 0;
}
