/* LunaOps · LunaDash — layout do app LunaDash (grafite + acento índigo) dentro do painel.
   Tudo escopado em `.ldn`: não toca em nenhuma outra tela do LunaOps. Tokens copiados de
   ~/lunadash/app/comum/orbita.css (escuro) e do tema claro do mesmo ficheiro. */
@font-face { font-family:"LDN Unbounded"; src:url("/dash/comum/fontes/unbounded-var.woff2") format("woff2"); font-weight:400 700; font-display:swap; }
@font-face { font-family:"LDN Manrope"; src:url("/dash/comum/fontes/manrope-var.woff2") format("woff2"); font-weight:400 800; font-display:swap; }
@font-face { font-family:"LDN Mono"; src:url("/dash/comum/fontes/martian-mono-400.woff2") format("woff2"); font-weight:400; font-display:swap; }

.ldn {
  --ldn-fundo:#08090D; --ldn-sup:#101218; --ldn-sup2:#161922; --ldn-linha:#1E212B; --ldn-linha-forte:#727892;
  --ldn-tinta:#E7E9F0; --ldn-tinta2:#8B90A0; --ldn-acento:#6E7BFF; --ldn-acento-solido:#4A56DB; --ldn-acento-suave:rgba(110,123,255,.14);
  --ldn-ok:#2FCB92; --ldn-aviso:#E0A93E; --ldn-aviso-suave:rgba(224,169,62,.10); --ldn-erro:#F26D6D;
  --ldn-display:"LDN Unbounded","LDN Manrope",system-ui,sans-serif;
  --ldn-texto:"LDN Manrope",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --ldn-mono:"LDN Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
:root[data-tema="claro"] .ldn {
  --ldn-fundo:#F4F5FB; --ldn-sup:#FFFFFF; --ldn-sup2:#EEF0F8; --ldn-linha:#DDE0EF; --ldn-linha-forte:#858BAE;
  --ldn-tinta:#0C1230; --ldn-tinta2:#525A80; --ldn-acento:#4452D0; --ldn-acento-solido:#4452D0; --ldn-acento-suave:#E8EAFF;
  --ldn-ok:#1D7A5A; --ldn-aviso:#8F5B05; --ldn-aviso-suave:#FFF5E1; --ldn-erro:#B42318;
}

.vista.ldn.on { display:flex; }
.ldn { flex-direction:column; gap:22px; background:var(--ldn-fundo); color:var(--ldn-tinta); font-family:var(--ldn-texto);
  border:1px solid var(--ldn-linha); border-radius:18px; padding:28px clamp(16px,2.4vw,32px) 36px; }
.ldn :is(h1,h2,h3,p) { margin:0; }
.ldn h1 { font:600 26px/1.15 var(--ldn-display); letter-spacing:-.01em; }
.ldn h2 { font:600 17px/1.25 var(--ldn-display); letter-spacing:-.005em; color:var(--ldn-tinta); text-wrap:balance; }
.ldn h3 { font:700 12px/1.2 var(--ldn-texto); letter-spacing:.08em; text-transform:uppercase; color:var(--ldn-tinta2); display:flex; gap:8px; align-items:center; }
.ldn h3 span { font:400 10px var(--ldn-mono); letter-spacing:.04em; text-transform:none; color:var(--ldn-acento); }
.ldn p { color:var(--ldn-tinta2); font-size:13.5px; line-height:1.5; }
.ldn :focus-visible { outline:2px solid var(--ldn-acento); outline-offset:2px; }

/* topo */
.ldn-topo { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px 24px; }
.ldn-titulo p { margin-top:6px; max-width:62ch; }
.ldn-controles { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.ldn-lojas { display:flex; gap:4px; padding:4px; background:var(--ldn-sup); border:1px solid var(--ldn-linha); border-radius:12px; }
.ldn-lojas:empty { display:none; }
.ldn-chip { font:600 13px var(--ldn-texto); color:var(--ldn-tinta2); background:transparent; border:0; border-radius:9px; padding:8px 14px; cursor:pointer; transition:background .16s ease,color .16s ease; }
.ldn-chip:hover { color:var(--ldn-tinta); background:var(--ldn-sup2); }
.ldn-chip[aria-pressed="true"] { background:var(--ldn-acento-solido); color:#fff; }
.ldn-sel { display:flex; align-items:center; gap:8px; font:600 11px var(--ldn-texto); letter-spacing:.06em; text-transform:uppercase; color:var(--ldn-tinta2); }
.ldn-com-chips .ldn-sel { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.ldn-sel select, .ldn-periodo { font:600 13px var(--ldn-texto); color:var(--ldn-tinta); background:var(--ldn-sup); border:1px solid var(--ldn-linha); border-radius:10px; padding:9px 12px; min-height:40px; cursor:pointer; }
.ldn-periodo:hover { border-color:var(--ldn-linha-forte); }
.ldn-janela-linha { margin-top:-10px !important; font:12px var(--ldn-mono) !important; color:var(--ldn-tinta2); }
.ldn-janela-linha strong { color:var(--ldn-acento); font-weight:400; }
.ldn-estado { display:flex; flex-direction:column; gap:6px; padding:28px; border:1px dashed var(--ldn-linha-forte); border-radius:14px; color:var(--ldn-tinta2); }
.ldn-estado strong { color:var(--ldn-tinta); }
.ldn-estado[hidden], .ldn #ldConteudo[hidden] { display:none; }
.ldn #ldConteudo { display:flex; flex-direction:column; gap:26px; }
.ldn .janela-nota { margin:0; padding:10px 14px; border-radius:10px; background:var(--ldn-aviso-suave); color:var(--ldn-aviso); font-size:13px; }

/* alerta de custo */
.ldn-alerta { display:flex; align-items:center; gap:14px; padding:14px 16px; border:1px solid color-mix(in srgb,var(--ldn-aviso) 45%,transparent); background:var(--ldn-aviso-suave); border-radius:12px; }
.ldn-alerta i { flex:none; width:24px; height:24px; border-radius:50%; display:grid; place-items:center; font:700 13px var(--ldn-texto); font-style:normal; color:var(--ldn-fundo); background:var(--ldn-aviso); }
.ldn-alerta p { flex:1; color:var(--ldn-tinta); }
.ldn-alerta p strong { color:var(--ldn-aviso); }
.ldn-btn { flex:none; font:700 13px var(--ldn-texto); color:#fff; background:var(--ldn-acento-solido); border:0; border-radius:10px; padding:10px 16px; cursor:pointer; transition:transform .16s cubic-bezier(.23,1,.32,1),filter .16s ease; }
.ldn-btn:hover { filter:brightness(1.12); }
.ldn-btn:active { transform:scale(.97); }

/* blocos de cartões */
.ldn-bloco { display:flex; flex-direction:column; gap:6px; }
.ldn-bloco > p { margin-bottom:8px; }
.ldn-cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.ldn-cards-6 { grid-template-columns:repeat(6,minmax(0,1fr)); }
.ldn-card { display:flex; flex-direction:column; gap:8px; min-height:118px; padding:16px 18px; background:var(--ldn-sup); border:1px solid var(--ldn-linha); border-radius:14px; }
.ldn-card > span { font:700 11px/1.3 var(--ldn-texto); letter-spacing:.08em; text-transform:uppercase; color:var(--ldn-tinta2); }
.ldn-card > strong { font:600 24px/1.1 var(--ldn-display); font-variant-numeric:tabular-nums; color:var(--ldn-tinta); letter-spacing:-.01em; overflow-wrap:anywhere; }
.ldn-card > small { margin-top:auto; font-size:12px; line-height:1.45; color:var(--ldn-tinta2); }
.ldn-card.destaque { border-color:color-mix(in srgb,var(--ldn-acento) 55%,var(--ldn-linha)); background:linear-gradient(180deg,var(--ldn-acento-suave),var(--ldn-sup) 70%); }
.ldn-card.destaque > strong { color:var(--ldn-ok); }
.ldn-card.ruim > strong { color:var(--ldn-erro); }
.ldn-cards-6 .ldn-card > strong { font-size:clamp(16px,1.35vw,20px); white-space:nowrap; overflow-wrap:normal; }
.ldn-card.aviso > strong { color:var(--ldn-aviso); }
.ldn-card.aviso { border-color:color-mix(in srgb,var(--ldn-aviso) 40%,var(--ldn-linha)); }

/* painéis */
.ldn-painel { display:flex; flex-direction:column; gap:16px; padding:20px; background:var(--ldn-sup); border:1px solid var(--ldn-linha); border-radius:16px; min-width:0; }
.ldn-painel > header { display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:12px 20px; }
.ldn-painel > header p { margin-top:5px; max-width:70ch; }
.ldn-dupla { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:16px; }
.ldn-dupla-fim { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); }
.ldn-vazio { padding:18px; border:1px dashed var(--ldn-linha); border-radius:12px; font-size:13px; }
.ldn-salvo { font:10px var(--ldn-mono); letter-spacing:.06em; color:var(--ldn-acento); padding:6px 10px; border:1px solid var(--ldn-linha); border-radius:999px; }

/* custo do produto — o campo em % é a peça principal */
.ldn-custo { border-color:color-mix(in srgb,var(--ldn-acento) 40%,var(--ldn-linha)); }
.ldn-custo-grade { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr); gap:16px; }
.ldn-custo-grade > div { display:flex; flex-direction:column; gap:10px; padding:16px; border-radius:12px; background:var(--ldn-sup2); border:1px solid var(--ldn-linha); min-width:0; }
.ldn-custo-reguas > p { font-size:12.5px; }
.ldn-campo { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.ldn-campo > span:first-child { display:flex; flex-direction:column; gap:2px; min-width:0; }
.ldn-campo strong { font:700 14px var(--ldn-texto); color:var(--ldn-tinta); }
.ldn-campo small { font-size:12px; color:var(--ldn-tinta2); }
.ldn-input { display:flex; align-items:center; gap:6px; flex:none; background:var(--ldn-fundo); border:1px solid var(--ldn-linha-forte); border-radius:10px; padding:0 10px; transition:border-color .16s ease; }
.ldn-input:focus-within { border-color:var(--ldn-acento); }
.ldn-input input { width:84px; min-height:40px; border:0; outline:0; background:transparent; color:var(--ldn-tinta); font:600 15px var(--ldn-texto); text-align:right; font-variant-numeric:tabular-nums; }
.ldn-input b { font:400 11px var(--ldn-mono); color:var(--ldn-tinta2); }
.ldn-campo-grande { flex-wrap:wrap; }
.ldn-campo-grande strong { font:600 17px var(--ldn-display); }
.ldn-campo-grande .ldn-input { padding:0 14px; border-color:var(--ldn-acento); }
.ldn-campo-grande .ldn-input input { width:96px; min-height:54px; font:600 28px var(--ldn-display); }
.ldn-campo-grande .ldn-input b { font:600 20px var(--ldn-display); color:var(--ldn-acento); }
.ldn-exemplo { color:var(--ldn-tinta) !important; font-size:13px !important; }
.ldn-cobertura { font-size:12.5px !important; }
.ldn-fonte { display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-top:1px solid var(--ldn-linha); }
.ldn-fonte:first-of-type { border-top:0; }
.ldn-fonte span { display:flex; flex-direction:column; gap:2px; min-width:0; }
.ldn-fonte span:last-child { align-items:flex-end; text-align:right; }
.ldn-fonte strong { font:600 13px var(--ldn-texto); color:var(--ldn-tinta); }
.ldn-fonte small, .ldn-fonte em { font:400 10.5px var(--ldn-mono); font-style:normal; color:var(--ldn-tinta2); overflow-wrap:anywhere; }
.ldn-fonte b { font:600 14px var(--ldn-texto); font-variant-numeric:tabular-nums; }
.ldn-fonte.estimado b { color:var(--ldn-aviso); }

/* funil */
.ldn-funil { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.ldn-funil li { display:grid; grid-template-columns:minmax(150px,1fr) minmax(0,1.3fr); grid-template-rows:auto auto; column-gap:14px; row-gap:3px; align-items:center; }
.ldn-funil-rot { display:flex; align-items:center; gap:10px; grid-row:span 2; }
.ldn-funil-rot span { width:24px; height:24px; flex:none; display:grid; place-items:center; border-radius:50%; border:1px solid var(--ldn-linha-forte); font:600 11px var(--ldn-texto); color:var(--ldn-tinta2); }
.ldn-funil-rot strong { font:600 13.5px var(--ldn-texto); }
.ldn-funil-rot em { margin-left:auto; font:600 14px var(--ldn-texto); font-style:normal; font-variant-numeric:tabular-nums; }
.ldn-funil small { font:400 10.5px var(--ldn-mono); color:var(--ldn-tinta2); }
.ldn-trilho { height:10px; background:var(--ldn-sup2); border-radius:999px; overflow:hidden; }
.ldn-trilho i { display:block; height:100%; background:var(--ldn-acento); border-radius:999px; transition:width .5s cubic-bezier(.23,1,.32,1); }
.ldn-funil-final { font-size:13px; }
.ldn-funil-final strong { color:var(--ldn-ok); font:600 16px var(--ldn-display); margin-left:6px; }

/* evolução */
.ldn-grafico { width:100%; height:auto; display:block; overflow:visible; }
.ldn-grafico rect { fill:var(--ldn-acento); opacity:.9; transition:opacity .16s ease; }
.ldn-grafico g:hover rect { opacity:1; fill:var(--ldn-ok); }
.ldn-grafico line { stroke:var(--ldn-linha-forte); stroke-width:1; }
.ldn-grafico line.guia { stroke:var(--ldn-linha); stroke-dasharray:3 4; }
.ldn-grafico text { fill:var(--ldn-tinta2); font:10px var(--ldn-mono); }
.ldn-grafico-nota { font-size:12px !important; }

/* tabela de produtos */
.ldn-busca { display:flex; align-items:center; gap:8px; font:700 11px var(--ldn-texto); letter-spacing:.06em; text-transform:uppercase; color:var(--ldn-tinta2); }
.ldn-busca input { min-height:38px; width:220px; max-width:60vw; padding:0 12px; border:1px solid var(--ldn-linha); border-radius:10px; background:var(--ldn-fundo); color:var(--ldn-tinta); font:500 13px var(--ldn-texto); text-transform:none; letter-spacing:0; }
.ldn-tabela-caixa { overflow-x:auto; border:1px solid var(--ldn-linha); border-radius:12px; }
.ldn-tabela { width:100%; border-collapse:collapse; font-size:13px; min-width:720px; }
.ldn-tabela th { text-align:left; font:700 10.5px var(--ldn-texto); letter-spacing:.08em; text-transform:uppercase; color:var(--ldn-tinta2); padding:12px 14px; background:var(--ldn-sup2); border-bottom:1px solid var(--ldn-linha); white-space:nowrap; }
.ldn-tabela td { padding:11px 14px; border-bottom:1px solid var(--ldn-linha); vertical-align:middle; color:var(--ldn-tinta); }
.ldn-tabela tr:last-child td { border-bottom:0; }
.ldn-tabela tbody tr:hover td { background:color-mix(in srgb,var(--ldn-sup2) 60%,transparent); }
.ldn-tabela .num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.ldn-tabela .pos { color:var(--ldn-tinta2); font:400 11px var(--ldn-mono); width:28px; }
.ldn-tabela td strong { display:block; font-weight:600; }
.ldn-origem { display:inline-flex; align-items:center; gap:6px; margin-top:3px; font:400 10.5px var(--ldn-mono); color:var(--ldn-tinta2); }
.ldn-origem::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--ldn-linha-forte); }
.ldn-origem.direto::before { background:var(--ldn-ok); }
.ldn-origem.padrao::before { background:var(--ldn-acento); }
.ldn-origem.falta { color:var(--ldn-aviso); }
.ldn-origem.falta::before { background:var(--ldn-aviso); }
.ldn-part { display:inline-block; width:70px; height:6px; margin-right:8px; vertical-align:middle; border-radius:999px; background:var(--ldn-sup2); overflow:hidden; }
.ldn-part i { display:block; height:100%; background:var(--ldn-acento); }
.ldn-tabela td em { font:400 11px var(--ldn-mono); font-style:normal; color:var(--ldn-tinta2); }
.ldn-input-linha input { width:72px; min-height:34px; font-size:13px; }

/* cascata + diagnóstico */
.ldn-cascata { display:flex; flex-direction:column; gap:10px; }
.ldn-degrau { display:grid; grid-template-columns:130px minmax(0,1fr) 120px; gap:12px; align-items:center; font-size:13px; }
.ldn-degrau > span { color:var(--ldn-tinta2); }
.ldn-degrau > strong { text-align:right; font-weight:600; font-variant-numeric:tabular-nums; }
.ldn-degrau.custo .ldn-trilho i { background:var(--ldn-linha-forte); }
.ldn-degrau.midia .ldn-trilho i { background:var(--ldn-aviso); }
.ldn-degrau.resultado .ldn-trilho i { background:var(--ldn-ok); }
.ldn-degrau.resultado > strong { color:var(--ldn-ok); }
.ldn-degrau.indefinido .ldn-trilho i { background:transparent; border:1px dashed var(--ldn-linha-forte); }
.ldn-diag header h2 { font-size:15px; }
.ldn-aviso { display:flex; gap:10px; padding:12px 0; border-top:1px solid var(--ldn-linha); }
.ldn-aviso > i { flex:none; width:8px; height:8px; margin-top:6px; border-radius:50%; background:var(--ldn-aviso); }
.ldn-aviso.erro > i { background:var(--ldn-erro); }
.ldn-aviso.ok > i { background:var(--ldn-ok); }
.ldn-aviso strong { font:600 13px var(--ldn-texto); }
.ldn-aviso p { font-size:12.5px; margin-top:3px; }
.ldn-aviso small { display:block; margin-top:5px; font-size:11.5px; color:var(--ldn-acento); }

@media (max-width:1180px) {
  .ldn-cards-6 { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .ldn-custo-grade { grid-template-columns:1fr 1fr; }
  .ldn-custo-pct { grid-column:1 / -1; }
}
@media (max-width:900px) {
  .ldn-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ldn-dupla, .ldn-dupla-fim, .ldn-custo-grade { grid-template-columns:1fr; }
}
@media (max-width:520px) {
  .ldn { padding:20px 14px 28px; border-radius:14px; }
  .ldn-cards, .ldn-cards-6 { grid-template-columns:1fr 1fr; gap:8px; }
  .ldn-card { min-height:104px; padding:12px; }
  .ldn-card > strong { font-size:19px; }
  .ldn-alerta { flex-wrap:wrap; align-items:flex-start; }
  .ldn-alerta p { flex:1 1 calc(100% - 40px); }
  .ldn-alerta .ldn-btn { flex:1 1 100%; }
  .ldn-funil li { grid-template-columns:1fr; }
  .ldn-degrau { grid-template-columns:90px minmax(0,1fr) 96px; }
}
@media (prefers-reduced-motion:reduce) {
  .ldn * { transition:none !important; }
}

/* O layout antigo estilizava estes contentores pelo id (sistema-v2.css: #ldConfig em grelha de 3,
   #ldProdutos com borda e margem). No layout novo eles são só invólucros. */
.ldn #ldConfig { display:block; margin:0; gap:0; }
.ldn #ldProdutos { margin:0; border:0; overflow:visible; max-width:none; }
