[hidden]{display:none!important}   /* hidden sempre esconde, mesmo com display definido na classe */
:root {
  /* ── Black + orange — identidade do laboratório ── */
  --bg:        #0a0a0a;
  --surface:   #111111;
  --surface2:  #1a1a1a;
  --border:    rgba(255,255,255,.08);
  --border2:   rgba(255,255,255,.15);

  /* ── Brand neutral ── */
  --navy:      #0e0e0e;
  --navy-dk:   #060606;
  --navy-lt:   #1c1c1c;
  --navy-bg:   rgba(255,255,255,.05);
  --navy-bd:   rgba(255,255,255,.12);

  --orange:    #e07020;
  --orange-dk: #b85a16;
  --orange-lt: #f0a050;
  --orange-bg: rgba(224,112,32,.10);
  --orange-bd: rgba(224,112,32,.30);

  /* ── Semantic colours (brighter for dark bg) ── */
  --blue:      #f59e0b;
  --blue-dk:   #d97706;
  --blue-bg:   rgba(245,158,11,.10);
  --teal:      #ea580c;
  --teal-bg:   rgba(234,88,12,.10);
  --violet:    #c05621;
  --violet-bg: rgba(192,86,33,.10);
  --success:   #4ade80;
  --success-bg:rgba(74,222,128,.10);
  --danger:    #f87171;
  --danger-bg: rgba(248,113,113,.10);
  --warning:   #fb923c;
  --warning-bg:rgba(251,146,60,.10);

  /* ── Text ── */
  --text-1:    rgba(255,255,255,.92);
  --text-2:    rgba(255,255,255,.68);
  --text-3:    rgba(255,255,255,.58);
  --text-4:    rgba(255,255,255,.40);

  /* ── Typography ── */
  --font:      'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --mono:      'Consolas', 'Courier New', monospace;

  /* ── Shape & shadow ── */
  --r:  8px;
  --r2: 12px;
  --sh-sm: 0 1px 3px rgba(0,0,0,.5),0 1px 2px rgba(0,0,0,.35);
  --sh-md: 0 4px 16px rgba(0,0,0,.6),0 2px 6px rgba(0,0,0,.35);
  --sh-lg: 0 12px 40px rgba(0,0,0,.75);
  --glow-o: 0 0 28px rgba(224,112,32,.28);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100%;background:var(--bg);color:var(--text-1);
  font-family:var(--font);font-size:14px;line-height:1.5;
  -webkit-font-smoothing:antialiased}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.22)}
select{background:var(--surface2);color:var(--text-1);border:1px solid var(--border);
  border-radius:var(--r);padding:6px 28px 6px 10px;font-family:var(--font);font-size:13px;
  outline:none;cursor:pointer;-webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='rgba(255,255,255,.38)' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 9px center}
select:focus{border-color:var(--orange)}
select option{background:var(--surface2)}
/* ── DROPDOWN BUTTON ─────────────────────────────────────────── */
.bdrop{position:relative;display:inline-flex}
.bdrop-menu{position:absolute;top:calc(100% + 5px);right:0;min-width:190px;
  background:var(--surface2);border:1px solid var(--border2);border-radius:var(--r);
  box-shadow:var(--sh-lg);z-index:300;display:none;flex-direction:column;
  padding:4px;pointer-events:none}
.bdrop.open .bdrop-menu{display:flex;pointer-events:auto}
.bdrop-item{background:none;border:none;text-align:left;padding:8px 13px;
  font-family:var(--font);font-size:12px;font-weight:500;color:var(--text-2);
  cursor:pointer;border-radius:5px;transition:background .12s,color .12s;white-space:nowrap}
.bdrop-item:hover{background:rgba(255,255,255,.05);color:var(--text-1)}
.bdrop-item.danger:hover{background:var(--danger-bg);color:var(--danger)}
.bdrop-item.sep{height:1px;background:var(--border);padding:0;margin:3px 0;pointer-events:none}
.bdrop-caret{font-size:8px;opacity:.5;margin-left:4px}
.sbar-sep{width:1px;height:18px;background:var(--border2);margin:0 2px;flex-shrink:0}

/* ── HEADER ─────────────────────────────────────────────────────── */
.hdr{background:#0a0a0a;position:sticky;top:0;z-index:200;
  box-shadow:0 1px 0 rgba(255,255,255,.06),0 2px 24px rgba(0,0,0,.9)}
.hdr::before{content:"";display:block;height:3px;
  background:linear-gradient(90deg,transparent,var(--orange-dk) 15%,var(--orange),var(--orange-lt),var(--orange),var(--orange-dk) 85%,transparent)}
.hdr-top{max-width:100%;margin:0 auto;
  display:flex;align-items:center;
  padding:0 28px;position:relative;overflow:hidden;height:72px}
.hdr-mesh-l,.hdr-mesh-r{position:absolute;top:0;height:100%;
  pointer-events:none;z-index:0}
.hdr-mesh-l{left:0;width:320px}
.hdr-mesh-r{right:0;width:280px}
.hdr-mesh-l svg,.hdr-mesh-r svg{width:100%;height:100%}
.hdr-brand{display:flex;align-items:center;gap:14px;
  flex-shrink:0;position:relative;z-index:1}
.brand-icone{width:54px;height:54px;border-radius:50%;flex-shrink:0;display:block;
  box-shadow:0 3px 14px rgba(0,0,0,.35)}
.brand-texts{display:flex;flex-direction:column;gap:0}
.brand-wordmark{display:block;height:46px;width:auto;align-self:flex-start}
.brand-sub{font-family:'Segoe UI',system-ui,sans-serif;font-size:8px;font-weight:600;
  color:var(--orange-lt);letter-spacing:.13em;text-transform:uppercase;
  white-space:nowrap;margin-top:5px;opacity:1}
.hdr-divider{display:none}
.hdr-right{margin-left:auto;display:flex;align-items:center;gap:10px;
  position:relative;z-index:1}
.sim-clk{font-family:var(--font);font-size:11px;font-weight:700;
  color:rgba(255,255,255,.9);letter-spacing:.02em;font-variant-numeric:tabular-nums;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);
  border-radius:6px;padding:5px 12px;display:flex;flex-direction:column;gap:2px}
.sim-clk-row{display:flex;align-items:center;gap:8px}
.sim-clk-lbl{font-size:8px;font-weight:600;letter-spacing:.12em;
  color:rgba(255,255,255,.40);text-transform:uppercase;width:28px;flex-shrink:0}
.sim-clk-val{color:rgba(255,255,255,.92)}
.cpill{display:flex;align-items:center;gap:7px;padding:6px 13px;
  border-radius:99px;font-size:10.5px;font-weight:700;
  font-family:var(--font);letter-spacing:.04em;text-transform:uppercase;
  border:1px solid;transition:all .3s}
.cpill--idle{color:rgba(255,255,255,.45);border-color:rgba(255,255,255,.15);background:rgba(255,255,255,.06)}
.cpill--conn{color:var(--text-2);border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.06)}
.cpill--live{color:var(--success);border-color:rgba(46,125,50,.30);background:rgba(46,125,50,.07)}
.cpill--err {color:var(--danger); border-color:rgba(198,40,40,.30);background:rgba(198,40,40,.07)}
.cpill--stale{color:var(--warning);border-color:rgba(230,81,0,.30);background:rgba(230,81,0,.07)}
.cdot{width:7px;height:7px;border-radius:50%;background:currentColor;
  animation:blink 1.3s ease infinite}
.cdot.stop{animation:none}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}
.hdr-nav-bar{background:rgba(6,6,6,.98);border-top:1px solid rgba(255,255,255,.06);
  backdrop-filter:blur(8px)}
.hdr-nav{display:flex;align-items:stretch;padding:0 20px}
.ntab{display:flex;align-items:center;gap:6px;padding:0 14px;border:none;
  background:none;cursor:pointer;font-family:var(--font);font-size:11.5px;
  font-weight:500;color:rgba(255,255,255,.48);
  border-bottom:2px solid transparent;transition:all .18s;white-space:nowrap;
  height:38px;letter-spacing:.01em}
.ntab:hover{color:rgba(255,255,255,.85);background:rgba(255,255,255,.05)}
.ntab.on{color:#fff;border-bottom-color:var(--orange);font-weight:700;
  background:rgba(224,112,32,.06)}
.ntab svg{flex-shrink:0;opacity:.7;transition:opacity .18s}
.ntab:hover svg,.ntab.on svg{opacity:1}
.ntab-badge-soon{font-size:8px;background:rgba(255,255,255,.12);color:rgba(255,255,255,.6);
  border-radius:3px;padding:1px 5px;margin-left:3px;font-weight:600;letter-spacing:.04em}
.nbadge{background:var(--orange);color:#fff;border-radius:99px;
  padding:1px 6px;font-size:9px;font-weight:700;font-family:var(--font);display:none}

/* ── WRAP ───────────────────────────────────────────────────────── */
.wrap{max-width:1480px;margin:0 auto;padding:18px 18px 40px}
.page{display:none}
.page.on{display:block;animation:pgIn .2s ease}
@keyframes pgIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

/* ── STATUS BAR ─────────────────────────────────────────────────── */
.sbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;
  justify-content:space-between;background:var(--surface);
  border:1px solid var(--border);border-radius:var(--r);
  padding:9px 16px;margin-bottom:16px;box-shadow:var(--sh-sm)}
