body { background: #f6f7f9; }
.card { border-radius: 1rem; }
.btn-lg { border-radius: .8rem; }
@media (max-width: 576px) {
    .table { font-size: .9rem; }
}

/* v0.4.0 Motor-Erfassung */
.motor-form .card-title { font-weight: 700; }
.motor-form .form-label { font-weight: 600; }
.sticky-actions { position: sticky; bottom: 0; background: rgba(255,255,255,.95); padding: .75rem 0; z-index: 10; }
@media (max-width: 768px) {
  .sticky-actions .btn { width: 100%; }
}

/* v0.5.0 Motorenverwaltung */
.motor-table td { vertical-align: middle; }
.motor-photo-thumb { width: 100%; max-height: 360px; object-fit: cover; }
.motor-photo-card { top: 1rem; }
@media (max-width: 991.98px) {
  .motor-photo-card { position: static !important; }
  .motor-table { min-width: 980px; }
}

/* v0.7.0 Ticket #17: Nachbearbeitungs-Workbench */
.workbench-nameplate-img {
  width: 100%;
  max-height: 62vh;
  object-fit: contain;
  background: #111;
  border-radius: .75rem;
  border: 1px solid rgba(0,0,0,.15);
}
.workbench-nameplate-link { background: #111; border-radius: .75rem; }
.workbench-installation-img { width: 100%; max-height: 360px; object-fit: contain; background: #f1f3f5; }
.workbench-small-photo { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.workbench-actions {
  position: sticky;
  bottom: .75rem;
  z-index: 1020;
  margin-top: 1rem;
  padding: .75rem;
  border-radius: 1rem;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(0,0,0,.12);
  display: flex;
  gap: .5rem;
  justify-content: flex-end;
  flex-wrap: wrap;
}
@media (max-width: 767.98px) {
  .workbench-actions .btn { flex: 1 1 100%; }
  .workbench-nameplate-img { max-height: 48vh; }
}

/* v0.7.1/0.7.2 Ticket #18: Bildbearbeitung */
.image-editor-stage {
  width: 100%;
  min-height: 240px;
  background: #151515;
  border-radius: 1rem;
  padding: .75rem;
  overflow: hidden;
  text-align: center;
}
.image-editor-canvas-wrap {
  position: relative;
  display: inline-block;
  max-width: 100%;
  vertical-align: top;
}
.image-editor-stage canvas {
  display: block;
  max-width: 100%;
  touch-action: none;
}
#photoCanvas {
  background: #222;
  border-radius: .5rem;
}
#cropCanvas {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 2;
  pointer-events: none;
}
#cropCanvas.crop-active {
  pointer-events: auto;
  cursor: crosshair;
}
.image-editor-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
@media (max-width: 767.98px) {
  .image-editor-toolbar .btn { flex: 1 1 100%; }
}

/* v0.8.0 Ticket #19: intelligente Nachbearbeitung */
.smart-filled {
  background-color: #fff8db !important;
  border-color: #f0c36d !important;
}
.type-assist-box {
  border-left: .35rem solid #0dcaf0;
}

/* v0.8.4: Fotozuweisung und Übersichtsvorschaubild */
.workbench-queue-thumb {
  width: 96px;
  height: 72px;
  object-fit: cover;
  border-radius: .5rem;
  border: 1px solid rgba(0,0,0,.15);
  background: #f1f3f5;
}
.workbench-queue-thumb-placeholder {
  width: 96px;
  height: 72px;
  border-radius: .5rem;
  border: 1px dashed rgba(0,0,0,.25);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .75rem;
  color: #6c757d;
  background: #f8f9fa;
}
.workbench-photo-manage-img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: .5rem;
  border: 1px solid rgba(0,0,0,.15);
  background: #f1f3f5;
}

/* v0.8.5 Nachbearbeitung: Typenschild kompakter und beim Scrollen sichtbar */
.workbench-nameplate-card {
  position: sticky;
  top: .75rem;
  z-index: 1010;
}
.workbench-nameplate-card .card-body {
  padding: .75rem;
}
.workbench-nameplate-frame {
  display: block;
  text-align: center;
  background: #111;
  border-radius: .75rem;
  overflow: hidden;
}
.workbench-nameplate-img {
  width: auto;
  max-width: min(100%, 920px);
  max-height: 300px;
  object-fit: contain;
}
@media (max-width: 991.98px) {
  .workbench-nameplate-card { position: static; }
  .workbench-nameplate-img { max-height: 42vh; }
}

