/* Sis-Ágora 2.0 — Dashboard. Tema escuro azul-marinho com as cores da logo SIS-ÁGORA Monitoramentos (azul #4da7ef, ciano #44d7f7). */
:root {
  color-scheme: dark;
  --bg: #050d14;
  --bg-2: #08131c;
  --panel: #0b1824;
  --card: #0f1f2d;
  --card-2: #152a3b;
  --linha: rgba(140, 190, 235, .09);
  --linha-forte: rgba(140, 190, 235, .18);
  --texto: #eef4f9;
  --texto-2: #a9bccb;
  --texto-3: #7890a3;
  --acento: #4da7ef;          /* azul da logo (botões, item ativo) */
  --acento-forte: #51affa;
  --acento-escuro: #316b99;
  --acento-tinta: #03111a;
  --roxo: #8f80f3;
  --ciano: #44d7f7;
  --laranja: #f2a65a;         /* cor extra (destaques secundários) */
  --laranja-bg: rgba(242, 166, 90, .13);
  --sutil: rgba(255, 255, 255, .04); --sutil-2: rgba(255, 255, 255, .07); --sutil-3: rgba(255, 255, 255, .14);
  --topo-a: rgba(9, 22, 34, .94); --topo-b: rgba(5, 13, 20, .9); --modal-bg: rgba(11, 24, 36, .97); --rolagem: #1d3346;
  --brilho-1: rgba(77, 167, 239, .10); --brilho-2: rgba(68, 215, 247, .06); --brilho-3: rgba(242, 166, 90, .05);
  --perigo: #f07b7b; --perigo-bg: rgba(240, 123, 123, .12);
  --aviso: #e7c76a; --aviso-bg: rgba(231, 199, 106, .12);
  --ok: #7fd49a; --ok-bg: rgba(127, 212, 154, .12);
  --info: #79a8f0; --info-bg: rgba(121, 168, 240, .13);
  /* facções (validadas no fundo escuro: CVD e contraste) */
  --f1: #8a8a85; --f2: #d55181; --f3: #3987e5; --f4: #c98500;
  --raio: 18px; --raio-p: 12px;
  --menu: 76px; --menu-aberto: 232px;
  --sombra: 0 18px 50px rgba(0, 0, 0, .55);
  --fonte: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
html { background: var(--bg); }
body {
  background: radial-gradient(1200px 500px at 15% -10%, var(--brilho-1), transparent 60%),
              radial-gradient(900px 400px at 100% 0%, var(--brilho-2), transparent 60%),
              radial-gradient(800px 500px at 60% 110%, var(--brilho-3), transparent 60%), var(--bg);
  background-attachment: fixed; background-repeat: no-repeat;
  color: var(--texto); font: 14px/1.45 var(--fonte); -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
::selection { background: var(--acento); color: #000; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: var(--rolagem); border-radius: 10px; border: 2px solid var(--bg); }

/* ---------------- topo ---------------- */
.topo {
  position: sticky; top: 0; z-index: 30; display: flex; align-items: center; gap: 16px;
  padding: 14px 22px; background: linear-gradient(180deg, var(--topo-a), var(--topo-b));
  backdrop-filter: blur(12px); border-bottom: 1px solid var(--linha);
}
.logo-img { height: 36px; width: auto; display: block; flex: none; }
.logo-icone { display: none; height: 38px; width: 38px; flex: none; }
.marca { padding-left: 16px; border-left: 1px solid var(--linha); }
.marca strong { display: block; font-size: 13px; color: var(--texto-2); font-weight: 600; letter-spacing: .2px; }
.migalha { font-size: 12px; color: var(--texto-3); }
.migalha b { color: var(--texto-2); font-weight: 500; }
.topo .espaco { flex: 1; }
.icone-btn {
  width: 42px; height: 42px; border-radius: 12px; border: 1px solid var(--linha); background: var(--sutil);
  display: grid; place-items: center; cursor: pointer; transition: .15s; position: relative;
}
.icone-btn:hover { background: var(--sutil-2); }
.icone-btn svg { width: 18px; height: 18px; }
.ponto-status { position: absolute; top: 9px; right: 9px; width: 8px; height: 8px; border-radius: 50%; background: var(--ok); box-shadow: 0 0 0 2px var(--panel); }
.ponto-status.velho { background: var(--aviso); }
.usuario-chip { display: flex; align-items: center; gap: 10px; padding: 4px 10px 4px 4px; border-radius: 999px; cursor: pointer; }
.usuario-chip:hover { background: var(--sutil); }
.usuario-chip img { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; border: 2px solid var(--linha-forte); }
.usuario-chip strong { display: block; font-size: 13.5px; }
.usuario-chip small { color: var(--texto-3); font-size: 12px; }

/* busca global */
.busca-global { position: relative; width: min(420px, 38vw); }
.busca-global input {
  width: 100%; height: 42px; border-radius: 12px; border: 1px solid var(--linha); background: var(--sutil);
  padding: 0 14px 0 40px; outline: none; transition: .15s;
}
.busca-global input:focus { border-color: rgba(77, 167, 239, .55); background: var(--sutil-2); }
.busca-global > svg { position: absolute; left: 13px; top: 12px; width: 18px; height: 18px; color: var(--texto-3); }
.busca-resultados {
  position: absolute; top: 48px; left: 0; right: 0; background: var(--card); border: 1px solid var(--linha-forte);
  border-radius: 14px; box-shadow: var(--sombra); max-height: 60vh; overflow: auto; padding: 6px; display: none;
}
.busca-resultados.aberto { display: block; }
.busca-resultados { z-index: 70; }
.filtros { position: relative; z-index: 25; }
.filtros:focus-within, .filtros:has(.busca-resultados.aberto) { z-index: 28; }
.busca-resultados h6 { margin: 8px 10px 4px; font-size: 11px; text-transform: uppercase; letter-spacing: .8px; color: var(--texto-3); }
.busca-item { display: flex; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 10px; cursor: pointer; }
.busca-item:hover, .busca-item.ativo { background: var(--sutil-2); }
.busca-item small { color: var(--texto-3); margin-left: auto; }

/* ---------------- estrutura ---------------- */
.app { display: flex; gap: 18px; padding: 18px 22px 40px; }
.menu {
  position: sticky; top: 92px; align-self: flex-start; width: var(--menu); flex: none; background: var(--panel);
  border: 1px solid var(--linha); border-radius: 22px; padding: 12px 10px; transition: width .2s ease; overflow: hidden;
  max-height: calc(100vh - 110px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin;
}
.menu::-webkit-scrollbar { width: 6px; }
.menu::-webkit-scrollbar-thumb { background: var(--rolagem); border: 0; }
body.menu-aberto .menu { width: var(--menu-aberto); }
.menu a, .menu button.recolher {
  display: flex; align-items: center; gap: 14px; height: 48px; padding: 0 14px; border-radius: 14px; color: var(--texto-2);
  text-decoration: none; white-space: nowrap; border: 0; background: none; width: 100%; cursor: pointer; margin-bottom: 4px;
}
.menu a svg, .menu button svg { width: 20px; height: 20px; flex: none; }
.menu a:hover { background: var(--sutil); color: var(--texto); }
.menu a.ativo { background: var(--acento); color: var(--acento-tinta); font-weight: 600; }
.menu .rotulo { opacity: 0; transition: opacity .15s; }
body.menu-aberto .menu .rotulo { opacity: 1; }
.menu hr { border: 0; border-top: 1px solid var(--linha); margin: 8px 4px; }
.menu button.recolher { color: var(--texto-3); }
.menu button.recolher svg { transition: transform .2s; }
body.menu-aberto .menu button.recolher svg { transform: rotate(180deg); }
.conteudo { flex: 1; min-width: 0; }

/* abas e cabeçalho da página */
.abas { display: flex; gap: 26px; border-bottom: 1px solid var(--linha); margin-bottom: 18px; overflow-x: auto; }
.abas a { padding: 6px 0 12px; color: var(--texto-2); text-decoration: none; white-space: nowrap; border-bottom: 2px solid transparent; }
.abas a.ativo { color: var(--acento); border-bottom-color: var(--acento); }
.cab { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
.cab h1 { margin: 0; font-size: 24px; font-weight: 700; letter-spacing: -.3px; }
.cab .sub { color: var(--texto-3); font-size: 12.5px; }
.cab .espaco { flex: 1; }

/* filtros */
.filtros { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 18px; }
.seg { display: inline-flex; background: var(--panel); border: 1px solid var(--linha); border-radius: 12px; padding: 3px; }
.seg button { border: 0; background: none; padding: 7px 13px; border-radius: 9px; cursor: pointer; color: var(--texto-2); white-space: nowrap; }
.seg button.ativo { background: var(--card-2); color: var(--texto); box-shadow: inset 0 0 0 1px var(--linha-forte); }
.campo, select.campo {
  height: 38px; border-radius: 11px; border: 1px solid var(--linha); background: var(--panel); padding: 0 12px; outline: none; min-width: 140px;
}
.campo:focus { border-color: rgba(77, 167, 239, .5); }
textarea.campo { height: auto; padding: 10px 12px; min-height: 80px; width: 100%; resize: vertical; }
.btn {
  height: 38px; padding: 0 16px; border-radius: 11px; border: 1px solid var(--linha-forte); background: var(--sutil);
  cursor: pointer; display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; transition: .15s;
}
.btn:hover { background: var(--sutil-2); }
.btn svg { width: 16px; height: 16px; }
.btn.primario { background: var(--acento); color: var(--acento-tinta); border-color: transparent; font-weight: 600; }
.btn.primario:hover { filter: brightness(1.06); }
.btn.perigo { color: var(--perigo); border-color: rgba(240, 123, 123, .35); }
.btn.pequeno { height: 30px; padding: 0 10px; font-size: 12.5px; border-radius: 9px; }
.picker { position: relative; }
.picker .busca-resultados { top: 42px; min-width: 320px; }

/* grade e cartões */
.grade { display: grid; gap: 16px; }
.g-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.g-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g-21 { grid-template-columns: 2fr 1fr; }
.g-12 { grid-template-columns: 1fr 2fr; }
.colunas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1200px) { .g-4 { grid-template-columns: repeat(2, 1fr); } .g-3, .colunas { grid-template-columns: 1fr 1fr; } .g-21, .g-12 { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  .g-4, .g-3, .g-2, .colunas { grid-template-columns: 1fr; }
  .app { padding: 12px; gap: 12px; } .busca-global { display: none; } .usuario-chip div { display: none; }
  .topo { padding: 10px 12px; gap: 10px; } .topo .logo-img { display: none; } .topo .logo-icone { display: block; } .marca { padding-left: 10px; }
  .menu { position: fixed; bottom: 10px; top: auto; left: 10px; right: 10px; width: auto !important; z-index: 40; display: flex; padding: 6px; overflow-x: auto; overflow-y: hidden; max-height: none; }
  .menu a { flex: none; width: auto; } .menu .rotulo, .menu hr, .menu .recolher { display: none !important; }
  .conteudo { padding-bottom: 80px; }
}
.coluna { background: var(--panel); border: 1px solid var(--linha); border-radius: 22px; padding: 16px; min-width: 0; }
.coluna > h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font-size: 14.5px; font-weight: 600; }
.coluna > h3 .contador { font-size: 11px; font-weight: 700; padding: 2px 7px; border-radius: 999px; background: var(--acento); color: var(--acento-tinta); }
.coluna > .barra { height: 2px; border-radius: 2px; margin: 10px 0 14px; background: var(--acento); }
.coluna.roxo > .barra { background: var(--roxo); } .coluna.roxo > h3 .contador { background: var(--roxo); }
.coluna.ciano > .barra { background: var(--ciano); } .coluna.ciano > h3 .contador { background: var(--ciano); }
.cartao { background: var(--card); border: 1px solid var(--linha); border-radius: var(--raio); padding: 16px; min-width: 0; position: relative; }
.cartao + .cartao { margin-top: 12px; }
.grade > .cartao + .cartao, .lista-naves > .cartao + .cartao { margin-top: 0; }
.cartao h4 { margin: 0 0 4px; font-size: 14.5px; font-weight: 600; }
.cartao .desc { color: var(--texto-3); font-size: 12.5px; margin: 0 0 10px; }
.cartao.clicavel { cursor: pointer; transition: .15s; }
.cartao.clicavel:hover { border-color: var(--linha-forte); transform: translateY(-1px); }
.cartao-topo { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.cartao-topo h4 { margin: 0; }
.cartao-topo .espaco { flex: 1; }

/* KPI */
.kpi .rot { color: var(--texto-3); font-size: 12px; text-transform: uppercase; letter-spacing: .7px; }
.kpi .val { font-size: 28px; font-weight: 700; letter-spacing: -.5px; margin-top: 6px; }
.kpi .det { color: var(--texto-2); font-size: 12.5px; margin-top: 2px; }
.kpi .icone { position: absolute; right: 14px; top: 14px; width: 36px; height: 36px; border-radius: 11px; display: grid; place-items: center; background: rgba(77, 167, 239, .14); color: var(--acento); }
.kpi .icone svg { width: 18px; height: 18px; }
.kpi.roxo .icone { background: rgba(143, 128, 243, .14); color: var(--roxo); }
.kpi.ciano .icone { background: rgba(94, 200, 229, .13); color: var(--ciano); }

/* selos */
.selo { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 600; padding: 2px 9px; border-radius: 999px; border: 1px solid; white-space: nowrap; }
.selo.vermelho { color: var(--perigo); background: var(--perigo-bg); border-color: rgba(240, 123, 123, .3); }
.selo.amarelo { color: var(--aviso); background: var(--aviso-bg); border-color: rgba(231, 199, 106, .3); }
.selo.verde { color: var(--ok); background: var(--ok-bg); border-color: rgba(127, 212, 154, .3); }
.selo.azul { color: var(--info); background: var(--info-bg); border-color: rgba(121, 168, 240, .3); }
.selo.cinza { color: var(--texto-2); background: var(--sutil); border-color: var(--linha-forte); }
.faccao { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--texto-2); }
.faccao::before { content: ''; width: 9px; height: 9px; border-radius: 3px; background: var(--cor, var(--f1)); }

/* barras de progresso / medidores */
.medidor { height: 7px; border-radius: 6px; background: var(--sutil-2); overflow: hidden; }
.medidor > i { display: block; height: 100%; border-radius: 6px; background: var(--acento); }
.medidor.roxo > i { background: var(--roxo); } .medidor.ciano > i { background: var(--ciano); }
.medidor.baixo > i { background: var(--perigo); }
.linha-medidor { display: grid; grid-template-columns: 110px 1fr 120px; gap: 10px; align-items: center; margin: 8px 0; font-size: 12.5px; }
.linha-medidor span:last-child { text-align: right; color: var(--texto-2); font-variant-numeric: tabular-nums; }

/* tabelas */
.tabela-wrap { overflow-x: auto; border-radius: var(--raio-p); }
table.tabela { width: 100%; border-collapse: collapse; font-size: 13px; }
.tabela th { text-align: left; font-weight: 600; color: var(--texto-3); font-size: 11.5px; text-transform: uppercase; letter-spacing: .6px; padding: 10px 12px; border-bottom: 1px solid var(--linha); white-space: nowrap; }
.tabela td { padding: 10px 12px; border-bottom: 1px solid var(--linha); vertical-align: middle; }
.tabela tbody tr { transition: background .1s; }
.tabela tbody tr.clicavel { cursor: pointer; }
.tabela tbody tr:hover { background: var(--sutil); }
.tabela .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tabela .fraco { color: var(--texto-3); }
.paginacao { display: flex; align-items: center; gap: 10px; justify-content: flex-end; margin-top: 12px; color: var(--texto-3); font-size: 12.5px; }

/* mapa de calor */
.calor td.c { text-align: right; font-variant-numeric: tabular-nums; font-size: 12px; border: 2px solid var(--card); border-radius: 6px; }
.calor tbody tr { cursor: pointer; }
.calor th.calor-col { cursor: context-menu; }
.calor tr.lin-marcada td { box-shadow: inset 0 2px 0 #f2a65a, inset 0 -2px 0 #f2a65a; }
.calor tr.lin-marcada td:first-child { color: #f2a65a; font-weight: 600; box-shadow: inset 2px 2px 0 #f2a65a, inset 0 -2px 0 #f2a65a; }
.calor .col-marcada { outline: 2px solid #8f80f3; outline-offset: -2px; }
.calor th.col-marcada { color: #8f80f3; }
.calor .ico-rec { margin-right: 6px; }
/* select de marcação múltipla */
.msel { position: relative; }
.msel .caret { font-style: normal; font-size: 11px; color: var(--texto-3); }
.msel-menu { position: absolute; top: calc(100% + 6px); right: 0; z-index: 40; width: 300px; display: none; background: var(--card); border: 1px solid var(--linha-forte); border-radius: 14px; box-shadow: var(--sombra); padding: 10px; }
.msel-menu.aberto { display: block; }
.msel-busca { width: 100%; height: 32px; margin-bottom: 8px; }
.msel-acoes { display: flex; gap: 6px; margin-bottom: 8px; }
.msel-lista { max-height: 300px; overflow-y: auto; display: flex; flex-direction: column; gap: 2px; }
.msel-op { display: flex; align-items: center; gap: 8px; padding: 5px 6px; border-radius: 8px; cursor: pointer; font-size: 13px; }
.msel-op:hover { background: var(--sutil); }
.msel-op[hidden] { display: none; }
.msel-op .msel-t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.msel-op .fraco { color: var(--texto-3); font-size: 11.5px; font-variant-numeric: tabular-nums; }
.msel-cor { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.calor-sel + .calor-sel { margin-left: 6px; }

/* gráficos */
.grafico { position: relative; height: 260px; }
.grafico.alto { height: 340px; }
.grafico.baixo { height: 200px; }

/* naves */
.nave { display: flex; gap: 12px; align-items: center; padding: 8px; border-radius: 14px; background: var(--card-2); border: 1px solid var(--linha); }
.nave img { width: 64px; height: 44px; border-radius: 9px; object-fit: cover; background: #0e0e0e; flex: none; }
.nave strong { display: block; font-size: 13px; }
.nave small { color: var(--texto-3); }
.nave .qtd { margin-left: auto; font-weight: 700; font-size: 16px; }
.lista-naves { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }

/* stats */
.stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 8px; }
.stat { background: var(--card-2); border: 1px solid var(--linha); border-radius: 12px; padding: 10px 12px; }
.stat span { display: block; color: var(--texto-3); font-size: 11.5px; }
.stat b { font-size: 15px; font-variant-numeric: tabular-nums; }
.stat b small { color: var(--texto-3); font-weight: 500; font-size: 11px; margin-left: 3px; }
h5.secao { margin: 18px 0 10px; font-size: 12px; text-transform: uppercase; letter-spacing: .8px; color: var(--texto-3); font-weight: 600; }

/* modais flutuantes (arrastáveis, empilháveis) */
.modal {
  position: fixed; z-index: 100; width: min(880px, calc(100vw - 24px)); max-height: calc(100vh - 40px); display: flex; flex-direction: column;
  background: var(--modal-bg); border: 1px solid var(--linha-forte); border-radius: 22px; box-shadow: var(--sombra), 0 0 0 1px rgba(0, 0, 0, .4);
  backdrop-filter: blur(14px); animation: surgir .16s ease-out;
}
.modal.largo { width: min(1080px, calc(100vw - 24px)); }
.modal.estreito { width: min(520px, calc(100vw - 24px)); }
@keyframes surgir { from { opacity: 0; transform: translateY(8px) scale(.985); } }
.modal-cab { display: flex; align-items: center; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--linha); cursor: move; user-select: none; }
.modal-cab h3 { margin: 0; font-size: 16px; }
.modal-cab .sub { color: var(--texto-3); font-size: 12px; }
.modal-cab .espaco { flex: 1; }
.modal-corpo { padding: 18px; overflow: auto; }
.modal-rodape { padding: 12px 18px; border-top: 1px solid var(--linha); display: flex; gap: 10px; justify-content: flex-end; }
.modal.min .modal-corpo, .modal.min .modal-rodape { display: none; }
.fundo-modal { position: fixed; inset: 0; background: rgba(0, 0, 0, .35); z-index: 90; display: none; }
body.com-modal .fundo-modal { display: block; }

/* diversos */
.vazio { color: var(--texto-3); text-align: center; padding: 30px 10px; }
.carregando { position: relative; min-height: 120px; }
.carregando::after { content: ''; position: absolute; inset: 0; margin: auto; width: 28px; height: 28px; border-radius: 50%; border: 3px solid var(--sutil-2); border-top-color: var(--acento); animation: gira .8s linear infinite; }
@keyframes gira { to { transform: rotate(360deg); } }
.toast { position: fixed; right: 20px; bottom: 20px; z-index: 200; background: var(--card-2); border: 1px solid var(--linha-forte); border-radius: 14px; padding: 12px 16px; box-shadow: var(--sombra); animation: surgir .16s; }
.toast.erro { border-color: rgba(240, 123, 123, .5); }
.endereco { font-family: ui-monospace, 'SFMono-Regular', Consolas, monospace; font-size: 12px; color: var(--texto-2); }
.copiar { cursor: pointer; border-bottom: 1px dashed var(--linha-forte); }
.lista-simples { list-style: none; margin: 0; padding: 0; }
.lista-simples li { display: flex; align-items: center; gap: 10px; padding: 9px 2px; border-bottom: 1px solid var(--linha); }
.lista-simples li:last-child { border-bottom: 0; }
.lista-simples li .espaco { flex: 1; }
.lista-simples li.clicavel { cursor: pointer; } .lista-simples li.clicavel:hover { background: var(--sutil); }
.preco .val { font-size: 22px; }
.var-pos { color: var(--ok); } .var-neg { color: var(--perigo); }
.form-linha { display: grid; gap: 6px; margin-bottom: 12px; }
.form-linha label { font-size: 12px; color: var(--texto-3); }
.legenda { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--texto-2); margin-top: 8px; }
.legenda i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; }

/* tela de login */
.login { min-height: 100vh; display: grid; place-items: center; padding: 20px; }
.login .caixa { width: min(440px, 100%); background: var(--panel); border: 1px solid var(--linha); border-radius: 26px; padding: 34px; text-align: center; box-shadow: var(--sombra); }
.login .logo-img { height: auto; width: min(240px, 100%); margin: 4px auto 18px; }
.login h1 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.login .caixa { background: radial-gradient(420px 160px at 50% 0%, rgba(77, 167, 239, .14), transparent 70%), var(--panel); }
.login p { color: var(--texto-2); margin: 0 0 22px; }
.login .btn { width: 100%; justify-content: center; height: 48px; font-size: 15px; background: #5865f2; border: 0; color: #fff; font-weight: 600; }
.login .erro { background: var(--perigo-bg); color: var(--perigo); border-radius: 12px; padding: 10px 12px; margin-bottom: 16px; font-size: 13px; }

/* crafting / tripulação */
a.link-kpi { text-decoration: none; color: inherit; transition: border-color .15s, transform .15s; }
a.link-kpi:hover { border-color: rgba(77, 167, 239, .45); transform: translateY(-1px); }
.medidor-mini { display: flex; align-items: center; gap: 8px; }
.medidor-mini .medidor { flex: 1; }
.medidor-mini span { min-width: 54px; text-align: right; font-variant-numeric: tabular-nums; color: var(--texto-2); font-size: 12.5px; }

/* endereço do perfil ao lado do nome + copiar */
.perfil-cel { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
.end-perfil { color: var(--texto-3); opacity: .8; font-size: 11.5px; font-weight: 400; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: .2px; white-space: nowrap; }
.copiar-end { opacity: 0; border: 0; background: none; color: var(--texto-3); cursor: pointer; padding: 2px; border-radius: 6px; display: inline-grid; place-items: center; transition: opacity .12s, color .12s; }
.copiar-end svg { width: 13px; height: 13px; }
.copiar-end:hover { color: var(--acento); background: rgba(77, 167, 239, .12); }
tr:hover .copiar-end, li:hover .copiar-end, .modal-cab:hover .copiar-end, .kpi:hover .copiar-end, .perfil-cel:hover .copiar-end, .copiar-end:focus-visible { opacity: 1; }
@media (hover: none) { .copiar-end { opacity: .7; } }
/* ver mais */
.ver-mais { margin-top: 12px; width: 100%; justify-content: center; color: var(--acento); }
.ver-mais svg { width: 14px; height: 14px; }
.nave-cel { display: inline-flex; align-items: center; gap: 8px; }
.nave-cel img { width: 34px; height: 34px; object-fit: cover; border-radius: 8px; background: var(--card-2); }
.nave.clicavel { cursor: pointer; }
.nave.clicavel:hover { border-color: rgba(77, 167, 239, .45); }

/* troca de perfil (topo) */
.troca-perfil { position: relative; }
.troca-btn { display: flex; align-items: center; gap: 9px; height: 42px; padding: 0 12px; border-radius: 12px; border: 1px solid var(--linha); background: rgba(77, 167, 239, .08); cursor: pointer; text-align: left; }
.troca-btn:hover { border-color: rgba(77, 167, 239, .45); }
.troca-btn svg { width: 17px; height: 17px; color: var(--acento); flex: none; }
.troca-btn b { display: block; font-size: 13px; max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.troca-btn small { display: block; font-size: 11px; color: var(--texto-3); font-family: ui-monospace, Menlo, Consolas, monospace; }
.troca-btn .caret { font-style: normal; color: var(--texto-3); }
.troca-menu { position: absolute; right: 0; top: 48px; min-width: 340px; background: var(--card); border: 1px solid var(--linha-forte); border-radius: 14px; box-shadow: var(--sombra); padding: 6px; display: none; z-index: 80; }
.troca-menu.aberto { display: block; }
.troca-menu h6 { margin: 8px 10px 4px; font-size: 11px; text-transform: uppercase; letter-spacing: .8px; color: var(--texto-3); }
.troca-item { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 10px; cursor: pointer; }
.troca-item:hover { background: var(--sutil-2); }
.troca-item.ativo { background: rgba(77, 167, 239, .14); }
.troca-rodape { display: flex; gap: 8px; padding: 8px 6px 4px; border-top: 1px solid var(--linha); margin-top: 6px; }
.estrela { color: var(--texto-3); opacity: .45; cursor: pointer; font-size: 15px; line-height: 1; }
.estrela:hover { opacity: 1; color: var(--aviso); }
.estrela.on { color: var(--aviso); opacity: 1; }
/* painel "Meu perfil" na visão geral */
.meu-painel { margin-bottom: 18px; padding: 16px; border-radius: 22px; border: 1px solid rgba(77, 167, 239, .28); background: linear-gradient(135deg, rgba(77, 167, 239, .10), rgba(68, 215, 247, .03)); position: relative; min-height: 80px; }
.meu-cab { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.meu-cab h2 { margin: 0; font-size: 18px; }
.meu-cab .espaco { flex: 1; }
.meu-vazio { display: flex; gap: 14px; align-items: center; margin: 0; }
.meu-vazio > svg { width: 30px; height: 30px; color: var(--acento); flex: none; }
.meu-vazio p { margin: 4px 0 0; }
@media (max-width: 760px) { .troca-btn span { display: none; } .troca-menu { position: fixed; left: 10px; right: 10px; top: 64px; min-width: 0; } }
.seg button svg { width: 15px; height: 15px; vertical-align: -3px; margin-right: 2px; }
.aviso-faixa { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 14px; border: 1px solid rgba(77, 167, 239, .3); background: rgba(77, 167, 239, .08); color: var(--texto-2); font-size: 13px; margin: 12px 0; }
.aviso-faixa > svg { width: 18px; height: 18px; color: var(--acento); flex: none; margin-top: 1px; }
.timer { font-variant-numeric: tabular-nums; font-weight: 600; color: var(--ciano); white-space: nowrap; }
.timer.vencido { color: var(--perigo); }

/* ---------------- temas: padrão (azul-marinho), escuro (neutro) e claro ---------------- */
:root[data-tema="escuro"] {
  --bg: #09090b; --bg-2: #0f0f12; --panel: #131316; --card: #19191d; --card-2: #222227;
  --linha: rgba(255, 255, 255, .07); --linha-forte: rgba(255, 255, 255, .14);
  --texto: #f2f2f3; --texto-2: #b4b4ba; --texto-3: #7c7c85;
  --topo-a: rgba(19, 19, 22, .94); --topo-b: rgba(9, 9, 11, .9); --modal-bg: rgba(22, 22, 26, .97); --rolagem: #2c2c33;
  --brilho-1: rgba(77, 167, 239, .05); --brilho-2: rgba(255, 255, 255, .02); --brilho-3: rgba(242, 166, 90, .03);
}
:root[data-tema="claro"] {
  color-scheme: light;
  --bg: #eef2f6; --bg-2: #e6ecf2; --panel: #ffffff; --card: #ffffff; --card-2: #f1f5f9;
  --linha: rgba(15, 45, 75, .10); --linha-forte: rgba(15, 45, 75, .18);
  --texto: #0f1d2a; --texto-2: #3f5468; --texto-3: #64798c;
  --acento: #1f7fd1; --acento-forte: #1a6fb8; --acento-escuro: #155a96; --acento-tinta: #ffffff;
  --ciano: #0b8fb3; --laranja: #c96a12; --laranja-bg: rgba(201, 106, 18, .12); --roxo: #6a5bd6;
  --perigo: #c0392b; --perigo-bg: rgba(192, 57, 43, .10); --aviso: #a86f00; --aviso-bg: rgba(168, 111, 0, .12);
  --ok: #1e8a4f; --ok-bg: rgba(30, 138, 79, .10); --info: #2a6fd1; --info-bg: rgba(42, 111, 209, .10);
  --sutil: rgba(15, 45, 75, .04); --sutil-2: rgba(15, 45, 75, .07); --sutil-3: rgba(15, 45, 75, .12);
  --topo-a: rgba(255, 255, 255, .94); --topo-b: rgba(246, 249, 252, .92); --modal-bg: rgba(255, 255, 255, .98); --rolagem: #c3cfdb;
  --brilho-1: rgba(31, 127, 209, .08); --brilho-2: rgba(11, 143, 179, .05); --brilho-3: rgba(201, 106, 18, .04);
  --sombra: 0 18px 50px rgba(15, 45, 75, .18);
}
.logo-claro { display: none; }
:root[data-tema="claro"] .logo-img.logo-escuro-img { display: none; }
:root[data-tema="claro"] .logo-img.logo-claro { display: block; }
@media (max-width: 760px) { :root[data-tema="claro"] .topo .logo-img.logo-claro { display: none; } }
.tema-menu { position: absolute; right: 0; top: 48px; background: var(--card); border: 1px solid var(--linha-forte); border-radius: 14px; box-shadow: var(--sombra); padding: 6px; display: none; z-index: 80; min-width: 200px; }
.tema-menu.aberto { display: block; }
.tema-menu button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; border: 0; background: none; border-radius: 10px; cursor: pointer; text-align: left; }
.tema-menu button:hover { background: var(--sutil-2); }
.tema-menu button.ativo { background: rgba(77, 167, 239, .14); }
.tema-menu .amostra { width: 26px; height: 18px; border-radius: 6px; border: 1px solid var(--linha-forte); flex: none; }
/* cor extra */
.coluna.laranja > h3 .contador { background: var(--laranja); }
.coluna.laranja > .barra { background: var(--laranja); }
.kpi.laranja .icone { background: var(--laranja-bg); color: var(--laranja); }
.selo.laranja { color: var(--laranja); background: var(--laranja-bg); border-color: transparent; }
.selo.roxo { color: var(--roxo); background: color-mix(in srgb, var(--roxo) 14%, transparent); border-color: transparent; }
/* menu: rolagem oculta + seta animada */
.menu { scrollbar-width: none; }
.menu::-webkit-scrollbar { display: none; }
.menu-mais { position: sticky; bottom: -12px; margin: 0 -10px -12px; height: 34px; display: none; place-items: center; color: var(--acento);
  background: linear-gradient(180deg, transparent, var(--panel) 55%); pointer-events: none; }
.menu-mais.visivel { display: grid; }
.menu-mais svg { width: 18px; height: 18px; animation: quicar 1.2s ease-in-out infinite; }
@keyframes quicar { 0%, 100% { transform: translateY(-2px); opacity: .6; } 50% { transform: translateY(3px); opacity: 1; } }
@media (max-width: 760px) { .menu-mais { display: none !important; } }
/* ícones de recursos */
.ico-rec { width: 22px; height: 22px; border-radius: 6px; object-fit: cover; vertical-align: middle; margin-right: 8px; background: var(--card-2); flex: none; }
span.ico-rec { display: inline-block; }
.modal-cab h3 .ico-rec { margin-right: 10px; }
.medidor.laranja > i { background: var(--laranja); }
.tema-menu button { color: var(--texto); font: inherit; }
.ico-rec.grande { width: 40px; height: 40px; border-radius: 10px; }
/* frotas para empréstimo */
.emprestimo { display: grid; gap: 12px; }
.emp-cartao { border: 1px solid var(--linha); border-radius: 16px; padding: 14px; background: var(--card); display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 14px; }
.emp-cartao h5 { margin: 0 0 6px; font-size: 11px; text-transform: uppercase; letter-spacing: .7px; color: var(--texto-3); }
.emp-naves { display: flex; flex-wrap: wrap; gap: 6px; }
.emp-naves span { display: inline-flex; align-items: center; gap: 6px; padding: 3px 8px 3px 3px; border-radius: 999px; background: var(--sutil-2); font-size: 12px; }
.emp-naves span.achada { box-shadow: 0 0 0 1.5px var(--acento); color: var(--texto); }
.emp-naves img { width: 22px; height: 22px; border-radius: 50%; object-fit: cover; }
.emp-scores { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; font-size: 12.5px; }
.emp-scores b { display: block; font-size: 15px; }
@media (max-width: 1000px) { .emp-cartao { grid-template-columns: 1fr; } }
/* visão geral: KPIs do meu perfil + LP do dia lado a lado */
.meu-linha { display: grid; grid-template-columns: minmax(210px, .75fr) minmax(0, 1.25fr) minmax(0, 1.1fr); gap: 16px; align-items: stretch; }
.meu-linha .meu-kpis { display: grid; grid-template-columns: 1fr; gap: 12px; }
.meu-craft { display: flex; flex-direction: column; min-width: 0; }
.meu-craft .tabela-wrap { flex: 1; max-height: 290px; overflow-y: auto; }
.meu-craft h4 svg, .meu-craft .btn svg { width: 15px; height: 15px; vertical-align: -2px; }
.meu-craft > .btn { align-self: flex-start; }
.meu-lp { display: flex; flex-direction: column; min-width: 0; }
.meu-lp .grafico { flex: 1; min-height: 210px; }
.meu-lp .seg button { padding: 5px 10px; font-size: 12px; }
.lpj-total { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-top: 10px; }
.lpj-total > div { display: flex; flex-direction: column; font-size: 12px; }
.lpj-total > div b { font-size: 16px; color: var(--texto); }
.lpj-total > div:first-child b { color: var(--laranja); }
.lpj-total .desc { flex-basis: 100%; margin: 2px 0 0; }
@media (max-width: 1250px) { .meu-linha { grid-template-columns: 1fr 1fr; } .meu-linha .meu-kpis { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .meu-linha, .meu-linha .meu-kpis { grid-template-columns: 1fr; } }
/* visão geral: KPIs gerais + LP do dia por facção à direita */
.resumo-linha { display: grid; grid-template-columns: minmax(0, 2.6fr) minmax(280px, 1fr); gap: 16px; align-items: stretch; }
@media (max-width: 1250px) { .resumo-linha { grid-template-columns: 1fr; } }
/* frotas: naves fora de frotas + lista de naves */
.naves-linha { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(280px, 1fr); gap: 16px; align-items: start; }
.naves-linha #top-naves .lista-naves { max-height: 640px; overflow-y: auto; }
@media (max-width: 1100px) { .naves-linha { grid-template-columns: 1fr; } }
.cel-ico { white-space: nowrap; }
.cel-ico > span { display: inline-block; vertical-align: middle; white-space: normal; }
/* atualização ao vivo (blockchain) */
.btn-vivo { border-color: rgba(242, 166, 90, .45); color: var(--laranja); }
.btn-vivo:hover { background: var(--laranja-bg); }
.btn-vivo svg { width: 15px; height: 15px; }
.btn-vivo.girando { opacity: .9; cursor: progress; }
.btn-vivo.girando svg { animation: girar 1s linear infinite; }
.btn-vivo.girando, .btn-vivo.falhou { position: relative; overflow: hidden; }
.btn-vivo.girando { background: var(--laranja-bg); box-shadow: 0 0 0 3px rgba(242, 166, 90, .14); animation: vivoPulso 1.6s ease-in-out infinite; }
.btn-vivo.girando::after { content: ''; position: absolute; left: -40%; bottom: 0; width: 40%; height: 2px; background: linear-gradient(90deg, transparent, var(--laranja), transparent); animation: vivoFaixa 1.1s linear infinite; }
.btn-vivo .seg { font-weight: 600; font-variant-numeric: tabular-nums; opacity: .85; }
.btn-vivo.falhou { animation: vivoErro .4s ease-in-out 2; border-color: var(--perigo); color: var(--perigo); }
@keyframes vivoFaixa { to { left: 100%; } }
@keyframes vivoPulso { 50% { box-shadow: 0 0 0 5px rgba(242, 166, 90, .06); } }
@keyframes vivoErro { 25% { transform: translateX(-3px); } 75% { transform: translateX(3px); } }
.bf-sit.lendo { position: relative; }
.bf-sit.lendo .grade { opacity: .55; transition: opacity .3s; }
.bf-sit.lendo::after { content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: linear-gradient(100deg, transparent 30%, rgba(242, 166, 90, .08) 50%, transparent 70%); background-size: 250% 100%; animation: vivoBrilho 1.4s linear infinite; }
.bf-sit.lido { animation: vivoLido 1.6s ease-out; }
@keyframes vivoBrilho { from { background-position: 120% 0; } to { background-position: -120% 0; } }
@keyframes vivoLido { from { box-shadow: 0 0 0 2px var(--ok); } to { box-shadow: 0 0 0 2px transparent; } }
@media (prefers-reduced-motion: reduce) { body:not([data-pg="bot"]) .btn-vivo.girando, body:not([data-pg="bot"]) .btn-vivo.girando::after, body:not([data-pg="bot"]) .btn-vivo.girando svg { animation: none; } } /* no Sis-Bot os efeitos ficam sempre */
@keyframes girar { to { transform: rotate(360deg); } }
.modal-cab .btn-vivo { margin-left: 6px; }
.kpi .rot { padding-right: 44px; }
/* ---------------- mapa ---------------- */
.mapa-grade { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 16px; align-items: start; }
@media (max-width: 1200px) { .mapa-grade { grid-template-columns: 1fr; } }
.mapa-cartao { position: relative; padding: 0; overflow: hidden; }
.mapa-svg { display: block; width: 100%; height: 70vh; cursor: crosshair; touch-action: none; user-select: none; }
.mapa-ferr { position: absolute; top: 16px; right: 16px; display: flex; flex-direction: column; gap: 6px; z-index: 2; }
.mapa-dica { position: absolute; pointer-events: none; background: var(--card); border: 1px solid var(--linha-forte); border-radius: 10px; padding: 8px 10px; font-size: 12px; box-shadow: var(--sombra); max-width: 240px; z-index: 3; color: var(--texto-2); }
.mapa-dica b { color: var(--texto); }
.mapa-lado { display: block; }
.mp-fundo { fill: var(--bg-2); stroke: var(--linha-forte); stroke-width: .2; }
.mp-grade { stroke: var(--linha); fill: none; }
.mp-eixo { stroke: var(--linha-forte); fill: none; }
.mp-rot-eixo { fill: var(--texto-3); opacity: .8; pointer-events: none; }
.mp-frota { fill: var(--acento); }
.mp-transito { stroke: var(--ciano); stroke-opacity: .45; stroke-linecap: round; }
.mp-planeta { fill: var(--texto-3); opacity: .55; }
.mp-planeta.minavel { fill: var(--texto-2); opacity: .9; }
.mp-planeta.cinturao { fill: none; stroke: var(--texto-2); }
.mp-planeta.destaque { fill: var(--laranja); opacity: 1; }
.mp-planeta.destaque.cinturao { fill: none; stroke: var(--laranja); }
.mp-planeta.apagado { opacity: .18; }
.mp-sb { stroke: var(--card); }
.mp-rot { fill: var(--texto); text-anchor: middle; font-weight: 600; paint-order: stroke; stroke: var(--bg-2); stroke-width: .35px; }
.mp-sel { fill: none; stroke: var(--laranja); }
.chip-chk { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 1px solid var(--linha-forte); border-radius: 999px; font-size: 13px; color: var(--texto-2); cursor: pointer; background: var(--card); }
.chip-chk input { accent-color: var(--acento); }
.mp-leg li { gap: 8px; font-size: 13px; }
.mp-bola { display: inline-block; width: 12px; height: 12px; border-radius: 50%; background: var(--texto-2); flex: none; vertical-align: middle; }
.mp-bola.grande { width: 15px; height: 15px; } .mp-bola.pequena { width: 8px; height: 8px; }
.mp-bola.anel { box-shadow: 0 0 0 2px var(--card), 0 0 0 3px var(--texto-2); }
.mp-pt { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--texto-3); vertical-align: middle; flex: none; }
.mp-pt.minavel { background: var(--texto-2); } .mp-pt.destaque { background: var(--laranja); }
.mp-pt.anel { background: none; border: 2px solid var(--texto-2); width: 9px; height: 9px; }
.mp-quad { display: inline-block; width: 22px; height: 12px; border-radius: 3px; background: linear-gradient(90deg, rgba(77, 167, 239, .2), var(--acento)); flex: none; }
.mp-linha { display: inline-block; width: 22px; height: 2px; background: var(--ciano); flex: none; }
.mp-sb-cartao { border: 1px solid; border-left-width: 4px; border-radius: 12px; padding: 10px 12px; margin: 8px 0; display: grid; gap: 8px; }
.mp-sb-cartao .btn { justify-self: start; }
.mp-sb-num { display: flex; gap: 18px; font-size: 12px; color: var(--texto-3); }
.mp-sb-num b { display: block; font-size: 16px; color: var(--texto); }
.mp-recs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.mp-recs span { display: inline-flex; align-items: center; padding: 2px 8px 2px 2px; border-radius: 999px; background: var(--sutil-2); font-size: 12px; gap: 2px; }
.mp-recs .ico-rec { width: 18px; height: 18px; margin-right: 4px; border-radius: 50%; }
.icone-btn.pequeno { width: 30px; height: 30px; }
.mp-orbita { fill: none; stroke: var(--texto-3); stroke-opacity: .5; }
.mp-orbita.destaque { stroke: var(--laranja); stroke-opacity: .9; }
.mp-planeta.minavel { fill: var(--ciano); }
.mp-planeta.minavel.cinturao { fill: none; stroke: var(--ciano); }
.mp-pt.minavel { background: var(--ciano); }

/* mapa: página sem rolagem — o mapa preenche a tela e só o painel lateral (#mp-setor) rola */
@media (min-width: 1201px) {
  body.pg-mapa { overflow: hidden; }
  body.pg-mapa .app { padding-bottom: 18px; }
  .mapa-pagina { height: var(--mp-alt, calc(100vh - 110px)); display: flex; flex-direction: column; }
  .mapa-pagina > .cab, .mapa-pagina > .filtros { flex: none; margin-bottom: 12px; }
  .mapa-pagina .mapa-grade { flex: 1; min-height: 0; align-items: stretch; }
  .mapa-pagina .mapa-cartao { height: 100%; min-height: 0; }
  .mapa-pagina .mapa-svg { height: 100%; }
  .mapa-pagina .mapa-lado { height: 100%; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
}
@media (max-width: 1200px) { .mapa-lado { max-height: 70vh; overflow-y: auto; } }
.mapa-dica[hidden], .mp-flut[hidden] { display: none; }

/* toggle (interruptor) */
.tgl { position: relative; display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 8px; border: 1px solid var(--linha-forte); border-radius: 999px; font-size: 13px; color: var(--texto-2); cursor: pointer; background: var(--card); user-select: none; }
.tgl input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.tgl-trilho { position: relative; width: 30px; height: 17px; border-radius: 999px; background: var(--sutil-3); transition: background .15s; flex: none; }
.tgl-trilho::after { content: ''; position: absolute; top: 2px; left: 2px; width: 13px; height: 13px; border-radius: 50%; background: var(--texto-2); transition: transform .15s, background .15s; }
.tgl input:checked + .tgl-trilho { background: var(--acento); }
.tgl input:checked + .tgl-trilho::after { transform: translateX(13px); background: #fff; }
.tgl input:focus-visible + .tgl-trilho { outline: 2px solid var(--acento-forte); outline-offset: 2px; }
.tgl:has(input:checked) { color: var(--texto); border-color: rgba(77, 167, 239, .45); }

/* accordion do painel lateral */
.acc { border-top: 1px solid var(--linha); }
#mp-secoes > .acc:first-child, #mp-secoes > p + .acc, .mp-setor-cab + .acc, .mp-setor-cab + p + .acc { border-top: 0; }
.acc > summary { list-style: none; display: flex; align-items: center; gap: 8px; padding: 12px 2px; cursor: pointer; font-weight: 600; font-size: 13.5px; }
.acc > summary::-webkit-details-marker { display: none; }
.acc > summary::after { content: ''; margin-left: auto; width: 7px; height: 7px; border-right: 2px solid var(--texto-3); border-bottom: 2px solid var(--texto-3); transform: rotate(45deg) translateY(-2px); transition: transform .15s; }
.acc[open] > summary::after { transform: rotate(-135deg); }
.acc > summary:hover { color: var(--acento); }
.acc > summary .cont { color: var(--texto-3); font-weight: 500; font-size: 12px; padding: 1px 7px; border-radius: 999px; background: var(--sutil-2); }
.acc-corpo { padding: 0 2px 14px; }
.acc-corpo .mp-sb-cartao { margin-top: 0; }
.mp-setor-cab { display: flex; align-items: center; gap: 8px; padding-bottom: 6px; }
.mp-setor-cab h4 { margin: 0; }
#mp-legenda .acc { border-top: 1px solid var(--linha); }

/* bolinha azul: frota sua no setor */
.mp-minha { pointer-events: none; }
.mp-minha .halo { fill: #2f7bff; opacity: .28; } .mp-minha .anel { fill: #fff; } .mp-minha .miolo { fill: #2f6bff; }
.mp-bola.minha { width: 10px; height: 10px; background: #2f6bff; box-shadow: 0 0 0 2px #fff, 0 0 0 5px rgba(47, 123, 255, .3); margin: 0 3px; }

/* menu flutuante da starbase — vidro futurista: degradê + transparência, borda em degradê, brilho e scanlines */
.mp-flut { position: absolute; z-index: 4; width: 296px; max-width: calc(100% - 24px); max-height: calc(100% - 24px); display: flex; flex-direction: column;
  --hud: var(--ciano); --hud2: var(--roxo); border-radius: 14px; isolation: isolate;
  background:
    radial-gradient(120% 70% at 0% 0%, rgba(68, 215, 247, .20), transparent 60%),
    radial-gradient(90% 60% at 100% 100%, rgba(143, 128, 243, .18), transparent 65%),
    linear-gradient(160deg, rgba(16, 38, 56, .72), rgba(5, 12, 20, .58));
  backdrop-filter: blur(14px) saturate(150%); -webkit-backdrop-filter: blur(14px) saturate(150%);
  box-shadow: 0 18px 48px rgba(0, 0, 0, .55), 0 0 28px rgba(68, 215, 247, .14), inset 0 1px 0 rgba(255, 255, 255, .08);
  animation: mpFlutIn .18s ease-out; }
.mp-flut.aliado { --hud: #6ff0c0; --hud2: var(--ciano); }
@keyframes mpFlutIn { from { opacity: 0; transform: translateY(6px) scale(.98); } to { opacity: 1; transform: none; } }
/* borda em degradê */
.mp-flut::before { content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none; z-index: 2;
  background: linear-gradient(135deg, var(--hud), rgba(255, 255, 255, .08) 35%, rgba(255, 255, 255, .04) 60%, var(--hud2));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
/* scanlines + linha de luz no topo */
.mp-flut::after { content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: 1;
  background: linear-gradient(90deg, transparent 8%, var(--hud) 50%, transparent 92%) top / 100% 1px no-repeat,
              repeating-linear-gradient(0deg, rgba(255, 255, 255, .025) 0 1px, transparent 1px 3px); opacity: .9; }
.mp-flut-in { position: relative; z-index: 3; overflow-y: auto; overflow-x: hidden; min-height: 0; padding: 12px 10px 12px 12px; margin-right: 2px;
  scrollbar-width: thin; scrollbar-color: rgba(68, 215, 247, .55) transparent; }
.mp-flut-in::-webkit-scrollbar { width: 6px; }
.mp-flut-in::-webkit-scrollbar-track { background: rgba(255, 255, 255, .03); border-radius: 6px; margin: 10px 0; }
.mp-flut-in::-webkit-scrollbar-thumb { background: linear-gradient(180deg, var(--hud), var(--hud2)); border: 0; border-radius: 6px; box-shadow: 0 0 6px rgba(68, 215, 247, .6); }
.mp-flut-in::-webkit-scrollbar-thumb:hover { filter: brightness(1.2); }
.mp-flut-cab { display: flex; align-items: flex-start; gap: 6px; }
.mp-flut-tit { flex: 1; min-width: 0; }
.mp-flut-tit .rot { display: flex; align-items: center; gap: 6px; font-size: 10px; font-weight: 800; letter-spacing: 1.6px; text-transform: uppercase; color: var(--hud); text-shadow: 0 0 10px var(--hud); }
.mp-flut-tit .rot::before { content: ''; width: 6px; height: 6px; transform: rotate(45deg); background: var(--hud); box-shadow: 0 0 8px var(--hud); }
.mp-flut-tit h4 { margin: 2px 0 0; font-size: 19px; letter-spacing: .6px; line-height: 1.1; background: linear-gradient(90deg, #fff 30%, var(--hud)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.mp-flut-x { border: 1px solid rgba(255, 255, 255, .1); background: rgba(255, 255, 255, .04); color: var(--texto-2); width: 24px; height: 24px; border-radius: 7px; cursor: pointer; display: grid; place-items: center; transition: .15s; }
.mp-flut-x:hover { color: #fff; border-color: var(--hud); box-shadow: 0 0 10px rgba(68, 215, 247, .4); } .mp-flut-x svg { width: 13px; height: 13px; }
.mp-flut-faixa { display: flex; justify-content: space-between; gap: 8px; margin: 8px 0; padding: 4px 9px; font-size: 11.5px; color: var(--texto-2); border-radius: 7px;
  background: linear-gradient(90deg, rgba(68, 215, 247, .16), rgba(143, 128, 243, .06) 60%, transparent); border: 1px solid rgba(68, 215, 247, .14); }
.mp-flut-faixa b { color: var(--hud); font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.mp-flut-acoes { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.mp-flut-ac { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; cursor: pointer; color: #fff; transition: .15s;
  border: 1px solid rgba(68, 215, 247, .45); background: linear-gradient(145deg, rgba(68, 215, 247, .28), rgba(143, 128, 243, .16)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15); }
.mp-flut-ac:hover { box-shadow: 0 0 14px rgba(68, 215, 247, .55), inset 0 1px 0 rgba(255, 255, 255, .2); transform: translateY(-1px); } .mp-flut-ac svg { width: 18px; height: 18px; }
.mp-flut-dado { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; color: var(--texto-2); padding: 0 7px; height: 24px; border-radius: 7px; background: rgba(255, 255, 255, .045); border: 1px solid rgba(255, 255, 255, .07); }
.mp-flut-dado svg { width: 12px; height: 12px; color: var(--hud); } .mp-flut-dado b { color: var(--texto); font-weight: 600; }
.mp-flut h6 { margin: 12px 0 6px; font-size: 10px; text-transform: uppercase; letter-spacing: 1.2px; color: var(--texto-2); display: flex; align-items: center; gap: 6px; }
.mp-flut h6::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(68, 215, 247, .4), transparent); }
.mp-flut-frotas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.mp-fcard { position: relative; overflow: hidden; border-radius: 9px; padding: 6px 7px; display: grid; gap: 1px; cursor: pointer; text-align: left; min-width: 0; color: var(--texto); transition: .15s;
  border: 1px solid rgba(68, 215, 247, .14); background: linear-gradient(180deg, rgba(255, 255, 255, .07), rgba(0, 0, 0, .22)); }
.mp-fcard::after { content: ''; position: absolute; inset: 0; background: linear-gradient(115deg, transparent 40%, rgba(255, 255, 255, .12) 50%, transparent 60%); transform: translateX(-100%); transition: transform .5s; pointer-events: none; }
.mp-fcard:hover, .mp-fcard:focus-visible { border-color: var(--hud); outline: none; box-shadow: 0 0 14px rgba(68, 215, 247, .3); }
.mp-fcard:hover::after { transform: translateX(100%); }
.mp-fcard b { font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mp-fcard small { font-size: 9.5px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: var(--hud); min-height: 12px; }
.mp-fcard-img { height: 46px; display: grid; place-items: center; color: var(--texto-3); }
.mp-fcard-img img { width: 100%; height: 46px; object-fit: contain; border-radius: 5px; -webkit-mask: linear-gradient(180deg, #000 70%, transparent); mask: linear-gradient(180deg, #000 70%, transparent); }
.mp-fcard-img svg { width: 22px; height: 22px; }
.mp-fcard .num { display: flex; flex-wrap: wrap; gap: 3px; font-size: 10.5px; color: var(--texto-2); }
.mp-fcard .num span { display: inline-flex; align-items: center; gap: 2px; padding: 0 5px; border-radius: 5px; background: rgba(0, 0, 0, .3); border: 1px solid rgba(255, 255, 255, .06); }
.mp-fcard .num .est { color: var(--laranja); border-color: rgba(242, 166, 90, .3); }
.mp-fcard .num svg { width: 10px; height: 10px; }

/* cabeçalho e barra de filtros do mapa */
.mp-cab { align-items: baseline; gap: 14px; }
.mp-cab .sub { flex: 1; min-width: 0; }
.mp-barra { align-items: center; }
.mp-esc { display: contents; }
.mp-camadas { position: relative; }
.mp-camadas .btn svg { width: 15px; height: 15px; }
.mp-camadas .caret { font-style: normal; font-size: 11px; color: var(--texto-3); }
.mp-camadas-menu { position: absolute; top: calc(100% + 8px); left: 0; z-index: 40; width: 320px; display: none; background: var(--card); border: 1px solid var(--linha-forte); border-radius: 14px; box-shadow: var(--sombra); padding: 12px; }
.mp-camadas-menu.aberto { display: block; }
.mp-camadas-menu h6 { margin: 0 0 8px; font-size: 11px; text-transform: uppercase; letter-spacing: .8px; color: var(--texto-3); }
.mp-camadas-menu h6 + * { margin-bottom: 12px; }
.mp-camadas-tgl { display: flex; flex-wrap: wrap; gap: 6px; }
.mp-camadas-menu select { width: 100%; margin-bottom: 0 !important; }

/* crafts no modal da starbase */
.sb-crafts { max-height: 360px; overflow: auto; }
.mp-fcard-est .selo { font-size: 10.5px; padding: 1px 6px; }
.sb-crafts-cartao h4 { display: flex; align-items: center; gap: 8px; margin: 0; }
.sb-crafts-cartao h4 svg { width: 18px; height: 18px; flex: none; }
/* crafts agrupados por recurso */
.sb-g td { background: var(--sutil); }
.sb-g:hover td { background: var(--sutil-2); }
.sb-seta { font-style: normal; color: var(--texto-3); width: 12px; display: inline-block; transition: transform .15s; margin-right: 2px; }
.sb-grupo.aberto .sb-seta { transform: rotate(90deg); color: var(--acento); }
.sb-grupo:not(.aberto) .sb-det { display: none; }
.sb-det-perfil { padding-left: 46px !important; }
.sb-det td { font-size: 12.5px; }
.mapa-grade > .mapa-lado { margin: 0; }
/* aluguéis: composição embaixo do nome da frota, termo buscado em destaque */
.composicao-linha { font-size: 11.5px; color: var(--texto-3, var(--texto-2)); margin-top: 3px; max-width: 360px; line-height: 1.4; }
.composicao-linha mark, .emp-naves mark { background: color-mix(in srgb, var(--acento) 28%, transparent); color: var(--texto); border-radius: 3px; padding: 0 2px; }

/* menu: grupos (Consultas) */
.menu-grupo { margin: 8px 4px 2px; border-top: 1px solid var(--linha); padding-top: 8px; }
.menu-grupo .rotulo { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .9px; text-transform: uppercase; color: var(--texto-3); padding: 0 10px 2px; white-space: nowrap; }
@media (max-width: 760px) { .menu-grupo { display: none; } }
/* tabelas ordenáveis (Consultas / Portfolio) */
.tabela.ordenavel th.ord { cursor: pointer; user-select: none; }
.tabela.ordenavel th.ord:hover { color: var(--texto); }
.tabela td.quebra { white-space: normal; min-width: 200px; }
.tabela td.quebra .selo { margin: 2px 0; }
/* árvore de receitas */
.arvore { padding: 6px 14px; }
.arv-no { display: flex; align-items: center; gap: 6px; padding: 7px 0 7px calc(var(--nivel) * 26px); border-bottom: 1px solid var(--linha); font-size: 13.5px; }
.arv-no:last-child { border-bottom: 0; }
.arv-no .espaco { flex: 1; }
.arv-btn { width: 22px; height: 22px; border-radius: 6px; border: 1px solid var(--linha-forte); background: var(--card-2); color: var(--texto); cursor: pointer; font-weight: 700; line-height: 1; flex: none; display: inline-grid; place-items: center; padding: 0; }
.arv-btn.vazio { border-color: transparent; background: transparent; cursor: default; }

/* totais no rodapé das tabelas */
.tabela tfoot td { padding: 11px 12px; border-top: 2px solid var(--linha-forte); background: var(--sutil); font-variant-numeric: tabular-nums; }
.tabela tfoot td.num { text-align: right; white-space: nowrap; }
/* calculadora de operações */
.calc .calc-tab td { vertical-align: top; padding: 8px 6px; }
.calc .calc-tab th { padding: 8px 6px; white-space: normal; }
.calc .calc-tab .campo { width: 100%; min-width: 0; padding: 6px 8px; font-size: 13px; }
.calc .calc-tab select.campo { min-width: 150px; }
.calc .calc-tab td.num { padding-top: 14px; }
.calc-msg { font-size: 11.5px; color: var(--aviso); margin-top: 4px; white-space: normal; }
.calc-msg.erro { color: var(--perigo); }
.calc-msg.fraco { color: var(--texto-3); }
.calc-stats { list-style: none; margin: 12px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 16px; font-size: 12.5px; }
.calc-stats li { display: flex; justify-content: space-between; gap: 8px; border-bottom: 1px solid var(--linha); padding: 4px 0; }
.calc-stats li span { color: var(--texto-3); }
.icone-btn.mini { width: 28px; height: 28px; border-radius: 8px; display: inline-grid; place-items: center; }
.icone-btn.mini svg { width: 14px; height: 14px; }
.contador-mini { font-size: 10.5px; font-weight: 700; padding: 1px 6px; border-radius: 999px; background: var(--acento); color: var(--acento-tinta); margin-left: 4px; }
.aviso-faixa { margin-top: 12px; padding: 10px 14px; border-radius: 12px; background: var(--aviso-bg); color: var(--aviso); font-size: 13px; }
.g-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 900px) { .g-2 { grid-template-columns: 1fr; } }

.calc-sub { width: 100%; border-collapse: collapse; }
.calc-sub td { padding: 2px 3px; border: 0; vertical-align: middle; }

/* usuários online (topo) */
.online-qtd { position: absolute; top: -6px; right: -6px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px; background: var(--ok); color: #04130b; font-size: 11px; font-weight: 700; line-height: 19px; text-align: center; box-shadow: 0 0 0 2px var(--panel); }
.online-menu { position: absolute; right: 0; top: 48px; width: 300px; max-height: 60vh; overflow-y: auto; background: var(--card); border: 1px solid var(--linha-forte); border-radius: 14px; box-shadow: var(--sombra); padding: 6px; display: none; z-index: 80; }
.online-menu.aberto { display: block; }
.online-menu h6 { margin: 8px 10px 4px; font-size: 11px; text-transform: uppercase; letter-spacing: .8px; color: var(--texto-3); }
.online-item { display: flex; align-items: center; gap: 10px; padding: 7px 10px; border-radius: 10px; }
.online-item:hover { background: var(--sutil-2); }
.online-av { position: relative; flex: none; }
.online-av img { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; display: block; border: 1px solid var(--linha-forte); }
.online-av i { position: absolute; right: -1px; bottom: -1px; width: 10px; height: 10px; border-radius: 50%; background: var(--ok); box-shadow: 0 0 0 2px var(--card); }
.online-nome { flex: 1; min-width: 0; }
.online-nome b { display: block; font-size: 13px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.online-nome > small { display: block; font-size: 11.5px; color: var(--texto-3); }
.online-rodape { font-size: 11.5px; padding: 8px 10px 4px; border-top: 1px solid var(--linha); margin-top: 6px; }
@media (max-width: 760px) { .online-menu { position: fixed; left: 10px; right: 10px; top: 64px; width: auto; } }

/* ---------------------------------------------------------------- Bot (SIS Bot) */
.bot-salvar { position: sticky; bottom: 12px; z-index: 30; display: flex; align-items: center; gap: 10px; margin-top: 14px; padding: 10px 14px; border-radius: 14px; background: var(--card-2); border: 1px solid rgba(77, 167, 239, .45); box-shadow: var(--sombra); }
.bot-salvar[hidden] { display: none; }
.bot-salvar .espaco { flex: 1; }
.bot-acoes { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 14px; }
.bot-acoes .fraco { font-size: 12px; }
.bot-frotas td { vertical-align: top; }
.bot-frotas select.campo { min-width: 120px; }
.bot-linha-item { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 8px; margin-bottom: 8px; }
.bot-ajustes { align-items: start; }
.bot-aj { display: grid; gap: 4px; margin: 0; }
.bot-aj small { font-size: 11.5px; line-height: 1.35; }
.bot-aj .tgl { justify-self: start; }
.bot-alertas { display: grid; gap: 8px; justify-items: start; }
.bot-passos { margin: 6px 0 0; padding-left: 20px; color: var(--texto-2); font-size: 13px; line-height: 1.6; }
.bot-token { display: inline-block; margin: 6px 0; padding: 6px 10px; border-radius: 8px; background: var(--sutil-2); word-break: break-all; cursor: pointer; font-size: 12.5px; }
.bot-eventos li { align-items: flex-start; }
.bot-eventos li > div { min-width: 0; }
@media (max-width: 900px) { .bot-linha-item { grid-template-columns: 1fr; } }
.form-linha[hidden], .bot-aj[hidden] { display: none; }
.bot-supply .campo, .bot-regras .campo { min-width: 0; width: 100%; padding-left: 8px; padding-right: 8px; }
.bot-supply td, .bot-regras td { padding: 6px 4px; }
.bot-supply td:first-child { min-width: 150px; } .bot-supply td:nth-child(2), .bot-supply td:nth-child(4) { min-width: 130px; }
.bot-regras td:nth-child(3) { min-width: 170px; } .bot-regras td:nth-child(4) { min-width: 120px; }

/* menus restritos (Administração › Menus restritos) */
.menu-restrito { color: var(--aviso); font-size: 9px; vertical-align: 2px; margin-left: 4px; }
/* Sis-Bot: reabastecer por rota e botão de atualizar os estoques */
.seg.mini { padding: 2px; border-radius: 9px; }
.seg.mini button { padding: 4px 8px; font-size: 12px; border-radius: 7px; }
.th-acao { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.icone-btn.girando svg { animation: girar 1s linear infinite; }
/* Sis-Bot: aviso de transações lentas / taxa automática */
.bot-aviso { margin-top: 12px; padding: 10px 14px; border-radius: 12px; border: 1px solid var(--aviso); background: color-mix(in srgb, var(--aviso) 10%, transparent); font-size: 13px; line-height: 1.5; }
.bot-aviso.info { border-color: var(--acento); background: color-mix(in srgb, var(--acento) 10%, transparent); }
.bot-aviso .btn { margin-left: 8px; }
/* ---- Sis-Bot 1.1.6: janela larga de Detalhes, linhas do Abastecer/Garimpar, situação da frota, adicionar frotas */
.modal.xlargo { width: min(1560px, calc(100vw - 24px)); }
.bs-resumo { display: grid; gap: 4px; min-width: 360px; font-size: 12.5px; }
.bs-resumo.bs-modal { margin: 4px 0 12px; padding: 10px; border: 1px solid var(--linha); border-radius: var(--raio-p); background: var(--sutil); }
.bs-lin { position: relative; padding: 5px 8px 6px 10px; border-radius: 9px; border-left: 3px solid transparent; }
.bs-lin.atual { background: color-mix(in srgb, var(--acento) 13%, transparent); border-left-color: var(--acento); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--acento) 28%, transparent); }
.bs-lin.atual .bs-ord { color: var(--acento); font-weight: 700; }
.bs-lin.off { opacity: .5; }
.bs-lin-txt { line-height: 1.55; }
.bs-ord { color: var(--texto-3); font-variant-numeric: tabular-nums; }
.bs-mov { display: inline-block; padding: 0 6px; border-radius: 6px; font-size: 11px; color: var(--texto-2); background: var(--sutil-2); border: 1px solid var(--linha); }
.bs-barra { position: relative; height: 5px; margin-top: 4px; border-radius: 99px; background: var(--sutil-2); }
.bs-barra i { position: absolute; inset: 0 auto 0 0; border-radius: 99px; background: var(--ok); transition: width .4s; }
.bs-barra.amarelo i { background: var(--aviso); } .bs-barra.vermelho i { background: var(--perigo); } .bs-barra.cinza i { background: var(--texto-3); }
.bs-barra span { position: absolute; right: 0; top: -15px; font-size: 10.5px; color: var(--texto-3); font-variant-numeric: tabular-nums; }
.bs-lin.atual .bs-barra span { color: var(--acento); font-weight: 600; }
.bs-prio { font-size: 11.5px; padding-left: 10px; }
.bs-prox { padding: 4px 10px 0; line-height: 1.5; }
.bot-supply tr.bs-off td { opacity: .55; }
.bot-supply tr.bs-off td:first-child { opacity: 1; }
.bs-ordem { display: inline-flex; align-items: center; gap: 2px; white-space: nowrap; }
.bs-ordem b { min-width: 24px; font-size: 12px; color: var(--texto-2); }
.bs-ordem .icone-btn[disabled] { opacity: .25; pointer-events: none; }
.bs-crit-cel { display: grid; gap: 4px; min-width: 110px; }
.bs-crit-linha { display: flex; gap: 4px; align-items: center; }
.bs-crit-linha .campo { flex: 1; }
.bs-crit-btn { color: var(--texto-3); }
.bs-crit-btn.ligado, .bs-crit-btn:hover { color: var(--perigo); }
.bs-crit-campo { border-color: rgba(240, 123, 123, .45) !important; }
.bs-crit-campo[hidden] { display: none; }
.bot-supply td:nth-child(3) { min-width: 150px; } .bot-supply td:nth-child(4), .bot-supply td:nth-child(6) { min-width: 130px; }
.bot-supply td:first-child { min-width: 0; }
.bot-supply td:nth-child(2) { min-width: 0; }
.bot-supply td:nth-child(9) select { min-width: 120px; }
.tgl.mini { padding: 2px; border: 0; background: none; }
.bf-sit { margin-bottom: 14px; padding: 12px; border: 1px solid var(--linha); border-radius: var(--raio-p); background: var(--sutil); }
.bf-sit-cab { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 10px; }
.bf-sit-caixa { padding: 10px 12px; border-radius: 12px; background: var(--card); border: 1px solid var(--linha); display: grid; gap: 6px; align-content: start; }
.bf-sit-caixa .rot { font-size: 12px; color: var(--texto-3); text-transform: uppercase; letter-spacing: .04em; }
.bf-sit-caixa .val { font-size: 20px; font-weight: 600; font-variant-numeric: tabular-nums; }
.bf-medidor { height: 7px; border-radius: 99px; background: var(--sutil-2); overflow: hidden; }
.bf-medidor i { display: block; height: 100%; border-radius: 99px; background: var(--acento); }
.bf-medidor.comb i { background: var(--laranja); } .bf-medidor.mun i { background: var(--roxo); }
.bf-itens { display: flex; flex-wrap: wrap; gap: 6px; }
.bf-item { display: inline-flex; align-items: center; gap: 5px; padding: 2px 8px 2px 4px; border-radius: 8px; background: var(--sutil-2); font-size: 12px; }
.bf-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; max-height: 62vh; overflow-y: auto; padding: 2px; }
.bf-card { display: grid; gap: 4px; text-align: left; padding: 12px; border-radius: 12px; border: 1px solid var(--linha-forte); background: var(--card); color: var(--texto); cursor: pointer; font: inherit; transition: border-color .15s, background .15s, transform .1s; }
.bf-card:hover:not([disabled]) { border-color: var(--acento); background: color-mix(in srgb, var(--acento) 8%, var(--card)); }
.bf-card:active:not([disabled]) { transform: scale(.99); }
.bf-card[disabled] { cursor: default; opacity: .65; }
.bf-card[hidden] { display: none; }
.bf-card-topo { display: flex; align-items: center; gap: 6px; }
.bf-card-topo .espaco { flex: 1; }
.bf-mais svg { width: 18px; height: 18px; color: var(--acento); }
.menu a { position: relative; }
.menu-cont { position: absolute; top: 4px; right: 6px; min-width: 18px; padding: 0 5px; border-radius: 99px; font-size: 10px; line-height: 16px; text-align: center; font-weight: 600; color: var(--texto-2); background: var(--sutil-3); pointer-events: none; }
.menu a.ativo .menu-cont { color: var(--acento-tinta); background: rgba(255, 255, 255, .35); }
.menu-cont[hidden] { display: none; }
.ac-barra { height: 6px; border-radius: 99px; background: var(--sutil-2); overflow: hidden; }
.ac-barra i { display: block; height: 100%; background: var(--acento); border-radius: 99px; }
.bot-frotas td:nth-child(2) { min-width: 170px; }
/* ---- 20/10 b: aviso do Claim Stakes no menu, campos com erro pulsando, marca do mínimo na barra */
.menu-cont.pronto { color: #04140b; background: var(--ok); box-shadow: 0 0 0 2px var(--panel), 0 0 10px color-mix(in srgb, var(--ok) 60%, transparent); animation: menu-pulso 1.6s ease-in-out infinite; }
.menu-cont.quase { color: #1a1300; background: var(--aviso); box-shadow: 0 0 0 2px var(--panel); }
.menu a.ativo .menu-cont.pronto, .menu a.ativo .menu-cont.quase { color: #04140b; }
@keyframes menu-pulso { 50% { transform: scale(1.15); } }
.campo.campo-erro { border-color: var(--perigo) !important; color: var(--perigo); background: var(--perigo-bg); animation: campo-pulso 1.1s ease-in-out infinite; }
@keyframes campo-pulso { 0%, 100% { box-shadow: 0 0 0 0 rgba(240, 123, 123, .55); } 50% { box-shadow: 0 0 0 4px rgba(240, 123, 123, .12); } }
.bs-erros { display: flex; gap: 10px; align-items: flex-start; margin: 10px 0; padding: 10px 14px; border-radius: 12px; border: 1px solid var(--perigo); background: var(--perigo-bg); color: var(--perigo); font-size: 13px; animation: campo-pulso 1.1s ease-in-out infinite; }
.bs-erros[hidden] { display: none; }
.bs-erros svg { width: 18px; height: 18px; flex: none; }
.bs-marca { position: absolute; top: -3px; width: 2px; height: 11px; margin-left: -1px; border-radius: 1px; background: var(--texto-2); }
.ac-usuarios a { display: inline-flex; align-items: center; color: inherit; text-decoration: none; }
.ac-usuarios a:hover b { color: var(--acento); }
/* ---- 23/10: aba Frotas do Sis-Bot no estilo do painel de Status do script (1.1.9). Tamanhos da lista em em: o A−/A+ escala tudo */
.bf-barra .espaco, .bf-filtro .espaco { flex: 1; }
.bf-seg { display: inline-flex; align-items: stretch; border: 1px solid var(--linha-forte); border-radius: 8px; overflow: hidden; background: var(--sutil); }
.bf-seg button, .bf-seg span { border: 0; background: none; padding: 6px 11px; font-size: 12.5px; color: var(--texto-2); border-right: 1px solid var(--linha); cursor: pointer; }
.bf-seg > :last-child { border-right: 0; }
.bf-seg button:hover { color: var(--texto); background: color-mix(in srgb, var(--acento) 10%, transparent); }
.bf-seg button.ativo { color: var(--acento-tinta); background: var(--acento); }
.bf-seg span { color: var(--texto); min-width: 48px; text-align: center; font-variant-numeric: tabular-nums; }
/* abas por tarefa (cantos chanfrados) */
.bf-abas { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 2px; padding-bottom: 10px; border-bottom: 1px solid var(--linha); }
.bf-aba { --ac: var(--acento); display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px 6px 12px; font-size: 13px; color: var(--texto-2); background: var(--sutil); border: 0; cursor: pointer;
  clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px); box-shadow: inset 0 0 0 1px var(--linha-forte); transition: color .15s, background .15s; }
.bf-aba b { font-size: 11.5px; font-weight: 700; color: var(--texto-3); font-variant-numeric: tabular-nums; }
.bf-aba:hover { color: var(--texto); box-shadow: inset 0 0 0 1px var(--ac); }
.bf-aba.ativa { color: var(--acento-tinta); background: var(--ac); box-shadow: none; } .bf-aba.ativa b { color: inherit; opacity: .7; }
.bf-painel [data-t="Supply"], .bf-painel [data-t="Transport"] { --ac: var(--laranja); --tc: var(--laranja); }
.bf-painel [data-t="Garimpo"], .bf-painel [data-t="Mine"] { --ac: var(--ok); --tc: var(--ok); }
.bf-painel [data-t="Scan"] { --ac: var(--roxo); --tc: var(--roxo); } .bf-painel [data-t="Prospectar"] { --ac: #b6a6ff; --tc: #b6a6ff; } .bf-painel [data-t=""] { --ac: var(--texto-2); --tc: var(--texto-2); }
/* contadores por estado (clicar filtra) */
.bf-filtro { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 8px 0 6px; font-size: 12.5px; color: var(--texto-3); }
.bf-todas { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.bf-conts { display: flex; flex-wrap: wrap; gap: 4px; }
.bf-cont { display: inline-flex; align-items: center; gap: 7px; padding: 3px 9px; border-radius: 6px; border: 1px solid transparent; background: none; color: var(--texto-2); cursor: pointer; font-size: 12.5px; }
.bf-cont b { color: var(--texto); font-variant-numeric: tabular-nums; }
.bf-cont:hover { border-color: var(--linha-forte); background: var(--sutil); }
.bf-cont.ativo { border-color: var(--c); background: color-mix(in srgb, var(--c) 14%, transparent); color: var(--texto); }
/* cor de cada estado */
.bf-painel [data-cor] { --c: var(--texto-3); }
.bf-painel [data-cor="minerando"] { --c: var(--ok); } .bf-painel [data-cor="viagem"] { --c: var(--acento); } .bf-painel [data-cor="operando"] { --c: var(--aviso); }
.bf-painel [data-cor="scan"] { --c: var(--roxo); } .bf-painel [data-cor="erro"] { --c: var(--perigo); }
/* seções */
.bf-sec { --tc: var(--texto-2); display: flex; align-items: center; gap: .55em; margin: 1em 0 .45em; color: var(--tc); font-size: .82em; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; cursor: pointer; user-select: none; }
.bf-sec i { font-style: normal; width: 1em; }
.bf-sec::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, color-mix(in srgb, var(--tc) 55%, transparent), transparent); }
.bf-sec b { font-weight: 600; letter-spacing: .03em; text-transform: none; color: var(--texto-2); padding: .06em .6em; border: 1px solid color-mix(in srgb, var(--tc) 35%, transparent); border-radius: 3px; }
.bf-sec.fechada { opacity: .65; } .bf-sec:hover { opacity: 1; filter: brightness(1.15); }
#bf-lista > .bf-cab + .bf-sec { margin-top: .3em; }
.bf-vazio { padding: 1.4em; text-align: center; color: var(--texto-3); border: 1px dashed var(--linha-forte); border-radius: 6px; }
/* linhas: núcleo hexagonal, cantos de HUD e trilho animado na base, como no script */
.bf-cab, .bf-lin { display: grid; gap: .5em .9em; align-items: center; }
.bf-cab { padding: .2em .9em .35em .6em; color: var(--texto-3); font-size: .8em; text-transform: uppercase; letter-spacing: .06em; }
.bf-lin { position: relative; padding: .65em .9em .7em .6em; margin-bottom: .35em; border-radius: 6px; border: 1px solid var(--linha);
  background: linear-gradient(100deg, color-mix(in srgb, var(--c) 7%, transparent), var(--sutil) 40%); transition: background .2s, opacity .2s; }
.bf-lin:hover { background: linear-gradient(100deg, color-mix(in srgb, var(--c) 13%, transparent), color-mix(in srgb, var(--acento) 5%, transparent) 60%); }
.bf-lin::before { content: ''; position: absolute; inset: 0; pointer-events: none; border-radius: inherit; opacity: .9;
  background: linear-gradient(var(--c), var(--c)) left top / .85em 1.5px no-repeat, linear-gradient(var(--c), var(--c)) left top / 1.5px .85em no-repeat,
    linear-gradient(var(--c), var(--c)) right bottom / .85em 1.5px no-repeat, linear-gradient(var(--c), var(--c)) right bottom / 1.5px .85em no-repeat; }
.bf-lin::after { content: ''; position: absolute; left: 1em; right: 1em; bottom: 0; height: 1px; pointer-events: none; background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--c) 45%, transparent), transparent); }
.bf-lin[data-cor="viagem"]::after { height: 2px; background: repeating-linear-gradient(90deg, var(--c) 0 .55em, transparent .55em 1.1em);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); animation: bf-marcha .8s linear infinite; }
.bf-lin[data-cor="minerando"]::after, .bf-lin[data-cor="operando"]::after, .bf-lin[data-cor="scan"]::after {
  height: 1.5px; background: linear-gradient(90deg, transparent, var(--c), transparent) no-repeat; background-size: 30% 100%; animation: bf-varre 2.8s ease-in-out infinite; }
.bf-lin[data-cor="operando"]::after { animation-duration: 1.3s; }
.bf-lin[data-cor="erro"] { background: linear-gradient(100deg, color-mix(in srgb, var(--c) 17%, transparent), color-mix(in srgb, var(--c) 3%, transparent) 55%); border-color: color-mix(in srgb, var(--c) 30%, transparent); }
.bf-lin[data-cor="erro"]::after { height: 2px; background: var(--c); animation: bf-pisca 1.1s ease-in-out infinite; }
.bf-lin[data-cor="parado"] { opacity: .72; } .bf-lin[data-cor="parado"]::before, .bf-lin[data-cor="livre"]::before { opacity: .4; }
@keyframes bf-marcha { to { background-position: 1.1em 0; } }
@keyframes bf-varre { 0% { background-position: -45% 0; } 100% { background-position: 145% 0; } }
@keyframes bf-pisca { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
@keyframes bf-gira { to { transform: rotate(360deg); } }
@keyframes bf-ping { 0% { transform: scale(.55); opacity: .95; } 100% { transform: scale(1.9); opacity: 0; } }
@keyframes bf-flash { 0% { box-shadow: 0 0 0 1px var(--acento), 0 0 18px color-mix(in srgb, var(--acento) 50%, transparent); } 100% { box-shadow: 0 0 0 0 transparent; } }
.bf-lin.movida { animation: bf-flash 1.2s ease-out; }
.bf-core { position: relative; display: inline-block; flex: none; width: .9em; height: .9em; filter: drop-shadow(0 0 .28em color-mix(in srgb, var(--c) 75%, transparent)); }
.bf-core::before { content: ''; position: absolute; inset: 0; background: var(--c); clip-path: polygon(50% 0, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%); }
.bf-core::after { content: ''; position: absolute; inset: -.32em; border-radius: 50%; border: 1.5px solid transparent; }
.bf-painel [data-cor="minerando"] .bf-core::after, .bf-painel [data-cor="viagem"] .bf-core::after, .bf-painel [data-cor="operando"] .bf-core::after {
  border-top-color: var(--c); border-right-color: color-mix(in srgb, var(--c) 35%, transparent); animation: bf-gira 1.5s linear infinite; }
.bf-painel [data-cor="viagem"] .bf-core::after { animation-duration: .85s; }
.bf-painel [data-cor="scan"] .bf-core::after { border-color: var(--c); animation: bf-ping 1.6s ease-out infinite; }
.bf-painel [data-cor="erro"] .bf-core { animation: bf-pisca .9s ease-in-out infinite; }
.bf-painel [data-cor="parado"] .bf-core, .bf-painel [data-cor="livre"] .bf-core { filter: none; }
.bf-cont .bf-core { width: .75em; height: .75em; }
/* colunas */
.bf-grip { grid-area: g; color: var(--texto-3); cursor: grab; user-select: none; text-align: center; font-size: .95em; letter-spacing: -.2em; line-height: 1; opacity: .45; }
.bf-lin:hover .bf-grip { opacity: 1; color: var(--acento); } .bf-grip:active { cursor: grabbing; }
.bf-lin.arrastando { opacity: .35; }
.bf-lin[data-alvo="antes"] { box-shadow: 0 -2px 0 var(--acento), 0 0 14px color-mix(in srgb, var(--acento) 30%, transparent); }
.bf-lin[data-alvo="depois"] { box-shadow: 0 2px 0 var(--acento), 0 0 14px color-mix(in srgb, var(--acento) 30%, transparent); }
.bf-painel[data-modo="3"] .bf-lin[data-alvo="antes"] { box-shadow: -2px 0 0 var(--acento), 0 0 14px color-mix(in srgb, var(--acento) 30%, transparent); }
.bf-painel[data-modo="3"] .bf-lin[data-alvo="depois"] { box-shadow: 2px 0 0 var(--acento), 0 0 14px color-mix(in srgb, var(--acento) 30%, transparent); }
.bf-sel { grid-area: s; margin: 0; } .bf-c1 { grid-area: n; } .bf-c2 { grid-area: e; } .bf-c3 { grid-area: o; } .bf-meds { grid-area: m; } .bf-cfg { grid-area: c; } .bf-acoes { grid-area: a; } .bf-det { grid-area: d; }
.bf-c1, .bf-c2, .bf-c3, .bf-meds, .bf-det, .bf-cfg { min-width: 0; }
.bf-nome { display: block; font-size: 1.04em; margin-bottom: .3em; color: var(--texto); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bf-chips { display: flex; flex-wrap: wrap; gap: .35em; }
.bf-chip { display: inline-flex; align-items: center; padding: .1em .6em; border-radius: 99px; font-size: .85em; line-height: 1.45; color: var(--texto-2); background: var(--sutil-2); border: 1px solid var(--linha); white-space: nowrap; }
.bf-chip.tarefa { color: var(--tc); border-color: color-mix(in srgb, var(--tc) 30%, transparent); } .bf-chip.aviso { color: var(--aviso); background: var(--aviso-bg); }
.bf-est { display: flex; align-items: center; gap: .7em; color: var(--texto); min-width: 0; } .bf-est .selo { font-size: .8em; }
.bf-est-txt { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bf-sub { color: var(--texto-3); font-size: .9em; margin-top: .25em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bf-c3 { color: var(--texto-2); line-height: 1.4; } .bf-c3 .selo { font-size: .8em; } .bf-c3 small { font-size: .88em; }
.bf-meds { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8em; }
.bf-med { --mc: var(--acento); min-width: 0; }
.bf-med.comb { --mc: var(--laranja); } .bf-med.mun { --mc: var(--roxo); } .bf-med.carga { --mc: var(--ciano); } .bf-med.comida { --mc: var(--ok); } .bf-med.sdu { --mc: var(--info); } .bf-med.baixo { --mc: var(--perigo); }
.bf-med-top { display: flex; justify-content: space-between; gap: .3em; font-size: .82em; color: var(--texto-3); white-space: nowrap; } .bf-med-top em { font-style: normal; font-variant-numeric: tabular-nums; }
.bf-med-barra { height: .4em; margin-top: .25em; border-radius: 99px; background: var(--sutil-2); overflow: hidden; }
.bf-med-barra i { display: block; height: 100%; width: var(--p); border-radius: 99px; background: var(--mc); }
.bf-med > b { display: block; margin-top: .25em; font-size: .9em; font-weight: 600; color: var(--texto-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-variant-numeric: tabular-nums; }
.bf-med.baixo .bf-med-top em { color: var(--perigo); }
.bf-cfg { display: flex; flex-wrap: wrap; gap: .45em .7em; align-items: end; align-self: start; align-content: start; }
.bf-det { align-self: start; }
.bf-campo { display: grid; gap: .2em; font-size: .8em; color: var(--texto-3); margin: 0; }
.bf-campo .campo { font-size: 12.5px; padding: 5px 8px; min-width: 120px; max-width: 220px; }
.bf-acoes { display: flex; gap: .3em; align-items: center; justify-content: flex-end; white-space: nowrap; }
.bf-mini { width: 1.9em; height: 1.9em; padding: 0; border-radius: 4px; border: 1px solid var(--linha-forte); background: var(--card); color: var(--texto-3); cursor: pointer; font-size: .78em; line-height: 1; }
.bf-mini:hover:not(:disabled) { color: var(--texto); border-color: var(--acento); background: color-mix(in srgb, var(--acento) 16%, transparent); } .bf-mini:disabled { opacity: .25; cursor: default; }
.bf-det .bs-resumo { min-width: 0; font-size: .96em; } .bf-det.vazio { display: none; }
/* modos: 1 = Linha, 2 = Padrão, 3 = Completo */
.bf-painel[data-modo="1"] .bf-cab, .bf-painel[data-modo="1"] .bf-lin { grid-template-columns: 1.2em 1.3em minmax(150px, 1.3fr) minmax(170px, 1.5fr) minmax(140px, 1.2fr) minmax(190px, 1.1fr) auto; }
.bf-painel[data-modo="1"] .bf-lin { grid-template-areas: "g s n e o m a" ". . d d d d d"; padding-top: .38em; padding-bottom: .42em; margin-bottom: .22em; }
.bf-painel[data-modo="1"] .bf-c1 { display: flex; align-items: center; gap: .5em; } .bf-painel[data-modo="1"] .bf-nome { margin: 0; flex: 0 1 auto; min-width: 0; }
.bf-painel[data-modo="1"] .bf-chip:not(.tarefa), .bf-painel[data-modo="1"] .bf-sub, .bf-painel[data-modo="1"] .bf-cfg,
.bf-painel[data-modo="1"] .bf-med > b, .bf-painel[data-modo="1"] .bf-c3 br, .bf-painel[data-modo="1"] .bf-c3 small { display: none; }
.bf-painel[data-modo="1"] .bf-c3 { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bf-painel[data-modo="1"] .bf-med-barra { height: 2px; box-shadow: 0 0 5px var(--mc); } .bf-painel[data-modo="1"] .bf-acoes .btn { padding: 3px 8px; }
.bf-painel[data-modo="2"] .bf-cab, .bf-painel[data-modo="2"] .bf-lin { grid-template-columns: 1.2em 1.3em minmax(170px, 1.1fr) minmax(200px, 1.3fr) minmax(150px, 1fr) minmax(260px, 1.5fr) auto; }
.bf-painel[data-modo="2"] .bf-lin { grid-template-areas: "g s n e o m a" ". . d d d d d"; }

.bf-painel[data-modo="3"] .bf-grupo { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 30em), 1fr)); gap: .6em; align-items: start; }
.bf-painel[data-modo="3"] .bf-lin { margin: 0; grid-template-columns: 1.2em 1.3em minmax(0, 1fr) auto; grid-template-areas: "g s n a" "e e e e" "o o o o" "m m m m" "d d d d"; gap: .6em .7em; padding: .8em .9em .9em .6em; }
.bf-painel[data-modo="3"] .bf-c2 { padding: .45em .6em; background: var(--sutil-2); border: 1px solid var(--linha); border-radius: 4px; }

/* Sis-Bot: efeitos sempre visíveis, sem obedecer a "Efeitos e animações" do sistema (futuro: opção no aceite dos termos) */
@media (max-width: 900px) {
  .bf-painel .bf-cab { display: none; }
  .bf-painel[data-modo] .bf-lin { grid-template-columns: 1.2em 1.3em minmax(0, 1fr) auto; grid-template-areas: "g s n a" "e e e e" "o o o o" "m m m m" "d d d d"; }
  .bf-painel[data-modo] .bf-acoes { flex-wrap: wrap; }
}
/* ---- 23/10: Pontos — aba Geral e gráfico de ganhos por dia (uma categoria por vez) */
.abas.pt-subabas { gap: 18px; margin: 2px 0 10px; font-size: 13px; }
.abas.pt-subabas a { padding: 4px 0 8px; }
.pt-dias-info { margin-top: 8px; font-size: 12.5px; color: var(--texto-2); }
.pt-kpi { border-top: 2px solid var(--pc, var(--acento)); }
.pt-kpi .det + .det { margin-top: 2px; }
/* ---- 23/10: Naves — melhor preço de venda e comparação */
.nv-preco { display: grid; justify-items: end; gap: 1px; line-height: 1.3; white-space: nowrap; }
.nv-preco small { font-size: 11px; color: var(--texto-3); }
.nv-preco .nv-melhor b { color: var(--ok); }
.nv-sel-cel { width: 34px; cursor: pointer; }
.nv-sel { width: 16px; height: 16px; cursor: pointer; accent-color: var(--acento); vertical-align: middle; }
.tabela tr.nv-marcada td { background: color-mix(in srgb, var(--acento) 9%, transparent); }
.nv-barra { position: sticky; bottom: 12px; z-index: 30; display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 14px; padding: 10px 14px; border-radius: 14px;
  background: var(--card-2); border: 1px solid color-mix(in srgb, var(--acento) 45%, transparent); box-shadow: var(--sombra); }
.nv-barra[hidden] { display: none; } .nv-barra .espaco { flex: 1; }
.nv-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.nv-chip { display: inline-flex; align-items: center; gap: 6px; padding: 2px 4px 2px 3px; border-radius: 99px; background: var(--sutil-2); border: 1px solid var(--linha); font-size: 12.5px; }
.nv-chip img { width: 20px; height: 20px; border-radius: 50%; object-fit: cover; }
.nv-chip button { border: 0; background: none; color: var(--texto-3); cursor: pointer; font-size: 15px; line-height: 1; padding: 0 4px; }
.nv-chip button:hover { color: var(--perigo); }
.nv-comp th:first-child { position: sticky; left: 0; z-index: 1; background: var(--modal-bg); text-align: left; white-space: nowrap; color: var(--texto-2); font-weight: 500; }
.nv-comp thead th { vertical-align: bottom; min-width: 150px; }
.nv-comp-cab { display: grid; justify-items: center; gap: 4px; text-align: center; white-space: normal; }
.nv-comp-cab img { width: 64px; height: 64px; object-fit: cover; border-radius: 12px; background: var(--card-2); }
.nv-comp-cab small { font-weight: 400; }
.nv-comp td.num { text-align: center; }
.nv-comp-sec th { padding-top: 14px !important; color: var(--acento) !important; font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; font-weight: 700 !important; }
.nv-comp td.nv-comp-melhor { color: var(--ok); font-weight: 700; background: var(--ok-bg); }
.nv-comp thead th, .nv-comp tbody th { text-transform: none; letter-spacing: 0; font-size: 13px; }
.nv-comp-cab b { font-size: 14px; color: var(--texto); }
/* ---- 23/10 b: Claim Stakes — % no menu, avisos no Discord; seta do menu clicável */
.menu-cont.neutro { color: var(--texto-2); background: var(--sutil-3); }
.menu-mais { pointer-events: auto; cursor: pointer; }
.menu-mais:hover svg { color: var(--acento-forte); filter: drop-shadow(0 0 4px color-mix(in srgb, var(--acento) 60%, transparent)); }
.cs-alerta { display: grid; grid-template-columns: minmax(200px, 260px) 1fr; gap: 18px 26px; align-items: center; margin-bottom: 16px; border-left: 3px solid var(--linha-forte); }
.cs-alerta.ligado { border-left-color: var(--acento); }
.cs-al-agora .rot { font-size: 12px; color: var(--texto-3); text-transform: uppercase; letter-spacing: .05em; }
.cs-al-agora .val { font-size: 34px; font-weight: 700; line-height: 1.15; font-variant-numeric: tabular-nums; }
.cs-al-agora .det { font-size: 12.5px; color: var(--texto-2); }
.cs-al-topo { display: flex; align-items: center; gap: 10px; } .cs-al-topo b { display: inline-flex; align-items: center; gap: 6px; } .cs-al-topo svg { width: 18px; height: 18px; }
.cs-al-topo .espaco, .cs-al-rodape .espaco { flex: 1; }
.cs-al-niveis { display: grid; gap: 8px; margin: 10px 0 8px; }
.cs-al-nivel { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 8px 12px; border-radius: 10px; background: var(--sutil); border: 1px solid var(--linha); font-size: 13.5px; }
.cs-al-ponto { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.cs-al-nivel.quase .cs-al-ponto { background: var(--aviso); } .cs-al-nivel.cheio .cs-al-ponto { background: var(--ok); box-shadow: 0 0 8px var(--ok); }
.cs-al-nivel input[type=range] { flex: 1; min-width: 140px; accent-color: var(--aviso); }
.cs-al-nivel input.campo[type=number] { width: 76px; min-width: 0; flex: none; padding: 4px 8px; }
.cs-alerta:not(.ligado) .cs-al-niveis { opacity: .55; }
.cs-al-rodape { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 12.5px; }
@media (max-width: 760px) { .cs-alerta { grid-template-columns: 1fr; } }

/* ---------------- mapa: probabilidade de SDU (mapa de calor, um tom = roxo do scan) ---------------- */
.mp-sdu { fill: var(--roxo); }
.mp-sdu.sobe { fill: var(--ok); } .mp-sdu.cai { fill: var(--perigo); } .mp-sdu.neutro { fill: var(--texto-3); }
.mp-sdu-camada { pointer-events: none; }
.mp-sdu-bom { fill: none; stroke: var(--texto); stroke-opacity: .85; }
.mp-sdu-txt { fill: var(--texto-2); text-anchor: middle; dominant-baseline: central; font-weight: 600; font-variant-numeric: tabular-nums; pointer-events: none; }
.mp-sdu-txt.forte { fill: var(--texto); }
.mp-sdu-opc { display: grid; gap: 8px; margin-top: 8px; }
.mp-sdu-opc[hidden] { display: none; }
.mp-sdu-lim { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--texto-2); }
.mp-sdu-lim .campo { width: 64px; padding: 4px 8px; }
.mp-sdu-rampa { display: inline-block; width: 22px; height: 12px; border-radius: 3px; flex: none; background: linear-gradient(90deg, color-mix(in srgb, var(--roxo) 12%, transparent), var(--roxo)); }
.mp-sdu-rampa.tend { background: linear-gradient(90deg, var(--perigo), var(--texto-3), var(--ok)); }
.mp-sdu-quad { display: inline-block; width: 12px; height: 12px; border-radius: 2px; flex: none; background: var(--roxo); box-shadow: inset 0 0 0 1.5px var(--texto); }
.mp-sdu-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 4px 0 10px; }
.mp-sdu-kpis span { display: block; font-size: 11.5px; color: var(--texto-3); background: var(--sutil); border: 1px solid var(--linha); border-radius: 10px; padding: 7px 8px; min-width: 0; }
.mp-sdu-kpis b { display: block; font-size: 15px; color: var(--texto); font-variant-numeric: tabular-nums; white-space: nowrap; }
.mp-sdu-kpis b.ok { color: var(--ok); } .mp-sdu-kpis b.perigo { color: var(--perigo); }
.mp-sdu-kpis small { display: block; font-size: 11px; color: var(--texto-3); line-height: 1.3; }
.mp-h6 { margin: 12px 0 6px; font-size: 11px; text-transform: uppercase; letter-spacing: .7px; color: var(--texto-3); font-weight: 600; }
.mp-sdu-log li { gap: 8px; font-size: 12.5px; font-variant-numeric: tabular-nums; }
.bot-scan-sis { border: 1px solid var(--linha-forte); border-left: 3px solid var(--roxo); border-radius: 12px; padding: 10px 12px; margin: 4px 0 12px; background: var(--sutil); }
.bot-scan-sis .desc { margin: 6px 0 8px; }

/* ---------------- Administração › Motores (só o dono) ---------------- */
.mt-geral { display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: start; padding: 14px; margin: 6px 0 14px; border-radius: 14px; border: 1px solid rgba(127, 212, 154, .35); background: var(--ok-bg); }
.mt-geral.desligado { border-color: rgba(240, 123, 123, .45); background: var(--perigo-bg); }
.mt-geral .desc { margin: 6px 0 0; }
.mt-geral .tgl b { font-size: 15px; }
.mt-tab tr.mt-off td { opacity: .55; }
.mt-tab tr.mt-off td:last-child { opacity: 1; }
.mt-acoes { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 12px; }
@media (max-width: 700px) { .mt-geral { grid-template-columns: 1fr; } }

/* Sis-Bot › Frotas › Detalhes: estatística de scan */
#bf-scanstats .bf-sit { margin-top: 10px; }
#bf-scanstats .bf-sit-cab { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 8px; }
.bf-scan-tab td, .bf-scan-tab th { font-size: 12.5px; padding: 7px 9px; font-variant-numeric: tabular-nums; }
.bf-scan-cfg { min-width: 260px; max-width: 420px; font-size: 12px; color: var(--texto-2); }
.bf-scan-cfg > div { margin-top: 4px; display: flex; gap: 6px; align-items: center; }
.bf-json { margin: 0; padding: 12px; border-radius: 10px; background: var(--sutil-2); border: 1px solid var(--linha); font-size: 12px; line-height: 1.45; max-height: 60vh; overflow: auto; white-space: pre-wrap; }
.bf-mp-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 8px; }
.bf-mp-c { background: var(--sutil); border: 1px solid var(--linha); border-radius: 10px; padding: 8px 10px; min-width: 0; }
.bf-mp-c span { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .5px; color: var(--texto-3); }
.bf-mp-c b { display: block; font-size: 17px; color: var(--texto); font-variant-numeric: tabular-nums; }
.bf-mp-c small { display: block; font-size: 11.5px; color: var(--texto-3); line-height: 1.35; }
.bf-mp-agora { margin-top: 10px; font-size: 13px; }
.bf-mp-hist { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.bf-mp-hist span { font-size: 11.5px; padding: 2px 8px; border-radius: 999px; background: var(--sutil-2); font-variant-numeric: tabular-nums; }
.bf-mp-hist-tit { font-size: 11.5px; color: var(--texto-3); font-weight: 600; align-self: center; margin-right: 2px; }

/* calculadora: coluna Produção por período/ciclo e janela de fórmulas (só o dono) */
.calc .calc-tab select.campo.cc-prod { min-width: 0; width: auto; height: 28px; padding: 0 6px; font-size: 12px; font-weight: 600; text-align: right; }
.fx-modal { width: min(980px, calc(100vw - 24px)); }
.fx-modal .modal-corpo { max-height: calc(100vh - 220px); overflow-y: auto; }
.fx { border: 1px solid var(--linha); border-radius: 12px; padding: 10px 12px; margin-bottom: 8px; background: var(--card-2); }
.fx[hidden], .secao[hidden] { display: none; }
.fx.fx-alterada { border-color: rgba(143, 128, 243, .55); }
.fx.fx-erro { border-color: var(--perigo); }
.fx-cab { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fx-cab code { font-size: 11.5px; }
.fx-d { font-size: 12.5px; margin: 2px 0 6px; }
.fx-expr { width: 100%; min-height: 34px; height: auto; padding: 7px 10px; font: 13px/1.45 ui-monospace, SFMono-Regular, Consolas, monospace; resize: vertical; }
.fx-err { color: var(--perigo); font-size: 12px; min-height: 0; margin-top: 3px; }
.fx-err:empty { display: none; }
.fx-info { font-size: 12px; color: var(--texto-2); margin-top: 5px; }
.fx-info code { font-size: 11.5px; }
.fx-vars { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.fx-var { font-size: 11.5px; padding: 2px 7px; border-radius: 7px; background: var(--sutil); color: var(--texto-2); cursor: help; }
.fx-modal .modal-rodape { display: flex; align-items: center; gap: 8px; }
.fx [data-fx-padrao][hidden] { display: none; }

/* ---- Sis-Bot (24/10/2026): parar/iniciar a tarefa da frota, mini mapa da viagem, estatística da frota, gatilho do Garimpar */
.bf-mini.bf-pausa { color: var(--aviso); }
.bf-mini.bf-pausa.parada { color: var(--ok); border-color: color-mix(in srgb, var(--ok) 45%, transparent); background: var(--ok-bg); animation: bf-pulsa-ok 2.2s ease-in-out infinite; }
.bf-chip.parada { color: var(--aviso); background: var(--aviso-bg); border-color: color-mix(in srgb, var(--aviso) 35%, transparent); }
@keyframes bf-pulsa-ok { 0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--ok) 35%, transparent); } 50% { box-shadow: 0 0 0 4px transparent; } }
.bf-ctl { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 12px; padding: 10px 12px; border: 1px solid color-mix(in srgb, var(--ok) 30%, var(--linha)); border-radius: var(--raio-p); background: color-mix(in srgb, var(--ok) 6%, transparent); }
.bf-ctl.parada { border-color: color-mix(in srgb, var(--aviso) 40%, var(--linha)); background: var(--aviso-bg); }
.bf-ctl-luz { width: 12px; height: 12px; border-radius: 50%; background: var(--ok); box-shadow: 0 0 10px var(--ok); flex: none; animation: bf-luz 1.8s ease-in-out infinite; }
.bf-ctl.parada .bf-ctl-luz { background: var(--aviso); box-shadow: 0 0 10px var(--aviso); animation: none; }
@keyframes bf-luz { 50% { opacity: .45; } }
.bf-ctl-txt { display: flex; flex-direction: column; min-width: 0; }
.bf-ctl-txt small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 70ch; }
.bf-ctl .btn.perigo { color: var(--perigo); border-color: color-mix(in srgb, var(--perigo) 40%, transparent); background: var(--perigo-bg); }
.bf-det-sec { margin-bottom: 12px; border: 1px solid var(--linha); border-radius: var(--raio-p); background: var(--sutil); }
.bf-det-sec > summary { display: flex; align-items: center; gap: 8px; padding: 9px 12px; cursor: pointer; list-style: none; font-weight: 600; }
.bf-det-sec > summary::-webkit-details-marker { display: none; }
.bf-det-sec > summary::before { content: '▸'; color: var(--texto-3); transition: transform .15s; }
.bf-det-sec[open] > summary::before { transform: rotate(90deg); }
.bf-det-extra { margin-left: auto; display: inline-flex; gap: 6px; }
.bf-det-corpo { padding: 0 12px 12px; }
.bf-chain.girando svg { animation: girar 1s linear infinite; }
.bf-chain { color: var(--acento); }
.bf-chain span { display: none; }
.bs-modal-cab { display: flex; align-items: center; gap: 8px; margin: 4px 0; }
.lendo { animation: bf-lendo 1.2s ease-in-out infinite; }
@keyframes bf-lendo { 50% { opacity: .55; } }
/* mini mapa */
.mr-wrap { display: flex; flex-direction: column; gap: 6px; }
.mr-svg { width: 100%; height: auto; display: block; margin: 0 auto; font-family: var(--fonte); }
.mr-cel { fill: color-mix(in srgb, var(--acento) 3%, transparent); stroke: var(--linha-forte); stroke-width: 1; }
.mr-eixo { fill: var(--texto-3); font-size: 10px; text-anchor: middle; font-variant-numeric: tabular-nums; }
.mr-sb circle { fill: var(--fac); fill-opacity: .85; stroke: var(--bg); stroke-width: 2; }
.mr-sb.origem circle, .mr-sb.origem rect { stroke: var(--ok); stroke-width: 3; }
.mr-sb.destino circle, .mr-sb.destino rect { stroke: var(--laranja); stroke-width: 3; }
.mr-sb rect { fill: var(--card-2); stroke: var(--texto-3); }
.mr-rot { fill: var(--texto-2); font-size: 10.5px; text-anchor: middle; paint-order: stroke; stroke: var(--bg); stroke-width: 3px; }
.mr-rot.forte { fill: var(--texto); font-weight: 700; stroke-width: 0; }
.mr-rota { stroke: var(--acento); stroke-width: 2.4; stroke-dasharray: 6 5; stroke-linecap: round; opacity: .75; animation: mr-tracos 1.4s linear infinite; }
.mr-rota.feito { stroke-dasharray: none; opacity: .95; animation: none; stroke: var(--ciano); }
.mr-rota.agora { stroke-width: 3.2; }
@keyframes mr-tracos { to { stroke-dashoffset: -22; } }
.mr-halo { fill: color-mix(in srgb, var(--ciano) 18%, transparent); stroke: none; }
.mr-nave.movendo .mr-halo { animation: mr-halo 1.6s ease-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes mr-halo { 0% { transform: scale(.6); opacity: 1; } 100% { transform: scale(1.5); opacity: 0; } }
.mr-seta { fill: var(--ciano); stroke: var(--bg); stroke-width: 1.5; }
.mr-eta { fill: var(--card); stroke: var(--ciano); stroke-width: 1.2; }
.mr-eta-txt { fill: var(--texto); font-size: 11px; font-weight: 700; text-anchor: middle; font-variant-numeric: tabular-nums; }
.mr-leg { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 14px; font-size: 12.5px; }
.mr-l { display: inline-block; width: 18px; height: 0; border-top: 2.4px dashed var(--acento); vertical-align: middle; margin: 0 4px 0 8px; }
.mr-l.feito { border-top-style: solid; border-color: var(--ciano); }
/* Sis-Bot: efeitos sempre visíveis, sem obedecer a "Efeitos e animações" do sistema (futuro: opção no aceite dos termos) */
/* estatística */
.bf-st-filtros { margin-bottom: 10px; }
.bf-st-graf { margin-top: 12px; gap: 10px; }
.bf-st-g { border: 1px solid var(--linha); border-radius: 10px; padding: 8px 10px; background: var(--sutil); min-width: 0; }
.bf-st-g h6 { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font-size: 12px; text-transform: uppercase; letter-spacing: .5px; color: var(--texto-3); }
.bf-st-g h6 select { text-transform: none; letter-spacing: 0; max-width: 170px; padding: 2px 6px; height: auto; font-size: 12px; }
.bf-st-g .grafico.baixo { height: 170px; }
.bf-st-tab { margin-top: 10px; }
.bf-st-tab > summary { cursor: pointer; color: var(--texto-2); font-size: 13px; padding: 4px 0; }
.bf-st-aberta td { background: color-mix(in srgb, var(--acento) 7%, transparent); }
/* gatilho do Garimpar */
.bg-gat { display: flex; align-items: flex-start; gap: 4px; min-width: 32px; }
.bg-gat.aberto { min-width: 190px; }
.bg-gat-campos { display: grid; gap: 4px; flex: 1; }
.bg-gat-campos .campo { min-width: 0; }
.bg-gat.ativo .bs-crit-btn { color: var(--perigo); animation: bf-luz 1.4s ease-in-out infinite; }
.bg-gat-on { color: var(--perigo); font-weight: 600; }

/* Crafting (25/10/2026): campos com espaço para 8 caracteres e toggles nas regras */
.campo.bc-num { width: auto; min-width: calc(8ch + 26px); font-variant-numeric: tabular-nums; }
.bot-regras td { vertical-align: middle; }
.bot-regras .campo[data-c="receita"] { min-width: 22ch; }
.bot-regras select.campo { min-width: 16ch; }

/* Crafting: Trabalhos agora (25/10/2026) */
.bc-trab { margin-top: 16px; }
.bc-trab-cab { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.bc-trab-tab td { vertical-align: middle; }
.bc-falta { color: var(--perigo); font-weight: 600; }
.bc-ok { color: var(--ok); }
.bc-diag { min-width: 220px; max-width: 360px; font-size: 12.5px; line-height: 1.35; }
.bc-diag span { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* ---------------------------------------------------------------- Administração › Servidor e › Agendamentos (só o dono) */
.srv-status { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; padding: 10px 14px; margin-bottom: 14px; border: 1px solid var(--linha); border-radius: 14px; background: var(--panel); font-size: 13px; }
.srv-status .espaco { flex: 1; }
.srv-vivo { animation: srv-pulso 2s ease-in-out infinite; }
@keyframes srv-pulso { 50% { opacity: .55; } }
@media (prefers-reduced-motion: reduce) { .srv-vivo { animation: none; } }
.srv-tab td, .srv-tab th { vertical-align: top; }
.srv-tab td.num, .srv-tab th.num { font-variant-numeric: tabular-nums; }
.srv-tab tfoot td { border-top: 1px solid var(--linha-forte); }
.srv-rolagem { max-height: 320px; overflow-y: auto; }
.srv-rolagem.alto { max-height: 560px; }
.srv-rolagem thead th { position: sticky; top: 0; background: var(--card); z-index: 1; }
.srv-sub { margin: 0 0 6px; font-size: 13px; color: var(--texto-2); font-weight: 600; }
.srv-lim-bloco { display: flex; flex-direction: column; gap: 8px; padding: 14px; border: 1px solid var(--linha); border-radius: 14px; background: var(--panel); }
.srv-lim-bloco .tgl { align-self: flex-start; }
.srv-lim-bloco label.fraco { font-size: 12px; text-transform: uppercase; letter-spacing: .6px; margin-top: 4px; }
.srv-lim-bloco .desc { margin: 0; font-size: 12.5px; }
.srv-faixa { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.srv-faixa input[type="range"] { flex: 1; min-width: 160px; accent-color: var(--laranja); }
.srv-faixa .campo { width: 80px; font-variant-numeric: tabular-nums; }
.srv-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.cr-agenda { display: flex; gap: 6px; }
.cr-agenda .campo[data-agenda] { flex: 1; min-width: 150px; }
.cr-agenda select.campo { width: 46px; padding-left: 8px; padding-right: 4px; }
.cr-tab tr.cr-mudou td { background: color-mix(in srgb, var(--laranja) 9%, transparent); }
.cr-tab tr.cr-mudou td:first-child { box-shadow: inset 3px 0 0 var(--laranja); }
.cr-cmd { display: inline-block; max-width: 340px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; }
.cr-pre { margin: 0; padding: 12px; max-height: 65vh; overflow: auto; border-radius: 10px; background: var(--bg-2); border: 1px solid var(--linha); font: 12px/1.55 ui-monospace, 'SFMono-Regular', Consolas, monospace; white-space: pre; color: var(--texto); }
#ad-corpo h4 > svg { width: 16px; height: 16px; vertical-align: -3px; margin-right: 4px; flex: none; }
.btn[hidden] { display: none !important; }
.cr-agenda .campo[data-agenda] { flex: 1 1 auto; min-width: 130px; width: auto; }
.cr-agenda select.campo { flex: none; width: 46px; min-width: 0; }
.srv-faixa .campo { min-width: 0; }

.bf-res-lp { font-weight: 600; }
.bf-res-merc { font-size: .88em; opacity: .85; }
.bf-res-lp, .bf-res-merc { cursor: help; white-space: nowrap; }
.bc-diag-job { margin-bottom: 3px; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.bc-outra { color: var(--laranja); cursor: help; }
.bc-est { white-space: normal; text-align: left; line-height: 1.3; max-width: 420px; display: inline-block; }

/* ---------------- Minha página (início personalizado) ---------------- */
.mpg-cab .mpg-acoes { display: flex; gap: 8px; flex-wrap: wrap; }
.mpg-faixa { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; border-color: color-mix(in srgb, var(--aviso) 40%, transparent); }
.mpg-faixa > svg { width: 18px; height: 18px; color: var(--aviso); }
.mpg-faixa .espaco { flex: 1; }
.mpg-barra { position: sticky; top: 76px; z-index: 20; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 10px 12px; margin-bottom: 16px; background: var(--modal-bg); backdrop-filter: blur(10px); box-shadow: var(--sombra); }
.mpg-barra .espaco { flex: 1; }
.mpg-barra .icone-btn:disabled, .mpg-barra .btn:disabled { opacity: .4; cursor: default; }
.mpg-sep { width: 1px; height: 22px; background: var(--linha-forte); margin: 0 4px; }
.mpg-cont { font-size: 12.5px; font-weight: 600; padding: 4px 10px; border-radius: 999px; background: var(--sutil-2); font-variant-numeric: tabular-nums; }
.mpg-cont.quase { color: var(--aviso); background: var(--aviso-bg); }
.mpg-cont.cheio { color: var(--perigo); background: var(--perigo-bg); }
.mpg-sujo { font-size: 12px; }
.mpg-menu-caixa { position: relative; }
.mpg-menu { position: absolute; top: calc(100% + 6px); left: 0; z-index: 40; display: none; min-width: 270px; padding: 6px; background: var(--card); border: 1px solid var(--linha-forte); border-radius: 14px; box-shadow: var(--sombra); }
.mpg-menu.aberto { display: block; }
.mpg-menu button { display: flex; align-items: center; gap: 10px; width: 100%; border: 0; background: none; padding: 7px 8px; border-radius: 9px; cursor: pointer; text-align: left; font-size: 13px; }
.mpg-menu button:hover { background: var(--sutil-2); }
.mpg-mini { display: inline-flex; gap: 2px; width: 46px; height: 14px; flex: none; }
.mpg-mini i { display: block; border-radius: 3px; background: color-mix(in srgb, var(--acento) 55%, transparent); }
.mpg-mini-mod { display: flex; flex-direction: column; gap: 3px; margin-top: 10px; }
.mpg-mini-mod .mpg-mini { width: 100%; height: 10px; }

.mpg-grade { display: flex; flex-direction: column; gap: 18px; }
.mpg-linha { position: relative; --mpg-h: 300px; border-radius: var(--raio); transition: background .15s; }
.mpg-linha-tit { margin: 0 0 10px; font-size: 15px; font-weight: 600; color: var(--texto-2); letter-spacing: .3px; display: flex; align-items: center; gap: 10px; }
.mpg-linha-tit::after { content: ''; flex: 1; height: 1px; background: var(--linha); }
.mpg-cels { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.mpg-cel { position: relative; min-width: 0; display: flex; flex-direction: column; transition: grid-column .15s; }
.mpg-cel > .mpg-mod { flex: 1; }
.mpg-vazia { min-height: 1px; }
.mpg-mod { display: flex; flex-direction: column; min-width: 0; container-type: inline-size; }
.mpg-mod-cab { display: flex; align-items: center; gap: 6px; margin-bottom: 10px; min-height: 30px; flex-wrap: wrap; }
.mpg-mod-tit { min-width: 0; }
.mpg-mod-tit h4 { margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mpg-mod-sub { display: block; font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mpg-mod-cab .espaco { flex: 1; }
.mpg-extra { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.mpg-bt { width: 28px; height: 28px; opacity: .55; }
.mpg-mod:hover .mpg-bt, .mpg-bt:focus-visible { opacity: 1; }
.mpg-bt svg { width: 15px; height: 15px; }
.icone-btn.perigo:hover { color: var(--perigo); }
.icone-btn.confirmar { color: var(--perigo); background: var(--perigo-bg); }
.mpg-mod-corpo { flex: 1; min-width: 0; min-height: 60px; }
.mpg-grafico { position: relative; height: var(--mpg-h); }
.mpg-rolar { max-height: var(--mpg-h); overflow-y: auto; }
.mpg-mod .tabela td, .mpg-mod .tabela th { padding: 8px 10px; }
.mpg-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.mpg-kpis.mpg-kpis-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mpg-kpis > .cartao { margin: 0; background: var(--card-2); }
@container (max-width: 760px) { .mpg-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (max-width: 520px) { .mpg-kpis.mpg-kpis-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .mpg-kpis .kpi .val { font-size: 22px; } }
@container (max-width: 300px) { .mpg-kpis, .mpg-kpis.mpg-kpis-3 { grid-template-columns: 1fr; } }
.mpg-comb { width: 90px; height: 7px; border-radius: 99px; background: var(--sutil-2); overflow: hidden; }
.mpg-comb > i { display: block; height: 100%; background: var(--ciano); border-radius: 99px; }
.mpg-nota { white-space: normal; line-height: 1.55; max-height: var(--mpg-h); overflow-y: auto; }
.mpg-nota a { color: var(--acento); }
.mpg-atalhos { display: flex; flex-wrap: wrap; gap: 8px; }
.mpg-atalhos .btn { text-decoration: none; }
.mpg-relogio { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 12px; }
.mpg-relogio > div { display: flex; flex-direction: column; padding: 12px; border-radius: var(--raio-p); background: var(--sutil); }
.mpg-relogio b { font-size: 22px; font-variant-numeric: tabular-nums; letter-spacing: -.3px; }
.mpg-claim { display: flex; align-items: center; gap: 16px; text-decoration: none; flex-wrap: wrap; }
.mpg-claim > div:last-child { display: flex; flex-direction: column; gap: 3px; font-size: 13px; }
.mpg-anel { --p: 0; --c: var(--acento); width: 104px; height: 104px; border-radius: 50%; flex: none; display: grid; place-content: center; text-align: center;
  background: radial-gradient(closest-side, var(--card) 76%, transparent 78% 100%), conic-gradient(var(--c) calc(var(--p) * 1%), var(--sutil-2) 0); }
.mpg-anel b { font-size: 22px; line-height: 1; } .mpg-anel small { font-size: 10.5px; color: var(--texto-3); }
.mpg-calor table.calor td.c { min-width: 54px; }
.mpg-info { margin: 8px 0 0 !important; }

/* edição */
.mpg-grade.editando .mpg-linha { padding: 10px; background: var(--sutil); outline: 1px dashed var(--linha-forte); outline-offset: -1px; }
.mpg-linha-cab { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; flex-wrap: wrap; }
.mpg-linha-cab .mpg-titulo { flex: 1; min-width: 160px; height: 32px; }
.mpg-pega { cursor: grab; display: inline-grid; place-items: center; width: 26px; height: 28px; border-radius: 8px; color: var(--texto-3); flex: none; }
.mpg-pega:hover { background: var(--sutil-2); color: var(--texto); }
.mpg-pega:active { cursor: grabbing; }
.mpg-pega svg { width: 16px; height: 16px; fill: currentColor; }
.mpg-layouts { display: inline-flex; gap: 3px; padding: 3px; border-radius: 10px; background: var(--panel); border: 1px solid var(--linha); }
.mpg-layouts button { border: 0; background: none; padding: 5px 4px; border-radius: 7px; cursor: pointer; display: grid; place-items: center; }
.mpg-layouts button .mpg-mini { width: 34px; height: 12px; }
.mpg-layouts button .mpg-mini i { background: var(--texto-3); opacity: .55; }
.mpg-layouts button:hover { background: var(--sutil-2); }
.mpg-layouts button.ativo { background: var(--card-2); box-shadow: inset 0 0 0 1px var(--linha-forte); }
.mpg-layouts button.ativo .mpg-mini i { background: var(--acento); opacity: 1; }
.mpg-add { flex: 1; min-height: 150px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border: 1.5px dashed var(--linha-forte); border-radius: var(--raio); background: transparent; color: var(--texto-2); cursor: pointer; transition: .15s; }
.mpg-add svg { width: 26px; height: 26px; color: var(--acento); }
.mpg-add small { color: var(--texto-3); }
.mpg-add:hover:not(:disabled) { border-color: var(--acento); background: color-mix(in srgb, var(--acento) 7%, transparent); color: var(--texto); }
.mpg-add:disabled { cursor: not-allowed; opacity: .55; }
.mpg-add:disabled svg { color: var(--texto-3); }
.mpg-q { position: absolute; right: 10px; bottom: 6px; font-size: 10.5px; color: var(--texto-3); pointer-events: none; }
.mpg-divisa { position: absolute; top: 0; bottom: 0; right: -14px; width: 12px; cursor: col-resize; z-index: 5; display: grid; place-items: center; touch-action: none; }
.mpg-divisa i { width: 4px; height: 44px; border-radius: 4px; background: var(--linha-forte); transition: .15s; }
.mpg-divisa:hover i, .redimensionando .mpg-divisa i { background: var(--acento); height: 70%; }
.mpg-dica-div { position: absolute; top: -8px; left: 50%; transform: translate(-50%, -100%); padding: 5px 10px; border-radius: 9px; background: var(--card); border: 1px solid var(--linha-forte); font-size: 12px; white-space: nowrap; box-shadow: var(--sombra); z-index: 30; }
.mpg-dica-div.ruim { color: var(--aviso); }
.redimensionando { user-select: none; }
.mpg-grade.com-arrasto .mpg-mod-corpo { pointer-events: none; }
.arrastando { opacity: .45; }
.mpg-cel.alvo-ok > .mpg-mod, .mpg-cel.alvo-ok > .mpg-add { outline: 2px solid var(--ok); outline-offset: 2px; }
.mpg-cel.alvo-ruim > .mpg-mod, .mpg-cel.alvo-ruim > .mpg-add { outline: 2px solid var(--perigo); outline-offset: 2px; }
.mpg-linha.antes { box-shadow: 0 -4px 0 var(--acento); }
.mpg-linha.depois { box-shadow: 0 4px 0 var(--acento); }
.mpg-nova-linha { height: 54px; border: 1.5px dashed var(--linha-forte); border-radius: var(--raio); background: none; color: var(--texto-2); cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; }
.mpg-nova-linha:hover { border-color: var(--acento); color: var(--texto); }
.mpg-nova-linha svg { width: 18px; height: 18px; }

/* boas-vindas, modelos e janelas */
.mpg-boas h3 { margin: 0 0 6px; }
.mpg-modelos { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.mpg-modelo { display: flex; flex-direction: column; gap: 4px; text-align: left; font: inherit; color: inherit; margin: 0 !important; }
.mpg-modelo .fraco { font-size: 12.5px; color: var(--texto-3); }
.mpg-modelo-bt { display: flex; gap: 6px; margin-top: 10px; }
.modal.mpg-janela { width: min(760px, calc(100vw - 24px)); }
.mpg-secoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.mpg-secao { display: flex; flex-direction: column; gap: 3px; text-align: left; font: inherit; color: inherit; cursor: pointer; margin: 0 !important; transition: .15s; }
.mpg-secao:hover:not(:disabled) { border-color: var(--acento); transform: translateY(-1px); }
.mpg-secao:disabled { opacity: .45; cursor: not-allowed; }
.mpg-secao .fraco { font-size: 12px; color: var(--texto-3); }
.mpg-secao small { margin-top: 4px; font-size: 11.5px; color: var(--acento); }
.mpg-secao-ico { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: color-mix(in srgb, var(--acento) 14%, transparent); color: var(--acento); margin-bottom: 4px; }
.mpg-secao-ico svg { width: 18px; height: 18px; }
.mpg-cat-busca { width: 100%; margin-bottom: 12px; }
.mpg-cat-topo { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.mpg-cat-topo h4 { margin: 0; display: flex; align-items: center; gap: 6px; }
.mpg-cat-topo h4 svg { width: 18px; height: 18px; color: var(--acento); }
.mpg-cat-res { display: flex; flex-direction: column; gap: 8px; }
.mpg-cat-res:empty { display: none; }
.mpg-op { display: flex; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--linha); border-radius: var(--raio-p); background: var(--sutil); }
.mpg-op-txt { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.mpg-op-txt .fraco { font-size: 12.5px; color: var(--texto-3); }
.mpg-op-tags { margin-top: 4px; }
.mpg-op-aviso { font-size: 12px; color: var(--aviso); margin-top: 2px; }
.mpg-op.nao-cabe { opacity: .8; }
.mpg-form { display: flex; flex-direction: column; gap: 12px; }
.mpg-form > label { display: flex; flex-direction: column; gap: 5px; font-size: 12.5px; color: var(--texto-2); }
.mpg-form .campo { width: 100%; }
.mpg-form input[type="number"].campo { width: 110px; }
.mpg-texto { min-height: 140px; resize: vertical; padding: 10px; line-height: 1.5; }
.mpg-paginas { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 4px 12px; }
.mpg-paginas label { display: flex; align-items: center; gap: 7px; font-size: 13px; color: var(--texto); cursor: pointer; }
.mpg-paginas svg { width: 15px; height: 15px; color: var(--texto-3); }

/* telas menores: 1/4 vira 1/2 e, no celular, tudo ocupa a linha toda */
@media (max-width: 1100px) {
  .mpg-cels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mpg-cel { grid-column: span 2 !important; }
  .mpg-cel.q1 { grid-column: span 1 !important; }
  .mpg-divisa { display: none; }
}
@media (max-width: 700px) {
  .mpg-cels { grid-template-columns: 1fr; }
  .mpg-cel, .mpg-cel.q1 { grid-column: span 1 !important; }
  .mpg-barra { top: 64px; }
  .mpg-layouts { order: 5; }
}
.mpg-grade.editando .mpg-mod { padding-bottom: 24px; }

/* Minha página: pilha de módulos numa célula, Sis-Bot e Mapa */
.mpg-cel { gap: 16px; }
.mpg-cel.pilha > .mpg-mod { flex: 1 1 auto; }
.mpg-empilhar { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 38px; border: 1.5px dashed var(--linha-forte); border-radius: var(--raio-p); background: none; color: var(--texto-3); cursor: pointer; font-size: 12.5px; transition: .15s; }
.mpg-empilhar svg { width: 15px; height: 15px; }
.mpg-empilhar:hover:not(:disabled) { border-color: var(--acento); color: var(--texto); }
.mpg-empilhar.cheia { cursor: default; }
.mpg-empilhar:disabled { opacity: .5; cursor: not-allowed; }
.mpg-grade.arrasto-mod .mpg-empilhar { min-height: 64px; border-color: var(--acento); color: var(--texto-2); }
.mpg-grade.arrasto-mod .mpg-cel.alvo-ok > .mpg-empilhar, .mpg-grade.arrasto-mod .mpg-cel.alvo-ok > .mpg-add { border-color: var(--ok); background: var(--ok-bg); outline: 0; }
.mpg-grade.arrasto-mod .mpg-cel.alvo-ruim > .mpg-empilhar, .mpg-grade.arrasto-mod .mpg-cel.alvo-ruim > .mpg-add { border-color: var(--perigo); background: var(--perigo-bg); outline: 0; }
.mpg-cel.alvo-ok > .mpg-mod, .mpg-cel.alvo-ruim > .mpg-mod { outline: 0; }
.mpg-mod.alvo-ok { outline: 2px solid var(--ok); outline-offset: 2px; }
.mpg-mod.alvo-ruim { outline: 2px solid var(--perigo); outline-offset: 2px; }
.mpg-ir { margin-top: 12px; text-decoration: none; }
.mpg-ir svg { width: 14px; height: 14px; }
.mpg-bot-st { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.mpg-bot-st > div { display: flex; flex-direction: column; }
.mpg-bot-st b { font-size: 17px; }
.mpg-luz { width: 14px; height: 14px; border-radius: 50%; flex: none; background: var(--texto-3); }
.mpg-luz.on { background: var(--ok); box-shadow: 0 0 0 4px var(--ok-bg); animation: mpg-pulso 2s infinite; }
.mpg-luz.pausa { background: var(--aviso); box-shadow: 0 0 0 4px var(--aviso-bg); }
.mpg-luz.off { background: var(--perigo); box-shadow: 0 0 0 4px var(--perigo-bg); }
@keyframes mpg-pulso { 50% { box-shadow: 0 0 0 7px transparent; } }
@media (prefers-reduced-motion: reduce) { .mpg-luz.on { animation: none; } }
.mpg-mini-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 8px; margin-bottom: 10px; }
.mpg-mini-kpis > div { display: flex; flex-direction: column; padding: 9px 11px; border-radius: var(--raio-p); background: var(--sutil); min-width: 0; }
.mpg-mini-kpis span.fraco { font-size: 11px; text-transform: uppercase; letter-spacing: .6px; }
.mpg-mini-kpis b { font-size: 17px; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mpg-mini-kpis small { font-size: 11px; }
.mpg-medidor { width: 84px; height: 5px; border-radius: 99px; background: var(--sutil-2); overflow: hidden; margin: 3px 0; }
.mpg-medidor > i { display: block; height: 100%; border-radius: 99px; }
.mpg-aviso-bot { color: var(--ciano); }
.mpg-eventos li { flex-direction: column; align-items: flex-start; gap: 3px; }
.mpg-ev-cab { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.mpg-ev-msg { font-size: 12.5px; color: var(--texto-2); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.mpg-mapa { height: var(--mp-h); min-height: 200px; border-radius: var(--raio-p); background: var(--bg-2); overflow: hidden; }
.mpg-mapa svg { width: 100%; height: 100%; display: block; }
.mpg-mapa .fundo { fill: var(--bg-2); }
.mpg-mapa .grade line { stroke: var(--linha); stroke-width: calc(var(--f) * .15); }
.mpg-mapa .grade line.eixo { stroke: var(--linha-forte); }
.mpg-mapa .rota { stroke: var(--roxo); stroke-opacity: .45; stroke-linecap: round; }
.mpg-mapa .rota.warp { stroke: var(--ciano); }
.mpg-mapa .sb circle { stroke: var(--bg); stroke-width: calc(var(--f) * .25); }
.mpg-mapa .sb text { fill: var(--texto-2); paint-order: stroke; stroke: var(--bg); stroke-width: calc(var(--f) * .4); }
.mpg-mapa .minha { fill: var(--acento); stroke: #fff; stroke-width: calc(var(--f) * .22); }
.mpg-mapa-leg { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-top: 8px; font-size: 12px; color: var(--texto-2); }
.mpg-mapa-leg i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; }
.mpg-mapa-leg i.b { border-radius: 50%; background: var(--acento); box-shadow: 0 0 0 1.5px #fff inset; }
.mpg-mapa-leg i.sb { border-radius: 50%; background: linear-gradient(90deg, var(--f2) 33%, var(--f3) 33% 66%, var(--f4) 66%); }
.mpg-mapa-leg i.l { height: 2px; border-radius: 0; background: var(--roxo); }
.mpg-mapa-leg a { margin-left: auto; color: var(--acento); text-decoration: none; display: inline-flex; align-items: center; gap: 3px; }
.mpg-mapa-leg a svg { width: 13px; height: 13px; }
/* listas, tabelas e mapas crescem para preencher a altura da linha (quando o vizinho é mais alto) e rolam dentro do módulo */
.mpg-mod-corpo { display: flex; flex-direction: column; }
.mpg-mod-corpo > .mpg-rolar, .mpg-mod-corpo > .mpg-nota { flex: 1 1 0; max-height: none; min-height: var(--mp-h); }
.mpg-mod-corpo > .mpg-mapa { flex: 1 1 0; height: auto; min-height: var(--mp-h); }
.mpg-mod-corpo > .vazio { flex: 1; display: grid; place-items: center; }
.mpg-mapa .bolha { stroke: #44d7f7; stroke-opacity: .7; stroke-width: calc(var(--f) * .15); }
.mpg-mapa-leg i.q { border-radius: 50%; }

/* Minha página: mapas interativos (arrastar, zoom, % por setor, minhas frotas) */
.mpg-mapa { position: relative; user-select: none; }
.mpg-mapa svg { cursor: grab; touch-action: none; }
.mpg-mapa.arrastando svg { cursor: grabbing; }
.mpg-mapa .grade line { stroke-width: 1px; vector-effect: non-scaling-stroke; }
.mpg-mapa .sb { cursor: pointer; }
.mpg-mapa .sb circle { stroke-width: 1.5px; vector-effect: non-scaling-stroke; }
.mpg-mapa .bolha { stroke-width: 1px; vector-effect: non-scaling-stroke; }
.mpg-mapa .rota { vector-effect: non-scaling-stroke; }
.mpg-mapa .rot { font-size: calc(var(--u) * 10.5px); text-anchor: middle; dominant-baseline: central; fill: var(--texto); paint-order: stroke; stroke: var(--bg); stroke-width: calc(var(--u) * 3px); stroke-linejoin: round; pointer-events: none; font-weight: 600; }
.mpg-mapa .rot-sb { fill: var(--texto-2); font-weight: 500; }
.mpg-mapa svg.bem-longe .rot-sb:not(.css) { display: none; }
.mpg-mapa .rot-bolha { font-size: calc(var(--u) * 9.5px); fill: #03111a; stroke: none; }
.mpg-mapa svg.longe .rot-bolha { display: none; }
.mpg-mapa .pct { font-size: .34px; text-anchor: middle; dominant-baseline: central; fill: var(--texto-2); pointer-events: none; font-variant-numeric: tabular-nums; }
.mpg-mapa .pct.forte { fill: #2a1600; font-weight: 700; }
.mpg-mapa svg.longe .pct { display: none; }
.mpg-mapa .minha { cursor: pointer; }
.mpg-mapa .minha circle { r: calc(var(--u) * 5px); fill: var(--acento); stroke: #fff; stroke-width: 1.6px; vector-effect: non-scaling-stroke; }
.mpg-mapa .minha.movendo circle { fill: var(--ciano); }
.mpg-mapa .rota-minha { stroke: var(--ciano); stroke-width: 1.6px; stroke-dasharray: 5 4; vector-effect: non-scaling-stroke; opacity: .9; }
.mpg-mapa .destino { r: calc(var(--u) * 3px); fill: none; stroke: var(--ciano); stroke-width: 1.5px; vector-effect: non-scaling-stroke; }
.mpg-mapa .rot-frota { fill: #cfe8ff; }
.mpg-mapa-ferr { position: absolute; top: 8px; right: 8px; display: flex; flex-direction: column; gap: 4px; }
.mpg-mapa-ferr .icone-btn { width: 30px; height: 30px; background: var(--modal-bg); border: 1px solid var(--linha-forte); }
.mpg-mapa-ferr .icone-btn svg { width: 15px; height: 15px; }
.mpg-mapa-op { position: absolute; top: 8px; left: 8px; display: flex; gap: 5px; flex-wrap: wrap; max-width: calc(100% - 60px); }
.mpg-chip { height: 26px; padding: 0 10px; border-radius: 999px; border: 1px solid var(--linha-forte); background: var(--modal-bg); color: var(--texto-2); font-size: 12px; cursor: pointer; }
.mpg-chip.ativo { background: color-mix(in srgb, var(--acento) 22%, var(--modal-bg)); border-color: var(--acento); color: var(--texto); }
.mpg-mapa-dica { position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%); padding: 3px 10px; border-radius: 999px; background: var(--modal-bg); border: 1px solid var(--linha); font-size: 11.5px; color: var(--texto-3); pointer-events: none; white-space: nowrap; }
.mpg-mapa-dica[hidden] { display: none; }

/* mapa de calor: arrastar linhas (itens) e colunas (starbases) para reordenar */
.calor th.calor-col { cursor: grab; }
.calor tr.calor-linha td:first-child { cursor: grab; }
.calor .cal-arr { opacity: .4; }
.calor tr.cal-antes td { box-shadow: inset 0 3px 0 var(--acento); }
.calor tr.cal-depois td { box-shadow: inset 0 -3px 0 var(--acento); }
.calor th.cal-antes, .calor td.cal-antes { box-shadow: inset 3px 0 0 var(--acento); }
.calor th.cal-depois, .calor td.cal-depois { box-shadow: inset -3px 0 0 var(--acento); }
.mpg-mapa .sb text.rot { stroke-width: calc(var(--u) * 3px); }
.mpg-mapa .minha text.rot { stroke-width: calc(var(--u) * 3px); }

/* ---- Detalhes do Prospectar SDU: 1ª linha = Frota agora (1/3, caixas empilhadas) + Mapa da viagem (2/3) */
.bf-l1 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 12px; align-items: start; margin-bottom: 12px; }
.bf-l1 .bf-sit, .bf-l1 .bf-det-sec { margin-bottom: 0; }
.bf-l1 .bf-sit-cab { gap: 6px 10px; }
.bf-l1 .bf-sit-cab .espaco { display: none; }
.bf-sit-pilha { display: grid; gap: 8px; }
.bf-sit-caixa.bf-destaque { border-width: 1.5px; }
.bf-sit-caixa.bf-destaque .val { font-size: 26px; }
.bf-sit-caixa.bf-destaque .rot { display: flex; align-items: center; gap: 6px; font-weight: 600; }
.bf-sit-caixa.bf-destaque.sdu { border-color: color-mix(in srgb, var(--ok) 55%, var(--linha)); background: color-mix(in srgb, var(--ok) 9%, var(--card)); }
.bf-sit-caixa.bf-destaque.sdu .rot, .bf-sit-caixa.bf-destaque.sdu .val { color: var(--ok); }
.bf-sit-caixa.bf-destaque.food { border-color: color-mix(in srgb, var(--aviso) 55%, var(--linha)); background: color-mix(in srgb, var(--aviso) 9%, var(--card)); }
.bf-sit-caixa.bf-destaque.food .rot, .bf-sit-caixa.bf-destaque.food .val { color: var(--aviso); }
.bf-medidor.sdu i { background: var(--ok); } .bf-medidor.food i { background: var(--aviso); }
@media (max-width: 900px) { .bf-l1 { grid-template-columns: minmax(0, 1fr); } }
/* mini mapa: chance de SDU por setor, área do Prospectar e a base sempre visível */
.mr-sdu { fill: var(--ok); stroke: none; }
.mr-pct { fill: var(--texto-2); font-size: 9.5px; font-weight: 600; text-anchor: middle; font-variant-numeric: tabular-nums; pointer-events: none; }
.mr-area { fill: none; stroke: var(--ok); stroke-width: 1.5; stroke-dasharray: 3 4; opacity: .7; pointer-events: none; }
.mr-sb.base circle, .mr-sb.base rect { stroke: var(--ciano); stroke-width: 3; }
.mr-sb.base .mr-rot { fill: var(--texto); font-weight: 700; }
.mr-l.sdu { width: 12px; height: 10px; border: 0; border-radius: 2px; background: color-mix(in srgb, var(--ok) 45%, transparent); }
.bf-l1 .mr-svg { max-height: 600px; }

/* ---- Minha página: formatos de quantidade/término, mapa de calor fixo e total, minerando por starbase (28/10/2026) */
.mpg-form label.mpg-chk { flex-direction: row; align-items: center; gap: 8px; cursor: pointer; }
.mpg-form label.mpg-chk input { width: 16px; height: 16px; accent-color: var(--acento); flex: none; }
.mpg-hora { font-variant-numeric: tabular-nums; white-space: nowrap; }
.calor-fixo thead th { position: sticky; top: 0; z-index: 2; background: var(--card); box-shadow: inset 0 -1px 0 var(--linha); }
.calor-fixo tbody td:first-child { position: sticky; left: 0; z-index: 1; background: var(--card); }
.calor-fixo thead th:first-child { left: 0; z-index: 3; }
.calor th.calor-tot, .calor td.calor-tot { font-weight: 600; color: var(--texto); box-shadow: inset 2px 0 0 var(--linha); white-space: nowrap; }
.calor-fixo thead th.calor-tot, .calor-fixo tbody td.calor-tot { position: sticky; right: 0; z-index: 1; background: var(--card); }
.calor-fixo thead th.calor-tot { z-index: 3; }
.mpg-sbs { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.mpg-sb { display: inline-flex; align-items: center; gap: 5px; padding: 2px 8px; border-radius: 999px; background: var(--card-2); font-size: 12px; white-space: nowrap; cursor: pointer; }
.mpg-sb:hover { outline: 1px solid var(--acento); }
.mpg-sb i { width: 7px; height: 7px; border-radius: 50%; flex: none; }
.mpg-sb b { color: var(--texto-2); font-weight: 600; }

/* ---------------- Mercado (29/10/2026): layout futurista — holo-painéis, accordions animados, ticker, galeria e gráfico com brilho ---------------- */
.mk-pag { --neon: var(--ciano); --neon-2: var(--acento); --mk-borda: color-mix(in srgb, var(--neon) 22%, transparent); --mk-mono: ui-monospace, 'JetBrains Mono', 'SFMono-Regular', Consolas, monospace; }
.mk-modal { --neon: var(--ciano); --neon-2: var(--acento); --mk-borda: color-mix(in srgb, var(--neon) 22%, transparent); --mk-mono: ui-monospace, 'JetBrains Mono', 'SFMono-Regular', Consolas, monospace; }
@keyframes mk-entra { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes mk-varre { from { transform: translateY(-100%); } to { transform: translateY(100%); } }
@keyframes mk-ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes mk-pulso { 0%, 100% { opacity: 1; box-shadow: 0 0 0 0 color-mix(in srgb, currentColor 60%, transparent); } 50% { opacity: .6; box-shadow: 0 0 0 5px transparent; } }
@keyframes mk-grade { from { background-position: 0 0, 0 0; } to { background-position: 0 40px, 40px 0; } }
@keyframes mk-brilho { from { transform: translateX(-120%) skewX(-20deg); } to { transform: translateX(220%) skewX(-20deg); } }

/* painel holográfico: borda em degradê, cantos marcados */
.mk-holo { position: relative; background: linear-gradient(160deg, color-mix(in srgb, var(--card) 92%, var(--neon) 8%), var(--card) 55%); border: 1px solid var(--mk-borda); border-radius: var(--raio); }
.mk-holo::before, .mk-holo::after { content: ''; position: absolute; width: 14px; height: 14px; pointer-events: none; border-color: var(--neon); border-style: solid; opacity: .75; }
.mk-holo::before { top: -1px; left: -1px; border-width: 2px 0 0 2px; border-top-left-radius: var(--raio); }
.mk-holo::after { bottom: -1px; right: -1px; border-width: 0 2px 2px 0; border-bottom-right-radius: var(--raio); }

/* topo (hero) */
.mk-hero { position: relative; overflow: hidden; display: flex; flex-wrap: wrap; gap: 18px; align-items: flex-end; justify-content: space-between; padding: 22px 22px 20px; margin-bottom: 12px;
  border-radius: var(--raio); border: 1px solid var(--mk-borda); background: radial-gradient(700px 200px at 0% 0%, color-mix(in srgb, var(--neon-2) 22%, transparent), transparent 70%), radial-gradient(500px 220px at 100% 120%, color-mix(in srgb, var(--neon) 16%, transparent), transparent 70%), var(--panel); }
.mk-hero-grade { position: absolute; inset: 0; pointer-events: none; opacity: .35; animation: mk-grade 6s linear infinite;
  background-image: linear-gradient(color-mix(in srgb, var(--neon) 14%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--neon) 14%, transparent) 1px, transparent 1px); background-size: 40px 40px;
  mask-image: linear-gradient(180deg, transparent, #000 40%, transparent); -webkit-mask-image: linear-gradient(180deg, transparent, #000 40%, transparent); }
.mk-hero::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--neon) 7%, transparent) 50%, transparent); height: 60%; animation: mk-varre 7s linear infinite; }
.mk-hero-txt { position: relative; z-index: 1; }
.mk-sobre { font: 600 11px/1 var(--mk-mono); letter-spacing: 3px; color: var(--neon); display: flex; align-items: center; gap: 8px; }
.mk-hero h1 { margin: 6px 0 4px; font-size: 34px; letter-spacing: 1px; text-transform: uppercase; background: linear-gradient(90deg, var(--texto), var(--neon)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.mk-hero .sub { color: var(--texto-2); font-size: 12.5px; }
.mk-kpis { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 10px; flex: 1 1 560px; max-width: 760px; }
.mk-kpi { padding: 10px 12px; border-radius: 12px; background: color-mix(in srgb, var(--bg) 55%, transparent); border: 1px solid var(--mk-borda); backdrop-filter: blur(6px); animation: mk-entra .5s both; animation-delay: calc(var(--d) * 70ms); }
.mk-kpi small { display: block; font: 600 10.5px var(--mk-mono); letter-spacing: 1.2px; text-transform: uppercase; color: var(--texto-3); }
.mk-kpi b { display: block; white-space: nowrap; font-size: 21px; font-variant-numeric: tabular-nums; margin-top: 3px; }
.mk-kpi b small { font: inherit; font-size: 12px; color: var(--texto-3); letter-spacing: 0; display: inline; text-transform: none; }
.mk-kpi span { font-size: 11.5px; color: var(--texto-2); }
.mk-led { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--neon); color: var(--neon); animation: mk-pulso 2s infinite; margin-right: 8px; vertical-align: middle; flex: none; }
.mk-led.v { background: var(--perigo); color: var(--perigo); }
.mk-led.c { background: var(--ok); color: var(--ok); }

/* faixa de últimos negócios */
.mk-ticker { position: relative; overflow: hidden; border-radius: 12px; border: 1px solid var(--linha); background: var(--panel); margin-bottom: 16px; height: 38px;
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.mk-ticker-trilho { display: flex; width: max-content; height: 100%; align-items: center; animation: mk-ticker 90s linear infinite; }
.mk-ticker:hover .mk-ticker-trilho { animation-play-state: paused; }
.mk-tk { display: inline-flex; align-items: center; gap: 6px; padding: 0 18px; text-decoration: none; font-size: 12.5px; white-space: nowrap; border-right: 1px solid var(--linha); font-variant-numeric: tabular-nums; }
.mk-tk:hover b { color: var(--neon); }
.mk-tk em { font: 600 9.5px var(--mk-mono); text-transform: uppercase; letter-spacing: 1px; color: var(--laranja); border: 1px solid currentColor; border-radius: 6px; padding: 0 4px; font-style: normal; }
.mk-tk i { font-style: normal; } .mk-tk i.compra { color: var(--ok); } .mk-tk i.venda { color: var(--perigo); }
.mk-tk small, .mk-tk span { color: var(--texto-3); }

.mk-abas a { display: inline-flex; align-items: center; gap: 7px; }
.mk-abas a svg { width: 16px; height: 16px; }
.mk-abas a.ativo { text-shadow: 0 0 14px color-mix(in srgb, var(--neon) 60%, transparent); }

/* layout: menu em accordion + conteúdo */
.mk-layout { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 16px; align-items: start; }
.mk-lado { position: sticky; top: 84px; max-height: calc(100vh - 100px); display: flex; flex-direction: column; overflow: hidden; }
.mk-lado-topo { display: flex; flex-direction: column; gap: 8px; padding: 12px; border-bottom: 1px solid var(--linha); }
.mk-lado-topo .campo { width: 100%; }
.mk-seg { align-self: flex-start; }
.mk-arvore { overflow: auto; padding: 6px 6px 12px; }
.mk-ac-cab { width: 100%; display: flex; align-items: center; gap: 8px; border: 0; background: none; cursor: pointer; text-align: left; padding: 9px 10px; border-radius: 10px;
  font: 600 12px/1.2 var(--fonte); letter-spacing: 1.1px; color: var(--texto-2); position: relative; transition: background .2s, color .2s; }
.mk-ac-cab:hover { background: var(--sutil); color: var(--texto); }
.mk-ac.sel > .mk-ac-cab { color: var(--texto); background: linear-gradient(90deg, color-mix(in srgb, var(--neon) 16%, transparent), transparent); }
.mk-ac.sel > .mk-ac-cab::before { content: ''; position: absolute; left: 0; top: 6px; bottom: 6px; width: 3px; border-radius: 3px; background: var(--neon); box-shadow: 0 0 10px var(--neon); }
.mk-ac.n1 > .mk-ac-cab { font-size: 11.5px; padding-left: 26px; color: var(--texto-3); }
.mk-ac.n1.sel > .mk-ac-cab, .mk-ac.n1 > .mk-ac-cab:hover { color: var(--texto); }
.mk-ac-rot { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mk-ac-cont { font: 600 10.5px var(--mk-mono); color: var(--texto-3); background: var(--sutil-2); border-radius: 6px; padding: 2px 6px; margin-left: 6px; letter-spacing: 0; }
.mk-chev { width: 8px; height: 8px; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: rotate(-45deg); transition: transform .3s cubic-bezier(.3, 1.4, .5, 1); flex: none; margin: 0 2px; }
.mk-ac.aberto > .mk-ac-cab > .mk-chev { transform: rotate(45deg); color: var(--neon); }
.mk-ponto { width: 6px; height: 6px; border-radius: 50%; border: 1.5px solid currentColor; flex: none; margin: 0 3px; }
.mk-fac { width: 9px; height: 9px; border-radius: 3px; flex: none; box-shadow: 0 0 8px currentColor; }
.mk-setor { font: 10.5px var(--mk-mono); color: var(--texto-3); letter-spacing: 0; }
/* expande e retrai suave (grid-template-rows 0fr → 1fr) */
.mk-ac-corpo { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .35s cubic-bezier(.4, 0, .2, 1), opacity .3s; opacity: 0; }
.mk-ac-corpo > div { overflow: hidden; min-height: 0; }
.mk-ac.aberto > .mk-ac-corpo { grid-template-rows: 1fr; opacity: 1; }
.mk-ac.n0 > .mk-ac-corpo > div { margin-left: 12px; border-left: 1px dashed var(--mk-borda); }
.mk-ac-item { display: flex; align-items: center; gap: 8px; padding: 5px 8px 5px 30px; border-radius: 8px; text-decoration: none; font-size: 12.5px; color: var(--texto-2); transition: background .2s, color .2s, transform .2s; }
.mk-ac-item:hover { background: var(--sutil); color: var(--texto); transform: translateX(3px); }
.mk-ac-item span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mk-ac-item small { font: 10.5px var(--mk-mono); color: var(--neon); }
.mk-ac-item .ico-rec { width: 20px; height: 20px; }

.mk-migalha { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font: 600 11.5px var(--mk-mono); letter-spacing: 1.5px; color: var(--texto-3); margin: 2px 0 14px; min-height: 36px; }
.mk-migalha a { text-decoration: none; color: var(--texto-2); } .mk-migalha a:hover { color: var(--neon); }
.mk-migalha b { color: var(--neon); } .mk-migalha i { font-style: normal; opacity: .5; }
.mk-migalha .espaco { flex: 1; }
.mk-migalha .campo { font: 13px var(--fonte); letter-spacing: 0; }
.mk-tit { display: flex; align-items: center; gap: 8px; font: 600 12.5px var(--mk-mono); letter-spacing: 2px; text-transform: uppercase; color: var(--texto-2); margin: 22px 0 12px; }
.mk-tit:first-child { margin-top: 0; }
.mk-tit svg { width: 16px; height: 16px; color: var(--neon); }
.mk-tit a { text-decoration: none; } .mk-tit a:hover { color: var(--neon); }
.mk-tit::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, var(--mk-borda), transparent); }

/* cartões dos itens */
.mk-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; }
.mk-card { position: relative; display: flex; flex-direction: column; text-decoration: none; border-radius: 16px; overflow: hidden; background: var(--card); border: 1px solid var(--linha);
  transition: transform .25s, border-color .25s, box-shadow .25s; animation: mk-entra .45s both; animation-delay: calc(var(--d) * 35ms); }
.mk-card::after { content: ''; position: absolute; top: 0; bottom: 0; width: 40%; background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--neon) 18%, transparent), transparent); transform: translateX(-120%) skewX(-20deg); pointer-events: none; }
.mk-card:hover { transform: translateY(-4px); border-color: color-mix(in srgb, var(--neon) 55%, transparent); box-shadow: 0 10px 30px -10px color-mix(in srgb, var(--neon) 45%, transparent), 0 0 0 1px color-mix(in srgb, var(--neon) 25%, transparent) inset; }
.mk-card:hover::after { animation: mk-brilho .8s ease-out; }
.mk-card-img { position: relative; aspect-ratio: 16 / 10; display: grid; place-items: center; overflow: hidden;
  background: radial-gradient(circle at 50% 60%, color-mix(in srgb, var(--neon-2) 20%, transparent), transparent 65%), var(--bg-2); }
.mk-card-img img { width: 100%; height: 100%; object-fit: contain; padding: 10px; transition: transform .4s; filter: drop-shadow(0 8px 18px rgba(0, 0, 0, .45)); }
.mk-card:hover .mk-card-img img { transform: scale(1.07); }
.mk-sem-img { width: 46px; height: 46px; border-radius: 12px; border: 1px dashed var(--mk-borda); }
.mk-tam, .mk-gal { position: absolute; top: 8px; font: 700 10px var(--mk-mono); letter-spacing: 1px; padding: 3px 7px; border-radius: 7px; background: color-mix(in srgb, var(--bg) 70%, transparent); border: 1px solid var(--mk-borda); color: var(--neon); backdrop-filter: blur(4px); }
.mk-tam { left: 8px; } .mk-gal { right: 8px; display: grid; place-items: center; padding: 3px 5px; } .mk-gal svg { width: 13px; height: 13px; }
.mk-card-info { padding: 10px 12px 4px; }
.mk-card-nome { font-weight: 700; font-size: 14px; line-height: 1.25; color: var(--texto); }
.mk-card-sub { font-size: 11.5px; color: var(--texto-3); margin-top: 2px; }
.mk-card-precos { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 8px 12px; }
.mk-pb { padding: 6px 8px; border-radius: 9px; background: var(--sutil); border: 1px solid var(--linha); min-width: 0; }
.mk-pb small { display: block; font: 600 9.5px var(--mk-mono); letter-spacing: 1.2px; text-transform: uppercase; color: var(--texto-3); }
.mk-pb b { display: block; font: 700 14px var(--mk-mono); font-variant-numeric: tabular-nums; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mk-pb span { display: block; font-size: 10.5px; color: var(--texto-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mk-pb.v b { color: var(--perigo); } .mk-pb.c b { color: var(--ok); } .mk-pb.r b { color: var(--neon); }
.mk-card-gm { display: flex; align-items: baseline; gap: 5px; flex-wrap: wrap; padding: 0 12px 6px; font-size: 11.5px; color: var(--texto-3); }
.mk-card-gm span { font: 600 9.5px var(--mk-mono); letter-spacing: 1px; text-transform: uppercase; margin-right: 2px; }
.mk-card-gm b { font: 600 12px var(--mk-mono); color: var(--texto-2); }
.mk-card-pe { margin-top: auto; display: flex; justify-content: space-between; gap: 8px; padding: 8px 12px; border-top: 1px solid var(--linha); font-size: 11px; color: var(--texto-3); }
.mk-arb { color: var(--ok); font-weight: 700; text-shadow: 0 0 10px color-mix(in srgb, var(--ok) 50%, transparent); }
/* raridade */
.mk-rar { display: inline-block; font: 700 9.5px var(--mk-mono); letter-spacing: 1.3px; text-transform: uppercase; padding: 2px 7px; border-radius: 6px; border: 1px solid currentColor; margin-bottom: 5px; color: var(--texto-3); }
.mk-rar.r-uncommon { color: #3fbf7f; } .mk-rar.r-rare { color: #4da7ef; } .mk-rar.r-epic { color: #a782ff; } .mk-rar.r-legendary { color: #f2a65a; } .mk-rar.r-anomaly { color: #ff5c8a; text-shadow: 0 0 8px currentColor; }

/* home: categorias */
.mk-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.mk-cat { position: relative; display: flex; flex-direction: column; gap: 3px; padding: 14px; text-decoration: none; border-radius: 16px; border: 1px solid var(--linha); overflow: hidden;
  background: linear-gradient(150deg, color-mix(in srgb, var(--neon-2) 10%, var(--card)), var(--card)); transition: transform .25s, border-color .25s, box-shadow .25s; animation: mk-entra .45s both; animation-delay: calc(var(--d) * 50ms); }
.mk-cat:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--neon) 55%, transparent); box-shadow: 0 10px 30px -12px color-mix(in srgb, var(--neon) 50%, transparent); }
.mk-cat-imgs { display: flex; height: 70px; margin-bottom: 8px; }
.mk-cat-imgs img { width: 70px; height: 70px; object-fit: contain; margin-right: -18px; filter: drop-shadow(0 6px 12px rgba(0, 0, 0, .5)); transition: transform .3s; }
.mk-cat:hover .mk-cat-imgs img:nth-child(1) { transform: translateY(-4px) rotate(-4deg); } .mk-cat:hover .mk-cat-imgs img:nth-child(3) { transform: translateY(-4px) rotate(4deg); }
.mk-cat b { font: 700 15px var(--fonte); letter-spacing: 2px; }
.mk-cat span { font-size: 12px; color: var(--texto-2); }
.mk-cat small { font-size: 11px; color: var(--texto-3); }
.mk-explica { padding: 14px 16px; font-size: 13px; color: var(--texto-2); margin-bottom: 4px; }

/* janela do item */
.mk-modal .modal-cab h3 { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.mk-local-tag { font: 600 10.5px var(--mk-mono); letter-spacing: 1px; text-transform: uppercase; color: var(--laranja); border: 1px solid currentColor; padding: 2px 8px; border-radius: 8px; }
.mk-det-topo { display: grid; grid-template-columns: minmax(260px, 420px) minmax(0, 1fr); gap: 18px; }
.mk-galeria { padding: 10px; }
.mk-gal-palco { position: relative; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; display: grid; place-items: center;
  background: radial-gradient(circle at 50% 55%, color-mix(in srgb, var(--neon-2) 28%, transparent), transparent 65%), var(--bg-2); }
.mk-gal-palco img { max-width: 100%; max-height: 100%; object-fit: contain; cursor: zoom-in; filter: drop-shadow(0 12px 26px rgba(0, 0, 0, .5)); }
.mk-gal-palco img.entra { animation: mk-entra .35s both; }
.mk-scan { position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(0deg, transparent 0 3px, color-mix(in srgb, var(--neon) 5%, transparent) 3px 4px); }
.mk-gal-seta { position: absolute; top: 50%; transform: translateY(-50%); width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--mk-borda); background: color-mix(in srgb, var(--bg) 65%, transparent);
  color: var(--texto); font-size: 22px; line-height: 1; cursor: pointer; z-index: 2; backdrop-filter: blur(4px); transition: background .2s, box-shadow .2s; }
.mk-gal-seta:hover { background: color-mix(in srgb, var(--neon) 25%, var(--bg)); box-shadow: 0 0 14px color-mix(in srgb, var(--neon) 50%, transparent); }
.mk-gal-seta.e { left: 8px; } .mk-gal-seta.d { right: 8px; }
.mk-gal-n { position: absolute; bottom: 8px; right: 10px; font: 600 11px var(--mk-mono); color: var(--texto-2); z-index: 2; }
.mk-gal-mini { display: flex; gap: 6px; margin-top: 8px; overflow-x: auto; padding-bottom: 4px; }
.mk-gal-mini button { flex: none; width: 58px; height: 44px; padding: 0; border-radius: 8px; border: 1px solid var(--linha); background: var(--bg-2); cursor: pointer; overflow: hidden; opacity: .6; transition: opacity .2s, border-color .2s; }
.mk-gal-mini button img { width: 100%; height: 100%; object-fit: cover; }
.mk-gal-mini button.ativo, .mk-gal-mini button:hover { opacity: 1; border-color: var(--neon); }
.mk-gal-vazia { aspect-ratio: 4 / 3; border-radius: 12px; border: 1px dashed var(--mk-borda); }
.mk-tela { position: fixed; inset: 0; z-index: 9999; background: rgba(2, 6, 10, .92); display: grid; place-items: center; animation: mk-entra .25s both; backdrop-filter: blur(6px); }
.mk-tela img { max-width: 92vw; max-height: 88vh; object-fit: contain; filter: drop-shadow(0 20px 50px rgba(0, 0, 0, .6)); }
.mk-tela .mk-gal-seta { width: 48px; height: 48px; font-size: 30px; } .mk-tela .mk-gal-seta.e { left: 20px; } .mk-tela .mk-gal-seta.d { right: 20px; }
.mk-tela-x { position: absolute; top: 16px; right: 18px; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .3); background: none; color: #fff; font-size: 18px; cursor: pointer; }
.mk-det-tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.mk-det-tags .mk-rar { margin: 0; }
.mk-chip { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; padding: 2px 9px; border-radius: 8px; background: var(--sutil-2); color: var(--texto-2); }
.mk-chip svg { width: 13px; height: 13px; } .mk-chip.mono { font-family: var(--mk-mono); }
.mk-det-sb { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 10px; padding: 8px 10px; border-radius: 10px; background: var(--laranja-bg); }
.mk-det-sb .btn { margin-left: auto; }
.mk-desc { color: var(--texto-2); font-size: 13px; line-height: 1.55; margin: 10px 0 6px; max-height: 150px; overflow: auto; }
.mk-det-ids { font-size: 12px; color: var(--texto-3); }
.mk-det-precos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.mk-det-precos .mk-pb { padding: 9px 11px; } .mk-det-precos .mk-pb b { font-size: 17px; }
.mk-pb.s b { color: var(--roxo); }
.mk-det-cmp { margin-top: 8px; font-size: 12.5px; color: var(--texto-2); }
.mk-sec { margin-top: 16px; }
.mk-sec h4 { display: flex; align-items: center; gap: 6px; }
.mk-sec h4 svg { width: 16px; height: 16px; color: var(--neon); }
.mk-per { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.mk-per h4 { margin: 0 10px 0 0; }
.mk-per button { border: 1px solid var(--linha); background: var(--sutil); border-radius: 9px; padding: 5px 11px; cursor: pointer; font: 600 11.5px var(--mk-mono); letter-spacing: .5px; color: var(--texto-2); transition: all .2s; }
.mk-per button:hover { color: var(--texto); border-color: var(--mk-borda); }
.mk-per button.ativo { color: var(--acento-tinta); background: var(--neon); border-color: var(--neon); box-shadow: 0 0 14px color-mix(in srgb, var(--neon) 55%, transparent); }
.mk-per .espaco { flex: 1; }
.mk-log-est { font-size: 11.5px; }
.mk-estat { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.mk-estat > div { padding: 8px 10px; border-radius: 10px; background: var(--sutil); border: 1px solid var(--linha); animation: mk-entra .4s both; animation-delay: calc(var(--d) * 50ms); min-width: 0; }
.mk-estat small { display: block; font: 600 9.5px var(--mk-mono); letter-spacing: 1.2px; text-transform: uppercase; color: var(--texto-3); }
.mk-estat b { display: block; font: 700 16px var(--mk-mono); font-variant-numeric: tabular-nums; margin: 2px 0; }
.mk-estat b small { display: inline; font-size: 11px; letter-spacing: 0; }
.mk-estat span { font-size: 11px; color: var(--texto-3); }
.mk-graf { position: relative; height: 320px; border-radius: 12px; padding: 8px 6px 0; background: linear-gradient(180deg, color-mix(in srgb, var(--neon) 5%, transparent), transparent 70%); }
.mk-graf .vazio { height: 100%; display: grid; place-items: center; }
.mk-log td { font-variant-numeric: tabular-nums; }
/* livro de ofertas com barra de profundidade */
.mk-livro tbody tr { background-repeat: no-repeat; background-size: var(--p) 100%; background-position: right; }
.mk-livro.v tbody tr { background-image: linear-gradient(90deg, transparent, color-mix(in srgb, var(--perigo) 16%, transparent)); }
.mk-livro.c tbody tr { background-image: linear-gradient(90deg, transparent, color-mix(in srgb, var(--ok) 16%, transparent)); }
.mk-livro.v td:first-child b { color: var(--perigo); } .mk-livro.c td:first-child b { color: var(--ok); }
tr.mk-atual td { background: color-mix(in srgb, var(--neon) 10%, transparent); }

@media (max-width: 1100px) { .mk-layout { grid-template-columns: 1fr; } .mk-lado { position: relative; top: 0; max-height: 420px; } .mk-det-topo { grid-template-columns: 1fr; } .mk-estat { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px) { .mk-kpis { grid-template-columns: repeat(2, 1fr); } .mk-det-precos { grid-template-columns: repeat(2, 1fr); } .mk-estat { grid-template-columns: repeat(2, 1fr); } .mk-hero h1 { font-size: 26px; } }
@media (prefers-reduced-motion: reduce) {
  .mk-hero-grade, .mk-hero::after, .mk-ticker-trilho, .mk-led, .mk-card, .mk-cat, .mk-kpi, .mk-estat > div { animation: none !important; }
  .mk-ac-corpo, .mk-chev, .mk-card, .mk-card-img img { transition: none; }
}

/* Administração › Usuários: cargos do Discord (dar/tirar) */
.cargos-cel { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.cargo-chip { display: inline-flex; align-items: center; gap: 5px; padding: 2px 4px 2px 8px; border-radius: 999px; font-size: 12px; white-space: nowrap;
  background: color-mix(in srgb, var(--cor) 16%, transparent); border: 1px solid color-mix(in srgb, var(--cor) 45%, transparent); color: var(--texto-2); }
.cargo-chip::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--cor); }
.cargo-chip:not(:has(button)) { padding-right: 8px; }
.cargo-chip button { border: 0; background: none; color: inherit; cursor: pointer; font-size: 14px; line-height: 1; padding: 0 3px; border-radius: 50%; opacity: .6; }
.cargo-chip button:hover { opacity: 1; background: rgba(230,103,103,.25); color: #e66767; }
.cargo-chip button:disabled { opacity: .3; cursor: wait; }
.campo.cargo-add { padding: 2px 6px; font-size: 12px; height: auto; min-width: 0; width: auto; }

/* Administração › Usuários › janela de carteiras */
.campo[hidden] { display: none; }
.modal-cab h3 > svg { width: 18px; height: 18px; vertical-align: -3px; margin-right: 6px; flex: none; }
.cw-modal .tabela td { vertical-align: top; white-space: normal; }
.cw-modal .cw-end { display: block; margin-top: 3px; word-break: break-all; cursor: pointer; }
.cw-modal .cw-perfil + .cw-perfil { margin-top: 10px; }
.cw-modal .cw-perfil a { font-weight: 600; }

/* ---------------- modos do dono ("Usar wallets de" / "Entrar como") ---------------- */
.faixa-modo { display: flex; align-items: center; gap: 10px; margin: 12px 22px 0; padding: 8px 10px 8px 14px; border-radius: var(--raio-p);
  background: var(--info-bg); color: var(--info); border: 1px solid rgba(121, 168, 240, .35); font-size: 13px; }
.faixa-modo.como { background: var(--aviso-bg); color: var(--aviso); border-color: rgba(231, 199, 106, .4); }
.faixa-modo svg { width: 18px; height: 18px; flex: none; }
.faixa-modo span { flex: 1; color: var(--texto); }
.faixa-modo b { color: inherit; }
.faixa-modo.como b, .faixa-modo:not(.como) b { color: var(--texto); font-weight: 700; }
.modo-botoes { display: flex; flex-wrap: wrap; gap: 8px; }
.lista-usuarios-dono { display: flex; flex-direction: column; gap: 4px; max-height: 55vh; overflow: auto; min-height: 60px; }
.usuario-dono { display: flex; align-items: center; gap: 10px; width: 100%; padding: 7px 9px; border-radius: 10px; border: 1px solid transparent;
  background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.usuario-dono:hover:not(:disabled) { background: var(--sutil-2); border-color: var(--linha-forte); }
.usuario-dono img { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; flex: none; }
.usuario-dono span:not(.selo) { flex: 1; min-width: 0; }
.usuario-dono b { display: block; font-size: 13.5px; }
.usuario-dono small { color: var(--texto-3); font-size: 12px; }
.usuario-dono.desativado { opacity: .45; cursor: not-allowed; }
@media (max-width: 760px) { .faixa-modo { margin: 10px 12px 0; flex-wrap: wrap; } }

/* mapa de calor: célula que abre os detentores da starbase */
.calor td.c[data-recurso] { cursor: pointer; }
.calor td.c[data-recurso]:hover { outline: 2px solid var(--acento); outline-offset: -2px; }

/* ================================================================ FIC (assets/fic.js) — 31/10/2026 */
.fic-cab { align-items: center; gap: 14px; flex-wrap: wrap; }
.fic-sec { display: flex; align-items: center; gap: 8px; margin: 22px 0 10px; font-size: 15px; font-weight: 600; }
.fic-sec .contador { font-size: 11px; font-weight: 700; padding: 2px 7px; border-radius: 999px; background: var(--acento); color: var(--acento-tinta); }
.fic-tipo { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 600; padding: 2px 9px; border-radius: 999px; white-space: nowrap;
  color: var(--texto); background: color-mix(in srgb, var(--c) 18%, transparent); border: 1px solid color-mix(in srgb, var(--c) 45%, transparent); }
.fic-tipo::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--c); }
.fic-legenda { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.fic-ordens { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.fic-ordem { display: block; color: inherit; text-decoration: none; border-top: 3px solid var(--c); overflow: hidden; }
.fic-ordem::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(120% 70% at 100% 0, color-mix(in srgb, var(--c) 14%, transparent), transparent 60%); }
.fic-ordem-topo { display: flex; align-items: center; gap: 10px; }
.fic-ordem-topo .espaco { flex: 1; }
.fic-barra { height: 8px; border-radius: 99px; background: var(--sutil-3, rgba(140,190,235,.12)); margin: 12px 0 10px; overflow: hidden; }
.fic-barra i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, color-mix(in srgb, var(--c) 60%, transparent), var(--c)); box-shadow: 0 0 10px color-mix(in srgb, var(--c) 60%, transparent); transition: width .6s; }
.fic-ordem-num { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.fic-ordem-num div { display: flex; flex-direction: column; min-width: 0; }
.fic-ordem-num small { font-size: 11px; color: var(--texto-3); }
.fic-ordem-num b { font-size: 17px; letter-spacing: -.3px; white-space: nowrap; }
.fic-ordem-rod { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: 10px; padding-top: 9px; border-top: 1px dashed var(--linha); font-size: 12px; color: var(--texto-2); }
.fic-tipos-lista { display: flex; flex-direction: column; gap: 10px; }
.fic-tipo-linha { display: flex; align-items: center; gap: 6px; padding: 8px 10px; border-radius: 12px; background: var(--card-2); }
.fic-tipo-linha .espaco { flex: 1; }
.fic-tipo-linha .num { text-align: right; font-size: 12.5px; }
/* radar */
.fic-radar { width: 100%; max-height: 520px; aspect-ratio: 1; display: block; background: radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--acento) 8%, transparent), transparent 70%); border-radius: 14px; }
.fic-radar .fic-grade { stroke: var(--linha); stroke-width: .12; }
.fic-radar .fic-eixo { stroke: var(--linha-forte); stroke-width: .15; stroke-dasharray: 1 1; }
.fic-radar text { font-size: 2.3px; fill: var(--texto); paint-order: stroke; stroke: var(--card); stroke-width: .5px; pointer-events: none; }
.fic-radar .fic-sb { cursor: pointer; }
.fic-radar .fic-anel { fill: color-mix(in srgb, var(--c) 18%, transparent); stroke: var(--c); stroke-width: .35; animation: fic-pulso 2.6s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes fic-pulso { 0%, 100% { opacity: .95; transform: scale(1); } 50% { opacity: .55; transform: scale(1.12); } }
.fic-radar .fic-fl { cursor: pointer; }
.fic-radar .fic-fl line { stroke: var(--c); stroke-width: .28; stroke-dasharray: 1.2 .8; opacity: .75; animation: fic-traco 1.5s linear infinite; }
.fic-radar .fic-fl circle { fill: var(--c); stroke: var(--card); stroke-width: .25; }
.fic-radar .fic-fl.minha line { stroke-width: .5; opacity: 1; }
.fic-radar .fic-fl.minha circle { r: 1.3; stroke: #fff; }
@keyframes fic-traco { to { stroke-dashoffset: -2; } }
/* tabela de calor starbase × tipo */
.fic-calor th { font-size: 11px; line-height: 1.25; vertical-align: bottom; }
.fic-calor th .ico-rec { margin: 0 0 4px; }
.fic-cel { text-align: center; font-variant-numeric: tabular-nums; font-size: 12px; background: color-mix(in srgb, var(--acento) calc(var(--a, 0) * 42%), transparent); }
.fic-cel.nada { color: var(--texto-3); background: none; }
.fic-cel.aberta { cursor: pointer; background: color-mix(in srgb, var(--c) calc(var(--a) * 55%), transparent); box-shadow: inset 0 0 0 2px var(--c); border-radius: 8px; }
.fic-cel.aberta b { display: block; font-size: 13px; }
.fic-cel small { display: block; color: var(--texto-2); font-size: 10.5px; }
.fic-calor tr.tem-ordem td:first-child { box-shadow: inset 3px 0 0 var(--ok); }
/* frotas */
.tabela tr.fic-minha td { background: color-mix(in srgb, var(--acento) 7%, transparent); }
.fic-ruim { color: var(--perigo); }
/* planejador */
.fic-plano-campos { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; margin-top: 8px; }
.fic-plano-campos label { display: flex; flex-direction: column; gap: 5px; font-size: 12px; color: var(--texto-3); }
.fic-plano-campos .campo, .fic-plano-campos .picker { width: 100%; }
.fic-plano-campos .picker .busca-resultados { top: 40px; }
.fic-corrida { position: relative; height: 12px; border-radius: 99px; background: var(--sutil-3, rgba(140,190,235,.12)); overflow: hidden; margin-bottom: 3px; }
.fic-corrida i { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 99px; }
.fic-corrida i.agora { right: 0; background: color-mix(in srgb, var(--acento) 22%, transparent); }
.fic-corrida i.medio { background: color-mix(in srgb, var(--acento) 70%, transparent); }
.fic-corrida i.pess { background: repeating-linear-gradient(45deg, var(--perigo) 0 3px, transparent 3px 6px); opacity: .7; }
.fic-corrida b { position: absolute; top: -1px; bottom: -1px; width: 3px; margin-left: -1px; background: var(--texto); border-radius: 2px; box-shadow: 0 0 4px var(--card); }
/* mapas de calor */
.fic-hm { display: grid; gap: 2px; align-items: center; }
.fic-hm i { display: block; aspect-ratio: 1; min-height: 9px; border-radius: 3px; background: color-mix(in srgb, var(--acento) calc(var(--a) * 100%), var(--card-2)); transition: transform .1s; }
.fic-hm i:hover { transform: scale(1.35); box-shadow: 0 0 0 1px var(--texto); position: relative; z-index: 1; }
.fic-hm.sb i { aspect-ratio: auto; height: 14px; }
.fic-hm .eixo { font-size: 10px; color: var(--texto-3); white-space: nowrap; overflow: visible; }
.fic-hm .eixo.y { text-align: right; padding-right: 6px; font-size: 11px; overflow: hidden; text-overflow: ellipsis; }
.fic-hm-leg { display: flex; align-items: center; gap: 4px; margin-top: 10px; font-size: 11px; color: var(--texto-3); }
.fic-hm-leg i { width: 14px; height: 14px; border-radius: 3px; background: color-mix(in srgb, var(--acento) calc(var(--a) * 100%), var(--card-2)); }
.fic-hscroll { overflow-x: auto; }
.fic-hscroll > .fic-hm.sb { min-width: 640px; }
.fic-gantt { min-width: 640px; }
.fic-gantt .eixo-x { position: relative; height: 18px; margin-left: 90px; border-bottom: 1px solid var(--linha); }
.fic-gantt .eixo-x span { position: absolute; font-size: 10px; color: var(--texto-3); transform: translateX(-50%); }
.fic-gantt .linha { display: flex; align-items: center; height: 20px; }
.fic-gantt .nome { width: 90px; flex: none; font-size: 11px; text-align: right; padding-right: 8px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fic-gantt .trilho { position: relative; flex: 1; height: 12px; background: repeating-linear-gradient(90deg, transparent 0 calc(100% / 12 - 1px), var(--linha) calc(100% / 12 - 1px) calc(100% / 12)); border-radius: 3px; }
.fic-gantt .trilho i { position: absolute; top: 1px; bottom: 1px; min-width: 3px; border-radius: 3px; background: var(--c); box-shadow: 0 0 6px color-mix(in srgb, var(--c) 50%, transparent); }
.fic-gantt .trilho i:hover { outline: 1px solid var(--texto); z-index: 1; }
/* receitas */
.fic-receitas { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 14px; }
.fic-rec { border-top: 3px solid var(--c); }
.fic-rec .tabela.compacta { margin-top: 10px; }
.tabela.compacta td { padding: 5px 6px; font-size: 12.5px; }
.tabela.compacta tr.total td { border-top: 1px solid var(--linha-forte); }
.fic-margem { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 10px; padding: 10px; border-radius: 12px; background: var(--card-2); }
.fic-margem div { display: flex; flex-direction: column; min-width: 0; }
.fic-margem small { font-size: 11px; color: var(--texto-3); }
.fic-margem b { font-size: 15px; }
.fic-margem.bom > div:first-child b { color: var(--ok); }
.fic-margem.ruim > div:first-child b { color: var(--perigo); }
.fic-ajuda { margin: 6px 0 0; padding-left: 18px; display: flex; flex-direction: column; gap: 8px; font-size: 13px; line-height: 1.5; color: var(--texto-2); }
.fic-ajuda b { color: var(--texto); }
@media (max-width: 760px) { .fic-ordem-num, .fic-margem { grid-template-columns: 1fr 1fr; } .fic-ordens, .fic-receitas { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .fic-radar .fic-anel, .fic-radar .fic-fl line { animation: none; } }
.fic-margem b, .fic-ordem-num b { overflow: hidden; text-overflow: ellipsis; }
.fic-faixas tr.ativa td { background: color-mix(in srgb, var(--acento) 14%, transparent); }
.fic-faixas tr.ativa td:first-child { box-shadow: inset 3px 0 0 var(--acento); }

/* ---------- Sis-Bot › Frotas no jogo (1.2.6): criar, adicionar naves, desfazer ---------- */
.gf-modal .modal-corpo { display: grid; gap: 10px; }
.gf-topo { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.gf-topo #gf-lidas { font-size: 12px; }
.gf-grade { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; align-items: start; }
.gf-esq { display: grid; gap: 12px; min-width: 0; }
.gf-dir { display: grid; gap: 12px; position: sticky; top: 0; }
.gf-campos { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(220px, 1.3fr) minmax(180px, 1fr); gap: 12px; }
.gf-campos label, .gf-sel-frota, .gf-modelo { display: grid; gap: 4px; font-size: 12px; color: var(--texto-2); }
.gf-campos label > span, .gf-sel-frota > span, .gf-modelo > span { display: flex; justify-content: space-between; gap: 8px; }
.gf-sel-frota { max-width: 520px; }
.gf-nome { display: flex; gap: 6px; }
.gf-nome .campo { flex: 1; min-width: 0; }
.gf-ruim { color: var(--perigo); }
.gf-tab-rol { overflow: auto; max-height: min(52vh, 560px); border-radius: var(--raio-p); }
.gf-tab td { vertical-align: middle; }
.gf-tab tr.gf-sel td { background: color-mix(in srgb, var(--acento) 10%, transparent); }
.gf-tab tr.gf-sel td:first-child { box-shadow: inset 3px 0 0 var(--acento); }
.gf-qtd { display: inline-flex; align-items: center; gap: 4px; }
.gf-qtd .campo { width: 76px; text-align: right; padding: 4px 6px; }
.gf-qtd button { min-width: 26px; height: 28px; border-radius: 8px; border: 1px solid var(--linha-forte); background: var(--sutil); color: var(--texto); cursor: pointer; font: inherit; }
.gf-qtd button:hover { border-color: var(--acento); }
.gf-qtd .gf-max { font-size: 11px; padding: 0 6px; color: var(--texto-2); }
.gf-previa { display: grid; gap: 8px; padding: 12px; border-radius: var(--raio-p); border: 1px solid var(--linha-forte); background: var(--card); }
.gf-previa.passou { border-color: color-mix(in srgb, var(--perigo) 55%, transparent); }
.gf-previa.passou .bf-medidor i { background: var(--perigo); }
.gf-pv-cab { display: flex; justify-content: space-between; align-items: baseline; font-size: 12px; color: var(--texto-2); }
.gf-pv-cab b { font-size: 18px; color: var(--texto); }
.gf-pv-tam { display: grid; gap: 4px; }
.gf-pv-crew { display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; padding: 8px 10px; border-radius: 10px; background: var(--ok-bg); font-size: 12px; }
.gf-pv-crew b { font-size: 15px; }
.gf-pv-crew small { grid-column: 1 / -1; color: var(--texto-2); }
.gf-pv-crew.falta { background: var(--perigo-bg); }
.gf-pv-crew.falta small { color: var(--perigo); }
.gf-pv-l { display: flex; justify-content: space-between; gap: 10px; font-size: 12px; color: var(--texto-2); border-top: 1px dashed var(--linha); padding-top: 6px; }
.gf-pv-l b { color: var(--texto); font-variant-numeric: tabular-nums; text-align: right; }
.gf-opcoes { display: grid; gap: 8px; font-size: 13px; }
.gf-opcoes > label { display: flex; gap: 8px; align-items: flex-start; }
.gf-opcoes > label.gf-modelo { display: grid; }
.gf-confirma { padding: 8px 10px; border-radius: 10px; background: var(--perigo-bg); }
.gf-acao { justify-content: center; width: 100%; }
.gf-frota { display: grid; gap: 6px; padding: 12px; border-radius: var(--raio-p); border: 1px solid var(--linha-forte); background: var(--card); }
.gf-frota.ruim { border-color: color-mix(in srgb, var(--aviso) 50%, transparent); }
.gf-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.gf-chip { display: inline-flex; align-items: center; gap: 6px; padding: 3px 8px 3px 3px; border-radius: 999px; background: var(--sutil-2); font-size: 12px; }
.gf-chip img { width: 22px; height: 22px; border-radius: 50%; object-fit: cover; background: var(--card-2); }
.gf-chip b { color: var(--acento-forte); }
.gf-desfazer-info ul { margin: 6px 0 0; padding-left: 18px; color: var(--texto-2); font-size: 13px; display: grid; gap: 4px; }
.gf-hangar { display: grid; gap: 10px; }
.gf-hg { display: grid; gap: 8px; padding: 12px; border-radius: var(--raio-p); border: 1px solid var(--linha); background: var(--card); }
.gf-hg.carteira { border-style: dashed; }
.gf-hg-cab { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.gf-ped .gf-resp { max-width: 520px; font-size: 12px; color: var(--texto-2); }
.bf-ctl .btn.gf-desfazer { color: var(--perigo); }
@media (max-width: 900px) { .gf-grade { grid-template-columns: 1fr; } .gf-dir { position: static; } .gf-campos { grid-template-columns: 1fr; } }
.gf-topo .seg { flex-wrap: wrap; max-width: 100%; }
/* FIC — concorrentes, sugestões e calculadora de lotes (01/11/2026) */
.fic-conc td { vertical-align: middle; }
.fic-frotas-sel { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px; }
.fic-fsel { display: flex; flex-direction: column; gap: 2px; padding: 9px 12px 9px 34px; border: 1px solid var(--linha); border-radius: 12px; cursor: pointer; position: relative; background: var(--card-2); transition: .15s; }
.fic-fsel input { position: absolute; left: 11px; top: 12px; accent-color: var(--acento); }
.fic-fsel small { color: var(--texto-3); font-size: 11.5px; }
.fic-fsel.on { border-color: var(--acento); box-shadow: inset 0 0 0 1px var(--acento); background: color-mix(in srgb, var(--acento) 10%, var(--card-2)); }
.fic-inst { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
.fic-inst-card { border: 1px solid var(--linha); border-top: 3px solid var(--c); border-radius: 14px; padding: 12px; background: var(--card-2); }
.fic-inst-op { display: flex; justify-content: space-between; gap: 10px; padding: 8px 10px; border-radius: 10px; margin-top: 8px; background: var(--card); }
.fic-inst-op.melhor { box-shadow: inset 3px 0 0 var(--ok); }
.fic-inst-op .num { text-align: right; font-size: 12.5px; }
.fic-mov { margin: 6px 0 0; padding-left: 18px; font-size: 12px; color: var(--texto-2); display: flex; flex-direction: column; gap: 2px; }
.tabela tr.fic-det > td { background: var(--card-2); padding: 12px; }
.fic-lotes { display: flex; flex-direction: column; gap: 14px; margin-top: 12px; }
.fic-lote { border-left: 3px solid var(--c); }
.fic-lote .cartao-topo { flex-wrap: wrap; }
.fic-nome { font-weight: 600; min-width: 200px; }
.fic-trans { align-self: end; font-size: 12.5px; color: var(--texto-2); line-height: 1.5; }
.fic-resultado { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-top: 12px; padding: 12px; border-radius: 12px; background: var(--card-2); }
.fic-resultado div { display: flex; flex-direction: column; min-width: 0; }
.fic-resultado small { font-size: 11px; color: var(--texto-3); }
.fic-resultado small.fraco { font-size: 11px; }
.fic-resultado b { font-size: 16px; overflow: hidden; text-overflow: ellipsis; }
.fic-resultado .lucro { padding-left: 10px; border-left: 1px solid var(--linha-forte); }
.fic-resultado.bom .lucro b { color: var(--ok); }
.fic-resultado.ruim .lucro b { color: var(--perigo); }
.campo.pequeno { padding: 5px 8px; font-size: 12.5px; }
@media (max-width: 1000px) { .fic-resultado { grid-template-columns: 1fr 1fr; } }

/* Relatório de SDU externo (todas as frotas do jogador, da blockchain) — Sis-Bot */
.rs { display: flex; flex-direction: column; gap: 10px; }
.rs-cab { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px 12px; line-height: 1.45; }
.rs-cab > div:first-child { flex: 1 1 320px; min-width: 0; }
.rs-filtros { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.rs-filtros .seg { max-width: 100%; overflow-x: auto; }
.rs-graf { position: relative; height: 210px; }
.rs-cor { display: inline-block; width: 9px; height: 9px; border-radius: 3px; margin-right: 6px; vertical-align: 0; flex: none; }
.rs .tabela tr.rs-total td { border-top: 2px solid var(--linha-forte); background: var(--sutil); }
.rs .tabela tr.rs-esta td { background: color-mix(in srgb, var(--acento) 7%, transparent); }
.rs-dfr { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 12px; }
.rs-dfr span { white-space: nowrap; }
#bf-relsdu-corpo { padding: 2px 12px 12px; }

/* Mapa da viagem: zoom e mover; textos e traços com o mesmo tamanho na tela em qualquer zoom (--fz); outras frotas de scan */
.mr-tela { position: relative; }
.mr-svg { touch-action: none; cursor: grab; user-select: none; -webkit-user-select: none; }
.arrastando .mr-svg { cursor: grabbing; }
.mr-ctl { position: absolute; top: 6px; right: 6px; display: flex; flex-direction: column; gap: 4px; }
.mr-ctl button { width: 28px; height: 28px; padding: 0; border-radius: 8px; border: 1px solid var(--linha-forte); background: var(--card); color: var(--texto); font-size: 16px; line-height: 1; cursor: pointer; box-shadow: 0 1px 3px rgba(0, 0, 0, .18); }
.mr-ctl button:hover:not(:disabled) { background: var(--card-2); }
.mr-ctl button:disabled { opacity: .4; cursor: default; }
.mr-eixo { font-size: calc(10px * var(--fz, 1)); paint-order: stroke; stroke: var(--bg); stroke-width: calc(3px * var(--fz, 1)); }
.mr-rot { font-size: calc(10.5px * var(--fz, 1)); stroke-width: calc(3px * var(--fz, 1)); }
.mr-pct { font-size: calc(9.5px * var(--fz, 1)); }
.mr-eta-txt { font-size: calc(11px * var(--fz, 1)); }
.mr-cel { stroke-width: calc(1px * var(--fz, 1)); }
.mr-area { stroke-width: calc(1.5px * var(--fz, 1)); stroke-dasharray: calc(3px * var(--fz, 1)) calc(4px * var(--fz, 1)); }
.mr-rota { stroke-width: calc(2.4px * var(--fz, 1)); stroke-dasharray: calc(6px * var(--fz, 1)) calc(5px * var(--fz, 1)); }
.mr-rota.feito { stroke-dasharray: none; }
.mr-rota.agora { stroke-width: calc(3.2px * var(--fz, 1)); }
.mr-rota.outra { stroke: var(--roxo); opacity: .65; animation: none; stroke-width: calc(1.6px * var(--fz, 1)); stroke-dasharray: calc(4px * var(--fz, 1)) calc(4px * var(--fz, 1)); }
.mr-outra { cursor: pointer; }
.mr-outra-halo { fill: color-mix(in srgb, var(--roxo) 16%, transparent); stroke: var(--roxo); stroke-width: calc(1.2px * var(--fz, 1)); stroke-dasharray: calc(3px * var(--fz, 1)) calc(3px * var(--fz, 1)); }
.mr-outra:hover .mr-outra-halo { fill: color-mix(in srgb, var(--roxo) 30%, transparent); }
.mr-outra-seta { fill: var(--roxo); stroke: var(--bg); stroke-width: calc(1.2px * var(--fz, 1)); }
.mr-rot.mr-outra-nome { fill: var(--roxo); font-weight: 600; }
.mr-outra-s rect { fill: var(--card-2); stroke: var(--roxo); stroke-width: calc(2px * var(--fz, 1)); }
.mr-outra-s .mr-rot { fill: var(--roxo); font-weight: 700; }
.mr-sb.base.outra circle { stroke: var(--roxo); stroke-width: calc(2.5px * var(--fz, 1)); }
.mr-rot.mr-esta { fill: var(--ciano); stroke: var(--bg); stroke-width: calc(3px * var(--fz, 1)); paint-order: stroke; }
.mr-l.outra { border-top-color: var(--roxo); }
.mr-faixa { fill: var(--bg); fill-opacity: .8; pointer-events: none; }
.mr-eixo.y { text-anchor: start; }
/* FIC — 01/11/2026 (tarde): quadro da facção, frete em viagem */
.fic-resfac + .fic-resfac { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--linha); }
.fic-resfac h4 { display: flex; align-items: center; gap: 8px; }
.fic-itens { display: flex; flex-wrap: wrap; gap: 4px 6px; }
.fic-item { display: inline-flex; align-items: center; gap: 2px; font-size: 12px; padding: 2px 8px 2px 3px; border-radius: 999px; background: var(--card-2); border: 1px solid var(--linha); white-space: nowrap; }
.fic-item .ico-rec { width: 16px; height: 16px; margin-right: 4px; }
.fic-item.fic { border-color: var(--ok); }
.btn.girando svg { animation: fic-gira 1s linear infinite; }
@keyframes fic-gira { to { transform: rotate(360deg); } }
/* Claim Stakes — coleta pelo Sis-Bot (Coletar Agora + coleta automática a X%) */
.cs-coleta { display: grid; grid-template-columns: minmax(200px, 260px) 1fr; gap: 18px 26px; align-items: start; margin-bottom: 16px; border-left: 3px solid var(--linha-forte); }
.cs-coleta.ligado { border-left-color: var(--ok); }
.cs-co-acao { display: grid; gap: 8px; align-content: start; }
.cs-co-acao .rot { font-size: 12px; color: var(--texto-3); text-transform: uppercase; letter-spacing: .05em; }
.cs-co-acao .btn { justify-content: center; padding: 10px 16px; font-size: 14.5px; }
.cs-co-acao .det { font-size: 12.5px; color: var(--texto-2); }
.cs-co-status { font-size: 12.5px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.cs-co-resp { flex-basis: 100%; color: var(--texto-2); font-variant-numeric: tabular-nums; }
.cs-co-rodando { width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--acento); border-top-color: transparent; animation: cs-co-gira .8s linear infinite; }
@keyframes cs-co-gira { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .cs-co-rodando { animation: none; } }
.cs-al-nivel.auto .cs-al-ponto { background: var(--ok); } .cs-al-nivel.auto input[type=range] { accent-color: var(--ok); }
.cs-coleta:not(.ligado) .cs-al-niveis { opacity: .55; }
.cs-co-lista { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; }
.cs-co-item { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: var(--sutil); border: 1px solid var(--linha); font-size: 12.5px; }
.cs-co-item.nao { opacity: .65; }
.cs-co-pct { font-weight: 700; font-variant-numeric: tabular-nums; }
@media (max-width: 760px) { .cs-coleta { grid-template-columns: 1fr; } }
.cs-co-acao .btn:disabled { opacity: .45; cursor: not-allowed; filter: saturate(.4); }

/* Minha página — módulos de FIC (01/11/2026) */
.mpg-fic8 { display: grid; grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); gap: 8px; align-content: start; }
@container (max-width: 520px) { .mpg-fic8 { grid-template-columns: 1fr 1fr; } }
@container (max-width: 300px) { .mpg-fic8 { grid-template-columns: 1fr; } }
.mpg-fic8-c { display: flex; flex-direction: column; gap: 6px; padding: 9px 10px; border-radius: 12px; color: inherit; text-decoration: none; border: 1px solid var(--linha); border-top: 3px solid var(--c);
  background: color-mix(in srgb, var(--c) calc(var(--a, 0) * 38%), var(--card-2)); transition: .15s; min-width: 0; }
.mpg-fic8-c:hover { border-color: var(--c); }
.mpg-fic8-c.fora { opacity: .45; }
.mpg-fic8-t { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 13px; }
.mpg-fic8-t .ico-rec { margin-right: 0; }
.mpg-fic8-n { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 8px; }
.mpg-fic8-n span { display: flex; flex-direction: column; min-width: 0; }
.mpg-fic8-n small, .mpg-fic8-r small { font-size: 10.5px; color: var(--texto-3); }
.mpg-fic8-n b { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mpg-fic8-r { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.mpg-fic-barra { display: block; height: 5px; border-radius: 99px; background: var(--sutil-3, rgba(140,190,235,.12)); margin: 4px 0 2px; overflow: hidden; }
.mpg-fic-barra i { display: block; height: 100%; border-radius: 99px; background: var(--c, var(--acento)); }
.mpg-fic-tag { display: inline-block; font-size: 10.5px; font-weight: 600; padding: 1px 7px; border-radius: 99px; color: var(--texto); background: color-mix(in srgb, var(--c) 20%, transparent); border: 1px solid color-mix(in srgb, var(--c) 45%, transparent); white-space: nowrap; }
.mpg-fic-ordem .num { text-align: right; white-space: nowrap; }

/* ---- Mercado: vendas do Admin (KPI do topo, aba do relatório) e compras dos membros no detalhe do item — 01/11/2026 */
.mk-kpis { grid-template-columns: repeat(5, minmax(120px, 1fr)); max-width: 960px; }
.mk-kpi-adm { color: inherit; text-decoration: none; cursor: pointer; position: relative; overflow: hidden; border-color: color-mix(in srgb, var(--neon) 45%, var(--mk-borda)); transition: transform .2s, box-shadow .2s, border-color .2s; }
.mk-kpi-adm::after { content: ''; position: absolute; inset: 0; background: linear-gradient(120deg, transparent 30%, color-mix(in srgb, var(--neon) 18%, transparent) 50%, transparent 70%); transform: translateX(-100%); animation: mk-adm-brilho 6s ease-in-out infinite; pointer-events: none; }
.mk-kpi-adm:hover { transform: translateY(-2px); border-color: var(--neon); box-shadow: 0 0 18px color-mix(in srgb, var(--neon) 35%, transparent); }
.mk-kpi-adm small .mk-led { margin-right: 5px; vertical-align: 1px; }
.mk-kpi-adm em { font-style: normal; }
@keyframes mk-adm-brilho { 0%, 60% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }
.mk-adm-topo { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.mk-adm-topo .mk-per { margin: 0; }
.mk-adm-id { display: flex; align-items: center; gap: 12px; min-width: 0; }
.mk-adm-id .fraco { font-size: 12px; margin-top: 3px; }
.mk-adm-av { flex: none; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; color: var(--neon); background: color-mix(in srgb, var(--neon) 12%, transparent); border: 1px solid color-mix(in srgb, var(--neon) 40%, transparent); box-shadow: 0 0 16px color-mix(in srgb, var(--neon) 25%, transparent); }
.mk-adm-av svg { width: 22px; height: 22px; }
.mk-adm-quadro tr.mk-atual td { background: color-mix(in srgb, var(--neon) 10%, transparent); }
.mk-adm-mb { padding: 8px 10px; margin-bottom: 8px; border-radius: 10px; background: var(--ok-bg); font-size: 12.5px; }
.mk-membro { font-size: 10px; padding: 1px 6px; margin-left: 4px; vertical-align: 1px; }
.mk-membros .cartao-topo { flex-wrap: wrap; gap: 6px; }
.mk-so-atlas { display: inline-block; margin-left: 10px; font-size: 11.5px; vertical-align: middle; }
@media (max-width: 1100px) { .mk-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: none; } }
@media (max-width: 700px) { .mk-kpis { grid-template-columns: repeat(2, 1fr); } .mk-adm-topo { flex-direction: column; align-items: flex-start; } }
@media (prefers-reduced-motion: reduce) { .mk-kpi-adm::after { animation: none; } }

/* ---- Mercado: alertas de preço no Discord — 01/11/2026 */
.mk-al-topo { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.mk-al-topo .mk-adm-id { flex: 1 1 520px; }
.mk-al-acoes { display: flex; gap: 8px; flex-wrap: wrap; }
.mk-al-tab td { vertical-align: middle; }
.mk-al-sub { font-size: 11.5px; margin-top: 2px; }
.mk-al-off td { opacity: .55; }
.mk-al-off td.mk-al-bts { opacity: 1; }
.mk-al-bts { white-space: nowrap; text-align: right; }
.mk-al-bts .icone-btn { width: 30px; height: 30px; vertical-align: middle; }
.mk-al-bts .icone-btn.perigo { color: var(--perigo); border-color: var(--perigo); }
.mk-al-pulsa { animation: mk-al-pulsa 1.6s ease-in-out infinite; }
@keyframes mk-al-pulsa { 50% { box-shadow: 0 0 0 4px color-mix(in srgb, var(--ok) 25%, transparent); } }
.mk-al-chave { position: relative; display: inline-block; width: 34px; height: 19px; vertical-align: middle; margin-right: 6px; cursor: pointer; }
.mk-al-chave input { position: absolute; opacity: 0; width: 0; height: 0; }
.mk-al-chave i { position: absolute; inset: 0; border-radius: 20px; background: var(--sutil); border: 1px solid var(--linha-forte); transition: background .2s, border-color .2s; }
.mk-al-chave i::after { content: ''; position: absolute; top: 2px; left: 2px; width: 13px; height: 13px; border-radius: 50%; background: var(--texto-3); transition: transform .2s, background .2s; }
.mk-al-chave input:checked + i { background: color-mix(in srgb, var(--ok) 30%, transparent); border-color: var(--ok); }
.mk-al-chave input:checked + i::after { transform: translateX(15px); background: var(--ok); }
.mk-al-chave input:focus-visible + i { outline: 2px solid var(--acento); outline-offset: 2px; }
.mk-al-avisos { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 6px; }
.mk-al-avisos li { display: grid; grid-template-columns: auto auto 1fr; gap: 10px; align-items: center; padding: 7px 10px; border-radius: 9px; background: var(--sutil); font-size: 12.5px; }
.mk-al-avisos li > div { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mk-btn-alerta { margin-left: 10px; vertical-align: middle; }
.mk-btn-alerta svg { width: 14px; height: 14px; }
.mk-al-form .form-linha { margin-bottom: 12px; }
.mk-al-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border-radius: 10px; border: 1px dashed var(--linha-forte); margin-bottom: 6px; min-height: 44px; }
.mk-al-busca { position: relative; }
.mk-al-res { position: absolute; z-index: 5; left: 0; right: 0; top: calc(100% + 4px); max-height: 300px; overflow: auto; background: var(--card); border: 1px solid var(--linha-forte); border-radius: 10px; box-shadow: 0 12px 30px rgba(0, 0, 0, .35); }
.mk-al-res:empty { display: none; }
.mk-al-res button { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; width: 100%; text-align: left; padding: 7px 10px; border: 0; border-bottom: 1px solid var(--linha); background: transparent; color: inherit; cursor: pointer; font: inherit; }
.mk-al-res button:hover, .mk-al-res button:focus-visible { background: var(--sutil); }
.mk-al-res button span { display: flex; flex-direction: column; min-width: 0; }
.mk-al-res button small { font-size: 11px; text-align: right; }
.mk-al-dica { font-size: 12px; margin-top: 4px; }
@media (prefers-reduced-motion: reduce) { .mk-al-pulsa { animation: none; } }
.mk-al-bts > div { display: inline-flex; align-items: center; gap: 4px; }
.mk-kpi-adm small { white-space: nowrap; }
.mk-al-busca .campo { width: 100%; box-sizing: border-box; }
.mk-al-form .seg { display: inline-flex; width: auto; }
/* 01/11/2026 — grupo recolhido dos itens parados; categoria na busca do alerta; ícones nunca gigantes nos vazios */
.mk-parados { margin: 14px 0 6px; }
.mk-parados > summary { cursor: pointer; font: 600 11.5px var(--mk-mono); letter-spacing: .8px; text-transform: uppercase; color: var(--texto-3); padding: 8px 2px; list-style: none; }
.mk-parados > summary::-webkit-details-marker { display: none; }
.mk-parados > summary::before { content: '▸'; display: inline-block; margin-right: 8px; transition: transform .2s; }
.mk-parados[open] > summary::before { transform: rotate(90deg); }
.mk-parados > summary:hover { color: var(--texto-2); }
.mk-parados .mk-card { opacity: .7; }
.mk-al-busca-l { display: grid; grid-template-columns: minmax(150px, 220px) 1fr; gap: 8px; }
@media (max-width: 560px) { .mk-al-busca-l { grid-template-columns: 1fr; } }
.vazio svg, .mk-al-sub svg { width: 14px; height: 14px; vertical-align: -2px; }

/* Lentidão da rede (02/11/2026): faixa da calculadora, cartão da Visão geral e módulo da Minha página */
.calc-lent { display: flex; align-items: center; gap: 10px 14px; flex-wrap: wrap; margin-top: 12px; padding: 10px 14px; border-color: var(--linha-forte); }
.calc-lent-campo { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; white-space: nowrap; }
.calc-lent-campo .campo { width: 78px; }
.calc-lent-txt { font-size: .85em; flex: 1 1 260px; min-width: 0; }
.lent { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.lent-topo { display: flex; align-items: center; gap: 14px; min-width: 0; }
.lent-topo > div:last-child { min-width: 0; }
.lent-num { font-size: 2.1em; font-weight: 800; color: var(--laranja); line-height: 1; font-variant-numeric: tabular-nums; flex: 0 0 auto; }
.lent-barra { display: grid; grid-template-columns: minmax(90px, 150px) minmax(60px, 1fr) 46px auto; align-items: center; gap: 8px; font-size: .9em; }
.lent-trilho { height: 8px; border-radius: 6px; background: var(--sutil-2); overflow: hidden; }
.lent-trilho i { display: block; height: 100%; border-radius: 6px; }
.lent-barra b { text-align: right; font-variant-numeric: tabular-nums; }
@container (max-width: 320px) { .lent-barra { grid-template-columns: 1fr 46px; } .lent-barra .lent-trilho, .lent-barra small { display: none; } .lent-num { font-size: 1.6em; } }
@media (max-width: 600px) { .lent-barra { grid-template-columns: 1fr 46px; } .lent-barra .lent-trilho, .lent-barra small { display: none; } }
.lent-s { gap: 6px; }
.lent-s .lent-num { font-size: 1.8em; }
.lent-barra-s { grid-template-columns: minmax(80px, 1fr) minmax(40px, 2fr) 42px; }
.lent-barra-s:not(:has(.lent-trilho)) { grid-template-columns: 1fr 42px; }
.lent-tab-s td, .lent-tab-s th { padding: 6px 8px; }
@container (max-width: 320px) { .lent-barra-s { grid-template-columns: 1fr 42px; } }
@media (max-width: 600px) { .lent-barra-s { grid-template-columns: 1fr 42px; } }

/* Administração › RPCs */
.rpc-tab td { vertical-align: top; }
.rpc-tab .rpc-uso { text-align: center; white-space: nowrap; font-size: 12px; }
.rpc-tab .rpc-ordem { white-space: nowrap; }
.rpc-tab .rpc-ordem .btn { padding: 2px 6px; }
.rpc-url { display: flex; gap: 4px; align-items: center; }
.rpc-url .campo { flex: 1; min-width: 260px; }
.rpc-tab .campo[data-rps] { width: 72px; min-width: 0; }
.rpc-tab .campo[data-nome] { width: 150px; min-width: 0; }
.rpc-tab th.rpc-uso { font-size: 11px; white-space: normal; max-width: 90px; line-height: 1.2; }
.rpc-tab td, .rpc-tab th { padding-left: 6px; padding-right: 6px; }
.rpc-teste { margin-top: 4px; display: flex; flex-wrap: wrap; gap: 4px; justify-content: flex-end; max-width: 360px; margin-left: auto; white-space: normal; }

.rpc-tab .campo[data-nome] { width: 150px; min-width: 0; }
#brpc .rpc-tab .campo[data-rps] { width: 72px; }

/* Sis-Bot: tempos (lentidão) e pausa de linha */
.bf-tempo { margin-left: .45em; font-size: .78em; font-variant-numeric: tabular-nums; color: var(--fraco, #8aa); padding: 0 .35em; border-radius: 3px; background: var(--sutil-2, rgba(255,255,255,.05)); white-space: nowrap; }
.bf-recarga { flex: none; font-size: .78em; font-variant-numeric: tabular-nums; white-space: nowrap; padding: 0 .4em; border-radius: 3px; color: var(--info); background: var(--info-bg); }
.bf-recarga.pronto { color: var(--ok); background: var(--ok-bg); }
.bf-recarga.sem { color: var(--fraco, #8aa); background: var(--sutil-2, rgba(255,255,255,.05)); }
.bf-tempo.passo { margin-left: 0; color: var(--aviso, #e0b84a); }
.bf-ciclo { font-size: .76em; opacity: .85; }
.bf-ciclo .bf-tempo.ciclo { margin-left: 0; }
.bs-at { display: flex; align-items: center; gap: .3em; }
.bs-pausa { display: inline-flex; align-items: center; gap: .2em; }
.bs-pausa.ligado { color: var(--aviso, #e0b84a); border-color: currentColor; }
.bs-pausa small { font-size: .72em; }

/* ---------------- trava do Sis-Ágora e carteira do usuário (04/11/2026) ---------------- */
.trava-aviso { display: flex; gap: 12px; align-items: flex-start; text-align: left; margin: 0 0 22px; padding: 14px 16px; border-radius: 14px;
  background: var(--aviso-bg); border: 1px solid rgba(231, 199, 106, .4); color: var(--aviso); }
.trava-aviso svg { width: 22px; height: 22px; flex: none; margin-top: 1px; }
.trava-aviso b { display: block; color: var(--texto); font-size: 15px; margin-bottom: 3px; }
.trava-aviso span { display: block; color: var(--texto-2); font-size: 13.5px; line-height: 1.5; }
.login .btn.secundario { background: var(--sutil); color: var(--texto); border: 1px solid var(--linha-forte); }
.login .trava-admin { display: inline-block; font-size: 12px; color: var(--texto-3); text-decoration: underline; text-underline-offset: 3px; }
.login .trava-admin:hover { color: var(--texto-2); }
.faixa-modo.trava { background: var(--perigo-bg); color: var(--perigo); border-color: rgba(240, 123, 123, .4); }
.faixa-modo.trava b { color: var(--texto); font-weight: 700; }
.tv-linha { display: flex; align-items: center; gap: 12px; margin-top: 12px; flex-wrap: wrap; }
.tv-previa { max-width: 440px; }
.tv-previa .trava-aviso { margin: 0; }
.rotulo-campo { display: block; font-size: 12.5px; font-weight: 600; color: var(--texto-2); margin: 12px 0 6px; }
.ct-info { margin-top: 10px; min-height: 0; }
.ct-msg { padding: 9px 12px; border-radius: 10px; font-size: 13px; background: var(--sutil); color: var(--texto-2); line-height: 1.5; }
.ct-msg svg { width: 15px; height: 15px; vertical-align: -3px; }
.ct-msg.ok { background: var(--ok-bg); color: var(--texto); }
.ct-msg.ok svg { color: var(--ok); }
.ct-msg.aviso { background: var(--aviso-bg); color: var(--texto); }
.ct-msg.erro { background: var(--perigo-bg); color: var(--perigo); }
.cart-trava { display: flex; gap: 8px; align-items: center; }
.cart-trava svg { width: 16px; height: 16px; flex: none; color: var(--aviso); }
.lista-simples li .btn.pequeno { margin-left: 8px; }

/* ---- Coluna lateral de módulos (05/11/2026): entre o menu e o conteúdo, em todas as páginas; só com o menu recolhido e a janela ≥ 1280 px */
.sis-col { display: none; }
body.com-coluna .sis-col { display: flex; flex-direction: column; gap: 12px; flex: 0 0 var(--cl-larg, 30%); max-width: var(--cl-larg, 30%); min-width: 0; position: sticky; top: 92px; align-self: flex-start;
  height: var(--cl-h, calc(100vh - 110px)); max-height: var(--cl-h, calc(100vh - 110px)); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; padding: 0 4px 0 0; }
body.com-coluna .sis-col::-webkit-scrollbar { display: none; }
.cl-cab { position: sticky; top: 0; z-index: 4; display: flex; align-items: center; gap: 6px; padding: 7px 8px 7px 12px; border-radius: 14px; background: var(--panel); border: 1px solid var(--linha); }
.cl-tit { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; white-space: nowrap; }
.cl-tit svg { width: 16px; height: 16px; color: var(--acento); }
.cl-cab .espaco { flex: 1; }
.cl-cab .btn.pequeno { padding: 4px 10px; }
.cl-lista { display: flex; flex-direction: column; gap: 12px; }
.sis-col .mpg-mod { padding: 12px; font-size: 13px; }
.sis-col .mpg-mod-cab { margin-bottom: 8px; min-height: 26px; gap: 4px; }
.sis-col .mpg-mod-tit { flex: 1 1 120px; }
.sis-col .mpg-mod-tit h4 { font-size: 13.5px; }
.sis-col .mpg-mod-cab .espaco { display: none; }
.sis-col .mpg-bt { width: 26px; height: 26px; }
.sis-col .mpg-extra .seg.mini button { padding: 2px 7px; font-size: 11px; }
.sis-col .mpg-mod-corpo { overflow-x: auto; min-height: 40px; }
.sis-col .mpg-mod .tabela { font-size: 12px; }
.sis-col .mpg-mod .tabela td, .sis-col .mpg-mod .tabela th { padding: 5px 6px; }
.sis-col .mpg-mod .kpi { padding: 10px 12px; }
.sis-col .mpg-mod .kpi .val { font-size: 19px; }
.sis-col .mpg-mod .kpi .icone { width: 30px; height: 30px; }
.sis-col .mpg-anel { width: 84px; height: 84px; } .sis-col .mpg-anel b { font-size: 18px; }
.sis-col .mpg-relogio { grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); gap: 8px; } .sis-col .mpg-relogio b { font-size: 17px; } .sis-col .mpg-relogio > div { padding: 9px; }
.sis-col .mpg-mini-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sis-col .lista-simples li { padding-top: 6px; padding-bottom: 6px; }
.cl-ed { display: flex; align-items: center; gap: 2px; flex-wrap: wrap; width: 100%; justify-content: flex-end; }
.sis-col.editando .cl-mod { outline: 1px dashed var(--linha-forte); outline-offset: 2px; }
.sis-col .cl-mod.antes { box-shadow: 0 -3px 0 var(--acento); } .sis-col .cl-mod.depois { box-shadow: 0 3px 0 var(--acento); } .sis-col .cl-mod.arrastando { opacity: .45; }
.cl-add { flex: none; min-height: 110px; padding: 14px; text-align: center; }
.cl-add small svg { width: 13px; height: 13px; vertical-align: -2px; }
.menu button.menu-col[hidden] { display: none; }
.menu button.menu-col.ativo-col { color: var(--acento); }
body.menu-aberto .menu button.menu-col svg { transform: none; }

/* ---- Coluna lateral: largura (20–40 %) e alça de arrastar entre a coluna e o conteúdo (05/11/2026) */
.cl-alca { display: none; }
body.com-coluna .cl-alca:not([hidden]) { display: block; position: sticky; top: 92px; align-self: flex-start; flex: 0 0 10px; height: var(--cl-h, calc(100vh - 110px)); margin: 0 -10px 0 -14px; cursor: col-resize; touch-action: none; z-index: 6; }
.cl-alca::before { content: ''; position: absolute; left: 3px; top: 50%; width: 4px; height: 56px; transform: translateY(-50%); border-radius: 4px; background: var(--linha-forte); opacity: 0; transition: opacity .15s, height .15s, background .15s; }
body.com-coluna:hover .cl-alca::before { opacity: .55; }
.cl-alca:hover::before, body.cl-arrastando .cl-alca::before { opacity: 1; background: var(--acento); height: 40%; }
body.cl-arrastando .cl-alca::after { content: attr(data-pct); position: absolute; left: 14px; top: 50%; transform: translateY(-50%); padding: 4px 9px; border-radius: 9px; background: var(--card); border: 1px solid var(--linha-forte); font-size: 12px; font-weight: 600; white-space: nowrap; box-shadow: var(--sombra); }
body.cl-arrastando, body.cl-arrastando * { cursor: col-resize !important; user-select: none; }
.ic-col-lin { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ic-col-lin > span { min-width: 120px; color: var(--texto-2); font-size: 13px; }
.ic-col-lin input[type=range] { flex: 1; min-width: 120px; accent-color: var(--acento); }
.ic-col-lin b { min-width: 40px; text-align: right; font-variant-numeric: tabular-nums; }
.ic-col-prev { position: relative; display: flex; gap: 4px; height: 56px; margin-top: 10px; padding: 4px; border-radius: 10px; background: var(--sutil); border: 1px solid var(--linha); font-size: 11px; }
.ic-col-prev i { display: grid; place-items: center; border-radius: 7px; font-style: normal; color: var(--texto-3); overflow: hidden; }
.ic-col-prev .m { flex: 0 0 28px; background: var(--sutil-2); writing-mode: vertical-rl; }
.ic-col-prev .c { flex: 0 0 30%; background: color-mix(in srgb, var(--acento) 22%, transparent); color: var(--texto); transition: flex-basis .08s; }
.ic-col-prev .t { flex: 1; background: var(--sutil-2); }
.ic-col-prev .a { flex: 0 0 6px; margin: 6px -2px; border-radius: 4px; background: var(--acento); cursor: col-resize; touch-action: none; }
.ic-col-at { display: inline-flex; align-items: center; gap: 4px; }
.ic-col-at .campo { width: 64px; text-align: right; }
.ic-col-at span { color: var(--texto-3); font-size: 12px; }
/* módulo recursos.calor_col: coluna do item só com o ícone */
.calor-ic .calor-ic-it { width: 34px; min-width: 34px; padding: 4px 4px !important; text-align: center; }
.calor-ic .calor-ic-it img { width: 24px; height: 24px; margin: 0; vertical-align: middle; }
.calor-ic thead th.calor-col { font-size: 11px; padding: 6px 4px !important; white-space: nowrap; }
.mpg-calor.mpg-calor-ic table.calor td.c { min-width: 42px; padding: 4px 5px; font-size: 11.5px; }
/* seta "mais abaixo" da coluna, igual à do menu */
.cl-mais { position: sticky; bottom: 0; margin-top: auto; flex: none; height: 34px; display: none; place-items: center; color: var(--acento); cursor: pointer; border-radius: 0 0 14px 14px;
  background: linear-gradient(to bottom, transparent, var(--bg) 70%); }
.cl-mais.visivel { display: grid; }
.cl-mais svg { width: 18px; height: 18px; animation: quicar 1.2s ease-in-out infinite; }
.ic-col-at .campo { width: 66px !important; min-width: 0 !important; flex: none; }
.ic-col-lin input[type=range] { min-width: 80px; }
/* ---- Sis-Bot › Frotas (06/11/2026): sem campos na linha; clique na linha abre/fecha o resumo (accordion) */
.bf-cfg { display: none !important; }
.bf-painel[data-modo="1"] .bf-lin, .bf-painel[data-modo="2"] .bf-lin { row-gap: 0; }
.bf-lin.tem-det { cursor: pointer; }
.bf-lin.tem-det .bf-c2, .bf-lin.tem-det .bf-c3, .bf-lin.tem-det .bf-meds { cursor: pointer; }
.bf-det { display: grid; grid-template-rows: 0fr; opacity: 0; margin-top: 0; border-top: 1px dashed transparent;
  transition: grid-template-rows .32s cubic-bezier(.2, .7, .2, 1), opacity .22s ease, margin-top .32s ease, padding-top .32s ease, border-color .32s ease; }
.bf-det > .bf-det-in { overflow: hidden; min-height: 0; }
.bf-lin.aberta .bf-det { grid-template-rows: 1fr; opacity: 1; margin-top: .55em; padding-top: .55em; border-top-color: var(--linha); }
.bf-painel[data-modo="3"] .bf-lin:not(.aberta) .bf-det { margin-top: -.6em; }
.bf-lin.aberta:not([data-cor="erro"]) { border-color: color-mix(in srgb, var(--acento) 30%, var(--linha)); }
.bf-seta { display: inline-block; width: .5em; height: .5em; margin: 0 .45em .12em .05em; border-right: 1.6px solid var(--texto-3); border-bottom: 1.6px solid var(--texto-3);
  transform: rotate(-45deg); transition: transform .28s ease, border-color .2s; vertical-align: middle; }
.bf-lin.tem-det:hover .bf-seta { border-color: var(--acento); }
.bf-lin.aberta .bf-seta { transform: rotate(45deg); border-color: var(--acento); }

/* Prospectar SDU: bases de recarga (06/11/2026) */
.pb-bases { display: flex; flex-wrap: wrap; gap: 6px; }
.pb-base { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border: 1px solid var(--linha); border-radius: 999px; font-size: 12px; cursor: pointer; user-select: none; color: var(--texto-2); }
.pb-base input { margin: 0; accent-color: var(--acento); }
.pb-base.on { border-color: color-mix(in srgb, var(--acento) 55%, var(--linha)); color: var(--texto); background: color-mix(in srgb, var(--acento) 10%, transparent); }
.pb-base.princ { cursor: default; font-weight: 600; }

/* ---------------- 07/11/2026: Suporte (tickets), idiomas e login da Equipe Star Atlas ---------------- */
.bandeira { width: 20px; height: 15px; border-radius: 3px; object-fit: cover; vertical-align: -2px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .25); flex: none; display: inline-block; }
.bandeira.grande { width: 32px; height: 24px; border-radius: 4px; }
.usuario-chip .bandeira { width: 16px; height: 12px; margin-left: 2px; }
/* escolha do idioma */
.i18n-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.i18n-op { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--linha); background: var(--sutil); cursor: pointer; text-align: left; transition: border-color .12s, background .12s; }
.i18n-op:hover { border-color: var(--linha-forte); background: var(--sutil-2); }
.i18n-op.ativo { border-color: var(--acento); background: color-mix(in srgb, var(--acento) 14%, transparent); box-shadow: inset 0 0 0 1px var(--acento); }
.i18n-op span { display: flex; flex-direction: column; min-width: 0; }
.i18n-op b { font-weight: 600; }
.i18n-op small { color: var(--texto-3); font-size: 11.5px; }
@media (max-width: 520px) { .i18n-grade { grid-template-columns: 1fr; } }
.modo-botoes .bandeira { margin-right: 2px; }
/* apontar texto */
body.i18n-apontando, body.i18n-apontando * { cursor: crosshair !important; }
.i18n-mira { position: fixed; z-index: 9998; pointer-events: none; border: 2px solid var(--laranja); border-radius: 6px; background: rgba(242, 166, 90, .12); display: none; transition: all .06s; }
.i18n-balao { display: block; border: 0; background: var(--card-2); color: var(--texto); font-size: 12.5px; padding: 6px 10px; border-radius: 9px; box-shadow: var(--sombra); white-space: nowrap; border: 1px solid var(--linha-forte); }
.i18n-flut { position: fixed; right: 16px; bottom: 16px; z-index: 60; display: flex; align-items: center; gap: 6px; height: 34px; padding: 0 10px; border-radius: 999px; border: 1px solid var(--linha-forte); background: var(--card); color: var(--texto-2); cursor: pointer; opacity: .55; box-shadow: var(--sombra); transition: opacity .15s; }
.i18n-flut:hover { opacity: 1; color: var(--texto); }
.i18n-flut svg { width: 15px; height: 15px; }
@media (max-width: 760px) { .i18n-flut { bottom: 84px; } }
.i18n-orig { background: var(--sutil); border: 1px solid var(--linha); border-radius: 10px; padding: 9px 11px; margin-bottom: 10px; font-size: 13.5px; }
/* Administração › Idioma */
.i18n-progresso { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; margin-top: 10px; }
.i18n-prog { display: flex; align-items: center; gap: 9px; padding: 8px 10px; border-radius: 12px; border: 1px solid var(--linha); background: var(--sutil); cursor: pointer; text-align: left; }
.i18n-prog.ativo { border-color: var(--acento); box-shadow: inset 0 0 0 1px var(--acento); }
.i18n-prog > span { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2px 8px; flex: 1; min-width: 0; }
.i18n-prog b { grid-column: 1 / -1; font-size: 12.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.i18n-prog small { font-size: 11px; color: var(--texto-3); }
.i18n-barra { display: block; height: 5px; border-radius: 5px; background: var(--sutil-3); overflow: hidden; }
.i18n-barra > i { display: block; height: 100%; background: var(--acento); border-radius: 5px; }
.i18n-tabela td { vertical-align: top; }
.i18n-orig-cel { font-size: 13.5px; }
.i18n-cel { min-height: 34px; padding: 6px 9px; border-radius: 9px; border: 1px dashed transparent; cursor: text; font-size: 13.5px; user-select: text; }
.i18n-cel:hover { border-color: var(--linha-forte); background: var(--sutil); }
.i18n-cel.vazia::before { content: '— dois cliques para traduzir —'; color: var(--texto-3); font-style: italic; font-size: 12.5px; }
.i18n-cel.editando { border: 0; padding: 0; background: none; cursor: auto; }
.i18n-cel.editando::before { content: none; }
.i18n-ed-bot { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-top: 6px; }
.i18n-ed-bot .fraco { font-size: 11.5px; }
.i18n-marc { display: inline-block; padding: 0 4px; border-radius: 5px; background: var(--info-bg); color: var(--info); font-family: ui-monospace, monospace; font-size: .92em; }
.i18n-acoes { white-space: nowrap; }
.i18n-acoes .icone-btn { width: 30px; height: 30px; }
.i18n-acoes .icone-btn svg { width: 15px; height: 15px; }
.i18n-salvo { animation: i18nSalvo .9s; }
@keyframes i18nSalvo { from { background: var(--ok-bg); } to { background: transparent; } }
.i18n-massa { display: flex; align-items: center; gap: 10px; padding: 8px 10px; margin-bottom: 10px; border-radius: 10px; background: var(--info-bg); }
.i18n-sugs td { font-size: 13px; }
/* tela de entrada: idioma e Equipe Star Atlas */
.login .entrada-idioma { position: absolute; top: 14px; right: 14px; }
.login .caixa { position: relative; }
.login .entrada-idioma summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 6px; padding: 5px 9px; border-radius: 999px; border: 1px solid var(--linha-forte); font-size: 12px; color: var(--texto-2); }
.login .entrada-idioma summary::-webkit-details-marker { display: none; }
.login .entrada-idioma[open] summary { background: var(--sutil-2); }
.login .entrada-idioma ul { position: absolute; right: 0; top: 36px; z-index: 5; list-style: none; margin: 0; padding: 6px; width: 230px; background: var(--card-2); border: 1px solid var(--linha-forte); border-radius: 14px; box-shadow: var(--sombra); text-align: left; max-height: 60vh; overflow: auto; }
.login .entrada-idioma li a { display: flex; align-items: center; gap: 9px; padding: 7px 9px; border-radius: 9px; text-decoration: none; font-size: 13px; }
.login .entrada-idioma li a:hover, .login .entrada-idioma li a.ativo { background: var(--sutil-2); }
.login .btn-equipe { margin-top: 10px; background: linear-gradient(135deg, #1b2c3d, #213a52) !important; border: 1px solid var(--linha-forte) !important; }
.login .btn-equipe img { width: 22px; height: 22px; border-radius: 6px; }
.login .form-equipe { margin-top: 10px; display: grid; gap: 8px; text-align: left; }
.login .form-equipe input { height: 44px; width: 100%; padding: 0 12px; border-radius: 12px; border: 1px solid var(--linha-forte); background: var(--sutil); color: var(--texto); }
.login .form-equipe .btn { background: var(--acento); color: var(--acento-tinta); }
.login .form-equipe small { color: var(--texto-3); font-size: 11.5px; }
/* Suporte */
.tk-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px; margin: 6px 0 16px; }
.tk-cat { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--linha); background: var(--sutil); cursor: pointer; text-align: left; text-decoration: none; color: inherit; transition: border-color .12s, background .12s; }
.tk-cat:hover { border-color: var(--linha-forte); background: var(--sutil-2); }
.tk-cat.ativo { border-color: var(--acento); background: color-mix(in srgb, var(--acento) 13%, transparent); box-shadow: inset 0 0 0 1px var(--acento); }
.tk-cat > svg { width: 20px; height: 20px; flex: none; color: var(--acento); margin-top: 1px; }
.tk-cat span { display: flex; flex-direction: column; min-width: 0; }
.tk-cat b { font-weight: 600; font-size: 13.5px; }
.tk-cat small { color: var(--texto-3); font-size: 11.5px; line-height: 1.35; }
.tk-cats-pagina .tk-cat { background: var(--card); }
.tk-linha { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; }
.tk-form .rotulo-campo { margin-top: 10px; }
.tk-anexar-linha { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 8px; }
.tk-anexos { display: flex; gap: 8px; flex-wrap: wrap; }
.tk-anexos:empty { display: none; }
.tk-anexo { position: relative; display: flex; flex-direction: column; gap: 3px; width: 108px; }
.tk-anexo img { width: 108px; height: 72px; object-fit: cover; border-radius: 9px; border: 1px solid var(--linha-forte); }
.tk-anexo small { font-size: 10.5px; color: var(--texto-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tk-anexo button { position: absolute; top: 4px; right: 4px; width: 22px; height: 22px; border-radius: 50%; border: 0; background: rgba(0, 0, 0, .65); color: #fff; display: grid; place-items: center; cursor: pointer; padding: 0; }
.tk-anexo button svg { width: 12px; height: 12px; }
.tk-anexar { cursor: pointer; }
.tk-dica { font-size: 11.5px; }
.tk-arrastando { outline: 2px dashed var(--acento); outline-offset: 4px; border-radius: 12px; }
.tk-auto { margin-top: 10px; font-size: 12px; }
.tk-tabela tbody tr { cursor: pointer; }
.tk-tabela tbody tr:hover td { background: var(--sutil); }
.tk-assunto { display: flex; align-items: center; gap: 7px; }
.tk-ponto { width: 8px; height: 8px; border-radius: 50%; background: var(--laranja); flex: none; box-shadow: 0 0 0 3px var(--laranja-bg); }
.tk-novidade b { color: var(--texto); }
.tk-cat-mini { display: inline-flex; align-items: center; gap: 4px; }
.tk-cat-mini svg { width: 13px; height: 13px; }
.tk-av { width: 22px; height: 22px; border-radius: 50%; vertical-align: middle; margin-right: 7px; object-fit: cover; }
.tk-titulo { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; margin-top: 4px !important; }
.tk-sub { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 6px; }
.tk-grade { align-items: start; }
.tk-lado > .cartao + .cartao { margin-top: 12px; }
.tk-lado .rotulo-campo { display: block; margin-top: 10px; }
.tk-conversa { display: flex; flex-direction: column; gap: 14px; max-height: 64vh; overflow: auto; }
.tk-msg { display: flex; gap: 10px; align-items: flex-start; max-width: 92%; }
.tk-msg .tk-av { width: 32px; height: 32px; margin: 2px 0 0; }
.tk-msg.equipe { align-self: flex-end; flex-direction: row-reverse; }
.tk-bolha { background: var(--sutil-2); border: 1px solid var(--linha); border-radius: 14px; padding: 9px 12px; min-width: 0; }
.tk-msg.equipe .tk-bolha { background: color-mix(in srgb, var(--acento) 12%, var(--card)); border-color: color-mix(in srgb, var(--acento) 30%, transparent); }
.tk-msg.nota .tk-bolha { background: var(--aviso-bg); border-color: rgba(231, 199, 106, .35); border-style: dashed; }
.tk-msg-cab { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 4px; font-size: 12.5px; }
.tk-msg-cab .espaco { flex: 1; }
.tk-texto { white-space: normal; overflow-wrap: anywhere; font-size: 13.5px; line-height: 1.5; }
.tk-texto a { color: var(--acento); }
.tk-msg-anexos { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.tk-msg-anexos img { max-width: 220px; max-height: 150px; border-radius: 9px; border: 1px solid var(--linha-forte); display: block; }
.tk-evento { align-self: center; display: flex; gap: 8px; align-items: center; font-size: 11.5px; color: var(--texto-3); padding: 3px 12px; border-radius: 999px; background: var(--sutil); }
.tk-resposta { margin-top: 12px; }
.tk-resposta.nota { border-color: rgba(231, 199, 106, .45); background: color-mix(in srgb, var(--aviso) 6%, var(--card)); }
.tk-resp-rodape { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.tk-resp-rodape .espaco { flex: 1; }
.tk-det li { font-size: 13px; }
.tk-nav span:last-child { max-width: 60%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tk-estrelas { display: flex; gap: 4px; }
.tk-estrelas button { border: 0; background: none; font-size: 26px; line-height: 1; cursor: pointer; color: var(--sutil-3); padding: 0 2px; }
.tk-estrelas button.ativo { color: #f5c04a; }
.tk-nota-est { color: #f5c04a; letter-spacing: 1px; }
.tk-ctx h4 { display: flex; align-items: center; gap: 8px; }
.tk-ctx h4 svg { width: 18px; height: 18px; color: var(--acento); }
.tk-ctx-txt { background: var(--sutil); border-radius: 9px; padding: 7px 10px; font-size: 13px; }
.tk-ctx-txt.destaque { background: var(--ok-bg); }
.tk-kpis .kpi .icone svg { width: 18px; height: 18px; }
.i18n-massa[hidden] { display: none; }
.i18n-auto { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-top: 12px; padding: 10px 12px; border-radius: 12px; background: var(--sutil); font-size: 12.5px; }
.i18n-auto .bandeira { width: 16px; height: 12px; }

/* 1.4.0: navegadores do perfil (Sis-Bot › Conexão e alertas) */
.bn-tab td { vertical-align: top; }
.bn-tab tr.bn-off td { opacity: .62; }
.bn-custo { position: relative; display: block; width: 150px; margin-bottom: 2px; padding: 1px 8px; border-radius: 6px; overflow: hidden; background: var(--sutil-2, rgba(255,255,255,.05)); font-variant-numeric: tabular-nums; }
.bn-custo > i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--ok-bg); border-right: 2px solid var(--ok); z-index: 0; }
.bn-custo > b { position: relative; z-index: 1; }
.bn-acoes { white-space: nowrap; }
.bn-acoes .btn { margin: 1px 0; }
@media (max-width: 700px) { .bn-acoes { white-space: normal; } }

/* ---- Sis-Bot › Frotas (08/11/2026): o resumo das linhas (bs-lin) nunca passa da linha aberta (bf-lin) —
   textos e selos quebram dentro da largura e a fonte diminui quando a linha é estreita */
.bf-det, .bf-det > .bf-det-in, .bf-det .bs-resumo { min-width: 0; max-width: 100%; }
.bf-det > .bf-det-in { container-type: inline-size; }
.bf-det .bs-resumo { grid-template-columns: minmax(0, 1fr); }
.bf-det .bs-lin { min-width: 0; max-width: 100%; box-sizing: border-box; overflow-wrap: anywhere; word-break: normal; }
.bf-det .bs-lin-txt, .bf-det .bs-prox, .bf-det .bs-prio { min-width: 0; overflow-wrap: anywhere; }
.bf-det .bs-lin .selo, .bf-det .bs-mov { white-space: normal; max-width: 100%; box-sizing: border-box; line-height: 1.35; vertical-align: middle; }
.bf-det .bs-barra { max-width: 100%; }
.bf-det .bs-barra span { max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@container (max-width: 520px) { .bs-lin { font-size: .92em; padding: 4px 6px 5px 8px; } .bs-barra { margin-top: 17px; } .bs-lin .selo { font-size: 10.5px; padding: 1px 7px; } }
@container (max-width: 340px) { .bs-lin { font-size: .86em; } .bs-lin .selo { font-size: 10px; padding: 1px 6px; } .bs-mov { font-size: 10px; } }

/* ---- Sis-Bot › Frotas (08/11/2026 noite) — a lista é um container: os modos se ajustam à largura medida em em,
   então funcionam com qualquer tamanho de fonte (A− / A+) */
#bf-lista { container: bfl / inline-size; }
/* Padrão: colunas com mínimos em em (antes px fixos somavam ~1.060 px e a linha passava do painel) */
.bf-painel[data-modo="2"] .bf-cab, .bf-painel[data-modo="2"] .bf-lin { grid-template-columns: 1.2em 1.3em minmax(9em, 1.1fr) minmax(11em, 1.3fr) minmax(8em, 1fr) minmax(14em, 1.5fr) auto; }
.bf-painel[data-modo="2"] .bf-lin > * { min-width: 0; }
@container bfl (max-width: 78em) {
  .bf-painel[data-modo="2"] .bf-cab { display: none; }
  .bf-painel[data-modo="2"] .bf-lin { grid-template-columns: 1.2em 1.3em minmax(0, 1fr) minmax(0, 1.3fr) auto; grid-template-areas: "g s n e a" ". . o m m" ". . d d d"; row-gap: .45em; }
}
@container bfl (max-width: 46em) {
  .bf-painel[data-modo="2"] .bf-lin { grid-template-columns: 1.2em 1.3em minmax(0, 1fr) auto; grid-template-areas: "g s n a" ". . e e" ". . o o" ". . m m" ". . d d"; }
  .bf-painel[data-modo="2"] .bf-acoes { flex-wrap: wrap; }
}

/* ---- modo Painel (4): cartão em 3 faixas — cabeçalho, blocos rotulados (Estado | Sis-Bot | Nave) e linhas em grade */
.bf-painel[data-modo="4"] .bf-lin.b4 { display: block; container: b4 / inline-size; padding: 0; margin-bottom: .55em; border-radius: 8px; overflow: hidden; }
.b4-cab { display: flex; align-items: center; gap: .55em .7em; flex-wrap: wrap; padding: .6em .8em .55em .5em; border-bottom: 1px solid var(--linha);
  background: linear-gradient(90deg, color-mix(in srgb, var(--tc, var(--acento)) 9%, transparent), transparent 55%); }
.b4-cab .bf-grip, .b4-cab .bf-sel { flex: none; }
.b4-cab .bf-nome { margin: 0; font-size: 1.08em; flex: 0 1 auto; min-width: 0; }
.b4-cab .bf-chips { flex: 1 1 auto; min-width: 0; }
.b4-cab .bf-acoes { margin-left: auto; flex-wrap: wrap; }
.b4-corpo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr) minmax(0, 1fr); }
.b4-bl { min-width: 0; padding: .6em .85em .7em; border-right: 1px solid var(--linha); }
.b4-bl:last-child { border-right: 0; }
.b4-bl h4 { margin: 0 0 .45em; font-size: .72em; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--texto-3); }
.b4-bl small { color: var(--texto-3); font-size: .82em; }
.b4-est { display: flex; align-items: center; gap: .55em; min-width: 0; font-size: 1.04em; }
.b4-est > b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--c); }
.b4-kv { display: flex; flex-wrap: wrap; gap: .2em 1em; margin-top: .3em; color: var(--texto-2); font-size: .92em; font-variant-numeric: tabular-nums; }
.b4-onde { margin-top: .35em; color: var(--texto-2); font-size: .92em; line-height: 1.45; overflow-wrap: anywhere; }
.b4-onde .selo { font-size: .8em; }
.b4-passo { display: grid; grid-template-columns: 3.6em minmax(0, 1fr); gap: .5em; align-items: baseline; line-height: 1.45; overflow-wrap: anywhere; }
.b4-passo > span { color: var(--texto); }
.b4-passo.prox > span { color: var(--texto-2); }
.b4-passo + .b4-passo { margin-top: .2em; }
.b4-analise { margin-top: .35em; padding-left: 4.1em; color: var(--texto-3); font-size: .86em; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.b4-ciclo { display: flex; flex-wrap: wrap; gap: .3em .5em; margin-top: .55em; }
.b4-ciclo > span { display: inline-flex; align-items: baseline; gap: .35em; padding: .15em .55em; border-radius: 5px; background: var(--sutil-2); border: 1px solid var(--linha); font-variant-numeric: tabular-nums; color: var(--texto-2); }
.b4-ciclo > span:first-child { color: var(--texto); border-color: color-mix(in srgb, var(--acento) 35%, var(--linha)); }
.b4-bl-med .bf-meds { grid-template-columns: minmax(0, 1fr); gap: .45em; }
.b4-bl-med .bf-med { display: grid; grid-template-columns: 4.2em minmax(0, 1fr) auto; grid-template-areas: "t b v"; align-items: center; gap: .55em; }
.b4-bl-med .bf-med-top { grid-area: t; display: block; } .b4-bl-med .bf-med-top em { display: none; }
.b4-bl-med .bf-med-barra { grid-area: b; margin: 0; height: .5em; }
.b4-bl-med .bf-med > b { grid-area: v; margin: 0; font-size: .86em; }
/* linhas (accordion) */
.bf-painel[data-modo="4"] .bf-det { padding: 0; border-top: 0; }
.bf-painel[data-modo="4"] .bf-lin.aberta .bf-det { margin: 0; padding: 0; border-top: 1px solid var(--linha); }
.b4-res { padding: .35em .5em .5em; }
.b4-r { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .75fr) minmax(0, 1.7fr) minmax(0, 1.2fr); gap: .3em 1em; align-items: center;
  padding: .5em .6em; border-radius: 6px; border-left: 3px solid transparent; }
.b4-r + .b4-r { border-top: 1px dashed var(--linha); }
.b4-r.atual { background: color-mix(in srgb, var(--acento) 11%, transparent); border-left-color: var(--acento); }
.b4-r.off { opacity: .5; }
.b4-r small { display: block; color: var(--texto-3); font-size: .8em; line-height: 1.3; overflow-wrap: anywhere; }
.b4-r small span { margin-left: .35em; }
.b4-r-item { display: flex; gap: .55em; align-items: baseline; min-width: 0; }
.b4-r-item > div { min-width: 0; }
.b4-r-item b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.b4-r-ord { flex: none; min-width: 1.6em; color: var(--texto-3); font-variant-numeric: tabular-nums; }
.b4-r.atual .b4-r-ord { color: var(--acento); font-weight: 700; }
.b4-r-orig { min-width: 0; } .b4-r-orig > b { font-variant-numeric: tabular-nums; } .b4-r-orig > b.zero { color: var(--aviso); }
.b4-r-dest { min-width: 0; }
.b4-r-med { display: grid; grid-template-columns: auto minmax(3em, 1fr) auto; align-items: center; gap: .6em; margin-top: .15em; }
.b4-r-med > b { font-variant-numeric: tabular-nums; } .b4-r-med em { font-style: normal; font-size: .8em; color: var(--texto-3); white-space: nowrap; font-variant-numeric: tabular-nums; }
.b4-r-med .bs-barra { margin: 0; }
.b4-c-vermelho { color: var(--perigo); } .b4-c-amarelo { color: var(--aviso); } .b4-c-verde { color: var(--ok); } .b4-c-cinza { color: var(--texto-2); }
.b4-r-sit { display: flex; flex-wrap: wrap; gap: .3em; min-width: 0; justify-content: flex-end; }
.b4-r-sit .selo { white-space: normal; max-width: 100%; font-size: .82em; line-height: 1.3; }
.b4-prio { padding: .3em .6em 0; font-size: .85em; }
.b4-res-txt { padding: .6em .85em; }
@container b4 (max-width: 62em) {
  .b4-corpo { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); }
  .b4-bl-bot { border-right: 0; }
  .b4-bl-med { grid-column: 1 / -1; border-right: 0; border-top: 1px solid var(--linha); }
  .b4-bl-med .bf-meds { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9em; }
  .b4-r { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr) minmax(0, 1.5fr); }
  .b4-r-sit { grid-column: 1 / -1; justify-content: flex-start; }
}
@container b4 (max-width: 40em) {
  .b4-corpo { grid-template-columns: minmax(0, 1fr); }
  .b4-bl { border-right: 0; border-top: 1px solid var(--linha); } .b4-bl:first-child { border-top: 0; }
  .b4-bl-med .bf-meds { grid-template-columns: minmax(0, 1fr); gap: .45em; }
  .b4-r { grid-template-columns: minmax(0, 1fr) auto; }
  .b4-r-dest { grid-column: 1 / -1; }
  .b4-r-orig { text-align: right; }
  .b4-cab .bf-acoes { width: 100%; justify-content: flex-end; }
}
/* modo Painel: tudo em em, para acompanhar o A− / A+ */
.bf-painel[data-modo="4"] .bf-lin .selo { font-size: .82em; padding: .12em .65em; }
.bf-painel[data-modo="4"] .b4-cab .btn.pequeno { font-size: .9em; padding: .4em .8em; min-height: 0; height: auto; }
.bf-painel[data-modo="4"] .b4-cab .btn.pequeno svg { width: 1.1em; height: 1.1em; }
.bf-painel[data-modo="4"] .b4-cab .icone-btn.mini { width: 2.1em; height: 2.1em; min-width: 0; }
.bf-painel[data-modo="4"] .b4-cab .icone-btn.mini svg { width: 1.05em; height: 1.05em; }
.b4-passo > span { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.b4-r-sit:empty { display: none; }
