/* ════════════════════════════════════════════════════════════════════
   FireSysDiagram — ROSTO ÚNICO (26/09/2026)

   Marcio: "muda o menu e topbar que nem é no rosto novo", com a foto do
   editor novo do CRM. Esta folha traz para o FSD a MESMA linguagem do
   `SWC-CRM/public/orcamento-teste/rosto/rosto.css` — medidas, tokens e
   nomes de classe iguais, para o dia em que o kit do ecossistema existir:

     --rs-h 64px   faixa de cima = bloco do logo no menu (as duas formam
                   uma faixa só)
     --rs-nav-w    menu 260 px, recolhido 64
     .swm-shellbar busca à esquerda, ícones e usuário à direita
     .swm-pagehead título em Syne 800, selos e ações à direita
     .swm-app-footer  rodapé de 36 px

   Diferenças de propósito, não de estilo: no CRM a busca é de TELA; aqui
   é de BLOCO, que é o que se procura o dia inteiro. E o KPI do cabeçalho
   é o do desenho (blocos, ligações, módulo do layout).

   Cor do módulo no ecossistema: FireSys = lima (#84cc16), pelo
   `_swm-tokens/cores_modulo.py`. Ela só identifica — a ação é dourada.
   ════════════════════════════════════════════════════════════════════ */

:root {
  --rs-h: 64px;
  --rs-shell: #0a0c12;
  --rs-nav: #11141d;
  --rs-nav-on: rgba(245, 158, 11, .12);
  --rs-head: #1a2030;
  --rs-hover: rgba(255, 255, 255, .05);
  --rs-borda: #2d3648;
  --rs-sombra: 0 16px 40px rgba(0, 0, 0, .45);
  --rs-on-gold: #1a1204;
  --rs-font: 'Inter', 'DM Sans', ui-sans-serif, system-ui, -apple-system, sans-serif;
  --rs-brand: 'Syne', 'Inter', ui-sans-serif, system-ui, sans-serif;
  --rs-mod: #84cc16;                 /* FireSys Diagram */
  --linha: var(--border, rgba(255,255,255,.08));
}
html[data-theme="light"] {
  --rs-shell: #ffffff;
  --rs-nav: #f7f9fd;
  --rs-nav-on: rgba(194, 104, 10, .11);
  --rs-head: #f1f5fb;
  --rs-hover: #e6edf8;
  --rs-borda: #c4d3ea;
  --rs-sombra: 0 14px 36px rgba(15, 23, 42, .13);
}

body { font-family: var(--rs-font); }

/* ── Grade: a faixa de cima entra como primeira linha ─────────────── */
.fsd-shell {
  grid-template-areas: "sb shell" "sb head" "sb top" "sb body";
  grid-template-rows: var(--rs-h) auto auto minmax(0, 1fr);
}
.fsd-shellbar { grid-area: shell; }
.fsd-pagehead { grid-area: head; }

/* ── Barra do ecossistema ─────────────────────────────────────────── */
.fsd-shellbar {
  display: flex; align-items: center; gap: 16px; padding: 0 14px 0 16px;
  background: var(--rs-shell); border-bottom: 1px solid var(--linha);
  font: 13px/1.4 var(--rs-font); color: var(--text-1);
}
.fsd-shellbar__busca {
  flex: 0 1 440px; height: 32px; display: flex; align-items: center; gap: 8px; padding: 0 10px;
  border-radius: 8px; border: 1px solid var(--linha); background: var(--bg-2); color: var(--text-3);
}
.fsd-shellbar__busca:focus-within { border-color: var(--gold-border, rgba(250,204,21,.4)); }
.fsd-shellbar__busca svg { width: 15px; height: 15px; flex: none; }
.fsd-shellbar__busca input {
  flex: 1; min-width: 0; height: 30px; border: 0; outline: 0; background: transparent;
  color: var(--text-1); font: 13px var(--rs-font); padding: 0;
}
.fsd-shellbar__busca input::placeholder { color: var(--text-3); }
.fsd-shellbar__busca input::-webkit-search-cancel-button { display: none; }
.fsd-shellbar__busca kbd {
  font: 600 10.5px/1 ui-monospace, Menlo, monospace; padding: 3px 5px; border-radius: 4px;
  border: 1px solid var(--linha); color: var(--text-3);
}
.fsd-shellbar__dir { margin-left: auto; display: flex; align-items: center; gap: 4px; }
.fsd-ib {
  width: 32px; height: 32px; border-radius: 8px; border: 1px solid transparent; background: transparent;
  color: var(--text-2); display: grid; place-items: center; cursor: pointer; position: relative;
}
.fsd-ib:hover { background: var(--rs-hover); color: var(--text-1); }
.fsd-ib svg { width: 17px; height: 17px; }

/* − A + : mesma pílula do CRM e do RH */
.fsd-shellbar .sidebar__ts {
  display: inline-flex; align-items: center; gap: 1px; height: 32px; box-sizing: border-box;
  padding: 2px; margin: 0 4px 0 0; border-radius: 8px; background: var(--rs-hover); border: 0;
}
.fsd-shellbar .sidebar__ts__b {
  width: 28px; height: 28px; padding: 0; border: 0; border-radius: 6px; background: transparent;
  color: var(--text-2); display: inline-grid; place-items: center; cursor: pointer;
  font: 700 13px/1 var(--rs-font);
}
.fsd-shellbar .sidebar__ts__b:hover { background: var(--gold-bg); color: var(--gold-1); }
.fsd-shellbar .sidebar__ts__a {
  min-width: 38px; height: 28px; display: inline-grid; place-items: center;
  font: 800 12px/1 var(--rs-font); color: var(--text-2); font-variant-numeric: tabular-nums; user-select: none;
}
.fsd-shellbar .sidebar__theme { width: 32px; height: 32px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--text-2); }
.fsd-shellbar .sidebar__theme:hover { background: var(--rs-hover); color: var(--text-1); border-color: transparent; }

