.pa{
    --bg-deep: #060912;
    --bg-panel: #0B1220;
    --bg-panel-2: #0F1A2E;
    --border: #1A2942;
    --border-bright: #2A3E5F;
    --fg: #E8EEF7;
    --fg-muted: #7C8BA6;
    --fg-subtle: #4B5B78;
    --brand-blue: #378ADD;
    --brand-blue-light: #85B7EB;
    --brand-blue-glow: #56C7FF;
    --brand-green: #1DE095;
    --brand-amber: #F5B041;
    --brand-red: #FF4D6D;
    --mono: 'JetBrains Mono', ui-monospace, monospace;
    --sans: 'Inter', -apple-system, sans-serif;
  }
.pa, .pa *{box-sizing:border-box; margin:0; padding:0;}
.pa, .pa{height: 100%; width: 100%;}
.pa{
    font-family: var(--sans);
    background: var(--bg-deep);
    color: var(--fg);
    -webkit-font-smoothing: antialiased;
    line-height: 1.4;
    overflow: hidden;
    letter-spacing: -0.005em;
  }
.pa .app{
    display: grid;
    grid-template-columns: 38px 1fr 260px;
    grid-template-rows: 42px 1fr 32px;
    height: 100%;
    width: 100%;
    gap: 0;
    background: var(--bg-deep);
  }
.pa .topbar{
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    padding: 0 12px;
    background: linear-gradient(180deg, rgba(15,26,46,0.95), rgba(11,18,32,0.98));
    border-bottom: 1px solid var(--border);
    backdrop-filter: blur(10px);
    z-index: 10;
    position: relative;
  }
.pa .topbar::after{
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: -1px; height: 1px;
    background: linear-gradient(90deg, transparent, var(--brand-blue-glow), transparent);
    opacity: 0.4;
  }
.pa .logo-mini{
    display: inline-flex; align-items: center; gap: 7px;
    margin-right: 12px;
  }
.pa .logo-mini svg{width: 18px; height: 18px;}
.pa .logo-mini .brand{
    font-size: 11px; font-weight: 600; letter-spacing: -0.02em;
    color: var(--fg);
  }
.pa .logo-mini .brand span{color: var(--brand-blue);}
.pa .topbar-title{
    font-size: 10.5px;
    font-weight: 500;
    color: var(--fg);
  }
.pa .topbar-title .sep{color: var(--fg-subtle); margin: 0 10px;}
.pa .topbar-title em{color: var(--brand-blue-light); font-style: normal; font-weight: 400;}
.pa .topbar-right{
    margin-left: auto;
    display: flex; align-items: center; gap: 10px;
  }
.pa .live-indicator{
    display: inline-flex; align-items: center; gap: 7px;
    font-family: var(--mono);
    font-size: 10px;
    color: var(--brand-green);
    font-weight: 500;
    letter-spacing: 0.04em;
  }
.pa .live-indicator .dot{
    width: 8px; height: 8px; border-radius: 50%;
    background: var(--brand-green);
    box-shadow: 0 0 0 0 var(--brand-green);
    animation: pulseDot 2s ease-out infinite;
  }
@keyframes pulseDot{
    0%{box-shadow: 0 0 0 0 rgba(29,224,149,0.6);}
    100%{box-shadow: 0 0 0 10px rgba(29,224,149,0);}
  }
.pa .timestamp{
    font-family: var(--mono);
    font-size: 10px;
    color: var(--fg-muted);
    letter-spacing: 0.02em;
  }
.pa .timestamp span{color: var(--fg); font-weight: 500;}
.pa .rail{
    background: var(--bg-panel);
    border-right: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 10px 0;
    gap: 2px;
  }
.pa .rail-btn{
    width: 28px; height: 28px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 6px;
    color: var(--fg-subtle);
    cursor: pointer;
    transition: all 150ms ease;
    position: relative;
  }
.pa .rail-btn:hover{color: var(--brand-blue-light); background: rgba(55,138,221,0.08);}
.pa .rail-btn.active{
    color: var(--brand-blue);
    background: rgba(55,138,221,0.12);
  }