.sbar-l{display:flex;align-items:center;gap:16px}
.sbar-r{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sstat{font-size:11.5px;color:var(--text-3);font-family:var(--font)}
.sstat b{color:var(--text-1);font-weight:700}
.stale-bar{display:none;align-items:center;gap:8px;padding:7px 14px;
  border-radius:var(--r);background:var(--warning-bg);
  border:1px solid rgba(230,81,0,.25);margin-bottom:12px;
  font-size:12px;font-weight:500;color:var(--warning)}
.stale-bar.show{display:flex}

/* ── SECTION TITLE ──────────────────────────────────────────────── */
.stitle{font-size:9px;font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;color:var(--text-3);
  margin:22px 0 12px;display:flex;align-items:center;gap:10px}
.stitle::before{content:"";width:3px;height:12px;
  background:linear-gradient(180deg,var(--orange-lt),var(--orange-dk));
  border-radius:2px;flex-shrink:0}
.stitle-aside{font-size:11px;font-weight:500;text-transform:none;letter-spacing:0;
  color:var(--text-3);margin-left:4px}
.stitle::after{content:"";flex:1;height:1px;
  background:linear-gradient(90deg,var(--border2),transparent)}

/* ── CARDS ──────────────────────────────────────────────────────── */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));
  gap:12px;margin-bottom:18px}
.card{background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r2);padding:15px 16px;box-shadow:var(--sh-sm);
  transition:box-shadow .3s,border-color .4s;position:relative;
  overflow:hidden}
.card:hover{box-shadow:var(--sh-md),0 0 0 1px rgba(255,255,255,.06)}
.card.live{box-shadow:var(--sh-sm)}
.card-lbl{font-size:11px;font-weight:500;color:var(--text-3);
  margin-bottom:7px;display:flex;align-items:center;justify-content:space-between}
.cvld{font-size:10px;font-family:var(--font);font-weight:600;
  padding:2px 6px;border-radius:3px;letter-spacing:.04em}
.cvld.ok{background:var(--success-bg);color:var(--success)}
.cvld.na{background:rgba(255,255,255,.05);color:var(--text-4)}
.card-val{font-size:24px;font-weight:700;color:var(--text-1);
  line-height:1;font-family:var(--font);letter-spacing:-.02em;
  font-variant-numeric:tabular-nums}
.card-unit{font-size:10px;color:var(--text-3);margin-top:3px;font-weight:500}
.card-delta{font-size:10px;font-family:var(--font);font-weight:600;margin-top:5px}
.card-delta.up{color:var(--danger)}.card-delta.dn{color:var(--teal)}.card-delta.zr{color:var(--text-4)}
.spark{margin-top:8px;height:26px}
.spark canvas{width:100%!important;height:26px!important}
.gauge{display:flex;align-items:center;gap:6px;margin-top:7px}
.gauge-bg{flex:1;height:3px;background:rgba(255,255,255,.07);border-radius:2px;overflow:hidden}
.gauge-fill{height:100%;border-radius:2px;background:var(--text-3);transition:width .45s}
.gauge-pct{font-family:var(--font);font-size:10px;color:var(--text-3);min-width:26px;text-align:right}
.cc-o{--cc:var(--orange)}.cc-b{--cc:var(--blue)}.cc-t{--cc:var(--teal)}
.cc-v{--cc:var(--violet)}.cc-g{--cc:var(--success)}.cc-w{--cc:var(--warning)}

/* ── CHART BOX ──────────────────────────────────────────────────── */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.grid1{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:16px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:16px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
@media(max-width:1100px){.grid4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.grid2,.grid3,.grid4{grid-template-columns:1fr}}
.cbox{background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r);padding:16px 18px;box-shadow:var(--sh-sm);
  display:flex;flex-direction:column;position:relative;overflow:hidden}
.cbox::before{content:"";position:absolute;top:10px;left:0;bottom:10px;width:2px;
  background:var(--ca,transparent);border-radius:0 2px 2px 0;opacity:.85}
.cbox-head{display:flex;align-items:flex-start;justify-content:space-between;
  margin-bottom:12px;flex-shrink:0}
.cbox-title{font-size:13px;font-weight:700;color:var(--text-1)}
.cbox-sub{font-size:10px;color:var(--text-3);margin-top:2px}
.cbox-ctrl{display:flex;gap:5px;flex-wrap:wrap;align-items:center;margin-left:8px}
.chip{padding:3px 9px;border-radius:4px;border:1px solid var(--border2);
  background:var(--surface2);font-family:var(--font);font-size:10px;font-weight:600;
  letter-spacing:.04em;color:var(--text-3);
  cursor:pointer;transition:all .15s}
.chip:hover,.chip.on{border-color:var(--blue);color:var(--blue);background:var(--blue-bg)}
.carea{position:relative;height:260px}
.carea canvas{width:100%!important;height:100%!important}
.carea-3d{position:relative;height:380px}
.nd{position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:8px;pointer-events:none;transition:opacity .4s}
.nd.hidden{opacity:0}
.nd-spin{width:28px;height:28px;border:2.5px solid rgba(232,119,34,.15);
  border-top-color:var(--orange);border-radius:50%;
  animation:ndSpin 1s linear infinite}
@keyframes ndSpin{to{transform:rotate(360deg)}}
.nd-txt{font-size:11px;color:var(--text-3);margin-top:4px;letter-spacing:.02em}
.ca-o{--ca:var(--orange)}.ca-b{--ca:var(--blue)}.ca-t{--ca:var(--teal)}
.ca-v{--ca:var(--violet)}.ca-g{--ca:var(--success)}

/* ── LOG ────────────────────────────────────────────────────────── */
.logbox{background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r2);padding:13px 15px;box-shadow:var(--sh-sm);
  height:170px;display:flex;flex-direction:column;overflow:hidden;margin-bottom:16px}
.log-ttl{font-size:9.5px;font-weight:700;
  letter-spacing:.06em;color:var(--text-3);margin-bottom:8px;
  display:flex;align-items:center;gap:7px}
.log-ttl::before{content:"●";font-size:7px;color:var(--success)}
.log-body{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:1px}
.lr{display:flex;gap:9px;font-family:var(--font);font-size:10px;line-height:1.9;animation:pgIn .2s}
.lr-ts{color:var(--text-4);flex-shrink:0}
.lr.info .lr-m{color:var(--text-2)}.lr.ok .lr-m{color:var(--success);font-weight:500}
.lr.warn .lr-m{color:var(--warning);font-weight:500}.lr.err .lr-m{color:var(--danger);font-weight:500}
.lr.alrt .lr-m{color:var(--orange);font-weight:600}

/* ── STATS PAGE ─────────────────────────────────────────────────── */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:12px;margin-bottom:16px}
.stat-card{background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r);padding:14px 16px;box-shadow:var(--sh-sm);
  border-left:3px solid var(--cc,var(--blue))}
.stat-name{font-size:11px;font-weight:600;color:var(--text-3);
  text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}
.stat-row{display:flex;justify-content:space-between;
  font-family:var(--font);font-size:11px;padding:3px 0;
  border-bottom:1px solid var(--border)}
.stat-row:last-child{border-bottom:none}
.stat-key{color:var(--text-3)}.stat-val{color:var(--text-1);font-weight:600}

/* ── ALERTS ─────────────────────────────────────────────────────── */
.abanner{display:none;align-items:center;gap:10px;padding:10px 15px;
  border-radius:var(--r);background:var(--danger-bg);
  border:1px solid rgba(198,40,40,.25);margin-bottom:12px;
  font-size:13px;font-weight:500;color:var(--danger);animation:shake .4s}
.abanner.show{display:flex}
@keyframes shake{0%,100%{transform:none}25%{transform:translateX(4px)}75%{transform:translateX(-4px)}}
.acfg{background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r2);padding:18px 20px;box-shadow:var(--sh-sm);
  margin-bottom:14px;border-left:4px solid var(--orange)}
.acfg-ttl{font-size:14px;font-weight:700;color:var(--text-1);margin-bottom:14px}
.acfg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:11px;margin-bottom:13px}
.af{display:flex;flex-direction:column;gap:5px}
.af label{font-size:10px;font-weight:600;text-transform:uppercase;
  letter-spacing:.1em;color:var(--text-3)}
.af input,.af select{background:var(--surface2);border:1px solid var(--border);
  border-radius:5px;padding:8px 10px;font-family:var(--font);font-size:12px;
  color:var(--text-1);outline:none;width:100%;transition:border-color .2s}
.af input:focus,.af select:focus{border-color:var(--orange)}
.tog-row{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:13px}
.tog-item{display:flex;align-items:center;gap:8px}
.tog-lbl{font-size:12px;font-weight:500;color:var(--text-2)}
.toggle{position:relative;width:38px;height:20px;flex-shrink:0}
.toggle input{opacity:0;width:0;height:0}
.tog-track{position:absolute;inset:0;background:var(--border2);
  border-radius:99px;cursor:pointer;transition:background .2s}
.toggle input:checked + .tog-track{background:var(--orange)}
.tog-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;
  border-radius:50%;background:#fff;box-shadow:var(--sh-sm);
  transition:left .2s;pointer-events:none}
.toggle input:checked ~ .tog-thumb{left:20px}
.aact{display:flex;flex-wrap:wrap;gap:8px}
.ahist{background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r2);padding:15px 17px;box-shadow:var(--sh-sm)}
.ahist-head{display:flex;align-items:center;gap:10px;margin-bottom:11px}
.ahist-ttl{font-size:13px;font-weight:600;color:var(--text-1)}
.ahist-cnt{font-family:var(--font);font-size:10px;color:var(--text-3);margin-left:auto}
.tbl-wrap{overflow-x:auto}
.tbl-wrap::-webkit-scrollbar{height:4px}
.tbl-wrap::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}
.atbl{width:100%;border-collapse:collapse;font-family:var(--font);font-size:10px}
.atbl th{background:var(--surface2);font-size:9px;font-weight:600;
  text-transform:uppercase;letter-spacing:.1em;color:var(--text-3);
  padding:7px 11px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}
