/* ═══════════════════════════════════════════════════════════════════════════
   MÓDULO LEVANTAMENTO — mesma linguagem visual da casa (pele-tech).
   Tokens, elevações, malha, movimento e severidade copiados de pele-tech.css
   (as páginas do módulo são standalone e não carregam sead.css, então os
   tokens vivem aqui — MESMOS valores; divergiu de lá, corrige aqui).
   Tema: claro por padrão; html[data-theme="dark"] segue o padrão dos painéis
   (as páginas setam via prefers-color-scheme no boot).
   ═══════════════════════════════════════════════════════════════════════════ */

:root{
  --bg:#eef2f7; --surface:#ffffff; --surface2:#f4f7fb; --surface3:#e7edf5;
  --border:rgba(15,30,50,.10); --border-strong:rgba(15,30,50,.20);
  --text:#0d1520; --muted:#47586d; --faint:#64748b;
  --blue:#0b6fa4; --blue-bg:rgba(11,111,164,.08); --blue-bd:rgba(11,111,164,.30);
  --accent:#0891b2; --accent-2:#6366f1;
  --red:#c3283c; --red-bg:rgba(195,40,60,.07); --red-bd:rgba(195,40,60,.30);
  --amber:#c2410c; --amber-bg:rgba(194,65,12,.08); --amber-bd:rgba(194,65,12,.30);
  --green:#0f7a43; --green-bg:rgba(15,122,67,.08); --green-bd:rgba(15,122,67,.30);
  --radius:14px; --radius-sm:9px;
  --on-primary:#fff; --primary-hover:#0a5f8c;
  --malha:rgba(15,30,50,.04);
  --glow:0 0 0 1px rgba(8,145,178,.28),0 0 22px -6px rgba(8,145,178,.45);
  --elev-1:0 1px 2px rgba(13,21,32,.06),0 2px 8px -2px rgba(13,21,32,.08);
  --elev-2:0 2px 6px rgba(13,21,32,.08),0 12px 28px -8px rgba(13,21,32,.16);
  --elev-3:0 8px 20px rgba(13,21,32,.10),0 30px 60px -20px rgba(13,21,32,.28);
  --fx-a:#0b6fa4; --fx-b:#0f7a6b; --fx-c:#6366f1; --fx-d:#c2410c; --fx-e:#a8306b;
  --t-xs:.72rem; --t-sm:.8rem; --t-md:.875rem; --t-lg:1rem; --t-xl:1.4rem; --t-hero:2.1rem;
  --mov-rapido:140ms; --mov-medio:260ms; --mov-lento:520ms;
  --easing:cubic-bezier(.22,1,.36,1);
}
html[data-theme="dark"]{
  --bg:#070b12; --surface:#0e141f; --surface2:#131b28; --surface3:#1b2534;
  --border:rgba(125,170,220,.10); --border-strong:rgba(125,170,220,.22);
  --text:#e6edf7; --muted:#97a8bd; --faint:#7286a0;
  --blue:#38bdf8; --blue-bg:rgba(56,189,248,.10); --blue-bd:rgba(56,189,248,.32);
  --accent:#22d3ee; --accent-2:#818cf8;
  --red:#ff5d73; --red-bg:rgba(255,93,115,.10); --red-bd:rgba(255,93,115,.34);
  --amber:#fbbf3c; --amber-bg:rgba(251,191,60,.10); --amber-bd:rgba(251,191,60,.32);
  --green:#34e0a1; --green-bg:rgba(52,224,161,.10); --green-bd:rgba(52,224,161,.32);
  --on-primary:#04121a; --primary-hover:#5cc9fa;
  --malha:rgba(125,170,220,.05);
  --glow:0 0 0 1px rgba(34,211,238,.30),0 0 26px -6px rgba(34,211,238,.55);
  --elev-1:0 1px 2px rgba(0,0,0,.40);
  --elev-2:0 4px 12px rgba(0,0,0,.45),0 18px 40px -18px rgba(0,0,0,.70);
  --elev-3:0 10px 30px rgba(0,0,0,.55),0 40px 80px -30px rgba(0,0,0,.85);
  --fx-a:#38bdf8; --fx-b:#34e0a1; --fx-c:#818cf8; --fx-d:#fbbf3c; --fx-e:#f472b6;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg) linear-gradient(var(--malha) 1px,transparent 1px);
  background-image:linear-gradient(var(--malha) 1px,transparent 1px),linear-gradient(90deg,var(--malha) 1px,transparent 1px);
  background-size:44px 44px,44px 44px;
  color:var(--text);
  font:var(--t-md)/1.55 -apple-system,"Segoe UI",Inter,sans-serif;
}

