@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
@keyframes invert {
  from {
    filter: invert(1);
  }
  to {
    filter: invert(0);
  }
}
td[data-column=logo] [type=file], .tv-input-group > input:not(:focus),
.tv-input-group > textarea:not(:focus) {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
}

.tv-table.busy {
  pointer-events: none;
  cursor: not-allowed;
}
.tv-table[data-is-search] tbody > tr:not([data-hit]) {
  display: none;
}

th .filter-group {
  flex: 1;
}
th .filter-group [class*=-icon]::before {
  margin-right: 0.5em;
}
th .filter-group label {
  display: block;
}
th .filter-group:focus-within label {
  display: block !important;
}
th label.sort {
  flex: 0;
  margin-left: auto;
}
th label[data-filter-type] {
  text-align: center;
  flex: 1;
}
th label[data-filter-type=boolean] [class*=bi-].nope::after {
  content: "";
  display: block;
  width: 1em;
  height: 0.2em;
  margin: -0.8em auto 0.6em auto;
  transform: rotate(45deg);
  background-color: #dc3545;
}
.busy th.tv-progress {
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.25) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.25) 50%, rgba(255, 255, 255, 0.25) 75%, transparent 75%, transparent);
  background-size: 1rem 1rem;
  animation: 1s linear infinite progress-bar-stripes;
}
th.tv-progress::before {
  content: "";
  display: block;
  height: 1px;
  background-color: #dee2e6;
}
th.tv-progress::after {
  content: "";
  display: block;
  height: 5px;
  background-color: #17a2b8;
  width: calc(var(--table-progress) * 100%);
  transition: width 0.3s ease-out;
}

.date-range-filter .date-filter-shortcuts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 5px;
}
.date-range-filter [type=date] {
  border-style: solid;
  background-color: rgba(0, 0, 0, 0);
  border-color: rgba(0, 0, 0, 0);
  border-width: 1px;
  font-size: 21px;
}
.date-range-filter:not(:focus-within) .date-filter-shortcuts {
  display: none;
}
.date-range-filter:focus-within {
  border: 1px solid var(--light);
}

