#screenOperator {
  height: 100dvh;        /* dynamischer Viewport – wichtig für iOS */
  max-height: 100dvh;
  overflow: hidden;
}

#screenOperator.is-active {
  display: flex;
  flex-direction: column;
}

/* Status (Operator) */
.status{
  border-radius:var(--radius);
  padding:12px 14px;
  min-height:54px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  font-weight:800;
  background:var(--statusIdle);
  transition:background .15s ease, color .15s ease;
  margin-bottom:10px;
  user-select:none;
  color:#0b1f33; /* FIX: war teils transparent / doppelt überschrieben */
}

.status[data-ph]:empty::before{
  content: attr(data-ph);
  color: rgba(65,85,107,.55);
  font-weight:800;
  letter-spacing:.2px;
}

/* Optional states */
.status.wait{ background:var(--statusWait); color:#fff; }
.status.ok{ background:var(--statusOk); color:#fff; }

/* Operator Grid */
.grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:6px;
}
.grid.locked .tile{ pointer-events:none; }

/* Tiles */
.tile{
  position:relative;
  background:var(--tile);
  border-radius:18px;
  padding:10px 10px 8px;
  border:1px solid rgba(65,85,107,.15);
  min-height:108px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}

.tile.selected{
  background:var(--tileSel);
  border:1.5px solid rgba(47,128,237,.9);
}
.tile.armed{ border:4px solid rgba(47,128,237,1); }
.tile.active{ box-shadow:0 0 0 3px rgba(47,128,237,.25) inset; }

.tile.empty{ cursor:default; opacity:.55; }
.tile.empty .label{ opacity:0; }

.qtybadge{
  position:absolute;
  top:8px;
  right:10px;
  font-size:16px;
  font-weight:800;
  color:#000;
  background:rgba(255,255,255,.88);
  padding:2px 8px;
  border-radius:999px;
  z-index:3;
  display:none;
}

.watermark{
  position:absolute;
  inset:10px;
  opacity:.12;
  pointer-events:none;
  display:flex;
  align-items:center;
  justify-content:center;
}
.watermark img{
  width:100%;
  height:100%;
  object-fit:contain;
  filter:grayscale(100%);
}

.iconwrap{ position:relative; z-index:2; color:var(--ink2); }
.tile.selected .iconwrap{ color:var(--accent); }

.label{
  position:relative;
  z-index:2;
  font-size:13px;
  font-weight:700;
  color:var(--ink);
  opacity:.95;
}
.tile.selected .label{ color:var(--accent); }


/*  Umschalten der Farbe  (siehe Beispiel in bootstrap.js) */
.title-neutral { color: blue; }
.title-ok      { color: green; }
.title-err     { color: red; }


@media (max-height: 750px){
  .tile{ min-height:94px; }
  .status{ min-height:48px; }
}