.pa .rail-btn.active::before{
    content: "";
    position: absolute; left: 0; top: 8px; bottom: 8px;
    width: 2px;
    background: var(--brand-blue);
    border-radius: 0 2px 2px 0;
  }
.pa .rail-btn svg{width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 1.6;}
.pa .main{
    position: relative;
    overflow: hidden;
    background:
      radial-gradient(ellipse at center, #0E1A30 0%, #060912 100%);
  }
.pa .map-bg{
    position: absolute; inset: 0;
  }
.pa .map-bg svg{width: 100%; height: 100%; display: block;}
.pa .map-controls{
    position: absolute;
    top: 10px; left: 10px;
    display: flex; gap: 6px;
    z-index: 5;
  }
.pa .ctrl{
    background: rgba(15,26,46,0.85);
    backdrop-filter: blur(8px);
    border: 1px solid var(--border-bright);
    padding: 4px 9px;
    border-radius: 5px;
    font-family: var(--mono);
    font-size: 10px;
    color: var(--fg-muted);
    display: inline-flex; align-items: center; gap: 8px;
    cursor: pointer;
    transition: all 150ms ease;
  }
.pa .ctrl:hover{border-color: var(--brand-blue); color: var(--fg);}
.pa .ctrl.active{
    border-color: var(--brand-blue);
    background: rgba(55,138,221,0.15);
    color: var(--brand-blue-light);
  }
.pa .ctrl svg{width: 12px; height: 12px; stroke: currentColor; fill: none; stroke-width: 1.6;}
.pa .map-legend{
    position: absolute;
    bottom: 8px; left: 8px;
    display: flex; flex-direction: column; gap: 4px;
    background: rgba(15,26,46,0.85);
    backdrop-filter: blur(8px);
    border: 1px solid var(--border-bright);
    padding: 7px 9px;
    border-radius: 5px;
    z-index: 5;
    font-family: var(--mono);
    font-size: 10px;
    color: var(--fg-muted);
  }
.pa .leg-title{
    color: var(--fg-subtle);
    font-size: 9px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 4px;
  }
.pa .leg-row{
    display: flex; align-items: center; gap: 7px;
    font-size: 9.5px;
  }
.pa .leg-row .sw{
    width: 8px; height: 8px; border-radius: 50%;
    flex-shrink: 0;
  }
.pa .leg-row .sw.green{background: var(--brand-green); box-shadow: 0 0 8px rgba(29,224,149,0.6);}
.pa .leg-row .sw.blue{background: var(--brand-blue-glow); box-shadow: 0 0 8px rgba(86,199,255,0.6);}
.pa .leg-row .sw.amber{background: var(--brand-amber); box-shadow: 0 0 8px rgba(245,176,65,0.6);}
.pa .leg-row .sw.red{background: var(--brand-red); box-shadow: 0 0 8px rgba(255,77,109,0.6);}
.pa .map-scale{
    position: absolute;
    bottom: 8px; right: 8px;
    background: rgba(15,26,46,0.85);
    backdrop-filter: blur(8px);
    border: 1px solid var(--border-bright);
    padding: 5px 9px;
    border-radius: 5px;
    z-index: 5;
    font-family: var(--mono);
    font-size: 10px;
    color: var(--fg-muted);
    display: flex; align-items: center; gap: 10px;
  }
.pa .scale-bar{
    width: 60px; height: 2px;
    background: linear-gradient(90deg, var(--brand-blue-light), var(--fg-subtle));
    border-radius: 1px;
    position: relative;
  }
.pa .scale-bar::before, .pa .scale-bar::after{
    content: "";
    position: absolute;
    width: 1px; height: 6px;
    background: var(--brand-blue-light);
    top: -2px;
  }
.pa .scale-bar::before{left: 0;}
.pa .scale-bar::after{right: 0;}
.pa .worker{
    position: absolute;
    width: 24px; height: 24px;
    margin-left: -12px; margin-top: -12px;
    cursor: pointer;
    z-index: 4;
  }
.pa .worker-glow{
    position: absolute; inset: -8px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(29,224,149,0.35) 0%, transparent 65%);
    animation: workerPulse 2.4s ease-in-out infinite;
  }