.tv-input-group {
  display: flex;
  max-width: 100%;
}
.tv-input-group label {
  flex: 0;
}
.tv-input-group .value {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tv-input-group input {
  max-width: 100%;
}
.tv-input-group textarea {
  min-height: 10.2em;
  padding: 0.25em;
  line-height: 1.2;
  border-style: none;
  box-sizing: content-box;
}
.tv-input-group > input:focus ~ *,
.tv-input-group > textarea:focus ~ * {
  display: none;
}
.tv-input-group:focus-within .hide-on-focus {
  display: none;
}

/* focus state */
td .editable-number [type=number]:not(:focus) {
  position: absolute;
  left: -1000px;
}
td .editable-number [type=number]:focus ~ * {
  display: none;
}
td .editable-number [type=number] + .is-default-value::before {
  content: "(";
}
td .editable-number [type=number] + .is-default-value::after {
  content: ")";
}

tr.busy {
  pointer-events: none;
  cursor: not-allowed;
  opacity: 0.5;
}

.tv-article-note:focus, .tv-article-note:not(:empty) {
  resize: none;
  overflow: hidden;
  line-height: 1.3;
  min-height: calc(1.3em + 1rem);
}
.tv-article-note:focus + label, .tv-article-note:not(:empty) + label {
  display: none;
}
.tv-article-note:empty:not(:focus) {
  width: 0 !important;
  height: 0 !important;
  position: absolute;
  left: -1000px;
  z-index: -1;
}
.tv-article-note + label {
  float: right;
}

.vivino-icon,
.google-icon,
.ebay-icon,
.kaufland-icon,
.terravinum-icon,
.weinpreis-icon,
.hood-icon {
  display: inline-block;
  line-height: 1;
}
.vivino-icon::before,
.google-icon::before,
.ebay-icon::before,
.kaufland-icon::before,
.terravinum-icon::before,
.weinpreis-icon::before,
.hood-icon::before {
  display: inline-block;
}
.vivino-icon.search,
.google-icon.search,
.ebay-icon.search,
.kaufland-icon.search,
.terravinum-icon.search,
.weinpreis-icon.search,
.hood-icon.search {
  position: relative;
}
.vivino-icon.search::after,
.google-icon.search::after,
.ebay-icon.search::after,
.kaufland-icon.search::after,
.terravinum-icon.search::after,
.weinpreis-icon.search::after,
.hood-icon.search::after {
  position: absolute;
  top: 7px;
  left: 8px;
  content: "\f52a";
  font-family: bootstrap-icons !important;
  color: #6c757d;
  padding: 1px;
  border-radius: 4px;
}

.vivino-icon::before {
  content: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAh1BMVEWqEym0MEP46+3Yk5325+nXj5nHY3H9+frGYG/DV2f25ujCV2bThpHz3uG8RFXx2d3ViZTal6H79PXBUmL68fLcn6jowMbu0dX68PLHZHLtzNHrx8zqxsvw1NjDWGj68vPuz9Psys/Uh5L25ei9SFn04eTWjpm/TF347O3bnKXBVGTGYW/////ngh0zAAAAAWJLR0Qsut1xqwAAAAd0SU1FB+UBHwQGFhrA9OMAAABUSURBVBgZjcHFAYAwEATAxSW4Bg2u/ffHDy4/ZvCbomqQKLoByrRsSByXgfL8IIxAxEma5fgUJeNV3eDVdr2ohhGfaV5WDcTG9+MEdfEbEiZM/PUAzI8EO0pj6pkAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjEtMDEtMzFUMDQ6MDU6MTYrMDA6MDC4TtwJAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIxLTAxLTMxVDA0OjAwOjA2KzAwOjAw45CvbwAAAABJRU5ErkJggg==");
}

.google-icon::before {
  content: url(" data:image/gif;base64,R0lGODdhEAAQAPYAAAAAAP75+fz8/OpHOvaspe5pXetKPOtJO+5mWvWpov3q6O5jWOpDNfB2bO1iVv7stvSclfrSz/rU0fSdlu1eUvzj4fvPkuxSN+pGOP/9/fzJNfmyCvaka/u+C/u8Bejw/kKF9Huq9/u9Cv7rtXWm9/HELO28EbDRjYKu+I21+M3WiUiqSziqVs7q1djm/UaH9MPY/Pn9+le3cTSoUzqqWJHQoszp1M7q1pvUqkqjmUGG8Ged9un17Fi3cVivjv///6fZtF26dlm4cp3VrPb7+CZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySZFySH5BAEAAEUALAAAAAAQABAAAAeWgEWCg4SFhT+IiYiGRT8BBAUGAwgJAT+HCgsMm5wNi4KODgwHEBESExQViaAWFxgSihmKoBobHBm4ubqgHR4juSAgOsIhGaAivsDDwSTGjSUmJ7g/uSg6KQGCGSorMzbTPy4vOjDOP0Q9Myw1NjY4OTo7Ac5FGTzpM/n5Ph/ZhBlEgAhhwaIHDgUCGOnKEEDAJUYQCQUCADs=");
}

.ebay-icon::before {
  content: url("data:image/gif;base64,R0lGODlhEAAQAPMAAPn5+RwcHIqKigBk0isrK8fHx+vr6////+UyOPWvAoa4F+pcYZ/GR/3x8ff67/f67ywAAAAAEAAQAAAEVPBICUQIAsxNSZEFoXGS8GlAkaFbYByjEYwSYg/4kOyJ4ms2RE7H8ymAtxyv9zsEh0sjUqgsNp/VndSZxEWvXaIWTPVaj9yymIlehL8MTcMNLTJeEQA7");
}

.kaufland-icon::before {
  content: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAD1BMVEUAAADhDQDugYbxnJ/////+rDK1AAAAAXRSTlMAQObYZgAAADFJREFUCNdjYBSEAAZGFzBwRGYICjoKqkAZQjARFSjDGUOxswu6GoQuiDkYVsBshwEAEM0UdTNEPAwAAAAASUVORK5CYII=");
}

.terravinum-icon::before {
  content: url("data:image/gif;base64,R0lGODlhEAAQAPMAAH3GRXm/Q9ruy8jlsZp2aKmLftDFuf///7Tblff79I3KXntNOeLe1LmflfLz7Pv9+SwAAAAAEAAQAAAEePDI44xhjlk3JytWsSwG+DydAx6f5qDoJAwcQ1ADE0tCACgOB8GhCAQEh9jACBA8CEvfIPbo/TQNos8pOQkQ4EIGPKU+tMeoYiczBhQIN3JyIgIAg/iPw66CEXAILx0nE0U/SSdsEgkAPkCEiYVRCJEdiQkJdEkHEQA7");
}

.weinpreis-icon::before {
  content: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAYFBMVEX/LHz/d6r/GnD/WpgXFxe3t7f/PYb/1OT5+fn/jLgDAwN2dnaJiYn/xtz/utT/EGr8/Pz/MH7/SY5RUVH/JHfS0tL/qsqkpKT/////ncL/a6P/ZZ8uLi6YmJjw6Ov99vjwRxpVAAAACXBIWXMAAAsTAAALEwEAmpwYAAAArElEQVQYlV2Oy6LDIAhEaZ6EJhlqo7Gm1v//y8Jd3EVxwxwGRso/Rf9drGtkA23fTO2PsorIqpkS+rakHf0p9S0fphlhB23oR6lVTqWGKQHmiLJGqUr5oAV44YpyH+W0lNAtmArKR+7Pgc1RcFEJuLGljJaSbT6lw8E7ZgcJXZiBxYB9yFZMXOxgGLI7tAGFDwfCfyvNReheXCurA93mxsom1Ax2Q9V79YP28hdWUhD1yW2eJgAAAABJRU5ErkJggg==");
}

.hood-icon::before {
  content: url("data:image/gif;base64,R0lGODdhEAAQAPMAAJzTNf///6nZUL3iecbmjPz++vP656HVPtftrYTIBPr99MDjf/7//ef0zpbQKbPdZSwAAAAAEAAQAAAEdzBJlx5jIes80UtIsQWM0SROUxgAWBQM3FAJobxNOxhvoQgoXq/xcRAaN8Phcev5EK3EEkFYxJwvRWNwoFmxWIVhkBCAzwtU46oY2LCfxNf3AQwWIQPNgQi8DAQCAgQ8CBISACpnSocdTT0GQI2HB3gNVFGTmpsRADs=");
}

.amazon-icon::before {
  content: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAMFBMVEUEBQVsbW3/////47f79/IbHR0wMjL/ynL/qAL/vlH/tTBOUFDk3dP17ub/1ZKdnp7LDpIQAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAeUlEQVQImWNQggIGJSUd6f0QxgEGBiEwQ2CPQBCIoXLm/wYmsMgxBgYww2lD7geICIPQBl4VFaBIAjcDv5MSg67SAdbfuc+LGLSuOKkoada1MCi3X1JS0rVpYlCx6Hr3boZxEYOS84yOjsUuTiBL3z12ARuopOICJADz0CQfMbKkJgAAAABJRU5ErkJggg==");
}

[type=search] + button:focus {
  outline: none;
}
[type=search]:placeholder-shown + button {
  pointer-events: none;
}
[type=search]:not(:placeholder-shown) + button::before {
  content: "\f622"; /* x-circle-fill */
}

.multiselect .multiselect-inner.-huge [type=checkbox]:not(:checked) + label, .multiselect .multiselect-inner.-large [type=checkbox]:not(:checked) + label {
  display: none;
}

.multiselect-inner [type=checkbox][hidden] + label {
  display: none;
}
.multiselect-inner [type=checkbox]:focus + label {
  box-shadow: 0 0 3px var(--primary);
}
.multiselect-inner [type=checkbox] + label {
  font-weight: 300;
}
.multiselect-inner [type=checkbox]:focus + label {
  box-shadow: 0 0 3px black;
}
.multiselect-inner [type=checkbox]:checked + label {
  color: #fff;
  background-color: var(--primary);
}
.multiselect-inner [type=checkbox]:not(:checked) + label {
  background-color: var(--light);
}
.modal-body .multiselect-inner {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  grid-gap: 0 1em;
}
.modal-body .multiselect-inner.-huge label {
  margin-top: auto;
}
.modal-body .multiselect-inner.-huge .-new-letter {
  grid-column: 1;
  margin-top: 1rem;
}
