.warmup-desk{margin:16px 0;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:20px 22px;background:linear-gradient(135deg,#111820,#0e1319);border:1px solid #2a3440;border-radius:12px;box-shadow:0 12px 32px #0004,inset 0 1px #ffffff08}
.warmup-desk-status{display:flex;align-items:center;gap:15px;min-width:240px}
.warmup-desk-status h3{margin:5px 0 3px;font-size:18px}
.warmup-desk-status p{margin:0;color:var(--muted);font-size:12px}
.warmup-live-dot{width:15px;height:15px;border-radius:50%;background:#68717e;box-shadow:0 0 0 7px #68717e18;flex:0 0 auto}
.warmup-live-dot.live{background:var(--green);box-shadow:0 0 0 7px #4ce0a119,0 0 20px #4ce0a188;animation:warmup-pulse 1.5s infinite}
.warmup-desk-actions{display:flex;gap:12px}
.trade-button{min-width:205px;display:flex;align-items:center;gap:13px;border:1px solid;border-radius:8px;padding:13px 17px;color:#fff;text-align:left;font:700 14px inherit;cursor:pointer;box-shadow:inset 0 1px #ffffff22,0 6px 18px #0005;transition:transform .12s,filter .12s}
.trade-button:hover{filter:brightness(1.12);transform:translateY(-1px)}
.trade-button:active{transform:translateY(1px)}
.trade-button:disabled{opacity:.48;cursor:wait;transform:none}
.trade-button small{display:block;font-size:9px;letter-spacing:1.5px;margin-bottom:3px;color:#ffffffaa}
.trade-button.start{background:linear-gradient(#15985f,#087044);border-color:#32cb87}
.trade-button.stop{background:linear-gradient(#a52c3d,#741b2a);border-color:#e05469}
.trade-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:5px;background:#0003;font-size:15px}
@keyframes warmup-pulse{50%{box-shadow:0 0 0 11px #4ce0a108,0 0 25px #4ce0a1aa}}
@media(max-width:900px){.warmup-desk{align-items:stretch;flex-direction:column}.warmup-desk-actions{width:100%}.trade-button{flex:1;min-width:0}}
@media(max-width:560px){.warmup-desk-actions{flex-direction:column}.trade-button{width:100%}}
.live-monitor{position:relative;margin:16px 0 22px;padding:22px;overflow:hidden;border:1px solid #243441;border-radius:14px;background:radial-gradient(circle at 50% 48%,#12342f 0,#0c151b 26%,#090e13 65%);box-shadow:inset 0 1px #ffffff08,0 20px 50px #0005}
.monitor-top{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:flex-start}.monitor-top h3{margin:6px 0 0;font-size:20px}.monitor-clock{text-align:right}.monitor-clock span,.monitor-clock small{display:block;font-size:8px;letter-spacing:1.4px;color:var(--muted)}.monitor-clock span.live{color:var(--green)}.monitor-clock strong{display:block;margin:3px 0;font:700 23px ui-monospace,monospace;color:var(--cyan)}
.signal-stage{position:relative;min-height:220px;display:grid;grid-template-columns:minmax(130px,1fr) 1fr 92px 1fr minmax(130px,1fr);align-items:center;gap:8px}.signal-grid{position:absolute;inset:0;background-image:linear-gradient(#42e8d208 1px,transparent 1px),linear-gradient(90deg,#42e8d208 1px,transparent 1px);background-size:30px 30px;mask-image:radial-gradient(circle,#000 20%,transparent 72%)}
.signal-node{position:relative;z-index:2;text-align:center}.signal-node .node-ring{display:block;width:48px;height:48px;margin:0 auto 10px;border:1px solid #42505d;border-radius:50%;box-shadow:inset 0 0 0 8px #121b22}.live-monitor.operating .signal-node .node-ring{border-color:var(--cyan);box-shadow:inset 0 0 0 8px #10231f,0 0 20px #42e8d244}.signal-node small,.signal-node strong,.signal-node em{display:block}.signal-node small{font-size:8px;letter-spacing:1.5px;color:var(--muted)}.signal-node strong{margin:5px 0;font-size:13px}.signal-node em{font:normal 10px ui-monospace,monospace;color:#718090}
.signal-core{position:relative;z-index:3;width:84px;height:84px;display:grid;place-content:center;text-align:center;border:1px solid #42e8d277;border-radius:50%;background:#0d1d1b;box-shadow:0 0 0 12px #42e8d208,0 0 45px #42e8d222}.signal-core span{font-size:28px;font-weight:900;color:var(--cyan)}.signal-core small{font-size:7px;letter-spacing:1px;color:#8aafa9}.live-monitor.operating .signal-core{animation:core-breathe 2s infinite}
.signal-path{position:relative;height:2px;background:#28343d}.signal-path i{position:absolute;top:-2px;width:6px;height:6px;border-radius:50%;background:#40505d}.signal-path i:nth-child(1){left:15%}.signal-path i:nth-child(2){left:48%}.signal-path i:nth-child(3){left:82%}.live-monitor.operating .signal-path i{background:var(--cyan);box-shadow:0 0 9px var(--cyan);animation:path-blink 1.8s infinite}.live-monitor.operating .signal-path i:nth-child(2){animation-delay:.3s}.live-monitor.operating .signal-path i:nth-child(3){animation-delay:.6s}.signal-packet{display:none;position:absolute;right:0;top:-11px;color:var(--green);text-shadow:0 0 12px var(--green)}.live-monitor.transmitting .signal-packet{display:block;animation:packet-flight 1.1s ease-in-out}
.monitor-message{position:relative;z-index:2;display:flex;align-items:center;gap:13px;max-width:760px;margin:0 auto;padding:14px 17px;border:1px solid #263540;border-radius:9px;background:#0b1117cc}.monitor-message small{font-size:8px;letter-spacing:1.3px;color:var(--cyan)}.monitor-message p{margin:4px 0 0;color:#dbe4e8;font-size:12px}.message-status{font-size:24px;color:var(--muted)}.message-status.accepted{color:var(--green)}.message-status.failed{color:var(--red)}
.monitor-tape{position:relative;z-index:2;display:flex;gap:8px;margin-top:13px;overflow:hidden}.tape-event{flex:0 0 auto;padding:7px 10px;border:1px solid #25313b;border-radius:20px;color:#8f9ba5;font-size:9px}.tape-event b{color:#dbe4e8}.tape-event.accepted{border-color:#245d49}.tape-event.failed{border-color:#6b2934}
@keyframes core-breathe{50%{box-shadow:0 0 0 18px #42e8d204,0 0 58px #42e8d244}}@keyframes path-blink{0%,100%{opacity:.25}50%{opacity:1}}@keyframes packet-flight{from{right:100%;opacity:0}20%{opacity:1}to{right:-5%;opacity:0}}
@media(max-width:700px){.signal-stage{grid-template-columns:1fr 45px 74px 45px 1fr;min-height:195px}.signal-core{width:68px;height:68px}.signal-path i{display:none}.live-monitor{padding:17px}.monitor-message{align-items:flex-start}}
.warmup-scope-card{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:12px 0 16px;padding:18px 20px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.warmup-scope-card h3{margin:5px 0;font-size:16px}.warmup-scope-card p{margin:0;color:var(--muted);font-size:12px}.warmup-scope-action{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.warmup-scope-card.upgrade{border-color:#c68a3155}.warmup-scope-card.upgrade .warmup-scope-action .badge{color:#dba34d}@media(max-width:700px){.warmup-scope-card{align-items:stretch;flex-direction:column}.warmup-scope-action{justify-content:space-between}}

/* Dinamometro da Frota / Cockpit de Telemetria do Aquecedor */
.warmup-dyno-panel{background:linear-gradient(135deg,#0c131a,#080d12);border:1px solid #1f2c38;border-radius:12px;margin:16px 0;padding:20px}
.dyno-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:16px 0}
.dyno-gauge-card{background:#0e172088;border:1px solid #233240;border-radius:10px;padding:14px;display:flex;flex-direction:column;justify-content:space-between}
.dyno-gauge-card small{font-size:9px;letter-spacing:1.2px;color:var(--muted);text-transform:uppercase}
.dyno-rpm-val{margin:6px 0;display:flex;align-items:baseline;gap:6px}
.dyno-rpm-val strong{font:800 26px ui-monospace,monospace;color:#f59e0b}
.dyno-rpm-val strong.green{color:var(--green)}
.dyno-rpm-val span{font-size:11px;color:var(--muted)}
.dyno-bar-wrap{width:100%;height:6px;background:#1a2530;border-radius:3px;overflow:hidden;margin:6px 0}
.dyno-bar{height:100%;background:linear-gradient(90deg,#f59e0b,#ea580c);transition:width .4s ease}
.dyno-cylinders-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:14px;border-top:1px solid #1a2530;padding-top:14px}
.dyno-cylinder{background:#0b1117;border:1px solid #1e2a36;border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.dyno-cylinder.active{border-color:#10b98155}
.dyno-cylinder.waiting{border-color:#f59e0b44}
.dyno-cylinder.quarantine{border-color:#ef444466}
.dyno-cylinder-head{display:flex;justify-content:space-between;align-items:center}
.dyno-cylinder-name{font-weight:600;font-size:12px;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}
.dyno-cylinder-stats{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}
.dyno-cylinder-stats b{color:#cbd5e1}