.lv-wrap{max-width:1020px;margin:0 auto;padding:34px 22px 90px;position:relative;z-index:1}

/* ── Constelação de fundo (levantamento-fx) — atrás de tudo, sem clique ── */
.lv-fx{position:fixed;inset:0;z-index:0;opacity:.45}
html[data-theme="dark"] .lv-fx{opacity:.7}
.lv-auth-card{z-index:1}

/* ── Cabeçalho ── */
.lv-produto{
  font-size:var(--t-xs);letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent);font-weight:700;margin:0 0 6px;
  display:flex;align-items:center;gap:8px;
}
.lv-produto::before{content:'';width:22px;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:2px}
.lv-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:4px}
.lv-head h1{font-size:var(--t-xl);font-weight:600;letter-spacing:-.02em;margin:0}
.lv-sub{color:var(--muted);margin:0 0 20px;max-width:72ch;font-size:var(--t-md)}
.lv-userbar{margin-left:auto;font-size:var(--t-sm);color:var(--faint);display:flex;align-items:center;gap:10px}
.lv-userbar a{color:var(--accent);cursor:pointer;text-decoration:none}
.lv-userbar a:hover{text-decoration:underline}
.lv-tema{
  border:1px solid var(--border-strong);background:var(--surface);color:var(--muted);
  font:inherit;font-size:var(--t-xs);font-weight:700;border-radius:999px;
  padding:4px 12px;cursor:pointer;letter-spacing:.04em;
  transition:color var(--mov-rapido) var(--easing),border-color var(--mov-rapido) var(--easing);
}
.lv-tema:hover{color:var(--accent);border-color:var(--accent)}

/* ── Progresso — o número é o herói (T4) ── */
.lv-progress{
  display:flex;align-items:center;gap:16px;
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);padding:16px 20px;margin-bottom:24px;
  box-shadow:var(--elev-1);position:relative;overflow:hidden;
  animation:entraCard var(--mov-lento) var(--easing) backwards;
}
.lv-progress::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent);opacity:.45}
.lv-progress .bar{flex:1;height:8px;background:var(--surface3);border-radius:4px;overflow:hidden}
.lv-progress .bar>div{
  height:100%;border-radius:4px;
  background:linear-gradient(90deg,var(--accent),var(--accent-2));
  box-shadow:0 0 12px -2px var(--accent);
  transition:width var(--mov-lento) var(--easing);
}
.lv-progress .num{
  font-size:var(--t-lg);font-weight:600;color:var(--text);
  font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:-.01em;
}