.atbl td{padding:7px 11px;border-bottom:1px solid var(--border);
  color:var(--text-2);white-space:nowrap}
.atbl tr:last-child td{border-bottom:none}
.atbl tr.nw td{animation:pgIn .3s}
.atbl tr:hover td{background:var(--surface2)}
.abadge{display:inline-block;padding:2px 7px;border-radius:3px;
  font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.abadge.hi {background:var(--danger-bg); color:var(--danger); border:1px solid rgba(198,40,40,.2)}
.abadge.lo {background:var(--blue-bg);   color:var(--blue);   border:1px solid rgba(245,158,11,.2)}
.abadge.wax{background:var(--orange-bg); color:var(--orange); border:1px solid var(--orange-bd)}

/* ── DATA TABLE ─────────────────────────────────────────────────── */
.tbar{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-bottom:11px}
.tbar input{background:var(--surface);border:1px solid var(--border);
  border-radius:6px;padding:7px 11px;font-family:var(--font);font-size:12px;
  color:var(--text-1);outline:none;width:250px;transition:border-color .2s}
.tbar input:focus{border-color:var(--blue)}
.tinfo{margin-left:auto;font-family:var(--font);font-size:10px;color:var(--text-3)}
.dtbl-wrap{background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r2);overflow:auto;box-shadow:var(--sh-sm);
  max-height:calc(100vh - 240px)}
.dtbl-wrap::-webkit-scrollbar{width:6px;height:6px}
.dtbl-wrap::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}
.dtbl{width:100%;border-collapse:collapse;font-family:var(--font);font-size:10px}
.dtbl th{position:sticky;top:0;background:var(--surface2);font-size:9px;
  font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-3);
  padding:9px 12px;border-bottom:2px solid var(--border);
  text-align:left;cursor:pointer;user-select:none;white-space:nowrap;transition:color .15s}
.dtbl th:hover{color:var(--blue)}
.dtbl th.asc::after{content:" ↑"}.dtbl th.dsc::after{content:" ↓"}
.dtbl td{padding:6px 12px;border-bottom:1px solid var(--border);
  color:var(--text-2);white-space:nowrap}
.dtbl tr:last-child td{border-bottom:none}
.dtbl tr:hover td{background:var(--blue-bg)}
.dtbl tr.ar td:first-child{border-left:3px solid var(--danger)}
/* ── Simulações (programa simpetro) ── */
.runs-empty{background:var(--surface);border:1px dashed var(--border2);border-radius:var(--r2);
  padding:28px 24px;max-width:720px}
.runs-empty-t{font-size:14px;font-weight:600;color:var(--text-1);margin-bottom:6px}
.runs-empty-s{font-size:12px;color:var(--text-3);line-height:1.55}
.runs-empty code{font-family:var(--mono);color:var(--text-2)}
.run-sel{background:var(--surface);border:1px solid var(--border2);border-radius:6px;
  padding:7px 10px;font-family:var(--font);font-size:12px;color:var(--text-1);
  min-width:280px;max-width:520px;outline:none}
.run-sel:focus{border-color:var(--blue)}
.run-sel option{background:var(--surface2)}
.run-status{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
  padding:4px 9px;border-radius:4px;border:1px solid var(--border2);color:var(--text-2)}
.run-status.running::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--text-1);margin-right:6px;vertical-align:1px;animation:runPulse 1.6s ease-in-out infinite}
.run-status.failed{color:var(--danger);border-color:rgba(248,113,113,.35);background:var(--danger-bg)}
.run-status.stopped{color:var(--warning);border-color:rgba(251,146,60,.35)}
@keyframes runPulse{50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){.run-status.running::before{animation:none}}
.run-prog{background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);
  padding:11px 14px;margin-bottom:14px}
.run-prog-head{display:flex;justify-content:space-between;gap:12px;font-size:11px;
  color:var(--text-3);margin-bottom:8px;font-variant-numeric:tabular-nums}
.run-prog-head span:last-child{color:var(--text-1);font-weight:600}
.run-prog-track{height:6px;background:var(--surface2);border-radius:3px;overflow:hidden}
.run-prog-bar{height:100%;width:0;background:var(--text-2);transition:width .4s}
.runs-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(460px,1fr));gap:14px;margin-bottom:16px}
@media (max-width:640px){.runs-charts{grid-template-columns:1fr}.run-sel{min-width:0;width:100%}}
#runTbl td{color:var(--text-1);font-variant-numeric:tabular-nums}
#runTbl th{cursor:default}

/* ── Cenário (montar o caso no painel) ── */
.cen-empty-btn{margin-top:14px}
.cen-bar{gap:8px}
.cen-lbl{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;color:var(--text-3)}
.cen-name{background:var(--surface);border:1px solid var(--border2);border-radius:6px;padding:7px 10px;
  font-family:var(--font);font-size:12px;color:var(--text-1);width:220px;outline:none}
.cen-name:focus{border-color:var(--blue)}
.tinfo.cen-unsaved{color:var(--warning)}
.cen-msg{border-radius:8px;padding:9px 13px;font-size:12px;margin-bottom:12px;
  border:1px solid var(--border2);background:var(--surface);color:var(--text-1)}
.cen-msg.err{border-color:rgba(248,113,113,.35);background:var(--danger-bg);color:var(--danger)}
.cen-box{margin-bottom:14px}
.cen-pipe{margin:6px 0 4px}
.cen-pipe-h{display:flex;gap:14px;align-items:baseline;font-size:11px;color:var(--text-3);margin-bottom:4px}
.cen-pipe-h b{font-size:12px;color:var(--text-1)}
/* geometria dos dutos (tabela de pontos editável) */
.cen-geo{margin-bottom:14px}
.cen-geo-h{display:flex;gap:14px;align-items:center;font-size:11px;color:var(--text-3);margin-bottom:6px}
.cen-geo-h b{font-size:12px;color:var(--text-1)}
.cen-geo-h .btn{margin-left:auto}
.cen-geo .cen-in{width:100%;max-width:200px;font-variant-numeric:tabular-nums}
.cen-track{position:relative;height:92px;margin:0 14px;cursor:crosshair}
.cen-body{position:absolute;left:0;right:0;top:30px;height:10px;border-radius:5px;
  background:linear-gradient(var(--surface2),#2a2a2a);border:1px solid var(--border2)}
.cen-tick{position:absolute;top:70px;transform:translateX(-50%);font-size:9px;color:var(--text-4);
  font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none}
.cen-tick::before{content:"";position:absolute;left:50%;top:-8px;width:1px;height:5px;background:var(--border2)}
.cen-mk{position:absolute;top:27px;width:16px;height:16px;transform:translateX(-50%);cursor:grab;
  touch-action:none;z-index:2}
.cen-mk.s{border-radius:50%;background:var(--bg);border:3px solid var(--text-1)}
.cen-mk.v{top:26px;width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;
  border-bottom:16px solid var(--warning)}
.cen-mk.drag{cursor:grabbing;z-index:3}
.cen-mk.drag.s{border-color:var(--blue)}
.cen-mk-lbl{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);font-size:10px;
  color:var(--text-2);white-space:nowrap;pointer-events:none;max-width:140px;overflow:hidden;text-overflow:ellipsis}
.cen-mk.v .cen-mk-lbl{bottom:auto;top:20px;color:var(--warning)}
.cen-mk.esq .cen-mk-lbl{left:0;transform:none}
.cen-mk.dir .cen-mk-lbl{left:auto;right:0;transform:none}
.cen-legend{display:flex;gap:6px;align-items:center;font-size:10px;color:var(--text-3);margin-top:6px}
.cen-lg-s{display:inline-block;width:9px;height:9px;border-radius:50%;border:2px solid var(--text-1)}
.cen-lg-v{display:inline-block;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;
  border-bottom:9px solid var(--warning);margin-left:12px}
.cen-tbl{max-height:none}
.cen-mk.q{top:26px;width:16px;height:16px;border-radius:3px;background:#2a5f9e;border:2px solid #9cc3ee;transform:translateX(-50%) rotate(45deg)}
.cen-mk.q .cen-mk-lbl{transform:translateX(-50%) rotate(-45deg);bottom:auto;top:20px;color:#9cc3ee}
.cen-mk.q.fixo{cursor:default;opacity:.75;border-style:dashed}
.cen-lg-q{display:inline-block;width:8px;height:8px;background:#2a5f9e;border:1px solid #9cc3ee;transform:rotate(45deg);margin-left:12px}
.cen-fixo td{color:var(--text-3)}
.cen-tag{font-size:9px;padding:1px 5px;border-radius:4px;background:rgba(90,150,220,.15);color:#9cc3ee;margin-left:4px}
.cen-tbl .dtbl th{cursor:default}
.cen-tbl .dtbl td{vertical-align:middle;color:var(--text-1)}
.cen-in{background:var(--bg);border:1px solid var(--border2);border-radius:5px;padding:5px 8px;
  font-family:var(--font);font-size:11px;color:var(--text-1);outline:none;min-width:120px}
.cen-in:focus{border-color:var(--blue)}
.cen-num{min-width:0;width:96px;font-variant-numeric:tabular-nums}
.cen-chips{white-space:normal!important}
.cen-chip{background:transparent;border:1px solid var(--border2);border-radius:12px;padding:3px 9px;margin:2px 3px 2px 0;
  font-family:var(--font);font-size:10px;color:var(--text-3);cursor:pointer}
.cen-chip.on{border-color:var(--text-1);color:var(--text-1);background:rgba(255,255,255,.07)}
.cen-chip-add{border-style:dashed}
.cen-vazio{text-align:center;color:var(--text-3)!important;padding:16px!important}
/* aba Plugins: passos de instalação */
.plug-passos{margin:0 18px 12px 36px;padding:0;font-size:13px;line-height:1.65;color:var(--text-2)}
.plug-passos li{margin-bottom:6px}
.plug-passos code{font-size:12px}
.cen-params{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:12px}
.cen-field{display:flex;flex-direction:column;gap:5px;font-size:11px;color:var(--text-3)}
.cen-field input{background:var(--bg);border:1px solid var(--border2);border-radius:6px;padding:7px 10px;
  font-family:var(--font);font-size:12px;color:var(--text-1);width:200px;outline:none}
.cen-field input:focus{border-color:var(--blue)}
.cen-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin:4px 0 22px}
.cen-lab{margin-right:auto;font-size:11px;color:var(--text-3);display:flex;align-items:center;gap:7px}
.cen-dot{width:8px;height:8px;border-radius:50%;border:1.5px solid var(--text-3);display:inline-block}
.cen-dot.on{background:var(--success);border-color:var(--success)}
.cen-pcs{background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);padding:10px 14px;margin:-8px 0 18px}
.cen-pcs-t{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);margin-bottom:4px}
.cen-pc{display:flex;gap:10px;align-items:center;padding:6px 0;border-top:1px solid var(--border);font-size:12px}
.cen-pc b{color:var(--text-1)}
.cen-pc span:not(.cen-dot){color:var(--text-3);font-size:11px}
.cen-pc .btn{margin-left:auto}
.cen-job{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2)}
.cen-job.failed{color:var(--danger)}
.cen-job.cancelled{color:var(--text-4)}
.cen-job-msg{font-size:10px;color:var(--text-3)}
.cen-job-acoes{display:flex;gap:6px;white-space:nowrap}
.cen-teste{color:var(--warning);font-weight:600}
@media (max-width:640px){.cen-name{width:100%}.cen-track{margin:0 8px}}

/* ── Simulações por sensor e Painel da simulação atual ── */
.seg{display:inline-flex;border:1px solid var(--border2);border-radius:6px;overflow:hidden}
.seg-b{background:transparent;border:0;padding:6px 11px;font-family:var(--font);font-size:11px;color:var(--text-3);cursor:pointer}
.seg-b+.seg-b{border-left:1px solid var(--border2)}
.seg-b.on{background:rgba(255,255,255,.09);color:var(--text-1);font-weight:600}
.rs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:14px;margin-bottom:16px}
.rs-box{padding-bottom:10px;transition:box-shadow .3s}
.rs-box.rs-flash{box-shadow:0 0 0 2px var(--text-2)}
.rs-head{display:flex;gap:10px;align-items:flex-start;margin-bottom:8px}
.rs-cor{flex:none;width:12px;height:12px;border-radius:3px;margin-top:3px}
.rs-var{border-top:1px solid var(--border);padding-top:8px;margin-top:8px}
.rs-var-h{display:flex;justify-content:space-between;align-items:baseline;font-size:11px;color:var(--text-3);margin-bottom:2px}
.rs-var-h b{font-size:14px;color:var(--text-1);font-variant-numeric:tabular-nums}
.rs-area{height:130px}
.rs-cmp{height:320px}
.zoom-info{display:flex;gap:10px;align-items:center;margin-bottom:10px;font-size:12px;color:var(--text-1);font-variant-numeric:tabular-nums}
.zoom-dica{font-size:10px;color:var(--text-4);margin:-4px 0 10px}
.cmp-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px;font-size:12px;color:var(--text-3)}
.cmp-leg{display:flex;gap:6px;align-items:center;font-size:11px}
.cmp-leg i{display:inline-block;width:22px;height:0;border-top:2px solid var(--text-1);margin-left:8px}
.cmp-leg i.cmp-b{border-top-style:dashed}
.cmp-tab{grid-column:1/-1}
.cmp-vazio{grid-column:1/-1}
.pa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-bottom:18px}
.pa-card{display:block;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);
  padding:12px 14px;cursor:pointer;font-family:var(--font);color:inherit;transition:border-color .15s}