/* v0.8.7 Ticket #21: Typenschild-Viewer mit Zoom/Pan */
.workbench-nameplate-viewer {
  height: 300px;
  max-height: 70vh;
  overflow: hidden;
  background: #111;
  border-radius: .75rem;
  border: 1px solid rgba(0,0,0,.15);
  text-align: center;
  user-select: none;
}
.workbench-nameplate-viewer.is-zoomed { cursor: grab; }
.workbench-nameplate-viewer.is-dragging { cursor: grabbing; }
.workbench-nameplate-viewer .workbench-nameplate-frame {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  width: 100%;
  overflow: hidden;
}
.workbench-nameplate-viewer .workbench-nameplate-img {
  transform-origin: center center;
  transition: transform .08s ease-out;
  max-height: 100%;
  max-width: 100%;
  pointer-events: none;
}
.nameplate-zoom-btn.active {
  background: var(--bs-secondary);
  color: #fff;
}
@media (max-width: 991.98px) {
  .workbench-nameplate-viewer { height: 260px; max-height: 58vh; }
  .workbench-nameplate-viewer .workbench-nameplate-frame { min-height: 180px; }
  .workbench-nameplate-viewer .workbench-nameplate-img { max-height: 100%; }
}


/* v0.8.8 Nachbearbeitung: Datenqualitäts-Cockpit */
.workbench-quality-card {
  position: static;
}
.quality-jump {
  border-left: .25rem solid transparent;
  background: transparent;
}
.quality-jump.is-missing {
  border-left-color: #dc3545;
  background: rgba(220, 53, 69, .05);
}
.quality-jump.is-ok {
  border-left-color: #198754;
}
.quality-missing-field {
  border-color: #dc3545 !important;
  background-color: #fff5f5 !important;
}
.quality-ok-field:not(.smart-filled) {
  border-color: #badbcc;
}

/* v0.8.11 Nachbearbeitung 2.0: Zwei-Spalten-Layout mit Medienbereich */
.workbench-2col { align-items: flex-start; }
.workbench-data-col .card-title,
.workbench-media-col .card-title { font-weight: 700; }
.workbench-quality-top { position: static; }
.workbench-quality-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .35rem .75rem;
}
.workbench-quality-list .list-group-item {
  border-width: 0 0 0 .25rem;
  border-radius: .5rem;
  padding: .45rem .6rem !important;
}
.workbench-media-card {
  position: sticky;
  top: .75rem;
  z-index: 1000;
}
.workbench-media-viewer {
  height: 360px;
  max-height: 74vh;
}
.workbench-media-empty {
  min-height: 260px;
  border: 1px dashed rgba(0,0,0,.25);
  border-radius: .75rem;
  background: #f8f9fa;
  color: #6c757d;
  display: flex;
  align-items: center;
  justify-content: center;
}
.workbench-media-gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .5rem;
}
.workbench-media-thumb {
  border: 1px solid rgba(0,0,0,.16);
  border-radius: .75rem;
  background: #fff;
  padding: .35rem;
  text-align: left;
  color: inherit;
  cursor: pointer;
}
.workbench-media-thumb:hover { border-color: rgba(13,110,253,.55); }
.workbench-media-thumb.active {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 .18rem rgba(13,110,253,.16);
}
.workbench-media-thumb img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: .5rem;
  background: #f1f3f5;
  display: block;
}
.workbench-media-thumb span {
  display: block;
  margin-top: .25rem;
  font-size: .72rem;
  line-height: 1.1;
  color: #495057;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.workbench-photo-settings {
  max-height: 260px;
  overflow: auto;
  padding-right: .15rem;
}
.workbench-photo-settings-img {
  width: 72px;
  height: 54px;
  object-fit: cover;
  border-radius: .5rem;
  border: 1px solid rgba(0,0,0,.15);
  background: #f1f3f5;
}
@media (max-width: 1199.98px) {
  .workbench-media-card { position: static; }
  .workbench-quality-list { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
  .workbench-media-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workbench-media-viewer { height: 300px; }
}