/* ── Abas (T6) ── */
.lv-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border-strong);margin-bottom:22px}
.lv-tab{
  position:relative;border:none;background:none;font:inherit;font-size:var(--t-md);
  font-weight:600;color:var(--muted);padding:10px 16px;cursor:pointer;
  transition:color var(--mov-rapido) var(--easing);
}
.lv-tab::after{
  content:'';position:absolute;left:14px;right:14px;bottom:-1px;height:2px;
  background:linear-gradient(90deg,var(--accent),var(--accent-2));
  transform:scaleX(0);transform-origin:left;
  transition:transform var(--mov-medio) var(--easing);
}
.lv-tab:hover{color:var(--text)}
.lv-tab.active{color:var(--text)}
.lv-tab.active::after{transform:scaleX(1)}
.lv-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ── Blocos e perguntas ── */
.lv-bloco h2{
  font-size:var(--t-xs);letter-spacing:.14em;text-transform:uppercase;
  color:var(--faint);font-weight:700;margin:30px 0 12px;
  display:flex;align-items:center;gap:10px;
}
.lv-bloco h2::after{content:'';flex:1;height:1px;background:var(--border)}
.lv-bloco .bloco-count{
  font-size:var(--t-xs);letter-spacing:0;color:var(--accent);
  background:var(--blue-bg);border:1px solid var(--blue-bd);
  border-radius:999px;padding:1px 9px;font-variant-numeric:tabular-nums;
}
.lv-pergunta{
  position:relative;overflow:hidden;
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);padding:18px 20px;margin-bottom:14px;
  box-shadow:var(--elev-1);
  animation:entraCard var(--mov-lento) var(--easing) backwards;
  transition:border-color var(--mov-medio) var(--easing),box-shadow var(--mov-medio) var(--easing);
}
.lv-pergunta:nth-of-type(2){animation-delay:45ms}
.lv-pergunta:nth-of-type(3){animation-delay:90ms}
.lv-pergunta:nth-of-type(n+4){animation-delay:135ms}
/* Severidade como forma (T5): faixa lateral acompanha o estado da resposta. */
.lv-pergunta::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:3px 0 0 3px;background:var(--accent);opacity:.35;transition:background var(--mov-medio) var(--easing),opacity var(--mov-medio) var(--easing)}
.lv-pergunta[data-estado="respondida"]{border-color:var(--green-bd)}
.lv-pergunta[data-estado="respondida"]::before{background:var(--green);opacity:1}
.lv-pergunta[data-estado="parcial"]::before{background:var(--amber);opacity:.8}
.lv-pergunta:focus-within{border-color:var(--blue-bd);box-shadow:var(--elev-2)}
.lv-pergunta-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:2px}
.lv-pergunta .codigo{font-size:var(--t-xs);color:var(--faint);font-weight:700;letter-spacing:.08em}
.resposta-lbl{
  display:block;font-size:var(--t-xs);font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--accent);margin:12px 0 6px;
}
.lv-pergunta h3{font-size:var(--t-lg);font-weight:600;margin:4px 0 6px;letter-spacing:-.01em}
.lv-pergunta .porque{font-size:var(--t-sm);color:var(--muted);margin:0 0 10px}
.lv-pergunta .prioridade{
  display:inline-block;font-size:var(--t-xs);font-weight:600;color:var(--amber);
  background:var(--amber-bg);border:1px solid var(--amber-bd);
  border-radius:999px;padding:2px 10px;letter-spacing:.01em;
}
.lv-pergunta textarea{
  width:100%;min-height:104px;resize:vertical;font:inherit;color:var(--text);
  border:1px solid var(--border-strong);border-radius:var(--radius-sm);
  padding:12px 14px;background:var(--surface3);box-sizing:border-box;
  transition:border-color var(--mov-rapido) var(--easing),box-shadow var(--mov-rapido) var(--easing),background var(--mov-rapido) var(--easing);
}
.lv-pergunta textarea::placeholder{color:var(--faint)}
.lv-pergunta textarea:hover{border-color:var(--blue-bd)}
.lv-pergunta textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--glow);background:var(--surface)}
.lv-btn.concluir.done{
  background:var(--green-bg);border-color:var(--green-bd);color:var(--green);
}
.lv-row{display:flex;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap}
.lv-status{font-size:var(--t-xs);color:var(--faint)}
.lv-status.saved{color:var(--green)}
.lv-check{display:flex;align-items:center;gap:7px;font-size:var(--t-sm);cursor:pointer;user-select:none;color:var(--muted)}
.lv-check input{accent-color:var(--accent);width:15px;height:15px}
.lv-anexos{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.lv-anexo-chip{
  display:inline-flex;align-items:center;gap:7px;font-size:var(--t-xs);
  background:var(--surface2);border:1px solid var(--border);border-radius:999px;padding:4px 11px;
  transition:border-color var(--mov-rapido) var(--easing);
}
.lv-anexo-chip:hover{border-color:var(--blue-bd)}
.lv-anexo-chip a{color:var(--accent);text-decoration:none;font-weight:600}
.lv-anexo-chip button{border:none;background:none;color:var(--red);cursor:pointer;font-size:var(--t-sm);padding:0;line-height:1}

/* ── Botões ── */
.lv-btn{
  border:1px solid var(--border-strong);background:var(--surface);color:var(--text);
  font:inherit;font-size:var(--t-sm);font-weight:600;
  border-radius:var(--radius-sm);padding:7px 14px;cursor:pointer;
  transition:transform var(--mov-rapido) var(--easing),box-shadow var(--mov-rapido) var(--easing),border-color var(--mov-rapido) var(--easing),color var(--mov-rapido) var(--easing);
}
.lv-btn:hover{border-color:var(--accent);color:var(--accent)}
.lv-btn.primary{
  background:var(--accent);border-color:var(--accent);color:var(--on-primary);
  box-shadow:var(--elev-1);
}
.lv-btn.primary:hover{transform:translateY(-1px);box-shadow:var(--glow);color:var(--on-primary)}
.lv-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.lv-btn:disabled{opacity:.45;cursor:not-allowed}

/* ── Fluxo (canvas) — palco no vocabulário da constelação de agentes ── */
.lv-fluxo-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.lv-fluxo-hint{font-size:var(--t-sm);color:var(--muted);max-width:78ch}
.lv-canvas-wrap{position:relative;border-radius:var(--radius)}
#lv-canvas{
  height:560px;
  background:
    radial-gradient(circle at 30% 18%, var(--blue-bg), transparent 55%),
    radial-gradient(circle at 78% 82%, rgba(99,102,241,.06), transparent 50%),
    linear-gradient(var(--border) 1px,transparent 1px),
    linear-gradient(90deg,var(--border) 1px,transparent 1px),
    var(--surface);
  background-size:100% 100%,100% 100%,36px 36px,36px 36px,100% 100%;
  border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--elev-1);overflow:hidden;
}
/* Moldura-cometa (port CSS do glow-border do OriginKit): anel mascarado com
   um conic-gradient girando — só um rastro de luz percorre o perímetro. */