.pa-card:hover,.pa-card:focus-visible{border-color:var(--border2);outline:none;background:var(--surface2)}
.pa-card-h{display:flex;gap:9px;align-items:flex-start;margin-bottom:8px}
.pa-card-t{font-size:13px;font-weight:700;color:var(--text-1)}
.pa-card-s{font-size:10px;color:var(--text-3);margin-top:1px}
.pa-var{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:10px;padding:6px 0;border-top:1px solid var(--border)}
.pa-var-n{font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em}
.pa-var-v{grid-row:2;font-size:18px;font-weight:700;color:var(--text-1);font-variant-numeric:tabular-nums}
.pa-var-v span{font-size:11px;font-weight:500;color:var(--text-3)}
.pa-spark{grid-row:1/3;grid-column:2;width:96px;height:30px;align-self:center}
.pa-perfil{height:220px}
@media (max-width:640px){.rs-grid{grid-template-columns:1fr}}
/* eventos do cenário e balanço de vazão */
.ev-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);padding:10px 14px;margin-bottom:14px}
.ev-box:empty{display:none}
.ev-head{display:flex;gap:12px;align-items:center;font-size:11px;color:var(--text-3);margin-bottom:6px}
.ev-head b{color:var(--text-1);font-size:12px}
.ev-cego{margin-left:auto;display:flex;gap:6px;align-items:center;cursor:pointer}
.ev-item{display:flex;gap:10px;align-items:flex-start;padding:6px 0;border-top:1px solid var(--border)}
.ev-ico{flex:none;width:0;height:0;margin-top:3px;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:11px solid var(--text-3)}
.ev-item.on .ev-ico{border-bottom-color:var(--warning)}
.ev-t{font-size:12px;color:var(--text-1);font-weight:600}
.ev-s{font-size:11px;color:var(--text-3);margin-top:2px}
.ev-s b{color:var(--text-1)}
.ev-s b.ev-on{color:var(--warning)}
.bal-wrap{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:14px;margin-bottom:18px}
.bal-trechos{display:flex;flex-direction:column;gap:8px}
.bal-t{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border2);border-radius:8px;padding:9px 12px}
.bal-n{font-size:13px;font-weight:700;color:var(--text-1);font-variant-numeric:tabular-nums}
.bal-s{font-size:10px;color:var(--text-3);margin-top:1px}
.bal-st{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);margin-top:6px}
.bal-d{font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums}
.bal-t.alarme{border-color:rgba(248,113,113,.45);border-left-color:var(--danger);background:var(--danger-bg)}
.bal-t.alarme .bal-st{color:var(--danger)}
.bal-t.alarme .bal-d{color:var(--text-1)}
.bal-chart{margin:0}
.bal-furo{font-size:12px;color:var(--text-1);margin-top:4px}
.bal-furo b{color:var(--danger)}
.bal-est{font-size:10px;color:var(--text-3)}
.bal-d.bal-sem{font-size:10px;color:var(--text-3);margin-top:3px}
@media (max-width:900px){.bal-wrap{grid-template-columns:1fr}}

/* ── Espaço em disco ── */
.esp{background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);padding:9px 14px;margin-bottom:12px;max-width:560px}
.esp-l{font-size:11px;color:var(--text-3);margin-bottom:6px;font-variant-numeric:tabular-nums}
.esp-l b{color:var(--text-1);margin-right:6px}
.esp-track{height:6px;background:var(--surface2);border-radius:3px;overflow:hidden}
.esp-track.mini{display:inline-block;width:90px;height:5px;vertical-align:middle;margin-right:6px}
.esp-bar{height:100%;background:var(--text-2)}
.esp-bar.alto{background:var(--warning)}
.esp-bar.cheio{background:var(--danger)}
.esp-aviso{font-size:11px;margin-top:6px;color:var(--warning)}
.esp-aviso.cheio{color:var(--danger)}
.esp-alerta{color:var(--danger)!important}

