.punchlist-container * {
   box-sizing:border-box;
}

.punchlist-container {
  font-family:helvetica neue,helvetica,arial,sans-serif;
  font-size:18px;
  line-height:18px;
  border: 1px solid #e0e0e0;
  background-color: #ebebeb;
  min-width: 300px;
  border-radius: 5px;
  position:relative;
}

.punchlist-title h1 {
  text-align:center;
  font-size:30px;
  margin:5px;
  font-weight:200;
  color:#454545;
}

.punchlist-title h1 .fa-check {
  margin-right:10px;
  color:#0eb0b7;
}

.punchlist-working {
  position:absolute;
  width:100%;
  height:100%;
  z-index: 1;
  background-color:black;
  background: rgba(0, 0, 0, 0.4);
}

.punchlist-working.hidden {
  display:none;
}

.punchlist-loader {
  border: 16px solid #f3f3f3; /* Light grey */
  border-top: 16px solid #3498db; /* Blue */
  border-radius: 50%;
  width: 120px;
  height: 120px;
  animation: spin 2s linear infinite;
  margin: auto;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.punchlist-items-container {
  margin:0 auto 0 auto;
  padding:15px;
  background:white;
  position:relative;
  border: 1px solid #efefef;
  background-color: #efefef;
  border-radius: 5px;  
}

.punchlist-items {
  background-color: #ffffff;
  border-radius: 5px;
}

.punchlist-item {
  display:flex;
  position:relative;
}

.punchlist-item .punchlist-item-action:hover {
  color:#cd4400;
}


.punchlist-item-label {
  flex-grow: 1;
  display: block;
  position: relative;
  padding-left: 35px;
}

.punchlist-item-action {
  flex-basis: 30px;
  width:30px;
  text-align:center;
  color:#d8d8d8;
  height:37px;
  cursor: pointer;
}

.punchlist-item-action-remove {
  font-size:22px;
}

.punchlist-item-action.comment {
  font-size: 0.99rem;
}

.punchlist-item-action .fa-inverse {
  font-family:helvetica neue,helvetica,arial,sans-serif;  
}

.punchlist-item-container input[type="checkbox"] {
  display:none;
}

.punchlist-item-tags {
  display:flex;
  flex-wrap: wrap;
  position:relative;
  margin-left:36px;
  font-size: 12px;
  line-height: 18px;
}

.punch-item-add .punchlist-item-tags {
  display:none;
}

.punchlist-item-tag {
  background: #FFFFFF;
  margin:  2px;
  color:#8c8c8c;
}

.punchlist-comment-text {
  font-size: 14px;  
  color: #252525;
}

.punchlist-comment-tag {
  font-size: 12px;
  width: auto;
  margin: 2px;
  color: #a3a3a3;
}

.punchlist-comment-tag:empty {
  display:none;
}

.punchlist-item-label-text {
  display:inline-block;
  font-weight:200;
  padding:10px 5px;
  height:37px;
  position:relative;
  cursor: pointer;
  box-sizing: border-box;
  width: 100%;  
}

.punchlist-item-label-text:before {
  content:'';
  display:block;
  position:absolute;
  z-index:0;
  height:18px;
  width:18px;
  top:9px;
  left:-25px;
  /*box-shadow*/
  -webkit-box-shadow:inset 0 0 0 2px #d8d8d8;
     -moz-box-shadow:inset 0 0 0 2px #d8d8d8;
          box-shadow:inset 0 0 0 2px #d8d8d8;
  /*border-radius*/
  -webkit-border-radius:4px;
     -moz-border-radius:4px;
          border-radius:4px;
}

.punchlist-item-label-text .fa-check {
  position:absolute;
  z-index:1;
  left:-31px;
  top:0;
  font-size:0px;
  line-height:36px;
  width:36px;
  height:36px;
  text-align:center;
  color: #d8d8d8;
}

.punchlist-item-comment-action-remove {
  margin-left: 5px;
}

.punchlist-item-label-text:hover:before{
  /*box-shadow*/
  -webkit-box-shadow:inset 0 0 0 2px #949494;
     -moz-box-shadow:inset 0 0 0 2px #949494;
          box-shadow:inset 0 0 0 2px #949494;
}

:checked + .punchlist-item .punchlist-item-label-text:before {
  /*box-shadow*/
  -webkit-box-shadow:inset 0 0 0 2px #0eb0b7;
     -moz-box-shadow:inset 0 0 0 2px #0eb0b7;
          box-shadow:inset 0 0 0 2px #0eb0b7;
}

:checked + .punchlist-item .punchlist-item-label-text {
  color:#717171;
}

.punchlist-item-container {
  overflow:hidden;
}

:checked + .punchlist-item .punchlist-item-label-text .fa-check:before { 
  font-size:20px;
  color:#0eb0b7;        
}

@keyframes strike {
  from { text-decoration-color: transparent; }
  to { text-decoration-color: #cd4400; }
}

@keyframes strike-out {
  from { text-decoration-color: #cd4400; }
  to { text-decoration-color: transparent; }
}

:.punchlist-item-label-text .punchlist-item-label-text-line {       
  text-decoration: line-through;
  animation: strike-out 900ms linear;
}

:checked + .punchlist-item .punchlist-item-label-text-line {       
  text-decoration: line-through;
  animation: strike 1s ease-in;
  text-decoration-color: #cd4400;
}

.punchlist-item-action-edit {
  font-size:22px;
}

:checked + .punchlist-item .punchlist-item-action-edit {
  display:none;
}

:checked + .punchlist-item .punchlist-item-label-text-data {       
  color:#717171;
}

.punchlist-comment {
  display:block;
  position:relative;
  margin-left:36px;
  font-size: 13px;
  color:grey;
  line-height: 24px;
  border-bottom: 1px solid #ebebeb;  
}

.punch-list-comments.hidden .punchlist-comment:not(:first-child) {
  display:none;
}

:checked ~ .punch-list-comments.hidden .punchlist-comment:first-child {
  display:none;
}

.punchlist-comment:nth-child(even) {
  background: #EEE;
}
.punchlist-comment:nth-child(odd) {
  background: #FFF;
}

.punchlist-comment-tag {
  display:inline;
}

.punchlist-item-comment-action-remove {
  cursor:pointer;
}

/* Add Item Comment */
.punchlist-item-comment-action-add{
  padding-left:36px;
  font-size:14px;
  font-weight:200;
  color:#d8d8d8;
  display:inline-block;
  cursor:pointer;
}

/* Add Item Comment */
:checked ~ .punchlist-item-comment-action-add{
  display:none;
}

.punchlist-item-comment-action-add {
  color:#6bc569;
}

.punchlist-item-comment-action-add {
  font-size:14px;
}
/* Add Item */
.punchlist-item-action-add {
  padding:25px 0 0 0;
  font-size:14px;
  font-weight:200;
  color:#c0c0c0;
  display:inline-block;
  cursor:pointer;
}

.punchlist-item-action-add:hover {
  color:#6bc569;
}

.punchlist-item-action-add .fa-plus{
  font-size:14px;
}
/* Modal */
.punchlist-modal { 
  position: fixed;
  width: 300px;
  height: 100px;
  background-color: #FFFFFF;
  margin: auto;
  opacity:1;
  top: 0; bottom: 0; left:0; right:0;
  border-radius: 5px;
  border: 1px solid #dfdfdf;  
}

.punchlist-modal .title { 
  background-color: #f7f7f7;
  border-bottom: 1px solid #dfdfdf;
  color: #212529;
  padding: 3px;
}

.punchlist-modal .text {
  margin: auto;
  font-size: 14px;
  color: #212529;
  padding: 3px;
}

.punchlist-modal .actions {
  margin: auto;
  text-align:center;
}

.punchlist-modal .button {
  display: inline-block;
  font-weight: 400;
  color: #212529;
  text-align: center;
  vertical-align: middle;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  background-color: transparent;
  border: 1px solid transparent;
  padding: 0.375rem 0.75rem;
  font-size: 0.9rem;
  line-height: 1.6;
  border-radius: 0.25rem;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; 
}

.punchlist-modal .button.confirm {
  color: #fff;
  background-color: #3490dc;
  border-color: #3490dc;
}

.punchlist-modal .button.cancel {
  color: #fff;
  background-color: #e3342f;
  border-color: #e3342f;
}

.punchlist-modal.hidden {
  display:none;
}