/* ===== Rack 3D (menu lateral → Rack 3D, #viewRack) ===== */
body[data-view="rack"] :is(.searchhero,.dash-actions>:not(#btnMenu)){display:none!important}
/* o 3D usa a largura toda da tela (as outras telas ficam em 1340px) */
body[data-view="rack"] .shell, body[data-view="rack"] .content>section, body[data-view="rack"] .site-rodape{max-width:none}
.rk-wrap{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:12px;height:calc(100vh - 110px);min-height:480px}
.rk-wrap.rk-cheia{position:fixed;inset:0;z-index:1300;height:100vh;height:100dvh;padding:12px;box-sizing:border-box;background:var(--papel)}
body.rk-cheia-on{overflow:hidden}
.rk-palco{position:relative;border-radius:16px;overflow:hidden;background:#0f1116;border:1px solid var(--linha);min-height:0}
:root[data-theme="light"] .rk-palco{background:#dde3ea}
.rk-gl{display:block;width:100%;height:100%;touch-action:none}
.rk-load{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;color:#9fb0c2;font-size:13px}
.rk-hud{position:absolute;left:14px;top:12px;pointer-events:none;color:#E8EEF6;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.rk-hud b{font-family:"Barlow Condensed",sans-serif;font-size:22px;letter-spacing:.02em;margin-right:6px}
.rk-hud small{font-size:12px;color:#9FB6CB}
:root[data-theme="light"] .rk-hud{color:#1d2430;text-shadow:none} :root[data-theme="light"] .rk-hud small{color:#5a6676}
.rk-bts{position:absolute;right:12px;top:12px;display:flex;align-items:center;gap:3px;padding:4px;border-radius:14px;background:rgba(18,21,27,.72);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 24px rgba(0,0,0,.3)}
.rk-bts .rk-sep{width:1px;height:22px;margin:0 3px;background:rgba(255,255,255,.14)}
.rk-bts button{min-width:34px;height:34px;display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:10px;background:transparent;color:#C9D8E6;cursor:pointer;
  font:inherit;font-size:12.5px;font-weight:600;transition:background .15s, color .15s, transform .12s}
.rk-bts button:hover{background:rgba(255,255,255,.1);color:#fff;transform:translateY(-1px)} .rk-bts button:active{transform:scale(.96)}
.rk-bts button.on{background:rgba(34,211,238,.18);color:#5ee6f7;box-shadow:inset 0 0 0 1px rgba(34,211,238,.4)}
.rk-bts .rk-txt{padding:0 11px}
@media (max-width:700px){ .rk-bts .rk-txt span{display:none} .rk-bts .rk-txt{padding:0} }
.rk-leg{position:absolute;left:12px;bottom:12px;display:flex;flex-wrap:wrap;gap:4px 12px;padding:7px 11px;border-radius:10px;background:rgba(15,17,22,.6);backdrop-filter:blur(8px);font-size:11.5px;color:#C9D8E6}
.rk-leg span{display:flex;align-items:center;gap:6px}
.rk-leg i,.rk-it>i{width:9px;height:9px;border-radius:50%;flex:none;background:#4a5058}
:is(.rk-leg,.rk-it) i.ok{background:#2BE07A;box-shadow:0 0 6px #2BE07A} :is(.rk-leg,.rk-it) i.quase{background:#FFB020;box-shadow:0 0 6px #FFB020}
:is(.rk-leg,.rk-it) i.lotada{background:#FF3B4E;box-shadow:0 0 6px #FF3B4E} :is(.rk-leg,.rk-it) i.vazia{background:#3D8BFF}
.rk-fx{width:14px;height:4px;border-radius:2px;background:#4a5058} .rk-fx.ok{background:#2BE07A} .rk-fx.quase{background:#FFB020} .rk-fx.lotada{background:#FF3B4E}
/* editor de conexões (tela cheia, rack-editor.js) */
.rke{position:fixed;inset:0;z-index:3000;background:#0f1116}
.rke canvas{display:block;touch-action:none}
.rke-bar{position:absolute;top:12px;left:12px;right:12px;display:flex;gap:10px;flex-wrap:wrap;align-items:center;color:#e8eef6;font-size:13px}
.rke-esp{flex:1}
.rke-grupo{display:flex;gap:3px;padding:4px;border-radius:14px;background:rgba(22,25,32,.78);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.09);box-shadow:0 8px 24px rgba(0,0,0,.35)}
.rke-grupo button{display:flex;align-items:center;gap:7px;height:34px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:#c9d4e0;font:inherit;font-weight:600;cursor:pointer;
  transition:background .15s, color .15s, transform .12s, box-shadow .15s}
.rke-grupo button:hover:not(:disabled){background:rgba(255,255,255,.09);color:#fff;transform:translateY(-1px)}
.rke-grupo button:active:not(:disabled){transform:translateY(0) scale(.97)}
.rke-grupo button:disabled{opacity:.35;cursor:default}
.rke-grupo button svg{flex:none}
.rke-grupo button.on{background:rgba(34,211,238,.16);color:#5ee6f7;box-shadow:inset 0 0 0 1px rgba(34,211,238,.45)}
.rke-chips i{width:12px;height:12px;border-radius:50%;flex:none;box-shadow:0 0 0 2px rgba(255,255,255,.12)}
.rke-chips .rke-auto{background:conic-gradient(#E8C21A 0 25%,#22c4c9 0 50%,#2f6fd1 0 75%,#3a3d44 0)}
.rke-chips button.on i{box-shadow:0 0 0 2px #5ee6f7, 0 0 10px rgba(94,230,247,.6)}
.rke-grupo .rke-salvar{background:linear-gradient(135deg,#0e9aa7,#0b6f8a);color:#fff;box-shadow:0 4px 14px rgba(14,154,167,.4)}
.rke-grupo .rke-salvar:hover:not(:disabled){background:linear-gradient(135deg,#13b3c2,#0d7f9e)}
.rke-grupo .rke-perigo:not(:disabled){color:#ff8d99} .rke-grupo .rke-perigo:hover:not(:disabled){background:rgba(255,77,94,.14);color:#ffb3bb}
.rke-info{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:8px;max-width:calc(100% - 32px);padding:9px 16px;border-radius:999px;
  background:rgba(22,25,32,.85);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);color:#c9d4e0;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.rke-info b{color:#fff} .rke-info small{color:#8a97a6;font-size:11.5px} .rke-info i{width:10px;height:10px;border-radius:50%;flex:none}
.rke-info .rke-nao{color:#ffb020;font-weight:700}
@media (max-width:900px){ .rke-grupo button span{display:none} .rke-grupo button{padding:0 9px} .rke-abas button span{display:inline} }
.rke-dica{position:absolute;display:none;pointer-events:none;padding:6px 10px;border-radius:8px;background:rgba(10,12,16,.92);color:#fff;font-size:12px;white-space:nowrap}
/* montar racks (tela cheia, rack-montagem.js) */
.rkm{position:fixed;inset:0;z-index:3000;background:#0f1116;display:flex;flex-direction:column;color:#e8eef6}
.rkm-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px}
.rkm-bar b{font-size:16px;margin-right:4px}
.rkm-bar button{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.08);color:#e8eef6;border-radius:10px;padding:8px 12px;font:inherit;cursor:pointer}
.rkm-bar button:hover{background:rgba(255,255,255,.14)} .rkm-bar .rke-salvar{background:#0e7c86;border-color:#22d3ee;font-weight:700} .rkm-bar .rke-salvar:disabled{opacity:.45;cursor:default}
.rkm-abas{display:flex;gap:4px;flex-wrap:wrap} .rkm-abas button.on{border-color:#22d3ee;color:#22d3ee;background:rgba(34,211,238,.14)}
.rkm-corpo{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;padding:0 12px 12px}
.rkm-palco{position:relative;min-height:0;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.08)}
.rkm-palco canvas{display:block;touch-action:none}
.rkm-lado{overflow-y:auto;border-radius:14px;padding:14px;background:#181a20;border:1px solid rgba(255,255,255,.08)}
.rkm-lado .rk-ph h3{color:#f2f3f7} .rkm-lado .rk-it{color:#c9cbd6} .rkm-lado .rk-it b{color:#f2f3f7} .rkm-lado .rk-it:disabled{opacity:.4;cursor:not-allowed}
.rkm-campo{display:flex;flex-direction:column;gap:4px;font-size:11.5px;font-weight:700;letter-spacing:.04em;color:#9aa3ae;margin:8px 0}
.rkm-campo input,.rkm-campo select{font:inherit;font-size:13px;font-weight:500;letter-spacing:0;color:#e8eef6;background:#0f1116;border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:7px 9px}
.rkm-campo input[type=color]{padding:2px;height:34px}
.rkm-mover{display:flex;gap:6px;align-items:flex-end} .rkm-mover .btn{padding:7px 10px} .rkm-u{flex:1;margin:0}
.rkm-seg{display:flex;flex-wrap:wrap;gap:3px;padding:3px;border-radius:10px;background:#0f1116;border:1px solid rgba(255,255,255,.12)}
.rkm-seg button{flex:1;min-width:58px;padding:7px 6px;border:0;border-radius:7px;background:transparent;color:#aeb8c4;font:inherit;font-size:12.5px;font-weight:600;letter-spacing:0;cursor:pointer;transition:background .15s,color .15s}
.rkm-seg button:hover{background:rgba(255,255,255,.08);color:#fff}
.rkm-seg button.on{background:rgba(34,211,238,.18);color:#5ee6f7;box-shadow:inset 0 0 0 1px rgba(34,211,238,.45)}
.rkm-perigo{color:#ff8d99!important;border-color:rgba(255,107,125,.4)!important}
@media (max-width:980px){ .rkm-corpo{grid-template-columns:1fr;grid-template-rows:55vh auto} }
.rk-tip{position:absolute;display:none;pointer-events:none;padding:6px 10px;border-radius:8px;background:rgba(10,12,16,.92);color:#fff;font-size:12px;white-space:nowrap;box-shadow:0 6px 18px rgba(0,0,0,.35);z-index:2}

/* painel */
.rk-painel{overflow-y:auto;border-radius:16px;padding:16px;background:var(--branco);border:1px solid var(--linha);box-shadow:var(--sombra);color:var(--texto)}
.rk-ph{margin-bottom:14px}
.rk-ph small{display:block;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--suave)}
.rk-ph h3{font-family:"Barlow Condensed",sans-serif;font-size:30px;line-height:1.05;color:var(--tinta)}
.rk-ph>span{font-size:12.5px;color:var(--suave)}
.rk-voltar{border:0;background:none;color:var(--azul);font-weight:700;font-size:12.5px;cursor:pointer;padding:0;margin-bottom:10px}
.rk-sec{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--suave);margin:16px 0 6px}
.rk-sec small{font-weight:700;margin-left:4px;color:var(--tinta-2)}
.rk-it{width:100%;display:flex;align-items:center;gap:10px;text-align:left;padding:9px 10px;margin-bottom:4px;border-radius:10px;border:1px solid var(--linha);background:transparent;color:var(--texto);cursor:pointer}
.rk-it:hover{border-color:var(--azul);background:rgba(127,127,127,.06)}
.rk-it>span{flex:1;min-width:0} .rk-it b{display:block;color:var(--tinta);font-size:13px}
.rk-it>span>small{display:block;font-size:11.5px;color:var(--suave);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rk-it em{font-style:normal;font-weight:700;color:var(--tinta);font-size:13px} .rk-it em small{color:var(--suave);font-weight:600}
.rk-pon .rk-bar{margin-top:5px}
.rk-bar{display:block;height:6px;border-radius:4px;background:rgba(127,127,127,.18);overflow:hidden}
.rk-bar i{display:block;height:100%;border-radius:4px;background:var(--verde)}
.rk-bar.quase i{background:var(--amber)} .rk-bar.lotada i{background:var(--vermelho)}
.rk-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.rk-kpi{padding:9px 11px;border-radius:10px;border:1px solid var(--linha)}
.rk-kpi b{display:block;font-family:"Barlow Condensed",sans-serif;font-size:24px;line-height:1;color:var(--tinta)}
.rk-kpi small{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--suave)}
.rk-kpi.verm b{color:var(--vermelho)} .rk-kpi.amb b{color:var(--amber)}
.rk-ocup{margin-bottom:12px} .rk-ocup .rk-bar{height:10px} .rk-ocup span{display:block;font-size:12.5px;margin-top:6px;color:var(--suave)} .rk-ocup b{color:var(--tinta);font-size:15px}
.rk-tag{display:inline-block;margin-top:4px;padding:2px 9px;border-radius:20px;font-size:11.5px;font-weight:700;background:var(--verde-bg);color:var(--verde)}
.rk-tag.quase{background:var(--amber-bg);color:var(--amber)} .rk-tag.lotada{background:var(--vermelho-bg);color:var(--vermelho)}
.rk-tag.vazia,.rk-tag.fora{background:rgba(127,127,127,.14);color:var(--suave)}
.rk-mapa{width:100%;margin-top:10px}
.rk-vazio{font-size:12.5px;color:var(--suave)}
.rk-placa{cursor:default} .rk-placa:hover{border-color:var(--linha);background:transparent}
.rk-off{font-size:10.5px;font-weight:700;color:var(--vermelho);margin-left:4px}
.rk-alm{margin-bottom:8px;padding:8px 10px;border-radius:10px;background:var(--vermelho-bg);color:var(--vermelho);font-size:12.5px;font-weight:700}
.rk-link{margin-bottom:10px}
.rk-desc{margin:-6px 0 12px;font-size:13px;font-weight:700;color:var(--tinta-2)}
.rk-trafego{font-size:12px!important;white-space:nowrap}

@media (max-width:980px){
  .rk-wrap{grid-template-columns:1fr;grid-template-rows:62vh auto;height:auto}
  .rk-painel{overflow:visible}
  .rk-wrap.rk-cheia{grid-template-rows:minmax(0,1fr) 38vh;height:100dvh}
  .rk-wrap.rk-cheia .rk-painel{overflow-y:auto}
  .rk-leg{right:12px}
  .rk-hud{display:none}
}