/* ── Administração ── */
.adm-nav{margin-bottom:16px;flex-wrap:wrap}
.adm-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-bottom:18px}
.adm-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);padding:12px 14px}
.adm-card.alerta{border-color:rgba(251,146,60,.45)}
.adm-card-t{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3)}
.adm-card-v{font-size:22px;font-weight:700;color:var(--text-1);margin:4px 0 2px;font-variant-numeric:tabular-nums}
.adm-card.alerta .adm-card-v{color:var(--warning)}
.adm-card-s{font-size:11px;color:var(--text-3)}
.adm-avisos{display:flex;flex-direction:column;gap:6px;max-width:820px}
.adm-aviso{border:1px solid var(--border);border-left:3px solid var(--text-3);border-radius:6px;padding:8px 12px;font-size:12px;color:var(--text-1);background:var(--surface)}
.adm-aviso.ok{border-left-color:var(--success)}
.adm-aviso.baixo{border-left-color:var(--text-2)}
.adm-aviso.medio{border-left-color:var(--warning)}
.adm-aviso.alto{border-left-color:var(--danger);background:var(--danger-bg)}
.adm-disco{max-width:none;font-size:12px;color:var(--text-2)}
.adm-pcs-topo{display:flex;gap:16px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.adm-pcs-txt{flex:1;min-width:280px;font-size:12px;color:var(--text-3);line-height:1.5}
.adm-pcs-txt b{color:var(--text-1)}
.adm-sem-exe{font-size:11px;color:var(--text-3)}

/* ── Parafina em manutenção; Estatísticas/Alertas/Dados da simulação atual ── */
.manut{background:var(--surface);border:1px solid rgba(251,146,60,.35);border-left:3px solid var(--warning);
  border-radius:var(--r2);padding:14px 18px;margin-bottom:16px;max-width:820px}
.manut-t{font-size:14px;font-weight:700;color:var(--warning);margin-bottom:6px}
.manut-s{font-size:12px;color:var(--text-2);line-height:1.6}
.manut-s b{color:var(--text-1)}
.an-novo{margin-bottom:18px}
.an-cab{background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);padding:10px 14px;margin-bottom:14px}
.an-cab-l{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--text-1)}
.an-cab-s{font-size:11px;color:var(--text-3);margin-top:4px}
.an-box{margin-bottom:14px}
.an-tbl td{font-variant-numeric:tabular-nums}
.an-tbl .rs-cor{display:inline-block;vertical-align:-1px;margin:0 6px 0 0}
.al-prio{font-size:10px;font-weight:700;letter-spacing:.06em;padding:2px 7px;border-radius:4px;border:1px solid var(--border2);color:var(--text-2)}
.al-prio.alta{color:#fff;background:var(--danger);border-color:var(--danger)}
.al-prio.media{color:var(--warning);border-color:rgba(251,146,60,.5)}
tr.al-alta td{background:var(--danger-bg)}
.al-estado{font-size:11px;white-space:normal!important;max-width:240px}
.al-estado.ok{color:var(--text-3)!important}
.al-estado.nrec{color:var(--danger)!important;font-weight:700}
.al-estado.nrec-n{color:var(--warning)!important;font-weight:600}
tr.al-nrec td:first-child{box-shadow:inset 3px 0 0 var(--danger)}
@keyframes alPisca{50%{opacity:.35}}
tr.al-nrec .al-prio{animation:alPisca 1.2s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){tr.al-nrec .al-prio{animation:none}}
.al-ack-todos{margin-left:10px;text-transform:none;letter-spacing:0}
.pa-alarme{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--danger-bg);border:1px solid rgba(248,113,113,.5);
  border-left:4px solid var(--danger);border-radius:var(--r2);padding:10px 14px;margin-bottom:14px;font-size:12px;color:var(--text-1)}
.pa-alarme b{color:var(--danger);letter-spacing:.06em}
.pa-ack{background:var(--danger);border-color:var(--danger);color:#fff}

/* ── Organizar simulações ── */
.esp-linha{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}
.esp-linha .esp{flex:1;min-width:280px}
.ger{margin-bottom:14px}
.ger-acoes{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:10px;font-size:12px;color:var(--text-2)}
.ger-acoes span{margin-right:auto}
.ger-nota{white-space:normal!important;max-width:280px;color:var(--text-3)!important;font-size:11px}
.ger-teste{font-size:9px;font-weight:700;text-transform:uppercase;color:var(--warning);border:1px solid rgba(251,146,60,.4);border-radius:3px;padding:0 4px}
.run-nota{font-size:12px;color:var(--text-2);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--text-3);
  border-radius:6px;padding:7px 12px;margin-bottom:12px;white-space:pre-wrap}

/* Tabela: valores neutros (cor só para alarme) */
.tdt,.tdp,.tds,.tdw,.tdn{color:var(--text-1);font-variant-numeric:tabular-nums}

/* ── BUTTONS ────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:5px;padding:7px 15px;
  border-radius:7px;border:1px solid;cursor:pointer;font-family:var(--font);
  font-size:12px;font-weight:600;background:transparent;transition:all .15s}
.btn-primary{background:var(--blue);border-color:var(--blue);color:#fff}
.btn-primary:hover{opacity:.85}
.btn-orange{background:var(--orange);border-color:var(--orange);color:#fff;
  box-shadow:0 3px 12px rgba(224,112,32,.30)}
.btn-orange:hover{background:var(--orange-dk);border-color:var(--orange-dk)}
.btn-ol{border-color:var(--border2);color:var(--text-2);background:rgba(255,255,255,.04)}
.btn-ol:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-bg)}
.btn-danger{border-color:rgba(248,113,113,.25);color:var(--danger)}
.btn-danger:hover{background:var(--danger-bg)}
.btn-success{border-color:rgba(74,222,128,.25);color:var(--success)}
.btn-success:hover{background:var(--success-bg)}
.btn-sm{padding:5px 11px;font-size:11px}

/* ── TOAST ──────────────────────────────────────────────────────── */
.toast{position:fixed;bottom:20px;right:20px;z-index:500;
  display:flex;align-items:flex-start;gap:11px;
  background:#161616;border:1px solid rgba(255,255,255,.10);
  border-radius:var(--r2);padding:14px 17px;box-shadow:var(--sh-lg);
  transform:translateY(80px);opacity:0;
  transition:transform .35s cubic-bezier(.34,1.56,.64,1),opacity .3s;
  min-width:290px;max-width:370px;backdrop-filter:blur(8px)}
.toast.show{transform:translateY(0);opacity:1}
.toast-stripe{position:absolute;top:0;left:0;right:0;height:3px;
  border-radius:var(--r2) var(--r2) 0 0}
.toast-ico{font-size:20px;flex-shrink:0}
.toast-ttl{font-size:13px;font-weight:700;margin-bottom:2px}
.toast-body{font-size:11px;color:var(--text-3);font-family:var(--font)}

/* ── FLASH ──────────────────────────────────────────────────────── */
.flash{position:fixed;inset:0;pointer-events:none;z-index:400;
  opacity:0;transition:opacity .12s}
.flash.hi{background:radial-gradient(ellipse at center,rgba(198,40,40,.12) 0%,transparent 65%)}
.flash.lo{background:radial-gradient(ellipse at center,rgba(245,158,11,.12) 0%,transparent 65%)}
.flash.wx{background:radial-gradient(ellipse at center,rgba(232,119,34,.10) 0%,transparent 65%)}
.flash.show{opacity:1}

/* ── USER BADGE (header direito) ─────────────────────────────────── */
.user-badge{display:flex;align-items:center;gap:10px;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);
  border-radius:var(--r);padding:5px 10px 5px 6px;margin-left:6px}
.user-badge-ico{width:34px;height:34px;border-radius:50%;
  background:var(--orange);
  color:#fff;font-family:var(--font);font-weight:700;font-size:14px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  box-shadow:0 2px 8px rgba(224,112,32,.45)}
.user-badge-info{line-height:1.25}
.user-badge-name{font-size:12px;font-weight:600;color:rgba(255,255,255,.92)}
.user-badge-role{font-size:9.5px;color:rgba(255,255,255,.52);font-weight:500}
.logout-btn{background:none;border:none;cursor:pointer;font-size:16px;
  color:rgba(255,255,255,.45);padding:2px 4px;border-radius:4px;transition:color .15s}
.logout-btn:hover{color:var(--danger)}
.apikey-btn{background:none;border:1px solid rgba(255,255,255,.18);cursor:pointer;
  font-size:9.5px;font-weight:600;color:rgba(255,255,255,.55);padding:3px 7px;
  border-radius:4px;transition:all .15s;letter-spacing:.04em}
.apikey-btn:hover{color:var(--orange);border-color:var(--orange)}

/* ── PLUGIN SETUP MODAL ──────────────────────────────────────────── */
.apikey-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:900;
  display:flex;align-items:center;justify-content:center}
.apikey-modal-bg.hidden{display:none}
.apikey-modal{background:#141414;border:1px solid rgba(255,255,255,.12);
  border-radius:12px;padding:28px 28px 24px;width:480px;max-width:95vw}