.lv-canvas-glow{
  position:absolute;inset:-1px;border-radius:var(--radius);padding:1.5px;
  pointer-events:none;overflow:hidden;
  -webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);
  -webkit-mask-clip:content-box,border-box;-webkit-mask-composite:xor;
  mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);
  mask-clip:content-box,border-box;mask-composite:exclude;
}
.lv-canvas-glow::before{
  content:'';position:absolute;left:50%;top:50%;width:200%;aspect-ratio:1;
  transform:translate(-50%,-50%) rotate(0deg);
  background:conic-gradient(from 0deg,
    var(--accent) 0deg, rgba(8,145,178,.25) 40deg, transparent 80deg,
    transparent 180deg, var(--accent-2) 180deg, rgba(99,102,241,.2) 220deg, transparent 260deg);
  animation:lvCometa 9s linear infinite;
}
@keyframes lvCometa{to{transform:translate(-50%,-50%) rotate(360deg)}}

/* Nós do fluxo — ORBE solta com o nome embaixo (linguagem do viz-stage do
   SEAD); os detalhes moram no card que abre ao clicar. */
.lv-orbe{
  position:relative;width:100%;height:100%;cursor:grab;user-select:none;
  animation:lvSpawn .5s cubic-bezier(.34,1.56,.64,1) backwards;
  /* O container NÃO captura eventos — senão ele cobre as portas SVG de
     conexão nas bordas da caixa. Orbe, nome e estado capturam. */
  pointer-events:none;
}
.lv-orbe .core,.lv-orbe .nome,.lv-orbe .estado{pointer-events:auto}
.lv-orbe:active{cursor:grabbing}
.lv-orbe .core{
  /* Centramento por left FIXO — translateX(-50%) era sobrescrito pela
     animação lvBreathe (animation-transform vence) e a bolha derrapava 28px. */
  position:absolute;top:18px;left:18px;
  width:56px;height:56px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%, color-mix(in srgb,var(--c) 38%, #fff), var(--c) 55%, color-mix(in srgb,var(--c) 45%, #000));
  border:1px solid color-mix(in srgb,var(--c) 45%, transparent);
  box-shadow:0 0 18px color-mix(in srgb,var(--c) 65%, transparent), inset 0 0 8px rgba(255,255,255,.22);
  animation:lvBreathe 2.6s ease-in-out infinite;
  transition:box-shadow var(--mov-rapido) var(--easing);
}
.lv-orbe:hover .core{box-shadow:0 0 30px color-mix(in srgb,var(--c) 85%, transparent), inset 0 0 8px rgba(255,255,255,.3)}
/* Anel expansivo — só quem está em dúvida chama atenção (centrado na orbe). */
.lv-orbe .ring{
  position:absolute;left:50%;top:46px;transform:translate(-50%,-50%);
  border-radius:50%;border:1px solid var(--amber);opacity:0;pointer-events:none;
}
.lv-orbe[data-estado="duvida"] .ring{animation:lvRing 2s ease-out infinite}
.lv-orbe[data-estado="duvida"] .core{animation-duration:1.2s}
@keyframes lvRing{0%{width:58px;height:58px;opacity:.85}100%{width:150px;height:150px;opacity:0}}
.lv-orbe .nome{
  position:absolute;left:50%;top:80px;transform:translateX(-50%);
  white-space:nowrap;text-align:center;font-size:var(--t-sm);font-weight:700;
  letter-spacing:-.01em;color:var(--text);
  text-shadow:0 1px 6px var(--bg),0 0 2px var(--bg);
}
.lv-orbe .estado{
  position:absolute;left:50%;top:99px;transform:translateX(-50%);
  white-space:nowrap;font-size:.6rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--faint);
}
.lv-orbe[data-estado="duvida"] .estado{color:var(--amber)}
.lv-orbe[data-estado="confirmada"] .estado{color:var(--green)}
.lv-orbe[data-estado="corrigida"] .estado{color:var(--amber)}
.lv-orbe[data-estado="confirmada"] .core{box-shadow:0 0 18px color-mix(in srgb,var(--c) 55%, transparent),0 0 0 3px var(--green-bg),0 0 0 4px var(--green-bd)}
@keyframes lvBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes lvSpawn{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.15)}100%{opacity:1;transform:scale(1)}}
/* Detalhe do nó — POPOVER flutuante ancorado na orbe clicada. */
.lv-node-panel .np-sub{font-size:var(--t-sm);color:var(--muted);margin:2px 0 8px}
.lv-canvas-wrap .lv-node-panel{
  position:absolute;z-index:12;width:min(400px,calc(100% - 24px));
  margin-top:0;box-shadow:var(--elev-3);
}
.np-close{
  position:absolute;top:10px;right:12px;border:none;background:none;
  color:var(--muted);font-size:1.05rem;line-height:1;cursor:pointer;padding:4px;
}
.np-close:hover{color:var(--text)}

