
/*  Edit Grid  */

.edit_grid * {
  margin: 0;
  border: 0;
  padding: 0;
  color: black;
  background-color: #eee;
}

.edit_grid {
  border-style: solid;
  border-width: 1px;
  border-color: #555;
  border-collapse: collapse;
  table-layout: fixed;
}

.edit_grid caption {
  color: black;
  white-space: nowrap;
  overflow: hidden;
  background: #9f9f9f;
  height: 2em;
  line-height: 2em;
  padding: 2px 5px;
}

.edit_grid caption label {
  font-weight: bold;
  font-size: 1.4em;
  margin-right: 2em;
  vertical-align: middle;
  background: transparent;
}

.edit_grid caption input {
  line-height: 1em;
  vertical-align: middle;
  margin: 0;
}

.edit_grid caption button {
  vertical-align: middle;
  padding: 3px 5px 2px 5px;
  text-align: center;
  vertical-align: middle;
  margin-top: 2px;
  margin-left: 1px;
  line-height: 1em;
  border: 1px outset;
  border-color: #CFDFEF #9FAFBF #9FAFBF #CFDFEF;
  background-image: linear-gradient(to bottom, #EEE, #BBB);
}

.edit_grid caption button:active {
  border: 1px inset;
  background-image: linear-gradient(to top, #EEE, #BBB);
}

.edit_grid .colhead,
.edit_grid .colhead_empty,
.edit_grid .row_label,
.edit_grid .static {
  padding: 2px;
}

.edit_grid .row_label,
.edit_grid .static {
  vertical-align: middle;
}

.edit_grid .colhead,
.edit_grid .row_label {
  border: solid 1px black;
  box-shadow: inset -1px -1px 1px #888, inset 1px 1px 1px #fff;
}

.edit_grid .colhead {
  font-weight: bold;
}

.edit_grid .static {
  background-color: #eee;
  border: 1px solid #999;
}

.edit_grid .hidden {
  overflow: hidden;
  white-space: nowrap;
}

.edit_grid .label {
  text-align: left;
}

.edit_grid .flag {
  text-align: center;
}

.edit_grid .num {
  text-align: right;
}

.edit_grid tfoot td {
  height: 2em;
}

.edit_grid .colhead.sort:not(.hidden)::after,
.edit_grid .colhead.sort.ascending::after,
.edit_grid .colhead.sort.descending::after {
  visibility: hidden;
  color: #009;
  width: 1em;
  float: right;
}
.edit_grid .colhead.sort:not(.hidden)::after {
  content: "\296E";
}

.edit_grid .colhead.sort.over_cell:not(.hidden)::after {
  visibility: visible;
}

.edit_grid .colhead.sort.ascending::after {
  visibility: visible;
  content: "\2963";
}

.edit_grid .colhead.sort.descending::after {
  visibility: visible;
  content: "\2965";
}

.edit_grid .input_cell {
  background-color: #fff;
  border-style: solid;
  border-width: 1px;
  border-color: #999;
  vertical-align: middle;
  padding: 0 2px;
}

.edit_grid *:focus {
  outline-style: dotted;
  outline-width: 1px;
}

.edit_grid select {
  background-color: #fff;
  width: 100%;
  height: 22px;
}

.edit_grid option {
  background-color: #fff;
}

.edit_grid input[type="checkbox"],
.edit_grid input[type="radio"] {
  background-color: #fff;
  width: 1em;
  height: 1em;
  margin: 0;
}

.edit_grid div.total_cell {
  padding: 0 2px;
  margin-top: 1px;
  background-color: #eee;
  border-top-style: solid;
  border-top-width: 1px;
  border-top-color: #444;
  border-bottom-style: double;
  border-bottom-width: 3px;
  border-bottom-color: #444;
}

.edit_grid .button_cell {
  vertical-align: top;
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #555;
}

.edit_grid .button_image {
  position: absolute;
  width: 16px;
  height: 16px;
  padding: 0;
  border: 0;
  outline: none;
  box-shadow: none;
  background-size: 16px;
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: center;
}

.edit_grid .button_image {
  visibility: hidden;
}
.edit_grid .button_image.over_cell {
  visibility: visible;
}
.edit_grid .data_row:hover .button_image {
  visibility: visible;
}
.edit_grid td:hover .button_image {
  visibility: visible;
}

.edit_grid .button_image.add_row_right {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIjSURBVHhe7ZthTsMwDIXbUbgWXGyqql4MzsVQaLQYgnHapLHdTPUnoWR/lueXFyf7QffoOOdewtQwDMMwCunD2AzzPLswTXK9Xtl0N2FAXPTtdguzNMMwhFm9GYcZUFp0iloz1A2AwlNFT9O0qWkcR/KYgBklRqga4IunCs8pOgVlhjci1wQ1A6jiawrHYCNyTRA3gIo8Z+GY2IicIyFqgPSupyhJwyWMKmgU7ylZR0wQ3v3i4sfuPczuTN1bmGWDjwOVAhEDmIp/vX/44UPCBPYjUF08M/H6Xhc0ZUC0BxxdPLCmg9UAquu3Bk6BWAJa2X0gpUf1GmwFnwJojmwGxPFvbfcBStcpExBzegN6fC/uhTX+jA8hivhxdPHCOf4elR7/cqplNQH4fb/O/wSUsJKWuGa9bk3HWpLkkflzBMJ4WsyAMJ4Wa4KqBuSi+Q4I42lhuwZjV6tTIJgArNNugTCeFjYD4thzN1YuKF3ZBjjn2PpFC8CGZRvQ933RrraWgpQe1h7A8gZQINYp2gRbScGaDnYDcAqONgGvj/WJRXZr4U3w74Ydj6AcDewGLLfF09Iwv/y82oQKqORR67MfASieghIlQW7xHvEdKRHDQel64gYA0kak0rW1hpoBnr0i16j9TlUDPCnBQI5wju8A1A0AtorYw54kHWYAwGFEzRESNWB5Ezwv1+Jn+JhFjiE1BRuGYaiwNMDff+UwDMNokq77BoBRd2dHiYqBAAAAAElFTkSuQmCC");
  transform: translateY(calc(-50%));
}

.edit_grid .button_image.delete_row_right {
  background-image: url('data:image/png;base64,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');
}

.edit_grid .button_image.add_col_bottom {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJaSURBVHhe7ZmBTsQgDIaZTl9LX+yyLPdi+lo6M0dWTq6DjZbCMeFLlu7iCe3fljGuU5kZhmGGWzWO49385m9936vL5ZLFtyew1dIEAFstTQCw1dIEAFstTQCw1ZJUgHmes+80qSQVoOu627a3VFoLgK2WJgDYamkCgK2WLM9p+xTIxncipNGnQoaUp0PJBvYFbbMngE1KMUQGW3Z8z8um50ffHwWOg/ZxJIaUEKJq+pwODdqHa1ypg9PNAEs2+yWbE3wMxuVkbOAYPIeECEH/vIjysojyDR/vyBE4xp4ztiWiHH1E8AapahDdB+QKXiM1F3sQnAGWQ4P6gLuVUb3DXTC4HahVwBJAMPi39cONz9wikFtAJHhhbB+maVLX6/XOxz2i1oASgjdwfSEJgLNfKpQqYFdASdk3cHwKFuAs2afCqoASs28wvoW2QdQi+B9oAoDdxe7/ksvfQGmDoGCCBcBb22O2O0EKO7tG4/PRzlCuBf62tpQL4/qO/6ILvqGtAWCrpQkANp51QdKLGOXCuL7jvxivzhjZpwAFwfMAF/mfAiclSAA763Y1lEpo9jWtAsBWC0uAktuAUv7zPL8GC3CGlyAqXdd9sVugxCrg+EQS4CxVQPltIGoRLKkKuL6QBcBVUIIItg+U7GvYJY0DZ7UHfp/P/LOYRkwATe41IjZ4DXsNcAXrEiUVUnNFZ+wRlYAzr+FkXyPiqC8b0kLgebhlb5PUQUOsEK5xJYLXiAqg8YlgCBXDN05syWPEBTAcCUFFOnBDMgEMUkKkWliTC4AJFST1k2RFqV8mbDb/AvtDnAAAAABJRU5ErkJggg==");
  transform: translateX(calc(-50%));
}

.edit_grid .button_image.delete_col_bottom {
  background-image: url('data:image/png;base64,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');
}

.edit_grid .input_cell.ellipsis::after {
  visibility: hidden;
  content: " ... ";
  float: right;
  width: 1.5em;
  height: 16px;
  line-height: 10px;
  text-align: center;
  vertical-align: middle;
  border: 1px outset;
  border-color: #CFDFEF #9FAFBF #9FAFBF #CFDFEF;
  background-image: linear-gradient(to bottom, #EEE, #BBB);
}

.edit_grid .input_cell.ellipsis.over_cell::after {
  visibility: visible;
}

.invalid-value, .valid-value {
  background-repeat: no-repeat;
}
.invalid-value {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAeVJREFUeNqkU01oE1EQ/mazSTdRmqSxLVSJVKU9RYoHD8WfHr16kh5EFA8eSy6hXrwUPBSKZ6E9V1CU4tGf0DZWDEQrGkhprRDbCvlpavan3ezu+LLSUnADLZnHwHvzmJlvvpkhZkY7IqFNaTuAfPhhP/8Uo87SGSaDsP27hgYM/lUpy6lHdqsAtM+BPfvqKp3ufYKwcgmWCug6oKmrrG3PoaqngWjdd/922hOBs5C/jJA6x7AiUt8VYVUAVQXXShfIqCYRMZO8/N1N+B8H1sOUwivpSUSVCJ2MAjtVwBAIdv+AQkHQqbOgc+fBvorjyQENDcch16/BtkQdAlC4E6jrYHGgGU18Io3gmhzJuwub6/fQJYNi/YBpCifhbDaAPXFvCBVxXbvfbNGFeN8DkjogWAd8DljV3KRutcEAeHMN/HXZ4p9bhncJHCyhNx52R0Kv/XNuQvYBnM+CP7xddXL5KaJw0TMAF8qjnMvegeK/SLHubhpKDKIrJDlvXoMX3y9xcSMZyBQ+tpyk5hzsa2Ns7LGdfWdbL6fZvHn92d7dgROH/730YBLtiZmEdGPkFnhX4kxmjVe2xgPfCtrRd6GHRtEh9zsL8xVe+pwSzj+OtwvletZZ/wLeKD71L+ZeHHWZ/gowABkp7AwwnEjFAAAAAElFTkSuQmCC);
  background-position: right top;
}
.valid-value {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAepJREFUeNrEk79PFEEUx9/uDDd7v/AAQQnEQokmJCRGwc7/QeM/YGVxsZJQYI/EhCChICYmUJigNBSGzobQaI5SaYRw6imne0d2D/bYmZ3dGd+YQKEHYiyc5GUyb3Y+77vfeWNpreFfhvXfAWAAJtbKi7dff1rWK9vPHx3mThP2Iaipk5EzTg8Qmru38H7izmkFHAF4WH1R52654PR0Oamzj2dKxYt/Bbg1OPZuY3d9aU82VGem/5LtnJscLxWzfzRxaWNqWJP0XUadIbSzu5DuvUJpzq7sfYBKsP1GJeLB+PWpt8cCXm4+2+zLXx4guKiLXWA2Nc5ChOuacMEPv20FkT+dIawyenVi5VcAbcigWzXLeNiDRCdwId0LFm5IUMBIBgrp8wOEsFlfeCGm23/zoBZWn9a4C314A1nCoM1OAVccuGyCkPs/P+pIdVIOkG9pIh6YlyqCrwhRKD3GygK9PUBImIQQxRi4b2O+JcCLg8+e8NZiLVEygwCrWpYF0jQJziYU/ho2TUuCPTn8hHcQNuZy1/94sAMOzQHDeqaij7Cd8Dt8CatGhX3iWxgtFW/m29pnUjR7TSQcRCIAVW1FSr6KAVYdi+5Pj8yunviYHq7f72po3Y9dbi7CxzDO1+duzCXH9cEPAQYAhJELY/AqBtwAAAAASUVORK5CYII=);
  background-position: right top;
}
.num.invalid-value, .num.valid-value {
  background-position: left 2px center;
}

.edit_grid tr.drop_active.show_insert_above {
  border-top: 3px solid purple;
}
.edit_grid tr.drop_active.show_insert_below {
  border-bottom: 3px solid purple;
}