.apikey-modal h3{margin:0 0 4px;color:#fff;font-size:15px}
.apikey-modal .sub{color:rgba(255,255,255,.45);font-size:11.5px;margin:0 0 20px}
.setup-step{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px}
.setup-num{min-width:26px;height:26px;border-radius:50%;background:var(--orange);
  color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;
  justify-content:center;margin-top:1px}
.setup-text{font-size:12.5px;color:rgba(255,255,255,.75);line-height:1.5}
.setup-text strong{color:#fff}
.setup-dl{display:inline-flex;align-items:center;gap:7px;margin-top:8px;
  background:var(--orange);border:none;border-radius:7px;padding:9px 18px;
  cursor:pointer;color:#fff;font-size:12px;font-weight:700;transition:opacity .15s}
.setup-dl:hover{opacity:.85}
.setup-regen{margin-top:18px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:space-between}
.setup-regen span{font-size:11px;color:rgba(255,255,255,.35)}
.setup-regen button{background:none;border:1px solid rgba(255,255,255,.15);
  border-radius:5px;padding:5px 12px;cursor:pointer;color:rgba(255,255,255,.45);
  font-size:11px;transition:all .15s}
.setup-regen button:hover{color:var(--danger);border-color:var(--danger)}
.apikey-close{float:right;background:none;border:none;color:rgba(255,255,255,.4);
  font-size:18px;cursor:pointer;line-height:1}
.apikey-close:hover{color:#fff}

/* ── LOGIN ───────────────────────────────────────────────────────────
   Padrão industrial: superfícies neutras, laranja só na marca e na ação
   principal, foco visível pelo teclado, estados com texto (não só cor). */
.login-overlay{position:fixed;inset:0;z-index:9999;background:var(--bg);overflow:auto}
.login-overlay.hidden{display:none}
body:has(.login-overlay:not(.hidden)){overflow:hidden}  /* painel por trás não rola */
.lg-shell{min-height:100%;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(420px,1fr)}

/* Coluna da identidade: grade técnica discreta + filete da marca no topo */
.lg-brand{position:relative;display:flex;flex-direction:column;justify-content:space-between;
  gap:28px;padding:44px 56px 32px;background-color:var(--surface);
  background-image:
    linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);
  background-size:32px 32px;border-right:1px solid var(--border)}
.lg-brand::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--orange)}
.lg-brand-top{max-width:600px}
.lg-product{font-size:15px;line-height:1.6;color:var(--text-2);margin:0;max-width:52ch}
.lg-logo{margin-bottom:22px}
.lg-logo img{display:block;height:92px;width:auto;max-width:100%}
.lg-headline{font-size:26px;line-height:1.25;font-weight:700;color:var(--text-1);
  letter-spacing:-.015em;margin:0 0 12px;max-width:22ch}
.lg-figure{margin:0;padding:18px 20px;background:rgba(0,0,0,.25);width:100%;
  border:1px solid var(--border);border-radius:var(--r2);max-width:760px}
.lg-schematic{display:block;width:100%;height:auto;max-height:28vh}
.lg-schematic text{fill:rgba(255,255,255,.55)}
.lg-schematic text.lg-sch-muted{fill:rgba(255,255,255,.35)}
.lg-pillars{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:760px}
.lg-pillars li{display:flex;flex-direction:column;gap:8px;padding-top:14px;border-top:1px solid var(--border2)}
.lg-pillars svg{width:20px;height:20px;fill:none;stroke:var(--text-2);stroke-width:1.5;
  stroke-linecap:round;stroke-linejoin:round}
.lg-pillars b{display:block;font-size:13.5px;font-weight:600;color:var(--text-1);margin-bottom:3px}
.lg-pillars span{font-size:12.5px;line-height:1.5;color:var(--text-3)}
.lg-inst{display:flex;align-items:center;gap:14px;padding-top:20px;border-top:1px solid var(--border)}
.lg-inst-logo{width:46px;height:auto;flex-shrink:0;opacity:.9}
.lg-inst-name{font-size:13px;font-weight:600;color:var(--text-1)}
.lg-inst-sub{font-size:11.5px;color:var(--text-3);margin-top:2px;line-height:1.5}

/* Coluna do formulário */
.lg-main{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;
  padding:28px 40px 24px;gap:28px}
.lg-topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;color:var(--text-3)}
.lg-env{display:inline-flex;align-items:center;gap:7px;padding:4px 10px;border-radius:99px;
  border:1px solid var(--border2);font-weight:600;letter-spacing:.02em}
.lg-env::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--text-3)}
.lg-env.prod{color:var(--text-1)}
.lg-env.prod::before{background:var(--success)}
.lg-env.local{color:var(--warning);border-color:rgba(251,146,60,.35)}
.lg-env.local::before{background:var(--warning)}
.lg-ver{font-variant-numeric:tabular-nums}
.lg-center{width:100%;max-width:420px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
.lg-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);padding:30px 30px 26px}
.lg-sys{border:1px solid var(--border);border-radius:var(--r2);padding:14px 18px;font-size:12.5px}
.lg-sys-title{font-size:11px;font-weight:700;color:var(--text-3);letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px}
.lg-sys-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 0;
  color:var(--text-3);border-top:1px solid var(--border)}
.lg-sys-row:first-of-type{border-top:none}
.lg-sys-row > span:last-child{color:var(--text-2);font-variant-numeric:tabular-nums;text-align:right}
.lg-help{font-size:12.5px;color:var(--text-3);margin:0;text-align:center}
.lg-note{font-size:12px;line-height:1.5;color:var(--text-3);margin:14px 0 0;text-align:center}
.lg-forgot{margin:-6px 0 14px}
.lg-link{background:none;border:none;padding:0;font-family:var(--font);font-size:12.5px;
  color:var(--text-2);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.lg-link:hover{color:var(--text-1)}
.lg-link:focus-visible{outline:2px solid var(--text-2);outline-offset:2px;border-radius:2px}
.lg-forgot-txt{margin:8px 0 0;font-size:12.5px;line-height:1.5;color:var(--text-2);
  background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:6px;padding:9px 12px}
.lg-forgot-txt[hidden]{display:none}
.modal-hint{font-size:12.5px;line-height:1.5;color:var(--text-3);margin:-10px 0 18px}
@media (prefers-reduced-motion:reduce){ .lg-pulsos{display:none} }
.lg-title{font-size:24px;font-weight:700;color:var(--text-1);margin:0 0 6px;letter-spacing:-.01em}
.lg-hint{font-size:13px;color:var(--text-3);margin:0 0 28px;line-height:1.5}
.lg-label{display:block;font-size:12px;font-weight:600;color:var(--text-2);margin-bottom:6px}
.login-input{width:100%;background:var(--surface2);border:1px solid var(--border2);
  border-radius:var(--r);padding:11px 13px;font-family:var(--font);font-size:14px;
  color:var(--text-1);outline:none;transition:border-color .15s,box-shadow .15s;margin-bottom:18px}
.login-input::placeholder{color:var(--text-4)}
.login-input:focus{border-color:var(--text-3);box-shadow:0 0 0 3px rgba(255,255,255,.08)}
.lg-pass{position:relative}
.lg-pass .login-input{padding-right:84px}
.lg-eye{position:absolute;right:6px;top:6px;height:32px;padding:0 10px;border-radius:6px;
  border:1px solid transparent;background:transparent;color:var(--text-3);
  font-family:var(--font);font-size:12px;font-weight:600;cursor:pointer}
.lg-eye:hover{color:var(--text-1);background:rgba(255,255,255,.06)}
.lg-eye:focus-visible{outline:2px solid var(--text-2);outline-offset:1px}
.lg-caps{margin:-10px 0 14px;font-size:12px;color:var(--warning);display:flex;align-items:center;gap:6px}
.lg-caps::before{content:"\25B2";font-size:9px}
.lg-caps[hidden]{display:none}
.login-btn{width:100%;background:var(--orange);border:none;border-radius:var(--r);
  padding:12px;font-family:var(--font);font-size:14px;font-weight:700;color:#fff;
  cursor:pointer;transition:background .15s;margin-top:4px}
.login-btn:hover{background:var(--orange-dk)}
.login-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}
.login-btn:disabled{opacity:.6;cursor:not-allowed}
.login-err{background:var(--danger-bg);border:1px solid rgba(248,113,113,.28);
  border-left:3px solid var(--danger);border-radius:6px;padding:9px 12px;font-size:12.5px;
  color:var(--danger);margin:0 0 14px;display:none;font-family:var(--font);line-height:1.45}
.login-err.show{display:block}
.login-err.info{background:rgba(251,191,36,.08);border-color:rgba(251,191,36,.28);
  border-left-color:var(--warning);color:var(--warning)}
.lg-status{display:inline-flex;align-items:center;gap:8px}
.lg-dot{width:8px;height:8px;border-radius:50%;background:var(--text-4);flex-shrink:0}
.lg-status.ok .lg-dot{background:var(--success)}
.lg-status.err,.lg-sys-row > .lg-status.err{color:var(--danger)}
.lg-status.err .lg-dot{background:var(--danger)}
.lg-foot{font-size:11.5px;color:var(--text-3);text-align:center}

/* Modal de alterar senha */
.pw-ok{background:var(--success-bg);border:1px solid rgba(74,222,128,.25);border-left:3px solid var(--success);
  border-radius:6px;padding:9px 12px;font-size:12.5px;color:var(--success);margin:0 0 4px}
.pw-ok[hidden]{display:none}

/* Telas baixas (ex.: notebook 1366×768): compacta a coluna de identidade */
@media (min-width:901px) and (max-height:820px){
  .lg-brand{gap:20px;padding:32px 48px 24px}
  .lg-logo{margin-bottom:14px}
  .lg-logo img{height:70px}
  .lg-headline{font-size:22px;margin-bottom:8px}
  .lg-product{font-size:13.5px}
  .lg-pillars span{display:none}
  .lg-pillars li{padding-top:10px;gap:6px}
}

@media (max-width:900px){
  .lg-shell{grid-template-columns:1fr}
  .lg-brand{padding:32px 24px 24px;gap:24px;border-right:none;border-bottom:1px solid var(--border)}
      .lg-product{font-size:13.5px}
  .lg-headline{font-size:20px}
  .lg-logo img{height:80px}
  .lg-figure,.lg-pillars{display:none}
  .lg-main{padding:20px 16px 24px;gap:20px}
  .lg-card{padding:24px 20px}
}

/* ── ADMIN PANEL & PLUGIN DIAG ───────────────────────────────────── */
.admin-section{background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r2);padding:20px 22px;box-shadow:var(--sh-sm);
  margin-bottom:16px}
.admin-section-title{font-size:13px;font-weight:700;color:var(--text-1);
  margin-bottom:16px;display:flex;align-items:center;gap:8px}
.user-table{width:100%;border-collapse:collapse;font-family:var(--font);font-size:11px}
.user-table th{background:rgba(255,255,255,.05);color:rgba(255,255,255,.55);
  padding:9px 12px;text-align:left;font-size:9px;font-weight:600;
  text-transform:uppercase;letter-spacing:.1em}