/* O nome/estado transbordam a caixa do nó (que é só a orbe) — o X6 renderiza
   HTML dentro de foreignObject, que precisa deixar o overflow visível. */
.x6-node foreignObject{overflow:visible}
.x6-node foreignObject>div{overflow:visible!important}

/* Arestas: fluxo de dados — tracejado correndo no acento (ant-line do X6). */
@keyframes lvDash{to{stroke-dashoffset:-1000}}
.x6-edge path:nth-child(2){stroke-dasharray:7 4;animation:lvDash 40s linear infinite}

@media (prefers-reduced-motion:reduce){
  .lv-no .orb,.lv-canvas-glow::before,.x6-edge path:nth-child(2){animation:none!important}
}
.lv-node-panel{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:16px 18px;margin-top:14px;box-shadow:var(--elev-2);
  animation:entraCard var(--mov-medio) var(--easing);
}
.lv-node-panel h3{margin:0 0 4px;font-size:var(--t-lg);font-weight:600}
.lv-node-panel .duvida{
  color:var(--amber);font-size:var(--t-sm);margin:6px 0 12px;
  background:var(--amber-bg);border:1px solid var(--amber-bd);
  border-radius:var(--radius-sm);padding:8px 12px;
}
.lv-node-panel textarea{
  width:100%;min-height:58px;font:inherit;color:var(--text);
  border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:9px 12px;background:var(--surface2);
  transition:border-color var(--mov-rapido) var(--easing),box-shadow var(--mov-rapido) var(--easing);
}
.lv-node-panel textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--glow)}
.lv-coments{margin:10px 0 0;padding-left:18px;font-size:var(--t-sm);color:var(--muted)}
.lv-coments li{margin:4px 0}
.lv-coments b{color:var(--text)}
.lv-coments code{font-size:var(--t-xs);background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:1px 5px}