@keyframes workerPulse{
    0%, 100%{transform: scale(1); opacity: 0.7;}
    50%{transform: scale(1.25); opacity: 1;}
  }
.pa .worker-icon{
    position: relative;
    width: 24px; height: 24px;
    display: flex; align-items: center; justify-content: center;
  }
.pa .worker-icon svg{
    width: 20px; height: 20px;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5));
  }
.pa .worker.moving .worker-glow{animation-duration: 1.2s;}
.pa .worker.moving .worker-trail{
    position: absolute;
    left: 16px; top: 16px;
    width: 80px; height: 2px;
    background: linear-gradient(90deg, rgba(86,199,255,0.8) 0%, transparent 100%);
    transform-origin: 0 50%;
    pointer-events: none;
    animation: trailFade 1.6s ease-out infinite;
  }
@keyframes trailFade{
    0%{opacity: 0; transform: translateX(-60px) rotate(var(--trail-rot, 0deg)) scaleX(0.2);}
    30%{opacity: 1;}
    100%{opacity: 0; transform: translateX(0) rotate(var(--trail-rot, 0deg)) scaleX(1);}
  }
@keyframes move1{
    0%, 100% { transform: translate(0, 0); }
    25% { transform: translate(18px, 6px); }
    50% { transform: translate(10px, 22px); }
    75% { transform: translate(-6px, 14px); }
  }
@keyframes move2{
    0%, 100% { transform: translate(0, 0); }
    33% { transform: translate(-14px, 10px); }
    66% { transform: translate(-20px, -4px); }
  }
@keyframes move3{
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(22px, -12px); }
  }
@keyframes move4{
    0%, 100% { transform: translate(0, 0); }
    20% { transform: translate(8px, 16px); }
    40% { transform: translate(-10px, 20px); }
    60% { transform: translate(-16px, 4px); }
    80% { transform: translate(-4px, -8px); }
  }
.pa .worker.anim-1{animation: move1 14s ease-in-out infinite;}
.pa .worker.anim-2{animation: move2 18s ease-in-out infinite;}
.pa .worker.anim-3{animation: move3 10s ease-in-out infinite;}
.pa .worker.anim-4{animation: move4 22s ease-in-out infinite;}
.pa .worker.sos .worker-glow{
    background: radial-gradient(circle, rgba(255,77,109,0.6) 0%, transparent 65%);
    animation: sosPulse 0.9s ease-in-out infinite;
  }
@keyframes sosPulse{
    0%, 100%{transform: scale(1); opacity: 1;}
    50%{transform: scale(1.5); opacity: 0.6;}
  }
.pa .worker.sos::before{
    content: "SOS";
    position: absolute;
    top: -18px; left: 50%;
    transform: translateX(-50%);
    background: var(--brand-red);
    color: #fff;
    padding: 1px 6px;
    border-radius: 3px;
    font-family: var(--mono);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.08em;
    white-space: nowrap;
    box-shadow: 0 0 12px rgba(255,77,109,0.6);
    animation: sosBadge 0.9s ease-in-out infinite;
  }
@keyframes sosBadge{
    0%, 100%{opacity: 1;}
    50%{opacity: 0.4;}
  }
.pa .worker-tooltip{
    position: absolute;
    bottom: 38px; left: 50%;
    transform: translateX(-50%) translateY(6px);
    background: rgba(6,9,18,0.96);
    border: 1px solid var(--border-bright);
    border-radius: 6px;
    padding: 10px 12px;
    width: 200px;
    opacity: 0;
    pointer-events: none;
    transition: all 180ms ease;
    backdrop-filter: blur(10px);
    z-index: 20;
    box-shadow: 0 8px 24px rgba(0,0,0,0.5);
  }