.user-table th:first-child{border-radius:6px 0 0 0}
.user-table th:last-child{border-radius:0 6px 0 0}
.user-table td{padding:9px 12px;border-bottom:1px solid var(--border);color:var(--text-2)}
.user-table tr:last-child td{border-bottom:none}
.user-table tr:hover td{background:var(--navy-bg)}
.role-badge{display:inline-block;padding:2px 8px;border-radius:99px;
  font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.role-badge.admin{background:var(--orange);color:#fff}
.role-badge.user{background:rgba(255,255,255,.07);color:var(--text-2);border:1px solid var(--border2)}
.perm-tag{display:inline-block;padding:1px 6px;border-radius:4px;
  font-size:9px;font-weight:600;margin:1px}
.perm-tag.on{background:rgba(46,125,50,.12);color:var(--success)}
.perm-tag.off{background:var(--bg);color:var(--text-4)}
.perm-tag.falta{background:var(--danger-bg);color:var(--danger);font-weight:600}   /* arquivo do caso faltando: precisa de ação */
.plugin-stat{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:12px;margin-bottom:16px}
.plugin-stat-card{background:var(--surface2);border:1px solid var(--border);
  border-radius:var(--r);padding:14px 16px;text-align:center}
.plugin-stat-val{font-size:22px;font-weight:800;font-family:var(--font);
  color:var(--text-1);line-height:1}
.plugin-stat-lbl{font-size:10px;color:var(--text-3);margin-top:4px;font-family:var(--font)}
.plugin-status-dot{width:12px;height:12px;border-radius:50%;display:inline-block;
  margin-right:8px;animation:blink 1.3s ease infinite}
.plugin-status-dot.on{background:var(--success)}
.plugin-status-dot.off{background:var(--danger);animation:none}

/* ── MODAL (cadastro de usuário) ─────────────────────────────────── */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.65);backdrop-filter:blur(4px);
  z-index:500;display:flex;align-items:center;justify-content:center}
.modal-bg.hidden{display:none}
.modal{background:var(--surface2);border:1px solid var(--border2);border-radius:14px;padding:32px;
  width:100%;max-width:440px;box-shadow:var(--sh-lg)}
.modal-title{font-size:16px;font-weight:700;color:var(--text-1);margin-bottom:20px}
.modal-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}
/* janela de pergunta/confirmação (js/dialogo.js) — no lugar de prompt()/confirm() do navegador */
.dlg .modal-title{margin-bottom:12px}
.dlg-texto{font-size:13px;line-height:1.55;color:var(--text-2);margin:0 0 16px;white-space:pre-line}
.dlg-campo{margin-bottom:4px}
.dlg .login-err{margin-top:8px}
@media (max-width:480px){.modal{padding:22px;margin:0 16px}}

footer{text-align:center;padding:18px;background:#080808;
  color:rgba(255,255,255,.30);font-size:11px;margin-top:24px;
  font-family:var(--font);letter-spacing:.05em;border-top:1px solid rgba(255,255,255,.07)}
footer a{color:var(--orange-lt);text-decoration:none}
footer strong{color:rgba(255,255,255,.75)}

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE — tablet + mobile
═══════════════════════════════════════════════════════════════ */

