/* Linha de envase realista V4 — visual industrial didático, sem sobreposição de HUD sobre equipamentos. */
.bottling-scenario-panel .bottling-line-scene-v4 {
  overflow: hidden;
  padding: 0;
  border: 1px solid #aebec7;
  border-radius: 16px;
  background: #dce4e8;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.75), 0 12px 30px rgba(22,51,68,.12);
}

.bottling-scenario-panel .bottling-line-scene-v4 svg {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1200 / 650;
}

.v4-wall { fill: #eef3f5; }
.v4-floor { opacity: .98; }
.v4-floor-perspective { fill: rgba(128,141,148,.17); }
.v4-floor-grid path {
  fill: none;
  stroke: rgba(76,94,104,.17);
  stroke-width: 1.2;
}
.v4-safety-line {
  fill: none;
  stroke: #f0b53b;
  stroke-width: 6;
  stroke-dasharray: 24 14;
}
.v4-floor-label {
  fill: #596b74;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .14em;
}

.v4-dashboard-shell {
  fill: rgba(18,45,61,.97);
  stroke: rgba(255,255,255,.16);
  stroke-width: 1.5;
  filter: drop-shadow(0 8px 12px rgba(12,32,43,.22));
}
.v4-dashboard-kicker {
  fill: #8bc7e3;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .12em;
}
.v4-dashboard-title {
  fill: #fff;
  font-size: 18px;
  font-weight: 900;
}
.v4-status-card {
  fill: rgba(255,255,255,.07);
  stroke: rgba(255,255,255,.12);
  stroke-width: 1;
}
.v4-card-label {
  fill: #9cc3d5;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .11em;
}
.v4-card-value {
  fill: #fff;
  font-size: 16px;
  font-weight: 900;
}
.v4-card-value.small { font-size: 13px; }
.v4-card-sub {
  fill: #dce9ef;
  font-size: 10px;
  font-weight: 650;
}
.v4-card-sub.strong { font-weight: 850; }
.v4-card-mini {
  fill: #9ec5d8;
  font-size: 8.5px;
  font-weight: 700;
}
.v4-actuator-text {
  fill: #dce9ef;
  font-size: 10px;
  font-weight: 800;
}
.v4-actuator-text.active { fill: #ffb16d; }
[data-v4-role="conveyor-dot"] {
  fill: #7e929d;
  stroke: #52646d;
  stroke-width: 1.5;
}
[data-v4-role="conveyor-dot"].running {
  fill: #38bc73;
  stroke: #147845;
  filter: drop-shadow(0 0 6px rgba(56,188,115,.65));
}
.v4-progress-track { fill: rgba(255,255,255,.12); }
.v4-progress-value { fill: #f47b20; }

.v4-pipe-header path,
.v4-pipe-header circle {
  fill: none;
  stroke: #6e7c83;
  stroke-width: 8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.v4-pipe-header path { stroke: url(#v4-steel); }

.v4-equipment-title {
  fill: #28414f;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
}
.v4-tank-top,
.v4-tank-bottom,
.v4-tank-shell,
.v4-hopper {
  fill: url(#v4-steel);
  stroke: #697981;
  stroke-width: 1.7;
}
.v4-tank-highlight { fill: rgba(255,255,255,.48); }
.v4-sight-glass {
  fill: rgba(239,249,253,.9);
  stroke: #70838c;
  stroke-width: 1.4;
}
.v4-sight-liquid.v4-product-1,
.v4-product-stream.v4-product-1,
.v4-liquid-1 { fill: #d14c43; stroke: #d14c43; }
.v4-sight-liquid.v4-product-2,
.v4-product-stream.v4-product-2,
.v4-liquid-2 { fill: #9f9844; stroke: #9f9844; }
.v4-sight-liquid.v4-product-3,
.v4-product-stream.v4-product-3,
.v4-liquid-3 { fill: #287db8; stroke: #287db8; }
.v4-tank-leg {
  stroke: #68777f;
  stroke-width: 8;
  stroke-linecap: round;
}
.v4-valve circle {
  fill: #596970;
  stroke: #2f3c42;
  stroke-width: 2;
}
.v4-valve path {
  fill: none;
  stroke: #dfe7eb;
  stroke-width: 2;
}
.v4-valve text {
  fill: #455963;
  font-size: 9px;
  font-weight: 900;
}
.v4-valve.active circle {
  fill: #f47b20;
  stroke: #9c4609;
  filter: drop-shadow(0 0 7px rgba(244,123,32,.65));
}
.v4-product-stream {
  fill: none;
  stroke-width: 7;
  stroke-linecap: round;
  stroke-dasharray: 9 10;
  opacity: 0;
}
.v4-product-stream.active {
  opacity: .9;
  animation: v4-flow .42s linear infinite;
}
@keyframes v4-flow { to { stroke-dashoffset: -19; } }

.v4-machine-column,
.v4-cabinet {
  fill: url(#v4-steel);
  stroke: #617077;
  stroke-width: 2;
}
.v4-machine-panel {
  fill: #38484f;
  stroke: #1d2b31;
  stroke-width: 1.5;
}
.v4-machine-lamp {
  fill: #b8443e;
  stroke: #6d2623;
  stroke-width: 2;
}
.v4-capper.active .v4-machine-lamp,
.v4-labeller.active .v4-machine-lamp {
  fill: #38bd73;
  stroke: #147744;
  filter: drop-shadow(0 0 7px rgba(56,189,115,.7));
}
.v4-capper-head,
.v4-capper-tool,
.v4-label-pad {
  fill: #4a5b63;
  stroke: #29373d;
  stroke-width: 1.5;
}
.v4-capper-rod { fill: #87979f; }
.v4-capper.active .v4-capper-rod {
  fill: #f47b20;
  transform: translateY(8px);
}
.v4-label-roll {
  fill: #f5f7f8;
  stroke: #788a93;
  stroke-width: 8;
}
.v4-label-roll-core { fill: #52636b; }
.v4-label-web {
  fill: none;
  stroke: #e9d8a4;
  stroke-width: 4;
}
.v4-labeller.active .v4-label-pad {
  fill: #f47b20;
  transform: translateX(-10px);
}

.v4-cabinet-screen { fill: #203840; stroke: #10252c; stroke-width: 2; }
.v4-panel-green { fill: #2ebd70; stroke: #126c40; stroke-width: 2; }
.v4-panel-red { fill: #d95147; stroke: #7b2924; stroke-width: 2; }
.v4-cabinet-handle { stroke: #34444b; stroke-width: 5; stroke-linecap: round; }
.v4-stack-light circle {
  fill: #59656b;
  stroke: #2b373c;
  stroke-width: 2;
}
.v4-stack-light circle.red.active { fill: #ef4f43; filter: url(#v4-glow); }
.v4-stack-light circle.amber.active { fill: #f2b83f; filter: url(#v4-glow); }
.v4-stack-light circle.green.active { fill: #3bc776; filter: url(#v4-glow); }

.v4-belt {
  stroke: #101719;
  stroke-width: 2;
}
.v4-belt-motion {
  fill: none;
  stroke: rgba(255,255,255,.26);
  stroke-width: 3;
  stroke-dasharray: 20 24;
}
.v4-conveyor.running .v4-belt-motion { animation: v4-belt 1.05s linear infinite; }
@keyframes v4-belt { to { stroke-dashoffset: -44; } }
.v4-roller {
  fill: #727f85;
  stroke: #c1c9cd;
  stroke-width: 2;
}
.v4-conveyor.running .v4-roller { stroke: #f47b20; }
.v4-conveyor-rail {
  fill: url(#v4-steel);
  stroke: #65747b;
  stroke-width: 1;
}
.v4-conveyor-leg {
  stroke: #58676e;
  stroke-width: 10;
  stroke-linecap: round;
}
.v4-motor rect,
.v4-motor circle {
  fill: #526168;
  stroke: #26343a;
  stroke-width: 2;
}
.v4-motor line { stroke: #98a7ae; stroke-width: 2; }
.v4-conveyor.running .v4-motor circle { fill: #2f718f; }

.v4-sensor rect {
  fill: #455962;
  stroke: #26383f;
  stroke-width: 1.5;
}
.v4-sensor circle {
  fill: #7f929b;
  stroke: #42545c;
  stroke-width: 1.5;
}
.v4-sensor line { stroke: #52666f; stroke-width: 3; }
.v4-sensor text {
  fill: #3b515c;
  font-size: 10px;
  font-weight: 900;
}
.v4-sensor.passed circle { fill: #4f9fd0; }
.v4-sensor.active circle {
  fill: #27b1df;
  stroke: #147190;
  filter: drop-shadow(0 0 6px rgba(39,177,223,.65));
}

.v4-bottle {
  transition: transform .12s linear;
  transform-box: view-box;
  transform-origin: 0 0;
  filter: drop-shadow(0 5px 4px rgba(28,45,54,.25));
}
.v4-bottle.empty { opacity: .28; }
.v4-bottle-shadow { fill: rgba(24,37,44,.22); }
.v4-bottle-body { fill: rgba(236,249,253,.78); }
.v4-bottle-outline {
  fill: none;
  stroke: #5c7480;
  stroke-width: 2.2;
}
.v4-liquid { opacity: .94; }
.v4-bottle-base {
  fill: #d8e9ef;
  stroke: #7894a1;
  stroke-width: 1.2;
}
.v4-bottle-base.metallic {
  fill: url(#v4-steel);
  stroke: #56656c;
}
.v4-bottle-cap {
  fill: #263941;
  stroke: #111f25;
  stroke-width: 1.2;
  opacity: 0;
}
.v4-bottle-cap.visible { opacity: 1; }
.v4-bottle-label { opacity: 0; }
.v4-bottle-label.visible { opacity: 1; }
.v4-bottle-label rect {
  fill: #f4f7f8;
  stroke: #1f6da2;
  stroke-width: 1.5;
}
.v4-bottle-label text {
  fill: #005ca9;
  font-size: 10px;
  font-weight: 900;
}

@media (max-width: 900px) {
  .bottling-scenario-panel .bottling-line-scene-v4 { overflow-x: auto; }
  .bottling-scenario-panel .bottling-line-scene-v4 svg { min-width: 900px; }
}

@media (max-width: 560px) {
  .bottling-scenario-panel .bottling-line-scene-v4 svg { min-width: 820px; }
}