.pa .worker:hover .worker-tooltip{
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
.pa .worker.sos .worker-tooltip{
    border-color: var(--brand-red);
    box-shadow: 0 8px 24px rgba(255,77,109,0.35), 0 0 0 1px rgba(255,77,109,0.4);
  }
.pa .tt-name{
    font-size: 12px;
    font-weight: 600;
    color: var(--fg);
    margin-bottom: 2px;
  }
.pa .tt-role{
    font-family: var(--mono);
    font-size: 10px;
    color: var(--fg-muted);
    margin-bottom: 8px;
    letter-spacing: 0.04em;
  }
.pa .tt-row{
    display: flex; justify-content: space-between;
    font-family: var(--mono);
    font-size: 10px;
    padding: 2px 0;
    color: var(--fg-muted);
  }
.pa .tt-row .v{color: var(--fg);}
.pa .tt-row .v.red{color: var(--brand-red);}
.pa .tt-row .v.green{color: var(--brand-green);}
.pa .tt-sos{
    margin-top: 8px; padding-top: 8px;
    border-top: 1px solid var(--border);
    font-size: 10.5px;
    color: var(--brand-red);
    font-weight: 500;
    display: flex; align-items: center; gap: 6px;
  }
.pa .tt-sos::before{
    content: "⚠"; font-size: 12px;
  }
.pa .panels{
    --fg: #0C1F3A;
    --fg-muted: #5B6B86;
    --fg-subtle: #93A1B5;
    --border: #E4E9F1;
    --border-bright: #D2DAE6;
    --bg-panel: #EEF1F6;
    --bg-panel-2: #FFFFFF;
    background: var(--bg-panel);
    border-left: 1px solid var(--border);
    overflow-y: auto;
    display: flex; flex-direction: column;
    gap: 5px;
    padding: 6px;
  }
.pa .panels .card{
    box-shadow: 0 1px 2px rgba(12,31,58,0.05), 0 6px 16px -6px rgba(12,31,58,0.14);
  }
.pa .panels::-webkit-scrollbar{width: 6px;}
.pa .panels::-webkit-scrollbar-track{background: transparent;}
.pa .panels::-webkit-scrollbar-thumb{background: var(--border-bright); border-radius: 3px;}
.pa .card{
    background: var(--bg-panel-2);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 9px 10px 8px;
    position: relative;
  }
.pa .card-header{
    display: flex; justify-content: space-between; align-items: baseline;
    margin-bottom: 8px;
    gap: 8px;
  }
.pa .card-title{
    font-size: 11px;
    font-weight: 600;
    color: var(--fg);
    letter-spacing: -0.01em;
  }
.pa .card-title span{color: var(--fg-subtle); font-weight: 400;}
.pa .card-tag{
    font-family: var(--mono);
    font-size: 9.5px;
    color: var(--fg-subtle);
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }
.pa .workers-count{
    display: flex; align-items: baseline; gap: 6px;
    margin-bottom: 8px;
  }
.pa .wc-big{
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--fg);
    line-height: 1;
  }
.pa .wc-total{
    font-family: var(--mono);
    font-size: 13px;
    color: var(--fg-muted);
  }
.pa .wc-bar{
    height: 3px;
    background: var(--border);
    border-radius: 2px;
    overflow: hidden;
    margin-bottom: 10px;
  }
.pa .wc-bar-fill{
    height: 100%;
    background: linear-gradient(90deg, var(--brand-blue), var(--brand-blue-glow));
    width: 47%;
    box-shadow: 0 0 8px rgba(86,199,255,0.5);
  }