@media(max-width:768px){
  /* ── Header ── */
  .hdr-top{padding:0 12px;height:56px}
  .hdr-mesh-l,.hdr-mesh-r{display:none}
  .sim-clk{display:none}
  .brand-icone{width:40px;height:40px}
  .brand-wordmark{height:34px}
  .brand-sub{display:none}
  /* user badge: hide role text, keep avatar + buttons */
  .user-badge{padding:4px 6px 4px 4px;gap:6px}
  .user-badge-info{display:none}
  /* connection pill: keep dot, hide label text */
  .cpill{padding:5px 9px}
  .cpill #ctxt{display:none}
  /* nav: scroll horizontally, no scrollbar visual */
  .hdr-nav{overflow-x:auto;padding:0 4px;
    -ms-overflow-style:none;scrollbar-width:none}
  .hdr-nav::-webkit-scrollbar{display:none}
  .ntab{padding:0 11px;font-size:11px;flex-shrink:0}
  /* content */
  .wrap{padding:10px 10px 32px}
  .cards{grid-template-columns:repeat(2,1fr);gap:8px}
  .card{padding:12px 12px}
  .card-val{font-size:20px}
  .grid2,.grid3{grid-template-columns:1fr}
  .carea{height:200px}
  .carea-3d{height:240px}
  /* status bar stacks */
  .sbar{flex-direction:column;align-items:flex-start;gap:7px}
  .sbar-r{flex-wrap:wrap;gap:6px}
  .sbar-sep{display:none}
  /* stats */
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  /* table search */
  .tbar{flex-direction:column;align-items:flex-start;gap:6px}
  .tbar input{width:100%}
  .tinfo{margin-left:0}
  .dtbl-wrap{max-height:calc(100vh - 180px)}
  /* login */
  .login-card{padding:30px 20px 24px;max-width:94vw}
  .login-mesh-l,.login-mesh-r{width:140px;opacity:.45}
  /* modal */
  .apikey-modal{padding:22px 18px 18px}
  /* alerts cfg */
  .acfg-grid{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:480px){
  .hdr-top{height:50px;padding:0 10px}
  .brand-wordmark{height:28px}
  .brand-icone{width:34px;height:34px}
  .cards{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr}
  .acfg-grid{grid-template-columns:1fr}
  .carea{height:175px}
  .card-val{font-size:18px}
}

/* ── Print (Ctrl+P direto no dashboard) ─────────────────────── */
@media print{
  body{background:#fff!important;color:#000!important}
  .hdr,header,footer,.sbar,.stale-bar,.flash,.toast,
  .login-overlay,.apikey-modal-bg,.modal-bg,
  #replayPanel,.abanner{display:none!important}
  .wrap{padding:0!important;max-width:100%!important}
  .page{display:block!important}
  .page:not(.on){display:none!important}
  .card,.cbox,.stat-card{border:1px solid #ccc!important;
    background:#fff!important;break-inside:avoid}
  .carea{height:160px!important}
  .card-val{color:#000!important}
  .card-lbl,.card-unit{color:#555!important}
}

/* ── Visualização 3D (js/cena3d.js) ─────────────────────────────── */
.c3d-vazio{padding:60px 20px;text-align:center;color:var(--text-3);font-size:13px;line-height:1.7}
.c3d-area{display:flex;flex-direction:column;gap:8px}
.c3d-cena{position:relative;height:calc(100vh - 210px);min-height:460px;border-radius:var(--r2);overflow:hidden;
  border:1px solid var(--border);background:#05090d}
.c3d-cena canvas{display:block;width:100%;height:100%;outline:none}
.c3d-rotulos{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.c3d-rot{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;will-change:transform}
.c3d-rot::before{content:"";position:absolute;left:-.5px;bottom:0;width:1px;height:calc(22px + var(--sobe, 0px));
  background:linear-gradient(to top,rgba(255,255,255,.75),rgba(255,255,255,.15))}
.c3d-rot::after{content:"";position:absolute;left:-3px;top:-3px;width:6px;height:6px;border-radius:50%;background:#fff;
  box-shadow:0 0 6px rgba(255,255,255,.8)}
.c3d-rc{position:absolute;left:0;bottom:calc(22px + var(--sobe, 0px));transform:translateX(-50%);white-space:nowrap;font-size:11px;color:var(--text-1);
  padding:4px 9px;border-radius:6px;background:rgba(8,14,20,.78);border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(4px);font-variant-numeric:tabular-nums;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.c3d-rc b{margin-left:7px;color:#fff;font-weight:700}
.c3d-rot-sensor .c3d-rc{pointer-events:auto;cursor:pointer;border-color:rgba(224,112,32,.6)}
.c3d-rot-sensor .c3d-rc:hover{background:rgba(224,112,32,.28)}
.c3d-rot-no::before{height:calc(42px + var(--sobe, 0px))}.c3d-rot-no .c3d-rc{bottom:calc(42px + var(--sobe, 0px));font-weight:700;letter-spacing:.02em;background:rgba(8,14,20,.88)}
.c3d-rot-vaz::before,.c3d-rot-elem::before{top:0;bottom:auto;background:linear-gradient(to bottom,rgba(255,255,255,.75),rgba(255,255,255,.1))}
.c3d-rot-vaz .c3d-rc,.c3d-rot-elem .c3d-rc{bottom:auto;top:calc(22px + var(--sobe, 0px))}
.c3d-rot-vaz .c3d-rc{border-color:rgba(248,113,113,.75);color:#ffb4b4}
.c3d-rot-vaz::after{background:#ff4d4d;box-shadow:0 0 8px #ff4d4d}
.c3d-rot-elem::after,.c3d-rot-elem::before{display:none}
.c3d-rot-elem .c3d-rc{top:4px;color:var(--text-3);background:transparent;border-color:transparent;box-shadow:none;font-style:italic;backdrop-filter:none}
.c3d-rot-equip .c3d-rc{border-color:rgba(90,150,220,.7)}
.c3d-hud{position:absolute;z-index:2;background:rgba(12,14,16,.82);border:1px solid var(--border2);border-radius:var(--r);
  padding:10px 12px;backdrop-filter:blur(6px);font-size:12px}
.c3d-hud-tl{top:12px;left:12px;width:280px;display:flex;flex-direction:column;gap:6px}
.c3d-hud-tr{top:12px;right:12px;display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.c3d-hud-b{left:12px;right:12px;bottom:12px;display:flex;align-items:center;gap:12px}
.c3d-lbl{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.c3d-hud select{width:100%}
.c3d-leg{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:6px;font-variant-numeric:tabular-nums}
.c3d-leg i{height:8px;border-radius:4px;background:linear-gradient(90deg,#440154,#3b528b,#21918c,#5ec962,#fde725)}
.c3d-leg em{font-style:normal;color:var(--text-3)}
.c3d-fraco{color:var(--text-3);font-size:11px;line-height:1.5}
.c3d-fases{display:flex;flex-wrap:wrap;gap:10px;font-size:11px;color:var(--text-2)}
.c3d-fases i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.c3d-grupo{display:flex;border:1px solid var(--border2);border-radius:6px;overflow:hidden}
.c3d-grupo button{background:transparent;color:var(--text-2);border:0;border-left:1px solid var(--border);padding:6px 10px;font-size:11px;cursor:pointer}
.c3d-grupo button:first-child{border-left:0}
.c3d-grupo button:hover{background:rgba(255,255,255,.06);color:#fff}
.c3d-grupo button.on{background:rgba(224,112,32,.18);color:#fff}
.c3d-hud-b input[type=range]{flex:1;accent-color:var(--orange)}
.c3d-play{width:34px;height:30px;border-radius:6px;border:1px solid var(--border2);background:var(--surface2);color:#fff;cursor:pointer}
.c3d-tempo{min-width:190px;text-align:right;font-variant-numeric:tabular-nums;color:var(--text-2)}
.c3d-vivo{border:1px solid var(--border2);background:transparent;color:var(--text-3);border-radius:999px;padding:5px 12px;font-size:11px;cursor:pointer}
.c3d-vivo.on{color:#fff;border-color:rgba(74,222,128,.6);background:rgba(74,222,128,.12)}
.c3d-vivo.on::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--success);margin-right:6px}
.c3d-painel{position:absolute;z-index:3;top:120px;right:12px;width:320px;max-height:calc(100% - 190px);overflow:auto;
  background:rgba(12,14,16,.92);border:1px solid var(--border2);border-radius:var(--r);padding:14px;backdrop-filter:blur(6px)}
.c3d-x{position:absolute;top:6px;right:8px;background:none;border:0;color:var(--text-3);font-size:20px;cursor:pointer}
.c3d-pnome{font-size:15px;font-weight:700;padding-right:20px}
.c3d-ponde{font-size:11px;color:var(--text-3);margin:2px 0 10px;line-height:1.6}
.c3d-pvals{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.c3d-pv{display:flex;justify-content:space-between;gap:10px;font-size:12px;padding:4px 6px;border-radius:4px;color:var(--text-2)}
.c3d-pv b{color:#fff;font-variant-numeric:tabular-nums}
.c3d-pv small{color:var(--text-3);font-weight:400}
.c3d-pv.on{background:rgba(224,112,32,.12)}
.c3d-pgraf{height:140px;margin:4px 0 10px}
.c3d-nota{font-size:11px;color:var(--text-3);line-height:1.5}
.c3d-aviso{position:absolute;inset:auto 20px 50% 20px;text-align:center;color:var(--warning)}
@media (max-width:760px){
  .c3d-cena{height:calc(100vh - 170px)}
  .c3d-hud{padding:8px}
  .c3d-hud-tl{width:auto;right:8px;left:8px;top:8px}
  .c3d-hud-tl #c3dFonte,.c3d-hud-tl .c3d-fases{display:none}
  .c3d-hud-tr{top:auto;bottom:74px;left:8px;right:8px;align-items:stretch;gap:6px}
  .c3d-hud-tr .c3d-grupo:last-child{display:none}
  .c3d-grupo button{flex:1;padding:6px 4px}
  .c3d-hud-b{left:8px;right:8px;bottom:8px;gap:8px}
  .c3d-tempo{min-width:0;font-size:10px;max-width:90px}
  .c3d-vivo{padding:4px 8px}
  .c3d-painel{left:8px;right:8px;width:auto;top:auto;bottom:60px;max-height:55%}}
.c3d-corte{display:flex;gap:12px;align-items:center;margin-top:8px;padding:8px;border:1px solid var(--border);border-radius:6px}
.c3d-corte div{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--text-2)}
.c3d-corte b{color:#fff}
.c3d-acao{border-top:1px solid var(--border);margin-top:10px;padding-top:10px;display:flex;flex-direction:column;gap:7px}
.c3d-acao-t{font-weight:700;font-size:12px;color:#fff}
.c3d-acf{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;color:var(--text-2)}
.c3d-acf input{width:96px;text-align:right}
.c3d-acao-msg{font-size:11px;color:var(--text-2);line-height:1.5}
.c3d-acao-msg.ok{color:var(--success)}.c3d-acao-msg.erro{color:var(--danger)}
.c3d-acao-feita{color:#9cc3ee;font-size:11px}
@media (min-width:761px){.c3d-painel{width:360px}}
.c3d-modo button{flex:1}
.c3d-legf{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--text-2)}
.c3d-legf i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.c3d-legf .oleo{background:#7a4a1c}.c3d-legf .agua{background:#2a6fc4}.c3d-legf .gas{background:#d6e3ee}.c3d-legf .paraf{background:#e8dcb8}
.c3d-aviso-t{color:var(--warning);font-size:11px;line-height:1.5}
.c3d-nav{position:absolute;z-index:2;right:12px;bottom:66px;display:grid;grid-template-columns:repeat(3,30px);gap:4px;
  padding:6px;background:rgba(12,14,16,.72);border:1px solid var(--border2);border-radius:var(--r)}
.c3d-nav button{width:30px;height:28px;border-radius:5px;border:1px solid var(--border2);background:var(--surface2);color:#fff;cursor:pointer;
  font-size:13px;line-height:1;user-select:none;touch-action:none}
.c3d-nav button:hover{background:rgba(224,112,32,.25)}
.c3d-perc{display:flex;flex-direction:column;gap:3px;margin-top:8px}
.c3d-perc label{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.c3d-perc input{width:100%;accent-color:var(--orange)}
.c3d-reg{border-left:3px solid var(--rc);padding:6px 8px;background:rgba(255,255,255,.03);border-radius:4px;display:flex;flex-direction:column;gap:3px}
.c3d-reg b{font-size:13px;color:#fff}.c3d-reg span{font-size:11px;color:var(--text-2);line-height:1.45}
.c3d-ana{display:flex;gap:10px;align-items:center;margin-top:6px}
.c3d-ana-n{flex:1;display:flex;flex-direction:column;gap:2px}
.c3d-ana-g{display:flex;flex-direction:column;gap:1px;margin:6px 0}
.c3d-ana .c3d-pv,.c3d-ana-g .c3d-pv{padding:2px 4px;font-size:11px}
.c3d-svg{flex:none}
.c3d-svgt{font-size:9px;fill:#26313a;text-anchor:middle;font-family:Inter,sans-serif}
#c3dMapa{width:100%;height:auto;border-radius:4px;background:#0c1014;margin-top:4px}
.c3d-mapa-leg{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:10px;color:var(--text-2);margin:4px 0 6px}
.c3d-mapa-leg i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:4px;vertical-align:-1px;opacity:.8}
.c3d-mapa-leg i.pt{background:#fff;border-radius:50%;border:2px solid #111;opacity:1}
.c3d-mapa-leg i.tr{height:2px;width:14px;background:rgba(255,255,255,.8);vertical-align:2px;opacity:1}
.c3d-acao-esc{display:flex;flex-direction:column;gap:6px}
.c3d-sonda{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.c3d-acao-rapida{align-self:flex-start}
@media (max-width:760px){.c3d-nav{display:none}}
.c3d-ese{left:12px;bottom:70px;width:340px;display:flex;flex-direction:column;gap:6px;max-height:40%;overflow:auto}
.c3d-ese-i{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;font-size:11px}
.c3d-ese-d{color:var(--text-1);line-height:1.35}
.c3d-ese-st{font-size:10px;padding:2px 6px;border-radius:999px;border:1px solid var(--border2);color:var(--text-2);white-space:nowrap}
.c3d-ese-st.running{border-color:rgba(74,222,128,.6);color:var(--success)}
.c3d-ese-st.failed{border-color:rgba(248,113,113,.6);color:var(--danger)}
.c3d-banner{position:absolute;z-index:4;top:12px;left:50%;transform:translateX(-50%);display:flex;gap:10px;align-items:center;
  background:rgba(42,95,158,.92);border:1px solid #9cc3ee;color:#fff;border-radius:999px;padding:6px 8px 6px 16px;font-size:12px;
  max-width:calc(100% - 640px);box-shadow:0 6px 18px rgba(0,0,0,.35)}
.c3d-banner .btn{white-space:nowrap}
@media (max-width:1100px){.c3d-banner{top:auto;bottom:118px;max-width:calc(100% - 24px)}}
@media (max-width:760px){.c3d-ese{display:none}}
.c3d-dica{position:absolute;left:0;top:0;z-index:5;pointer-events:none;display:flex;flex-direction:column;gap:2px;
  background:rgba(8,14,20,.92);border:1px solid rgba(255,255,255,.18);border-radius:6px;padding:6px 9px;font-size:11px;
  color:var(--text-2);box-shadow:0 6px 18px rgba(0,0,0,.4);font-variant-numeric:tabular-nums;max-width:320px}
.c3d-dica b{color:#fff;font-size:12px}.c3d-dica em{font-style:normal;color:var(--text-3);font-size:10px}
.c3d-rot-sensor.alarme .c3d-rc{border-color:var(--danger);background:rgba(110,18,18,.9);animation:c3dPisca 1.1s infinite}
@keyframes c3dPisca{50%{box-shadow:0 0 0 3px rgba(248,113,113,.35)}}
@media (prefers-reduced-motion:reduce){.c3d-rot-sensor.alarme .c3d-rc{animation:none}}
.c3d-hud-tl select#c3dIr{margin-top:4px}
.c3d-atalhos{font-size:10px;color:var(--text-3);max-width:330px;text-align:right;line-height:1.5}
.c3d-cena:fullscreen{border-radius:0;border:0}
@media (max-width:760px){.c3d-atalhos,#c3dIr{display:none}}