/* ── Auth ── */
.lv-auth-card{
  max-width:430px;margin:14vh auto 0;background:var(--surface);
  border:1px solid var(--border);border-radius:var(--radius);
  padding:34px 34px 30px;box-shadow:var(--elev-3);
  position:relative;overflow:hidden;
  animation:entraCard var(--mov-lento) var(--easing);
}
.lv-auth-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.lv-auth-card h1{font-size:var(--t-xl);font-weight:600;letter-spacing:-.02em;margin:0 0 6px}
.lv-auth-card p{color:var(--muted);font-size:var(--t-md);line-height:1.6}
.lv-auth-card input{
  width:100%;font:inherit;color:var(--text);padding:11px 13px;
  border:1px solid var(--border);border-radius:var(--radius-sm);
  background:var(--surface2);margin:12px 0;
  transition:border-color var(--mov-rapido) var(--easing),box-shadow var(--mov-rapido) var(--easing);
}
.lv-auth-card input:focus{outline:none;border-color:var(--accent);box-shadow:var(--glow)}
.lv-auth-card label{font-size:var(--t-sm);font-weight:600;color:var(--muted)}
.lv-auth-msg{font-size:var(--t-sm);margin-top:12px}
.lv-auth-msg.err{color:var(--red)}
.lv-auth-msg.ok{color:var(--green)}

/* ── Admin ── */
.lv-table{
  width:100%;border-collapse:separate;border-spacing:0;
  border:1px solid var(--border);border-radius:var(--radius);
  background:var(--surface);overflow:hidden;box-shadow:var(--elev-1);
}
.lv-table th,.lv-table td{text-align:left;padding:10px 14px;font-size:var(--t-sm)}
.lv-table th{
  font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.08em;
  color:var(--muted);background:var(--surface2);border-bottom:1px solid var(--border-strong);
}
.lv-table tbody tr{background:var(--surface)}
.lv-table tbody tr:nth-child(even){background:var(--surface2)}
.lv-table tbody tr:hover{background:var(--blue-bg)}
.lv-table td{border-bottom:1px solid var(--border)}
.lv-table tr:last-child td{border-bottom:0}
.lv-resposta-item{
  border-left:3px solid var(--border-strong);border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  background:var(--surface2);padding:8px 14px;margin:8px 0;font-size:var(--t-sm);
}
.lv-resposta-item.respondida{border-left-color:var(--green);background:var(--green-bg)}
.lv-resposta-item.parcial{border-left-color:var(--amber);background:var(--amber-bg)}
.lv-diff-add{color:var(--green)}
.lv-diff-del{color:var(--red);text-decoration:line-through}
.lv-pill{display:inline-block;font-size:var(--t-xs);font-weight:700;border-radius:999px;padding:2px 10px;letter-spacing:.01em}
.lv-pill.ok{background:var(--green-bg);color:var(--green);border:1px solid var(--green-bd)}
.lv-pill.warn{background:var(--amber-bg);color:var(--amber);border:1px solid var(--amber-bd)}

/* ── Toast ── */
.lv-toast{
  position:fixed;bottom:22px;left:50%;transform:translateX(-50%);
  background:var(--surface);color:var(--text);border:1px solid var(--border-strong);
  border-radius:var(--radius-sm);padding:11px 20px;font-size:var(--t-sm);font-weight:600;
  z-index:50;box-shadow:var(--elev-3);
  animation:entraMsg var(--mov-medio) var(--easing);
}

@keyframes entraCard{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@keyframes entraMsg{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
  .lv-btn.primary:hover{transform:none}
}
@media (max-width:640px){
  .lv-wrap{padding:20px 14px 70px}
  #lv-canvas{height:420px}
  .lv-progress .num{font-size:var(--t-md)}
}