.pa .wc-grid{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
.pa .wc-col h5{
    font-family: var(--mono);
    font-size: 9px;
    color: var(--fg-subtle);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 6px;
    font-weight: 500;
  }
.pa .wc-item{
    display: flex; justify-content: space-between; align-items: center;
    font-size: 10.5px;
    color: var(--fg-muted);
    padding: 2.5px 0;
  }
.pa .wc-item .v{
    font-family: var(--mono);
    color: var(--fg);
    font-weight: 500;
  }
.pa .wc-item .dot-c{
    display: inline-block; width: 6px; height: 6px; border-radius: 50%;
    margin-right: 6px;
  }
.pa .card.sos-card{
    border-color: rgba(255,77,109,0.35);
    background:
      linear-gradient(135deg, rgba(255,77,109,0.06), transparent 60%),
      var(--bg-panel-2);
  }
.pa .card.sos-card .card-title{color: var(--brand-red);}
.pa .sos-row{
    display: flex; gap: 8px;
    padding: 7px 0;
    border-bottom: 1px solid var(--border);
  }
.pa .sos-row:last-child{border-bottom: none;}
.pa .sos-icon{
    flex-shrink: 0;
    width: 24px; height: 24px;
    border-radius: 5px;
    background: rgba(255,77,109,0.12);
    border: 1px solid rgba(255,77,109,0.35);
    display: flex; align-items: center; justify-content: center;
    color: var(--brand-red);
    font-size: 13px;
    font-weight: 700;
  }
.pa .sos-body{flex: 1; min-width: 0;}
.pa .sos-date{
    font-family: var(--mono);
    font-size: 9.5px;
    color: var(--fg-subtle);
    margin-bottom: 2px;
    letter-spacing: 0.04em;
  }
.pa .sos-zone{
    font-size: 11.5px;
    font-weight: 600;
    color: var(--fg);
    margin-bottom: 2px;
  }
.pa .sos-person{
    font-size: 10.5px;
    color: var(--fg-muted);
  }
.pa .sos-person .role{
    font-family: var(--mono);
    font-size: 9px;
    color: var(--fg-subtle);
    margin-left: 4px;
  }
.pa .sos-status{
    display: inline-block;
    margin-top: 4px;
    padding: 2px 7px;
    border-radius: 3px;
    background: rgba(255,77,109,0.15);
    color: var(--brand-red);
    font-family: var(--mono);
    font-size: 8.5px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
.pa .sos-status.critical{
    background: var(--brand-red);
    color: #fff;
    animation: sosBadge 0.9s ease-in-out infinite;
  }
.pa .zone-row{
    display: flex; justify-content: space-between; align-items: center;
    padding: 7px 0;
    border-bottom: 1px solid var(--border);
    font-size: 11px;
  }
.pa .zone-row:last-child{border-bottom: none;}
.pa .zone-row .zname{color: var(--fg);}
.pa .zone-row .zcount{
    font-family: var(--mono);
    font-size: 10.5px;
    color: var(--brand-amber);
    font-weight: 500;
  }
.pa .zone-row .zcount.zero{color: var(--fg-subtle);}
.pa .trilat-row{
    display: flex; justify-content: space-between;
    padding: 3px 0;
    font-family: var(--mono);
    font-size: 10px;
  }
.pa .trilat-row .tk{color: var(--fg-muted);}
.pa .trilat-row .tv{color: var(--fg);}
.pa .trilat-row .tv.green{color: var(--brand-green);}
.pa .hours-chart{
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 10px 12px;
    align-items: center;
    margin-top: 4px;
  }
.pa .hc-label{
    font-size: 11px;
    color: var(--fg-muted);
  }
.pa .hc-bar{
    height: 18px;
    background: var(--border);
    border-radius: 3px;
    overflow: hidden;
    position: relative;
  }
.pa .hc-bar-fill{
    height: 100%;
    border-radius: 3px;
    box-shadow: 0 0 8px currentColor;
  }
.pa .hc-bar-fill.electrico{
    width: 28%;
    background: var(--brand-amber);
    color: var(--brand-amber);
  }
.pa .hc-bar-fill.oocc{
    width: 72%;
    background: var(--brand-red);
    color: var(--brand-red);
  }
.pa .hc-bar-fill.iiff{
    width: 18%;
    background: var(--brand-blue);
    color: var(--brand-blue);
  }
.pa .hc-val{
    font-family: var(--mono);
    font-size: 11px;
    color: var(--fg);
    font-weight: 500;
    text-align: right;
    min-width: 38px;
  }
.pa .bottom-bar{
    grid-column: 1 / -1;
    display: flex; align-items: center;
    padding: 0 12px;
    background:
      linear-gradient(90deg, rgba(255,77,109,0.15), transparent 50%),
      var(--bg-panel);
    border-top: 1px solid rgba(255,77,109,0.3);
    font-size: 10.5px;
    color: var(--fg-muted);
    position: relative;
  }
.pa .bottom-bar::before{
    content: "";
    position: absolute; left: 0; top: -1px; height: 1px;
    width: 40%;
    background: linear-gradient(90deg, var(--brand-red), transparent);
    animation: scanLine 3s ease-in-out infinite;
  }
@keyframes scanLine{
    0%, 100%{opacity: 0.4;}
    50%{opacity: 1;}
  }
.pa .sos-prefix{
    color: var(--brand-red);
    font-family: var(--mono);
    font-weight: 600;
    letter-spacing: 0.08em;
    margin-right: 10px;
    font-size: 9.5px;
    display: inline-flex; align-items: center; gap: 8px;
  }
.pa .sos-prefix::before{
    content: "⚠";
    display: inline-block;
    animation: sosBadge 0.9s ease-in-out infinite;
  }
.pa .bottom-bar .sos-msg{
    color: var(--fg);
    font-size: 10.5px;
  }
.pa .bottom-bar .sos-msg .m{color: var(--fg-muted); margin: 0 6px;}
.pa .bottom-bar-right{
    margin-left: auto;
    font-family: var(--mono);
    font-size: 10.5px;
    color: var(--fg-subtle);
    letter-spacing: 0.04em;
  }
.pa .atmos{
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
      radial-gradient(ellipse at 20% 30%, rgba(55,138,221,0.08) 0%, transparent 50%),
      radial-gradient(ellipse at 80% 70%, rgba(29,224,149,0.05) 0%, transparent 50%);
    z-index: 1;
  }
.pa .gateway{
    position: absolute;
    width: 20px; height: 20px;
    margin-left: -10px; margin-top: -10px;
    z-index: 3;
  }
.pa .gateway::before{
    content: "";
    position: absolute; inset: -6px;
    border: 1px solid rgba(86,199,255,0.3);
    border-radius: 50%;
    animation: gwRing 3s ease-out infinite;
  }
.pa .gateway::after{
    content: "";
    position: absolute; inset: -14px;
    border: 1px solid rgba(86,199,255,0.15);
    border-radius: 50%;
    animation: gwRing 3s ease-out infinite;
    animation-delay: 1.5s;
  }
@keyframes gwRing{
    0%{transform: scale(0.6); opacity: 0.8;}
    100%{transform: scale(1.6); opacity: 0;}
  }
.pa .gateway-core{
    width: 20px; height: 20px;
    background: rgba(15,26,46,0.9);
    border: 1.5px solid var(--brand-blue-glow);
    border-radius: 4px;
    display: flex; align-items: center; justify-content: center;
    color: var(--brand-blue-glow);
    font-family: var(--mono);
    font-size: 8px;
    font-weight: 700;
    box-shadow: 0 0 10px rgba(86,199,255,0.4);
  }
@media (max-width: 1100px){.pa .app{grid-template-columns: 56px 1fr 300px;}

  }
@media (max-width: 720px){.pa .app{
      grid-template-columns: 1fr;
      grid-template-rows: 1fr auto;
    }
.pa .topbar, .pa .rail, .pa .panels, .pa .bottombar, .pa .map-controls, .pa .map-legend, .pa .map-scale{
      display: none !important;
    }
.pa .main{
      grid-column: 1 / -1;
      grid-row: 1 / 2;
    }
.pa .bottom-bar{
      grid-column: 1 / -1;
      grid-row: 2 / 3;
    }

  }


.pa{position:relative;width:100%;height:100%;overflow:hidden;font-family:"Inter",sans-serif}
.pa .app{height:100%;width:100%}
.pa .machines-layer{position:absolute;inset:0;pointer-events:none;z-index:5}
.pa .machine{position:absolute;width:30px;height:30px;margin-left:-15px;margin-top:-15px;cursor:pointer;pointer-events:auto;transition:opacity 240ms ease,filter 240ms ease}
.pa .machine .m-halo{position:absolute;inset:-9px;border-radius:50%;animation:workerPulse 2.4s ease-in-out infinite}
.pa .machine .m-icon{position:relative;width:30px;height:30px;display:flex;align-items:center;justify-content:center}
.pa .machine .m-icon svg{width:25px;height:25px;filter:drop-shadow(0 2px 5px rgba(0,0,0,0.6))}
.pa .machine.activo .m-icon{color:#1DE095}
.pa .machine.activo .m-halo{background:radial-gradient(circle,rgba(29,224,149,0.42) 0%,transparent 65%)}
.pa .machine.ocioso .m-icon{color:#F5B041}
.pa .machine.ocioso .m-halo{background:radial-gradient(circle,rgba(245,176,65,0.34) 0%,transparent 65%);animation-duration:3.4s}
.pa .machine.detenido .m-icon{color:#7C8BA6;opacity:0.9}
.pa .machine.detenido .m-halo{background:radial-gradient(circle,rgba(124,139,166,0.15) 0%,transparent 72%);animation:none}
.pa .machine.moving .m-halo{animation-duration:1.5s}
.pa .machine .m-trail{position:absolute;left:18px;top:18px;width:60px;height:2px;background:linear-gradient(90deg,rgba(86,199,255,0.7) 0%,transparent 100%);transform-origin:0 50%;pointer-events:none;animation:mTrailFade 1.8s ease-out infinite}
.pa .machine.anim-1{animation:mMove1 18s ease-in-out infinite}
.pa .machine.anim-2{animation:mMove2 22s ease-in-out infinite}
.pa .machine.anim-3{animation:mMove3 13s ease-in-out infinite}
.pa .machine.anim-4{animation:mMove4 26s ease-in-out infinite}
.pa .machine:hover{z-index:25}
.pa .machine:hover .worker-tooltip{opacity:1;transform:translateX(-50%) translateY(0)}
.pa .leg-row .sw.st{border-radius:50%;width:8px;height:8px}
.pa .bar-row{display:flex;align-items:center;gap:8px;font-size:10.5px;color:var(--fg-muted);margin:5px 0}
.pa .bar-row .bl{width:86px;font-family:var(--mono, monospace)}
.pa .bar-row .bt{flex:1;height:6px;border-radius:3px;background:#E4E9F1;overflow:hidden}
.pa .bar-row .bf{height:100%;border-radius:3px;background:#1D9E75}
.pa .bar-row .bv{width:34px;text-align:right;font-family:var(--mono, monospace);color:var(--fg)}
@keyframes mMove1{0%,100%{transform:translate(0,0)}25%{transform:translate(30px,8px)}50%{transform:translate(52px,0)}75%{transform:translate(26px,-7px)}}
@keyframes mMove2{0%,100%{transform:translate(0,0)}33%{transform:translate(-26px,12px)}66%{transform:translate(-44px,-5px)}}
@keyframes mMove3{0%,100%{transform:translate(0,0)}50%{transform:translate(34px,-18px)}}
@keyframes mMove4{0%,100%{transform:translate(0,0)}20%{transform:translate(14px,20px)}40%{transform:translate(-15px,26px)}60%{transform:translate(-34px,6px)}80%{transform:translate(-10px,-10px)}}
@keyframes mTrailFade{0%{opacity:0;transform:translateX(-44px) rotate(var(--tr,0deg)) scaleX(0.2)}30%{opacity:1}100%{opacity:0;transform:translateX(0) rotate(var(--tr,0deg)) scaleX(1)}}