/* chip do usuário */
.fsd-shellbar__usuario {
  display: flex; align-items: center; gap: 8px; margin-left: 6px; padding: 3px 12px 3px 3px;
  border-radius: 999px; border: 1px solid var(--linha); cursor: pointer; background: transparent;
}
.fsd-shellbar__usuario:hover { background: var(--rs-hover); }
.fsd-shellbar__usuario .sidebar__badge { width: 28px; height: 28px; box-shadow: none; padding: 0; border: 0; background: none; }
.fsd-shellbar__usuario .sidebar__badge svg { width: 28px; height: 28px; display: block; }
.fsd-shellbar__nome { font: 600 12px/1.2 var(--rs-font); color: var(--text-1); max-width: 190px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fsd-shellbar__papel {
  font: 800 9px/1 var(--rs-font); letter-spacing: .08em; text-transform: uppercase;
  padding: 4px 7px; border-radius: 999px; color: var(--gold-1); background: var(--gold-bg); border: 1px solid var(--gold-border);
}

/* ── Cabeçalho da página ──────────────────────────────────────────── */
.fsd-pagehead {
  display: flex; align-items: center; gap: 12px 16px; flex-wrap: wrap;
  padding: 10px 16px 10px 20px; background: var(--bg-0); border-bottom: 1px solid var(--linha);
}
.fsd-pagehead__bloco { flex: 1 1 320px; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.fsd-titulo {
  margin: 0; font: 800 19px/1.15 var(--rs-brand); letter-spacing: -.01em; color: var(--text-1);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-transform: uppercase;
}
.fsd-selos { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fsd-selo {
  font: 700 10px/1 var(--rs-font); letter-spacing: .04em; padding: 4px 8px; border-radius: 999px;
  color: var(--text-2); background: var(--rs-hover); border: 1px solid var(--linha);
}
.fsd-selo--mod { color: var(--rs-mod); border-color: color-mix(in srgb, var(--rs-mod) 40%, transparent); background: color-mix(in srgb, var(--rs-mod) 12%, transparent); }
.fsd-selo--alerta { color: var(--gold-1); background: var(--gold-bg); border-color: var(--gold-border); }
/* [FSD-BLINDAGEM-20261015] selo clicável (orçamento vinculado) e o miolo dos pop-ups de projeto */
.fsd-selo--acao { cursor: pointer; }
.fsd-selo--acao:hover, .fsd-selo--acao:focus-visible { color: var(--gold-1); border-color: var(--gold-border); outline: none; }
.fsd-proj__p { margin: 0 0 10px; font: 400 12.5px/1.55 var(--rs-font); color: var(--text-2); }
.fsd-proj__p:last-child { margin-bottom: 0; }
.fsd-proj__p b { color: var(--text-1); font-weight: 700; }
.fsd-proj__lista { margin: 0; padding-left: 18px; font: 400 12.5px/1.55 var(--rs-font); color: var(--text-2); }
.fsd-proj__lista li { margin-bottom: 4px; }
.fsd-proj__lista b { color: var(--text-1); }
.fsd-proj__campo { display: flex; flex-direction: column; gap: 6px; font: 600 12px var(--rs-font); color: var(--text-2); }
.fsd-proj__campo input {
  height: 36px; padding: 0 10px; border-radius: 8px; border: 1px solid var(--border-2);
  background: var(--bg-0); color: var(--text-1); font: 500 13.5px var(--rs-font); outline: none;
}
.fsd-proj__campo input:focus { border-color: var(--gold-border); box-shadow: 0 0 0 3px var(--gold-bg); }
.fsd-kpis { display: flex; align-items: center; gap: 0; }
.fsd-kpi {
  display: flex; flex-direction: column; gap: 1px; padding-right: 18px; margin-right: 18px;
  border-right: 1px solid var(--linha);
}
.fsd-kpi:last-child { border-right: 0; margin-right: 0; padding-right: 0; }
.fsd-kpi__r { font: 700 9px/1 var(--rs-font); letter-spacing: .1em; text-transform: uppercase; color: var(--text-3); }
.fsd-kpi__v { font: 700 14px/1.2 var(--rs-font); color: var(--text-1); font-variant-numeric: tabular-nums; }
.fsd-pagehead__acoes { display: flex; align-items: center; gap: 8px; }
.fsd-bt {
  display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 14px; cursor: pointer;
  border-radius: 8px; border: 1px solid var(--linha); background: var(--bg-2); color: var(--text-1);
  font: 600 12.5px/1 var(--rs-font);
}
.fsd-bt:hover { border-color: var(--rs-borda); background: var(--rs-hover); }
.fsd-bt svg { width: 14px; height: 14px; }
/* um dourado cheio por tela */
.fsd-bt--principal { background: var(--gold-1); color: var(--rs-on-gold); border-color: transparent; font-weight: 700; }
.fsd-bt--principal:hover { filter: brightness(1.06); background: var(--gold-1); color: var(--rs-on-gold); }

/* ── Menu: mesma cara do CRM ──────────────────────────────────────── */
.fsd-sidebar { background: var(--rs-nav); border-right: 1px solid var(--linha); }
.fsd-sidebar .sidebar__header {
  height: var(--rs-h); min-height: var(--rs-h); box-sizing: border-box;
  padding: 0 14px; background: var(--rs-shell); border-bottom: 1px solid var(--linha);
}
.fsd-sidebar .sidebar__logo-text { font-family: var(--rs-brand); color: var(--text-1); }
.fsd-sidebar .sidebar__logo-subtext { font-family: var(--rs-brand); color: var(--gold-1); }
.fsd-sidebar .sidebar__nav { padding: 10px 0 0; }
.fsd-sidebar .sidebar__item {
  min-height: 32px; padding: 0 12px; margin: 1px 10px; border-radius: 8px;
  border-left: 0; background: transparent; box-shadow: none;
  color: var(--text-2); font: 500 13px/1.2 var(--rs-font); gap: 10px;
}
.fsd-sidebar .sidebar__item:hover { background: var(--rs-hover); color: var(--text-1); border-left-color: transparent; }
.fsd-sidebar .sidebar__item.active,
.fsd-sidebar .sidebar__item[aria-current="page"] { background: var(--rs-nav-on); color: var(--gold-1); font-weight: 600; border-left-color: transparent; }
.fsd-sidebar .sb-acoes { border-bottom: 1px solid var(--linha); padding: 2px 0 8px; margin-bottom: 6px; }
.fsd-sidebar .sb-favoritos { border-bottom: 1px solid var(--linha); padding-bottom: 8px; margin-bottom: 6px; }
.fsd-sidebar .sb-favoritos__hd { color: var(--gold-1); padding: 10px 22px 6px; font: 700 10px/1 var(--rs-font); letter-spacing: .1em; opacity: 1; }
.fsd-sidebar .sb-secao {
  padding: 12px 22px 6px; font: 700 10.5px/1 var(--rs-font); letter-spacing: .1em;
  text-transform: uppercase; color: var(--text-3);
}
.fsd-sidebar .sb-fav { color: var(--text-3); }
.fsd-sidebar .sb-fav:hover { color: var(--gold-1); background: var(--gold-bg); }
.fsd-sidebar .sb-fav.on { color: var(--gold-1); }

/* a busca da paleta mora na barra de cima; some daqui */
.fsd-sidebar .sb-busca { display: none; }

/* ── Rodapé do ecossistema ────────────────────────────────────────── */
.fsd-rodape {
  display: flex; align-items: center; gap: 10px; margin-left: auto; padding-left: 16px;
  font: 500 11px/1.4 var(--rs-font); color: var(--text-3);
}
.fsd-rodape__marca { white-space: nowrap; }
.fsd-rodape__selos { display: flex; align-items: center; gap: 6px; }
.fsd-rodape__selo {
  font: 700 8.5px/1 var(--rs-font); letter-spacing: .06em; padding: 4px 6px; border-radius: 4px;
  color: var(--text-3); border: 1px solid var(--linha);
}

/* recolhido: a faixa de cima encosta no menu de 64 px (a grade cuida) */
.fsd-shell[data-mini="1"] .fsd-sidebar .sidebar__header { padding: 0; justify-content: center; }

/* barra de baixo: abas de layout à esquerda, rodapé do ecossistema à direita */
.fsd-barra-baixo { display: flex; align-items: center; gap: 8px; border-top: 1px solid var(--linha); background: var(--rs-shell); }
.fsd-barra-baixo #layout-bar { flex: 1; min-width: 0; border-top: 0; background: transparent; }

/* o menu do usuário abre embaixo do chip, no canto de cima */
.fsd-user-pop {
  position: fixed; top: calc(var(--rs-h) - 6px); right: 14px; left: auto; bottom: auto;
  z-index: 1300; min-width: 220px; padding: 6px;
  background: var(--bg-2); border: 1px solid var(--border-2); border-radius: 10px; box-shadow: var(--rs-sombra);
}
.fsd-bt__ic { width: 14px; height: 14px; display: inline-block; background: currentColor;
  -webkit-mask: var(--ic) center/contain no-repeat; mask: var(--ic) center/contain no-repeat; }

/* O que subiu para o cabeçalho da página não se repete na barra de
   ferramentas: um dourado cheio por tela, e o nome do projeto num lugar só.
   Os elementos continuam no DOM — o app.js escreve neles e o fsd-rosto.js lê. */
#toolbar #btn-save-cloud,
#toolbar #proj-badge,
#toolbar #save-status { display: none; }
#toolbar .fsd-sp + #save-status ~ * { margin-left: 0; }

/* Dia: o que o desenho escreve em cinza claro (nome do bloco, cotas) some no
   fundo claro. O app grava a cor no atributo fill, então é por ele que se pega. */
html[data-theme="light"] #canvas text[fill="#8892b0"],
html[data-theme="light"] #canvas text[fill="#94a3b8"],
html[data-theme="light"] #canvas text[fill="#64748b"] { fill: #475569; }

/* a cor do módulo (lima) só identifica; no claro ela escurece para ler */
html[data-theme="light"] .fsd-selo--mod {
  color: color-mix(in srgb, var(--rs-mod) 45%, #0f172a);
  border-color: color-mix(in srgb, var(--rs-mod) 55%, transparent);
  background: color-mix(in srgb, var(--rs-mod) 16%, transparent);
}

/* O app põe um retângulo da COR DO CANVAS atrás de cada rótulo (o vão que faz
   o texto se ler por cima da linha). À noite ele some no fundo; no dia ficava
   uma pastilha escura boiando. Ele tem que seguir o fundo, como o canvas. */
html[data-theme="light"] #canvas rect[fill="#0d0d1f"],
html[data-theme="light"] #canvas rect[fill="#07091c"] { fill: var(--bg-0); }

/* ── Comando de linha: caixa flutuante de direção e comprimento ────── */
.fsd-linha-cx {
  position: fixed; z-index: 9500; display: flex; align-items: center; gap: 6px;
  padding: 6px 8px; border-radius: 9px; background: var(--bg-2); border: 1px solid var(--border-2);
  box-shadow: var(--rs-sombra); font: 600 12px/1 var(--rs-font); color: var(--text-1);
}
.fsd-linha-cx__eixo { min-width: 40px; font: 700 12px/1 var(--font-mono, monospace); color: var(--gold-1); }
.fsd-linha-cx__v {
  width: 72px; padding: 5px 7px; border-radius: 6px; border: 1px solid var(--border-2);
  background: var(--bg-0); color: var(--text-1); font: 700 13px/1 var(--font-mono, monospace);
  text-align: right; outline: none;
}
.fsd-linha-cx__v:focus { border-color: var(--gold-border); }
.fsd-linha-cx__u { color: var(--text-3); font-size: 11px; }
.fsd-linha-cx__t {
  max-width: 130px; padding: 5px 6px; border-radius: 6px; border: 1px solid var(--border-2);
  background: var(--bg-0); color: var(--text-2); font: 500 11px/1 var(--rs-font); outline: none;
}

/* ── Escala do desenho ────────────────────────────────────────────── */
.fsd-escala__p, .fsd-escala__d { margin: 0 0 10px; font: 400 12px/1.5 var(--rs-font); color: var(--text-2); }
.fsd-escala__d { margin: 10px 0 0; color: var(--text-3); font-size: 11.5px; }
.fsd-escala__l { display: flex; align-items: center; gap: 8px; font: 600 13px var(--rs-font); color: var(--text-1); }
.fsd-escala__l input {
  width: 96px; padding: 7px 9px; border-radius: 7px; border: 1px solid var(--border-2);
  background: var(--bg-0); color: var(--text-1); font: 700 14px var(--font-mono, monospace); text-align: right; outline: none;
}
.fsd-escala__l input:focus { border-color: var(--gold-border); }
.fsd-escala__pre { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.fsd-escala__b {
  padding: 6px 10px; border-radius: 999px; cursor: pointer; font: 600 11px var(--rs-font);
  color: var(--text-2); background: var(--rs-hover); border: 1px solid var(--linha);
}
.fsd-escala__b:hover { color: var(--gold-1); border-color: var(--gold-border); }

/* o vão atrás do número da linha acompanha o fundo, como os outros rótulos */
:root { --fsd-vao: #0d0d1f; }
html[data-theme="light"] { --fsd-vao: #e9edf4; }

/* ── Distância por trecho, no painel de propriedades ──────────────── */
.fsd-trechos { border-top: 1px solid var(--linha); padding-top: 8px; margin-top: 8px; }
.fsd-trechos__hd {
  display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 6px;
  font: 700 9px/1 var(--rs-font); letter-spacing: .08em; text-transform: uppercase; color: var(--text-3);
}
.fsd-trechos__t { font: 700 11px/1 var(--font-mono, monospace); letter-spacing: 0; text-transform: none; color: var(--gold-1); }
.fsd-trechos__l { display: flex; flex-direction: column; gap: 4px; }
.fsd-trechos__i { display: grid; grid-template-columns: 22px 1fr 16px; gap: 6px; align-items: center; }
.fsd-trechos__n { font: 700 9.5px/1 var(--font-mono, monospace); color: var(--text-3); }
.fsd-trechos__i input {
  width: 100%; padding: 5px 7px; border-radius: 6px; border: 1px solid var(--border, rgba(255,255,255,.12));
  background: var(--bg-0); color: var(--text-1); font: 600 11.5px/1 var(--font-mono, monospace); text-align: right; outline: none;
}
.fsd-trechos__i input:focus { border-color: var(--gold-border); }
.fsd-trechos__u { font-size: 9.5px; color: var(--text-3); }
.fsd-trechos__b {
  width: 100%; margin-top: 8px; padding: 6px; cursor: pointer; border-radius: 6px;
  font: 600 10.5px var(--rs-font); color: var(--text-2);
  background: var(--rs-hover); border: 1px dashed var(--border-2);
}
.fsd-trechos__b:hover { color: var(--gold-1); border-color: var(--gold-border); }
.fsd-trechos__d { margin-top: 8px; font: 400 9.5px/1.5 var(--rs-font); color: var(--text-3); }

/* ── Medidas dos equipamentos ─────────────────────────────────────── */
.fsd-dim__p { margin: 0 0 8px; font: 400 12px/1.5 var(--rs-font); color: var(--text-2); }
.fsd-dim__c { margin-bottom: 10px; font: 700 11px var(--font-mono, monospace); color: var(--gold-1); }
.fsd-dim__t { width: 100%; border-collapse: collapse; font: 500 11.5px var(--rs-font); }
.fsd-dim__t th {
  text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--border-2);
  font: 700 9px var(--rs-font); letter-spacing: .08em; text-transform: uppercase; color: var(--text-3);
}
.fsd-dim__t td { padding: 5px 8px; border-bottom: 1px solid var(--linha); color: var(--text-1); }
.fsd-dim__t td:nth-child(n+2):nth-child(-n+4) { font-family: var(--font-mono, monospace); font-size: 11px; color: var(--text-2); text-align: right; }
.fsd-dim__f { padding: 2px 6px; border-radius: 999px; font: 700 9px var(--rs-font); }
.fsd-dim__f--folha { color: var(--green); background: var(--green-bg); }
.fsd-dim__f--familia { color: var(--blue); background: var(--blue-bg); }
.fsd-dim__f--estimado { color: var(--gold-1); background: var(--gold-bg); }

/* aviso de bloco repetido nas propriedades */
.fsd-alias-aviso {
  margin-top: 8px; padding: 8px 10px; border-radius: 7px;
  font: 400 10.5px/1.5 var(--rs-font); color: var(--text-2);
  background: var(--gold-bg); border: 1px solid var(--gold-border);
}
.fsd-alias__p { margin: 0 0 10px; font: 400 12px/1.5 var(--rs-font); color: var(--text-2); }
.fsd-alias__l { margin: 0 0 10px; padding-left: 18px; font: 400 12px/1.8 var(--rs-font); color: var(--text-1); }
.fsd-alias__n { font: 600 10px var(--font-mono, monospace); color: var(--gold-1); }
.fsd-dim__f--projeto { color: var(--purple, #c4b5fd); background: var(--purple-bg, rgba(168,124,243,.12)); }

/* Caixa da linha: a etiqueta vira o nome da PORTA quando a ponta vai conectar */
.fsd-linha-cx__eixo.conecta {
  color: #0f1117; background: var(--gold-1, #facc15); border-radius: 5px;
  padding: 2px 7px; font-weight: 800; letter-spacing: .01em; max-width: 190px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* Chão e ambientes do isométrico */
.fsd-amb__p { margin: 0 0 12px; font: 400 12px/1.5 var(--rs-font); color: var(--text-2); }
.fsd-amb__linha { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; font: 500 12px var(--rs-font); color: var(--text-1); margin-bottom: 14px; }
.fsd-amb__linha label { display: flex; align-items: center; gap: 6px; cursor: pointer; }
.fsd-amb__linha span { display: flex; align-items: center; gap: 6px; }
.fsd-amb__hd { font: 800 10.5px var(--rs-font); text-transform: uppercase; letter-spacing: .08em; color: var(--text-3); margin: 4px 0 8px; }
.fsd-amb__i { display: flex; gap: 6px; align-items: center; margin-bottom: 6px; }
.fsd-amb__i input { background: var(--bg-0); color: var(--text-1); border: 1px solid var(--linha); border-radius: 6px; padding: 5px 7px; font: 500 11.5px var(--rs-font); min-width: 0; }
.fsd-amb__i input[data-k="nome"] { flex: 1; }
.fsd-amb__x { background: transparent; border: 1px solid var(--linha); color: var(--text-3); border-radius: 6px; width: 26px; height: 26px; cursor: pointer; font-size: 14px; line-height: 1; }
.fsd-amb__x:hover { color: var(--red-1, #f87171); border-color: var(--red-1, #f87171); }
.fsd-amb__vazio { font: 400 12px var(--rs-font); color: var(--text-3); padding: 6px 0 2px; }
.fsd-amb__b { margin-top: 10px; background: var(--rs-hover); color: var(--text-2); border: 1px solid var(--linha); border-radius: 8px; padding: 7px 12px; font: 600 12px var(--rs-font); cursor: pointer; }
.fsd-amb__b:hover { color: var(--text-1); }

/* Vista do isométrico */
.fsd-vista__p { margin: 0 0 14px; font: 400 12px/1.5 var(--rs-font); color: var(--text-2); }
.fsd-vista__d { margin: 14px 0 0; font: 400 11.5px/1.5 var(--rs-font); color: var(--text-3); }
.fsd-vista__ang { display: flex; gap: 8px; margin-bottom: 12px; }
.fsd-vista__op { flex: 1; display: flex; flex-direction: column; gap: 3px; align-items: center; padding: 10px 8px; border-radius: 10px; border: 1px solid var(--linha); background: var(--rs-hover); color: var(--text-2); cursor: pointer; font-family: var(--rs-font); }
.fsd-vista__op b { font-size: 16px; font-weight: 800; color: var(--text-1); }
.fsd-vista__op span { font-size: 10.5px; text-align: center; line-height: 1.3; }
.fsd-vista__op.on { border-color: var(--gold-1, #facc15); color: var(--text-1); box-shadow: inset 0 0 0 1px var(--gold-1, #facc15); }
.fsd-vista__b { width: 100%; padding: 9px 12px; border-radius: 8px; border: 1px solid var(--linha); background: var(--rs-hover); color: var(--text-2); font: 600 12px var(--rs-font); cursor: pointer; }
.fsd-vista__b:hover { color: var(--text-1); }

/* Menu da tubulação (botão direito na linha) */
.fsd-tmenu__cab { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 12px; font-family: var(--rs-font); }
.fsd-tmenu__cab b { font-size: 13px; color: var(--text-1); }
.fsd-tmenu__cab span { font-size: 11px; color: var(--text-3); font-family: var(--font-mono, monospace); }
.fsd-tmenu__dist { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; font: 500 12px var(--rs-font); color: var(--text-2); }
.fsd-tmenu__dist label { flex: 1; }
.fsd-tmenu__dist input { width: 90px; background: var(--bg-0); color: var(--text-1); border: 1px solid var(--linha); border-radius: 6px; padding: 7px 9px; font: 600 13px var(--font-mono, monospace); text-align: right; }
.fsd-tmenu__lista { display: flex; flex-direction: column; gap: 8px; }
.fsd-tmenu__b { display: flex; flex-direction: column; gap: 2px; text-align: left; padding: 10px 12px; border-radius: 9px; border: 1px solid var(--linha); background: var(--rs-hover); color: var(--text-2); cursor: pointer; font-family: var(--rs-font); }
.fsd-tmenu__b b { font-size: 12.5px; color: var(--text-1); font-weight: 700; }
.fsd-tmenu__b span { font-size: 11px; line-height: 1.4; }
.fsd-tmenu__b:hover { border-color: var(--gold-1, #facc15); }
.fsd-tmenu__bloco { display: flex; gap: 8px; align-items: center; margin-top: 10px; }
.fsd-tmenu__bloco[hidden] { display: none; }
.fsd-tmenu__bloco label { font: 500 12px var(--rs-font); color: var(--text-2); }
.fsd-tmenu__bloco select { flex: 1; background: var(--bg-0); color: var(--text-1); border: 1px solid var(--linha); border-radius: 6px; padding: 7px 9px; font: 500 12px var(--rs-font); }
.fsd-tmenu__ok { background: var(--gold-1, #facc15); color: #0f1117; border: 0; border-radius: 7px; padding: 8px 14px; font: 700 12px var(--rs-font); cursor: pointer; }
.fsd-tmenu__cotas { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--linha); }
.fsd-tmenu__cotas > span { display: block; font: 800 10.5px var(--rs-font); text-transform: uppercase; letter-spacing: .08em; color: var(--text-3); margin-bottom: 8px; }
.fsd-tmenu__cotas > div { display: flex; gap: 6px; flex-wrap: wrap; }
.fsd-tmenu__c { padding: 6px 11px; border-radius: 7px; border: 1px solid var(--linha); background: transparent; color: var(--text-2); font: 600 11.5px var(--rs-font); cursor: pointer; }
.fsd-tmenu__c.on { border-color: var(--gold-1, #facc15); color: var(--text-1); box-shadow: inset 0 0 0 1px var(--gold-1, #facc15); }

/* Tubulação nas propriedades do bloco */
.fsd-tubos { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--linha); }
.fsd-tubos__hd { font: 800 10.5px var(--rs-font); text-transform: uppercase; letter-spacing: .08em; color: var(--text-3); margin-bottom: 8px; }
.fsd-tubos__i { display: flex; align-items: center; gap: 8px; width: 100%; padding: 7px 9px; margin-bottom: 5px; border-radius: 7px; border: 1px solid var(--linha); background: var(--rs-hover); color: var(--text-2); cursor: pointer; font-family: var(--rs-font); }
.fsd-tubos__i:hover { border-color: var(--gold-1, #facc15); }
.fsd-tubos__cor { width: 12px; height: 3px; border-radius: 2px; flex-shrink: 0; }
.fsd-tubos__n { font-size: 11.5px; font-weight: 600; color: var(--text-1); }
.fsd-tubos__p { font-size: 10.5px; color: var(--text-3); }
.fsd-tubos__m { margin-left: auto; font: 600 11px var(--font-mono, monospace); color: var(--text-2); }
.fsd-tubos__vazio, .fsd-tubos__d { font: 400 11px/1.5 var(--rs-font); color: var(--text-3); }
.fsd-tubos__d { margin-top: 6px; }

/* ── [27/09] tenant na dica do usuario ────────────────────────────────
   Marcio: "ainda tem a engrenagem do tenant no menu, pode tirar ela" e "quero
   que o nome do tenant apareça quando passar o mouse em cima do nome do
   usuário". O rodapé do menu perde a caixa: só guarda o menu do usuário (que
   abre fixo embaixo do chip) e o nó oculto onde o swm-identity escreve a
   empresa. A empresa aparece na dica do chip, com o ícone da swm-icons. */
.fsd-sidebar #fsd-footer,
.fsd-shell[data-mini="1"] .fsd-sidebar #fsd-footer { padding: 0; border: 0; background: none; min-height: 0; gap: 0; }
.fsd-dica-empresa {
  position: fixed; z-index: 1350; display: flex; align-items: center; gap: 10px;
  max-width: 320px; padding: 9px 12px 9px 9px; border-radius: 10px; pointer-events: none;
  background: var(--bg-2); border: 1px solid var(--border-2); box-shadow: var(--rs-sombra);
  color: var(--text-1); font: 500 12.5px/1.3 var(--rs-font);
}
.fsd-dica-empresa[hidden] { display: none; }
.fsd-dica-empresa__ic {
  display: inline-grid; place-items: center; width: 28px; height: 28px; flex: none;
  border-radius: 8px; background: var(--gold-bg); color: var(--gold-1);
}
.fsd-dica-empresa__ic svg { width: 16px; height: 16px; }
.fsd-dica-empresa__txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.fsd-dica-empresa__txt small { font: 700 10px/1 var(--rs-font); letter-spacing: .08em; text-transform: uppercase; color: var(--text-2); }
.fsd-dica-empresa__txt b { font: 700 13px/1.25 var(--rs-font); color: var(--text-1); overflow-wrap: anywhere; }

.fsd-tmenu__b.perigo b { color: var(--red-1, #f87171); }
.fsd-tmenu__b.perigo:hover { border-color: var(--red-1, #f87171); }
.fsd-tubos__lig { margin-top: 8px; width: 100%; padding: 8px 10px; border-radius: 7px; border: 1px solid var(--linha); background: var(--rs-hover); color: var(--text-2); font: 600 11.5px var(--rs-font); cursor: pointer; }
.fsd-tubos__lig:hover { color: var(--text-1); border-color: var(--gold-1, #facc15); }

/* ── [15/10] Produto do catálogo (fsd-catalogo.js): painel de propriedades, seletor e Ações ── */
.fsd-prod { border-top: 1px solid var(--linha); padding-top: 8px; margin-top: 8px; display: flex; flex-direction: column; gap: 4px; }
.fsd-prod__hd {
  display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 2px;
  font: 700 9px/1 var(--rs-font); letter-spacing: .08em; text-transform: uppercase; color: var(--text-3);
}
.fsd-prod__selo {
  padding: 2px 7px; border-radius: 999px; font: 600 10px/1.3 var(--rs-font); letter-spacing: 0; text-transform: none;
  color: var(--gold-1); background: var(--gold-bg); border: 1px solid var(--gold-border);
}
.fsd-prod__selo.ok { color: var(--green); background: var(--green-bg); border-color: var(--green-border); }
.fsd-prod__pn { font: 700 12px/1.3 var(--font-mono, monospace); color: var(--text-1); overflow-wrap: anywhere; }
.fsd-prod__desc { font: 400 10.5px/1.45 var(--rs-font); color: var(--text-2); overflow-wrap: anywhere; }
.fsd-prod__meta { font: 500 10px/1.4 var(--rs-font); color: var(--text-3); }
.fsd-prod__b {
  width: 100%; margin-top: 4px; padding: 6px; cursor: pointer; border-radius: 6px;
  font: 600 10.5px var(--rs-font); color: var(--text-2); background: var(--rs-hover); border: 1px solid var(--border-2);
}
.fsd-prod__b:hover, .fsd-prod__b:focus-visible { color: var(--gold-1); border-color: var(--gold-border); outline: none; }
.fsd-prod__qtd { display: grid; grid-template-columns: 1fr 64px; gap: 6px; align-items: center; margin-top: 4px; font: 500 10.5px var(--rs-font); color: var(--text-2); }
.fsd-prod__qtd input {
  width: 100%; padding: 5px 7px; border-radius: 6px; border: 1px solid var(--border-2);
  background: var(--bg-0); color: var(--text-1); font: 600 11.5px/1 var(--font-mono, monospace); text-align: right; outline: none;
}
.fsd-prod__qtd input:focus { border-color: var(--gold-border); }

.fsd-cat { display: flex; flex-direction: column; gap: 10px; min-height: 0; }
.fsd-cat__topo { display: flex; flex-direction: column; gap: 8px; }
.fsd-cat__origem { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font: 500 12px var(--rs-font); color: var(--text-2); }
.fsd-cat__origem b { color: var(--text-1); }
.fsd-cat__rot { font: 700 9.5px/1 var(--rs-font); letter-spacing: .08em; text-transform: uppercase; color: var(--text-3); }
.fsd-cat__por { font: 500 11px var(--rs-font); color: var(--text-3); }
.fsd-cat__empresa, .fsd-cat__busca input[type=search] {
  height: 34px; padding: 0 10px; border-radius: 8px; border: 1px solid var(--border-2);
  background: var(--bg-0); color: var(--text-1); font: 500 13px var(--rs-font); outline: none;
}
.fsd-cat__empresa:focus, .fsd-cat__busca input[type=search]:focus { border-color: var(--gold-border); box-shadow: 0 0 0 3px var(--gold-bg); }
.fsd-cat__busca { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.fsd-cat__busca input[type=search] { flex: 1 1 260px; min-width: 0; }
.fsd-cat__filtro { display: inline-flex; align-items: center; gap: 6px; font: 500 12px var(--rs-font); color: var(--text-2); cursor: pointer; }
.fsd-cat__att, .fsd-cat__mini {
  padding: 4px 10px; border-radius: 6px; cursor: pointer; font: 600 11px var(--rs-font);
  color: var(--text-2); background: none; border: 1px solid var(--border-2);
}
.fsd-cat__att:hover, .fsd-cat__mini:hover { color: var(--gold-1); border-color: var(--gold-border); }
.fsd-cat__lista { display: flex; flex-direction: column; gap: 2px; max-height: 52vh; overflow-y: auto; border: 1px solid var(--border); border-radius: 8px; padding: 4px; }
.fsd-cat__item {
  display: grid; grid-template-columns: minmax(110px, 170px) 1fr; grid-template-rows: auto auto; column-gap: 12px; row-gap: 2px;
  padding: 7px 9px; text-align: left; cursor: pointer; border-radius: 6px; background: none; border: 1px solid transparent; color: var(--text-1);
}
.fsd-cat__item:hover, .fsd-cat__item:focus-visible { background: var(--gold-bg); border-color: var(--gold-border); outline: none; }
.fsd-cat__item.on { border-color: var(--green-border); background: var(--green-bg); }
.fsd-cat__item .fsd-cat__pn { grid-row: 1 / span 2; align-self: center; }
.fsd-cat__pn { font: 700 12px/1.3 var(--font-mono, monospace); color: var(--text-1); overflow-wrap: anywhere; }
.fsd-cat__desc { font: 400 12px/1.4 var(--rs-font); color: var(--text-2); }
.fsd-cat__meta { font: 500 10.5px/1.3 var(--rs-font); color: var(--text-3); }
.fsd-cat__vazio { padding: 28px 12px; text-align: center; font: 400 13px/1.5 var(--rs-font); color: var(--text-3); }
.fsd-cat__conta { font: 500 11px var(--rs-font); color: var(--text-3); text-align: right; }
.fsd-cat__resumo { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.fsd-cat__kpi { padding: 4px 10px; border-radius: 999px; font: 700 12px var(--rs-font); color: var(--green); background: var(--green-bg); border: 1px solid var(--green-border); }
.fsd-cat__kpi.alerta { color: var(--gold-1); background: var(--gold-bg); border-color: var(--gold-border); }
.fsd-cat__tab { display: flex; flex-direction: column; max-height: 48vh; overflow-y: auto; border: 1px solid var(--border); border-radius: 8px; }
.fsd-cat__lin {
  display: grid; grid-template-columns: 22px minmax(120px, 1fr) minmax(120px, 1.1fr) minmax(200px, 2fr) 44px; gap: 10px; align-items: center;
  padding: 7px 10px; border-bottom: 1px solid var(--border); font: 500 12px var(--rs-font); color: var(--text-1);
}
.fsd-cat__lin:last-child { border-bottom: 0; }
.fsd-cat__cab { position: sticky; top: 0; z-index: 1; background: var(--bg-2); font: 700 10px/1 var(--rs-font); letter-spacing: .06em; text-transform: uppercase; color: var(--text-3); }
.fsd-cat__prod { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.fsd-cat__prod .fsd-cat__desc { flex: 1 1 140px; font-size: 11.5px; }
.fsd-cat__q { font: 700 12px var(--font-mono, monospace); text-align: right; color: var(--text-2); }
.fsd-cat__aviso { flex-basis: 100%; font: 600 10.5px/1.3 var(--rs-font); color: var(--gold-1); }

/* ── [15/10] Montar central e PAD-5 (fsd-montagem.js, Fase 2): pop-up em abas, como o TIA ── */
.fsd-mt { display: flex; flex-direction: column; gap: 12px; min-height: 0; }
.fsd-mt__topo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.fsd-mt__tit b { font: 700 14px/1.3 var(--rs-font); color: var(--text-1); }
.fsd-mt__placar { display: flex; flex-wrap: wrap; gap: 6px; }
.fsd-mt__selo {
  display: inline-flex; align-items: center; padding: 3px 9px; border-radius: 999px; cursor: default; white-space: nowrap;
  font: 700 11px/1.3 var(--rs-font); color: var(--text-2); background: var(--rs-hover); border: 1px solid var(--border-2);
}
.fsd-mt__placar .fsd-mt__selo { cursor: pointer; }
.fsd-mt__selo.erro { color: var(--red); background: var(--red-bg); border-color: var(--red-border); }
.fsd-mt__selo.alerta { color: var(--gold-1); background: var(--gold-bg); border-color: var(--gold-border); }
.fsd-mt__selo.info { color: var(--blue); background: var(--blue-bg); border-color: var(--blue-border); }
.fsd-mt__selo.ok { color: var(--green); background: var(--green-bg); border-color: var(--green-border); }
.fsd-mt__selo.zero { color: var(--text-3); background: none; border-color: var(--border-2); }
.fsd-mt__abas { display: flex; flex-wrap: wrap; gap: 2px; padding: 3px; border-radius: 10px; background: var(--rs-hover); border: 1px solid var(--border); align-self: flex-start; }
.fsd-mt__aba {
  padding: 6px 12px; border-radius: 7px; border: 1px solid transparent; background: none; cursor: pointer;
  font: 600 12px/1.2 var(--rs-font); color: var(--text-2);
}
.fsd-mt__aba:hover, .fsd-mt__aba:focus-visible { color: var(--text-1); outline: none; border-color: var(--border-2); }
.fsd-mt__aba.on { color: var(--text-1); background: var(--bg-0); border-color: var(--border-2); box-shadow: 0 1px 2px rgba(0,0,0,.12); }
.fsd-mt__painel { min-height: 300px; max-height: 60vh; overflow-y: auto; }
.fsd-mt__grade { display: grid; grid-template-columns: minmax(220px, 300px) 1fr; gap: 16px; align-items: start; }
.fsd-mt__previa {
  display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 12px; border-radius: 10px;
  background: var(--bg-2); border: 1px solid var(--border);
}
.fsd-mt__previa svg { max-width: 100%; height: auto; }
.fsd-mt__col { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.fsd-mt__campo { display: flex; flex-direction: column; gap: 4px; font: 600 11px/1.2 var(--rs-font); color: var(--text-3); }
.fsd-mt__sel, .fsd-mt__qtd {
  height: 32px; padding: 0 9px; border-radius: 8px; border: 1px solid var(--border-2);
  background: var(--bg-0); color: var(--text-1); font: 500 12.5px var(--rs-font); outline: none; min-width: 0;
}
.fsd-mt__qtd { width: 76px; text-align: right; font-family: var(--font-mono, monospace); font-weight: 600; }
.fsd-mt__sel:focus, .fsd-mt__qtd:focus { border-color: var(--gold-border); box-shadow: 0 0 0 3px var(--gold-bg); }
.fsd-mt__sub { font: 700 9.5px/1 var(--rs-font); letter-spacing: .08em; text-transform: uppercase; color: var(--text-3); margin-top: 4px; }
.fsd-mt__nota { font: 400 11.5px/1.5 var(--rs-font); color: var(--text-3); }
.fsd-mt__lista { display: flex; flex-direction: column; gap: 4px; }
.fsd-mt__item, .fsd-mt__opc {
  display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px; text-align: left;
  border: 1px solid var(--border); background: var(--bg-0); color: var(--text-1);
}
.fsd-mt__opc { cursor: pointer; font: inherit; }
.fsd-mt__opc:hover:not(:disabled), .fsd-mt__opc:focus-visible { border-color: var(--gold-border); background: var(--gold-bg); outline: none; }
.fsd-mt__opc.off { opacity: .55; cursor: not-allowed; }
.fsd-mt__opc { flex-wrap: wrap; }
.fsd-mt__opc > span, .fsd-mt__opc > small { flex: 1 1 60%; }
.fsd-mt__itxt { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-width: 0; }
.fsd-mt__itxt span, .fsd-mt__opc span { font: 500 12px/1.4 var(--rs-font); color: var(--text-2); }
.fsd-mt__itxt small, .fsd-mt__opc small { font: 400 11px/1.4 var(--rs-font); color: var(--text-3); }
.fsd-mt__pn { font: 700 12px/1.3 var(--font-mono, monospace); color: var(--text-1); overflow-wrap: anywhere; }
.fsd-mt__mini, .fsd-mt__add {
  padding: 5px 11px; border-radius: 7px; cursor: pointer; font: 600 11.5px var(--rs-font);
  color: var(--text-2); background: none; border: 1px solid var(--border-2);
}
.fsd-mt__mini:hover, .fsd-mt__add:hover, .fsd-mt__mini:focus-visible, .fsd-mt__add:focus-visible { color: var(--gold-1); border-color: var(--gold-border); outline: none; }
.fsd-mt__add { align-self: flex-start; }
.fsd-mt__vazio { padding: 22px 12px; text-align: center; font: 400 12.5px/1.5 var(--rs-font); color: var(--text-3); border: 1px dashed var(--border-2); border-radius: 8px; }
.fsd-mt__tab { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.fsd-mt__lin {
  display: grid; grid-template-columns: minmax(150px, 2fr) minmax(70px, 1fr) minmax(90px, 1.2fr) minmax(80px, .9fr); gap: 10px; align-items: center;
  padding: 7px 10px; border-bottom: 1px solid var(--border); font: 500 12px/1.4 var(--rs-font); color: var(--text-1);
}
.fsd-mt__lin:last-child { border-bottom: 0; }
.fsd-mt__cab { background: var(--bg-2); font: 700 10px/1 var(--rs-font); letter-spacing: .06em; text-transform: uppercase; color: var(--text-3); }
.fsd-mt__tot { background: var(--bg-2); font-weight: 700; }
.fsd-mt__num { font-family: var(--font-mono, monospace); text-align: right; color: var(--text-2); }
.fsd-mt__lin .fsd-mt__selo { justify-self: start; }
.fsd-mt__crit { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; align-items: end; }
.fsd-mt__crit .fsd-mt__qtd { width: 100%; }
.fsd-mt__crit .fsd-mt__campo > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fsd-mt__tab--ped .fsd-mt__lin { grid-template-columns: minmax(120px, 160px) minmax(200px, 1fr) 56px 120px; }
.fsd-mt__res {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; padding: 10px 12px; border-radius: 8px;
  background: var(--bg-2); border: 1px solid var(--border); font: 500 12px/1.5 var(--rs-font); color: var(--text-2);
}
.fsd-mt__res b { font: 800 16px/1 var(--rs-font); color: var(--text-1); }
.fsd-mt__msg {
  display: flex; flex-direction: column; gap: 3px; padding: 9px 11px; border-radius: 8px;
  border: 1px solid var(--border); border-left-width: 3px; background: var(--bg-0);
}
.fsd-mt__msg.erro { border-left-color: var(--red); }
.fsd-mt__msg.alerta { border-left-color: var(--gold-1); }
.fsd-mt__msg.info { border-left-color: var(--blue); }
.fsd-mt__msg .fsd-mt__selo { align-self: flex-start; }
.fsd-mt__msg b { font: 600 12.5px/1.4 var(--rs-font); color: var(--text-1); }
.fsd-mt__msg span { font: 400 12px/1.45 var(--rs-font); color: var(--text-2); }
.fsd-mt__msg small { font: 400 11px/1.4 var(--rs-font); color: var(--text-3); }
@media (max-width: 720px) {
  .fsd-mt__grade { grid-template-columns: 1fr; }
  .fsd-mt__lin { grid-template-columns: 1fr 70px 80px; }
  .fsd-mt__lin > :nth-child(4) { grid-column: 1 / -1; }
}

/* ── [15/10] Lista de material e conciliação (fsd-lista.js, Fase 3) ── */
.fsd-ls__tab .fsd-mt__lin { grid-template-columns: minmax(110px, 150px) minmax(220px, 1fr) 60px 110px 110px; }
.fsd-ls__tab4 .fsd-mt__lin { grid-template-columns: minmax(110px, 150px) minmax(220px, 1fr) 60px 110px; }
.fsd-ls__tab5 .fsd-mt__lin { grid-template-columns: minmax(120px, 160px) minmax(240px, 1fr) 80px 90px 110px; }
.fsd-ls__tab6 .fsd-mt__lin { grid-template-columns: minmax(110px, 150px) minmax(200px, 1fr) 72px 80px 80px 130px; }
.fsd-ls__prod { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-width: 0; }
.fsd-ls__prod > span { flex: 1 1 160px; min-width: 0; font: 500 12px/1.4 var(--rs-font); color: var(--text-2); }
.fsd-ls__barra { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-bottom: 10px; }
.fsd-ls__aviso { padding: 9px 11px; border-radius: 8px; border: 1px solid var(--gold-border); background: var(--gold-bg); color: var(--gold-1); font: 600 12px/1.45 var(--rs-font); }
.fsd-ls__nota { font: 400 11.5px/1.5 var(--rs-font); color: var(--text-3); }
.fsd-ls__col { display: flex; flex-direction: column; gap: 8px; }
.fsd-mt__num.fsd-ls__dif { color: var(--red); font-weight: 700; }
.fsd-mt__painel > .fsd-mt__sub { margin: 10px 0 4px; }
.fsd-mt__painel > .fsd-mt__nota { margin-top: 8px; }
.fsd-mt__painel > .fsd-mt__placar { margin-bottom: 10px; }
@media (max-width: 720px) {
  .fsd-ls__tab .fsd-mt__lin, .fsd-ls__tab4 .fsd-mt__lin, .fsd-ls__tab5 .fsd-mt__lin, .fsd-ls__tab6 .fsd-mt__lin { grid-template-columns: 1fr 64px; }
  .fsd-ls__tab .fsd-mt__lin > :nth-child(n+4), .fsd-ls__tab6 .fsd-mt__lin > :nth-child(n+5) { grid-column: 1 / -1; }
}
.fsd-ls__reserva { max-width: 220px; margin-bottom: 10px; }
.fsd-ls__tab .fsd-mt__lin > :nth-child(2), .fsd-ls__tab4 .fsd-mt__lin > :nth-child(2), .fsd-ls__tab6 .fsd-mt__lin > :nth-child(2) {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

/* ── [15/10] Laços e circuitos (fsd-lacos.js, Fase 4) ── */
.fsd-lc__tab6 .fsd-mt__lin { grid-template-columns: minmax(150px, 1.4fr) 100px minmax(130px, 1fr) 110px 72px 92px; }
.fsd-lc__tab7 .fsd-mt__lin { grid-template-columns: minmax(150px, 1.4fr) 80px 104px 110px 72px 64px 92px; }
.fsd-lc__tab4 .fsd-mt__lin { grid-template-columns: minmax(150px, 1.4fr) minmax(130px, 1fr) 110px 110px; }
.fsd-lc .fsd-mt__lista { display: flex; flex-direction: column; gap: 8px; }
.fsd-lc .fsd-mt__placar .fsd-mt__selo { cursor: pointer; }
@media (max-width: 720px) {
  .fsd-lc__tab6 .fsd-mt__lin, .fsd-lc__tab7 .fsd-mt__lin, .fsd-lc__tab4 .fsd-mt__lin { grid-template-columns: 1fr 96px; }
}

/* ── [15/10] Outras famílias (fsd-familias.js) e Siemens × Notifier (fsd-comparativo.js), Fase 5 ── */
.fsd-fm__tab .fsd-mt__lin { grid-template-columns: minmax(130px, 170px) minmax(220px, 1fr) minmax(150px, 220px); }
.fsd-cp__tab6 .fsd-mt__lin { grid-template-columns: minmax(130px, 1fr) 96px 96px 130px 130px minmax(150px, 1fr); }
.fsd-cp__tab5 .fsd-mt__lin { grid-template-columns: 110px minmax(130px, 170px) 64px minmax(180px, 1fr) minmax(200px, 1.3fr); }
.fsd-cp__tab5n .fsd-mt__lin { grid-template-columns: 110px minmax(120px, 150px) minmax(200px, 1fr) 64px minmax(140px, 220px); }
.fsd-cp__tab3 .fsd-mt__lin { grid-template-columns: minmax(150px, 200px) minmax(260px, 1fr) minmax(150px, 220px); }
.fsd-cp__tab2 .fsd-mt__lin { grid-template-columns: minmax(200px, 1fr) 80px; }
.fsd-fm__outra { margin-top: 6px; }
@media (max-width: 720px) {
  .fsd-fm__tab .fsd-mt__lin, .fsd-cp__tab6 .fsd-mt__lin, .fsd-cp__tab5 .fsd-mt__lin, .fsd-cp__tab5n .fsd-mt__lin, .fsd-cp__tab3 .fsd-mt__lin { grid-template-columns: 1fr 1fr; }
}

/* ── [16/10] Montar CLP (fsd-clp.js, Fase 5b): vista da estação como no TIA ── */
.fsd-clp__faixa { display: flex; flex-wrap: wrap; align-items: stretch; gap: 3px; padding: 10px; border-radius: 8px; background: var(--bg-2); border: 1px solid var(--border); }
.fsd-clp__mod { display: flex; flex-direction: column; justify-content: space-between; gap: 2px; width: 58px; min-height: 76px; padding: 6px 5px; border-radius: 4px;
  border: 1px solid var(--border-2); background: var(--bg-0); font: 600 10.5px/1.2 var(--rs-font); color: var(--text-1); }
.fsd-clp__mod small { font: 500 9.5px/1.2 var(--rs-font); color: var(--text-3); }
.fsd-clp__mod.cpu, .fsd-clp__mod.ps { background: var(--blue-bg); border-color: var(--blue-border); }
.fsd-clp__mod.im { background: var(--bg-2); border-color: var(--text-3); }
.fsd-clp__mod.ai { background: var(--gold-bg); border-color: var(--gold-border); }
.fsd-clp__mod.di { background: var(--green-bg); border-color: var(--green-border); }
.fsd-clp__mod.dq { background: var(--red-bg); border-color: var(--red-border); }
.fsd-clp__mod.par { opacity: .78; }
.fsd-clp__sep { width: 10px; }
.fsd-clp__tab .fsd-mt__lin { grid-template-columns: minmax(130px, 1fr) 120px minmax(230px, 1.4fr) 80px minmax(150px, 1fr); }
.fsd-clp__banco { display: flex; align-items: center; gap: 6px; }
.fsd-clp__banco .fsd-mt__qtd { width: 56px !important; }
.fsd-clp__banco span { font: 500 11.5px var(--rs-font); color: var(--text-3); white-space: nowrap; }
.fsd-clp__sit { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
@media (max-width: 720px) { .fsd-clp__tab .fsd-mt__lin { grid-template-columns: 1fr 1fr; } }
